Skip to content
Snippets Groups Projects

Resolve "Expand Cli with role service calls"

Merged Fabian Seidl requested to merge 374-expand-cli-with-role-service-calls into master
2 files
+ 86
11
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 14
11
@@ -32,6 +32,8 @@ POSSIBILITY OF SUCH DAMAGE.
package cmd
import (
"strings"
"github.com/pterm/pterm"
"github.com/spf13/cobra"
"github.com/spf13/viper"
@@ -40,22 +42,25 @@ import (
"code.fbi.h-da.de/danet/gosdn/controller/api"
)
// networkElementCreateCmd represents the create command.
// roleCreateCmd represents the create command.
var roleCreateCmd = &cobra.Command{
Use: "create",
Short: "creates a role in the controller",
Long: `Creates an orchestrated network network element on the controller.
Network element address must be provided with IP and port,e.g., 192.168.1.1:6030. User credentials need to be provided as parameters
if they diverge from the default credentials (user:'admin' and pw:'arista').`,
Short: "Creates a role in the controller",
Long: `Creates a role in the controller with the provided permissions as comma separated strings.`,
Run: func(cmd *cobra.Command, args []string) {
spinner, _ := pterm.DefaultSpinner.Start("Creating new role")
var permissions []string
if createRolePermissions != "" {
permissions = strings.Split(createRolePermissions, ",")
}
roles := []*rbac.Role{
{
Name: createRoleName,
Description: createRoleDescription,
Permissions: createRolePermissions,
Permissions: permissions,
},
}
@@ -66,25 +71,23 @@ if they diverge from the default credentials (user:'admin' and pw:'arista').`,
}
spinner.Success("Roles have been created.")
},
PostRun: func(cmd *cobra.Command, args []string) {
// Necessary for prompt mode. The flag variables have to be resetted,
// since in prompt mode the program keeps running.
createRoleName, createRoleDescription = "", ""
createRolePermissions = nil
createRoleName, createRoleDescription, createRolePermissions = "", "", ""
},
}
var createRoleName string
var createRoleDescription string
var createRolePermissions []string
var createRolePermissions string
func init() {
roleCmd.AddCommand(roleCreateCmd)
roleCreateCmd.Flags().StringVar(&createRoleName, "name", "", "add a name for the role")
roleCreateCmd.Flags().StringVar(&createRoleDescription, "description", "", "add a description to the role")
createRolePermissions = *roleCreateCmd.Flags().StringSlice("permissions", nil, "add permissions to the role like this: \"/gosdn.networkelement.NetworkElementService/GetFlattened,/gosdn.pnd.PndService/GetPnd\"")
roleCreateCmd.Flags().StringVar(&createRolePermissions, "permissions", "", "add multiple permissions separated by comma: --permissions \"p1,p2\"")
}
Loading