plugin

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 9, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FixCmd = &cobra.Command{
	Use:   "fix",
	Short: "Clean up invalid enabled tenants in the plugin",
	Example: `
# Clean up all plugins
tkeel plugin fix

# Clean up the specified plugins
tkeel plugin fix [plugin-id ...]
`,
	Run: func(cmd *cobra.Command, args []string) {
		plugins := args
		print.PendingStatusEvent(os.Stdout, "Clean invalid enabled tenants....")
		daprStatus, err := kubernetes.CheckDapr()
		if err != nil {
			print.FailureStatusEvent(os.Stdout, err.Error())
			os.Exit(1)
		}
		tenantList, err := kubernetes.TenantList()
		if err != nil {
			print.FailureStatusEvent(os.Stdout, err.Error())
			os.Exit(1)
		}
		var tenants = make([]string, len(tenantList))
		for _, tenant := range tenantList {
			tenants = append(tenants, tenant.ID)
		}

		if len(plugins) == 0 {
			pluginList, err := kubernetes.InstalledPlugin()
			if err != nil {
				print.FailureStatusEvent(os.Stdout, err.Error())
				os.Exit(1)
			}
			plugins = make([]string, len(pluginList))
			for i, plugin := range pluginList {
				plugins[i] = plugin.Name
			}
		}

		for _, plugin := range plugins {
			err := kubernetes.CleanInvalidTenants(plugin, tenants, daprStatus.Namespace)
			if err != nil {
				print.FailureStatusEvent(os.Stdout, fmt.Sprintf("clean invalid tenants failed, plugin: %s, err: %s", plugin, err.Error()))
			}
		}
		print.InfoStatusEvent(os.Stdout, "Invalid tenant cleanup completed")
	},
}
View Source
var PluginCmd = &cobra.Command{
	Use:     "plugin",
	Short:   "Plugin manage.",
	Example: PluginHelpExample,
	Run: func(cmd *cobra.Command, args []string) {
		cmd.Help()
	},
}
View Source
var PluginDisableCmd = &cobra.Command{
	Use:   "disable",
	Short: "Disable plugins for tenant.",
	Example: `
# Disable plugin for tenant
tkeel plugin disable <plugin-id> -t <tenant-id>
`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) == 0 {
			print.WarningStatusEvent(os.Stdout, "Please specify the ID of the plugin you want to disable.")
			print.WarningStatusEvent(os.Stdout, "For example, tkeel plugin disable <plugin-id> -t <tenant-id>.")
			os.Exit(1)
		}

		pluginID := args[0]
		if err := kubernetes.DisablePlugin(pluginID, tenant); err != nil {
			print.FailureStatusEvent(os.Stdout, err.Error())
			os.Exit(1)
		}
		print.SuccessStatusEvent(os.Stdout, fmt.Sprintf("Success! Plugin<%s> has been disabled for tenant<%s>.", pluginID, tenant))
	},
}
View Source
var PluginEnableCmd = &cobra.Command{
	Use:   "enable",
	Short: "Enable plugins for tenant.",
	Example: `
# Enable the plugin for tenant
tkeel plugin enable <plugin-id> -t <tenant-id>
`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			print.WarningStatusEvent(os.Stdout, "Please specify the plugin id.")
			print.WarningStatusEvent(os.Stdout, "For example, tkeel plugin enable <plugin-id> -t <tenant-id>.")
			os.Exit(1)
		}

		pluginID := args[0]
		err := kubernetes.EnablePlugin(pluginID, tenant)
		if err != nil {
			print.FailureStatusEvent(os.Stdout, err.Error())
			os.Exit(1)
		}
		print.SuccessStatusEvent(os.Stdout, fmt.Sprintf("Success! Plugin<%s> has been enabled for tenant<%s>.", pluginID, tenant))
	},
}
View Source
var PluginHelpExample = `` /* 439-byte string literal not displayed */
View Source
var PluginInfoCmd = &cobra.Command{
	Use:   "show",
	Short: "Show plugin info.",
	Example: `
# Show information of the specified plugin
tkeel plugin show <plugin-id>
`,
	Run: func(cmd *cobra.Command, args []string) {

		if len(args) == 0 {
			print.PendingStatusEvent(os.Stdout, "PluginID not fount ...\n # Manager plugins. \n tkeel plugin register plugin-id")
			os.Exit(1)
		}

		pluginID := args[0]
		status, err := kubernetes.PluginInfo(pluginID)
		if err != nil {
			print.FailureStatusEvent(os.Stdout, err.Error())
			os.Exit(1)
		}
		if len(status) == 0 {
			print.FailureStatusEvent(os.Stdout, "No status returned. Is tKeel plugins not install in your cluster?")
			os.Exit(1)
		}

		outputList(status, len(status))
	},
}
View Source
var PluginInstallCmd = &cobra.Command{
	Use:   "install",
	Short: "Install the plugin which you want",
	Example: `
# Install the latest version
tkeel plugin install <repo-name>/<installer-id> <plugin-id>
# Install the specified version
tkeel plugin install <repo-name>/<installer-id>@<version> <plugin-id>
`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 2 {
			print.WarningStatusEvent(os.Stdout, "Please specify the installer info and plugin id")
			print.WarningStatusEvent(os.Stdout, "For example, tkeel plugin install <repo-name>/<installer-id>[@<version>] <plugin-id>")
			os.Exit(1)
		}
		var configb []byte
		var err error
		name := args[1]
		repo, plugin, version := utils.ParseInstallArg(args[0], officialRepo)
		if configFile != "" {
			configFile, err = filepath.Abs(configFile)
			if err != nil {
				print.FailureStatusEvent(os.Stdout, "unable to read config file")
				os.Exit(1)
			}
			configb, err = ioutil.ReadFile(configFile)
			if err != nil {
				print.FailureStatusEvent(os.Stdout, "unable to read config file")
				os.Exit(1)
			}
		}

		if err := kubernetes.Install(repo, plugin, version, name, configb); err != nil {
			print.FailureStatusEvent(os.Stdout, "Install %q failed, Because: %s", plugin, err.Error())
			os.Exit(1)
		}
		print.SuccessStatusEvent(os.Stdout, "Install %q success! It's named %q in k8s", plugin, name)
	},
}
View Source
var PluginRegisterCmd = &cobra.Command{
	Use:   "register",
	Short: "Register plugins.",
	Example: `
# Manually register the ERR_REGISTERED plugins
tkeel plugin register <plugin-id>
`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) == 0 {
			print.PendingStatusEvent(os.Stdout, "PluginID not fount ...\n # Manager plugins.  \n tkeel plugin register <plugin-id>")
			os.Exit(1)
		}

		pluginID := args[0]
		err := kubernetes.RegisterPlugin(pluginID)
		if err != nil {
			print.FailureStatusEvent(os.Stdout, err.Error())
			os.Exit(1)
		}
		print.SuccessStatusEvent(os.Stdout, fmt.Sprintf("Success! Plugin<%s> has been Registered to tKeel Platform . To verify, run `tkeel plugin list' in your terminal. ", pluginID))
	},
}
View Source
var PluginStatusCmd = &cobra.Command{
	Use:   "list",
	Short: "List all installed plugin in tkeel.",
	Example: `
# List the installed plugins 
tkeel plugin list
`,
	Run: func(cmd *cobra.Command, args []string) {
		if tenant != "" {
			list, err := kubernetes.ListPluginsOfTenant(tenant)
			if err != nil {
				print.FailureStatusEvent(os.Stdout, "unable to list plugins:%s", err.Error())
				os.Exit(1)
			}
			outputList(list, len(list))
			os.Exit(0)
		}

		status, err := kubernetes.InstalledPlugin()
		if err != nil {
			print.FailureStatusEvent(os.Stdout, err.Error())
			os.Exit(1)
		}
		if len(status) == 0 {
			print.WarningStatusEvent(os.Stdout, "There is not plugin in your cluster.")
			os.Exit(0)
		}

		outputList(status, len(status))
	},
}
View Source
var PluginUninstallCmd = &cobra.Command{
	Use:   "uninstall",
	Short: "Uninstall the plugin which you want",
	Example: `
# Uninstall the specified plugin by id
tkeel plugin uninstall <plugin-id>
`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			print.WarningStatusEvent(os.Stdout, "Please specify the plugin id.")
			print.WarningStatusEvent(os.Stdout, "For example, tkeel plugin uninstall <plugin-id>")
			os.Exit(1)
		}
		pluginID := args[0]
		if force {
			tenantList, err := kubernetes.TenantPluginList(pluginID)
			if err != nil {
				print.FailureStatusEvent(os.Stdout, "Get tenant list error, %s", err.Error())
				os.Exit(1)
			}
			for _, tenant := range tenantList {
				err = kubernetes.DisablePlugin(pluginID, tenant.ID)
				if err != nil {
					print.FailureStatusEvent(os.Stdout, "Disable plugin error, %s,", err.Error())
					os.Exit(1)
				}
			}
		}
		if err := kubernetes.UninstallPlugin(pluginID); err != nil {
			print.FailureStatusEvent(os.Stdout, "Try to remove installed plugin %q failed, Because: %s", strings.Join(args, ","), err.Error())
			os.Exit(1)
		}
		print.SuccessStatusEvent(os.Stdout, "Remove %q success!", strings.Join(args, ","))
	},
}
View Source
var PluginUpgradeCmd = &cobra.Command{
	Use:   "upgrade",
	Short: "Upgrade the plugin which you want",
	Example: `
# Upgrade the specified plugin to the latest version
tkeel plugin upgrade <repo-name>/<installer-id> <plugin-id>

# Upgrade the specified plugin to the specified version
tkeel plugin upgrade <repo-name>/<installer-id>@<version> <plugin-id>
`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 2 {
			print.WarningStatusEvent(os.Stdout, "Please specify the installer info and plugin id")
			print.WarningStatusEvent(os.Stdout, "For example, tkeel plugin upgrade <repo-name>/<installer-id>[@<version>] <plugin-id>")
			os.Exit(1)
		}
		var configb []byte
		var err error
		name := args[1]
		repo, plugin, version := utils.ParseInstallArg(args[0], officialRepo)
		if configFile != "" {
			configFile, err = filepath.Abs(configFile)
			if err != nil {
				print.FailureStatusEvent(os.Stdout, "unable to read config file")
				os.Exit(1)
			}
			configb, err = ioutil.ReadFile(configFile)
			if err != nil {
				print.FailureStatusEvent(os.Stdout, "unable to read config file")
				os.Exit(1)
			}
		}

		if err := kubernetes.PluginUpgrade(repo, plugin, version, name, configb); err != nil {
			print.FailureStatusEvent(os.Stdout, "Upgrade %q failed, Because: %s", plugin, err.Error())
			os.Exit(1)
		}
		print.SuccessStatusEvent(os.Stdout, "Upgrade %q success! It's named %q in k8s", plugin, name)
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL