diff --git a/glustercli/cmd/volume.go b/glustercli/cmd/volume.go index 7dca0915b..b3f57fd10 100644 --- a/glustercli/cmd/volume.go +++ b/glustercli/cmd/volume.go @@ -27,6 +27,7 @@ const ( helpVolumeListCmd = "List all Gluster Volumes" helpVolumeStatusCmd = "Get Gluster Volume Status" helpVolumeExpandCmd = "Expand a Gluster Volume" + helpVolumeEditCmd = "Edit Volinfo properties of a Gluster Volume" ) var ( @@ -39,6 +40,11 @@ var ( // Expand Command Flags flagExpandCmdReplicaCount int flagExpandCmdForce bool + + // Edit Command Flags + flagCmdMetadataKey string + flagCmdMetadataValue string + flagCmdDeleteMetadata bool ) func init() { @@ -67,6 +73,12 @@ func init() { volumeExpandCmd.Flags().BoolVarP(&flagExpandCmdForce, "force", "f", false, "Force") volumeCmd.AddCommand(volumeExpandCmd) + // Volume Edit + volumeEditCmd.Flags().StringVar(&flagCmdMetadataKey, "key", "", "Metadata Key") + volumeEditCmd.Flags().StringVar(&flagCmdMetadataValue, "value", "", "Metadata Value") + volumeEditCmd.Flags().BoolVar(&flagCmdDeleteMetadata, "delete", false, "Metadata Delete Flag") + volumeCmd.AddCommand(volumeEditCmd) + RootCmd.AddCommand(volumeCmd) } @@ -412,3 +424,28 @@ var volumeExpandCmd = &cobra.Command{ fmt.Printf("%s Volume expanded successfully\n", vol.Name) }, } + +var volumeEditCmd = &cobra.Command{ + Use: "edit flags", + Short: helpVolumeEditCmd, + Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + volname := args[0] + metadata := make(map[string]string) + metadata[flagCmdMetadataKey] = flagCmdMetadataValue + editMetadataReq := api.VolEditReq{ + Metadata: metadata, + MetadataDel: flagCmdDeleteMetadata, + } + _, err := client.EditVolume(volname, editMetadataReq) + if err != nil { + if verbose { + log.WithFields(log.Fields{ + "error": err.Error(), + }).Error("failed to edit metadata") + } + failure("Failed to edit metadata", err, 1) + } + fmt.Printf("Metadata edit successfull\n") + }, +}