Updating assume role functionality
This commit is contained in:
36
role.go
36
role.go
@@ -39,19 +39,22 @@ var roleCommands = []Command{
|
||||
}
|
||||
|
||||
func assumeRole(args []string) {
|
||||
fmt.Println("I assume something")
|
||||
|
||||
var targetRole string
|
||||
var useIdentity string
|
||||
var outputFormat string
|
||||
|
||||
roleAssumeRoleCmd := flag.NewFlagSet("assume-role", flag.ExitOnError)
|
||||
roleAssumeRoleCmd.StringVar(&targetRole, "r", "", "Target role (required)")
|
||||
roleAssumeRoleCmd.StringVar(&targetRole, "role", "", "Target role (required)")
|
||||
roleAssumeRoleCmd.StringVar(&targetRole, "rolename", "", "Target role (required)")
|
||||
roleAssumeRoleCmd.StringVar(&useIdentity, "identity", "", "Identity to use (required)")
|
||||
roleAssumeRoleCmd.StringVar(&outputFormat, "output", "json", "Output format (json or text)")
|
||||
|
||||
roleAssumeRoleCmd.Parse(args)
|
||||
|
||||
fmt.Println("output format is", outputFormat)
|
||||
|
||||
if targetRole == "" {
|
||||
fmt.Println("Error: either -r or --role is required")
|
||||
fmt.Println("Error: either -r or --rolename is required")
|
||||
os.Exit(1)
|
||||
}
|
||||
if useIdentity == "" {
|
||||
@@ -106,16 +109,6 @@ func assumeRole(args []string) {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// fmt.Println("Response status:", resp.Status)
|
||||
fmt.Println("Assumed role token:", apiresponse.Content.Token)
|
||||
|
||||
// fmt.Printf("Attaching policy '%s' to role '%s'\n", , targetRole)
|
||||
|
||||
fmt.Println("Response status:", resp.Status)
|
||||
fmt.Printf("Assuming role '%s'\n", targetRole)
|
||||
fmt.Println("Using identity", resp.Body)
|
||||
|
||||
// Write apiresponse.Content to ~/.pcloud/roles/assumed-<rolename>.json
|
||||
home, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@@ -134,6 +127,15 @@ func assumeRole(args []string) {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// If the file exists, it will be deleted
|
||||
if _, err := os.Stat(fmt.Sprintf("%s/%s.json", dir, targetRole)); err == nil {
|
||||
err = os.Remove(fmt.Sprintf("%s/%s.json", dir, targetRole))
|
||||
if err != nil {
|
||||
fmt.Printf("Error deleting existing role file: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
roleFile := fmt.Sprintf("%s/%s.json", dir, targetRole)
|
||||
err = os.WriteFile(roleFile, roleData, 0600)
|
||||
if err != nil {
|
||||
@@ -141,7 +143,7 @@ func assumeRole(args []string) {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
fmt.Printf("Assumed role token saved to %s\n", roleFile)
|
||||
// fmt.Printf("Assumed role token saved to %s\n", roleFile)
|
||||
|
||||
}
|
||||
|
||||
@@ -152,13 +154,13 @@ func roleAttachPolicy(args []string) {
|
||||
var targetRole string
|
||||
var useIdentity string
|
||||
|
||||
roleattachpolicyCmd.StringVar(&targetRole, "role", "", "Target role (required)")
|
||||
roleattachpolicyCmd.StringVar(&targetRole, "rolename", "", "Target role (required)")
|
||||
roleattachpolicyCmd.StringVar(&useIdentity, "identity", "", "Identity to use (default: default)")
|
||||
|
||||
roleattachpolicyCmd.Parse(args)
|
||||
|
||||
if targetRole == "" {
|
||||
fmt.Println("Error: either --role is required")
|
||||
fmt.Println("Error: either --rolename is required")
|
||||
os.Exit(1)
|
||||
}
|
||||
if useIdentity == "" {
|
||||
|
||||
Reference in New Issue
Block a user