1 Star 0 Fork 0

litian/kontainer-engine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
remove.go 1.66 KB
一键复制 编辑 原始数据 按行查看 历史
Daishan Peng 提交于 2017-11-15 15:27 . fix bugs
package cmd
import (
"fmt"
"os"
"path/filepath"
"github.com/rancher/kontainer-engine/store"
"github.com/rancher/kontainer-engine/utils"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
)
// RmCommand defines the remove command
func RmCommand() cli.Command {
return cli.Command{
Name: "remove",
ShortName: "rm",
Usage: "Remove kubernetes clusters",
Action: rmCluster,
Flags: []cli.Flag{
cli.BoolFlag{
Name: "force,f",
Usage: "force to remove a cluster",
},
},
}
}
func rmCluster(ctx *cli.Context) error {
for _, name := range ctx.Args() {
if name == "" || name == "--help" {
return cli.ShowCommandHelp(ctx, "remove")
}
clusters, err := store.GetAllClusterFromStore()
if err != nil {
return err
}
cluster, ok := clusters[name]
if !ok {
return fmt.Errorf("cluster %v can't be found", name)
}
rpcClient, _, err := runRPCDriver(cluster.DriverName)
if err != nil {
return err
}
configGetter := cliConfigGetter{
name: name,
ctx: ctx,
}
cluster.ConfigGetter = configGetter
cluster.PersistStore = cliPersistStore{}
cluster.Driver = rpcClient
if err := cluster.Remove(); err != nil {
if !ctx.Bool("force") {
return err
}
}
clusterFilePath := filepath.Join(utils.HomeDir(), "clusters", cluster.Name)
logrus.Debugf("Deleting cluster storage path %v", clusterFilePath)
if err := os.RemoveAll(clusterFilePath); err != nil && !os.IsNotExist(err) {
return err
}
config, err := getConfigFromFile()
if err != nil {
return err
}
deleteConfigByName(&config, name)
if err := setConfigToFile(config); err != nil {
return err
}
fmt.Println(cluster.Name)
}
return nil
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/litian33/kontainer-engine.git
git@gitee.com:litian33/kontainer-engine.git
litian33
kontainer-engine
kontainer-engine
v0.0.4-dev

搜索帮助

D67c1975 1850385 1daf7b77 1850385