Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/ovhcloud_cloud_instance_set-name.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ ovhcloud cloud instance set-name <instance_id> <new_name> [flags]

```
-h, --help help for set-name
--wait Wait for the instance to be ready before exiting
```

### Options inherited from parent commands
Expand Down
573 changes: 418 additions & 155 deletions internal/assets/api-schemas/cloud_v2.json

Large diffs are not rendered by default.

56 changes: 29 additions & 27 deletions internal/cmd/cloud_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ func initInstanceCommand(cloudCmd *cobra.Command) {
instanceCmd.AddCommand(&cobra.Command{
Use: "get <instance_id>",
Short: "Get a specific instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.GetInstance,
Args: cobra.ExactArgs(1),
})
Expand All @@ -169,31 +169,33 @@ func initInstanceCommand(cloudCmd *cobra.Command) {
instanceCmd.AddCommand(&cobra.Command{
Use: "delete <instance_id>",
Short: "Delete the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.DeleteInstance,
Args: cobra.ExactArgs(1),
})

instanceCmd.AddCommand(&cobra.Command{
setNameCmd := &cobra.Command{
Use: "set-name <instance_id> <new_name>",
Short: "Set the name of the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.SetInstanceName,
Args: cobra.ExactArgs(2),
})
}
setNameCmd.Flags().BoolVar(&flags.WaitForTask, "wait", false, "Wait for the instance to be ready before exiting")
instanceCmd.AddCommand(setNameCmd)

instanceCmd.AddCommand(&cobra.Command{
Use: "start <instance_id>",
Short: "Start the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.StartInstance,
Args: cobra.ExactArgs(1),
})

instanceCmd.AddCommand(&cobra.Command{
Use: "stop <instance_id>",
Short: "Stop the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.StopInstance,
Args: cobra.ExactArgs(1),
})
Expand All @@ -205,7 +207,7 @@ func initInstanceCommand(cloudCmd *cobra.Command) {
The data of the local storage will be stored, the duration of the operation depends on the size of the local disk.
The instance can be unshelved at any time. Meanwhile hourly instances will not be billed.
The Snapshot Storage used to store the instance's data will be billed.`,
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.ShelveInstance,
Args: cobra.ExactArgs(1),
})
Expand All @@ -216,23 +218,23 @@ The Snapshot Storage used to store the instance's data will be billed.`,
Long: `The resources dedicated to the Public Cloud instance are restored.
The duration of the operation depends on the size of the local disk.
Instance billing will get back to normal and the snapshot used to store the instance's data will be deleted.`,
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.UnshelveInstance,
Args: cobra.ExactArgs(1),
})

instanceCmd.AddCommand(&cobra.Command{
Use: "resume <instance_id>",
Short: "Resume the given suspended instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.ResumeInstance,
Args: cobra.ExactArgs(1),
})

rebootCmd := &cobra.Command{
Use: "reboot <instance_id>",
Short: "Reboot the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.RebootInstance,
Args: cobra.ExactArgs(1),
}
Expand Down Expand Up @@ -285,7 +287,7 @@ There are three ways to define the installation parameters:

ovhcloud cloud instance reinstall c7e272d4-4c11-11f0-bf07-0050568ce122 --editor --image <image_id>
`,
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.ReinstallInstance,
Args: cobra.MaximumNArgs(1),
}
Expand All @@ -302,7 +304,7 @@ There are three ways to define the installation parameters:
instanceCmd.AddCommand(&cobra.Command{
Use: "activate-monthly-billing <instance_id>",
Short: "Activate monthly billing for the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.ActivateMonthlyBilling,
Args: cobra.ExactArgs(1),
})
Expand All @@ -317,39 +319,39 @@ There are three ways to define the installation parameters:
Use: "list <instance_id>",
Aliases: []string{"ls"},
Short: "List interfaces of the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.ListInstanceInterfaces,
Args: cobra.ExactArgs(1),
}))

interfacesCommand.AddCommand(&cobra.Command{
Use: "get <instance_id> <interface_id>",
Short: "Get a specific interface of the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.GetInstanceInterface,
Args: cobra.ExactArgs(2),
})

interfacesCommand.AddCommand(&cobra.Command{
Use: "create <instance_id> <network_id> <ip (optional)>",
Short: "Create interface on the given instance and attach it to a network",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.CreateInstanceInterface,
Args: cobra.RangeArgs(2, 3),
})

interfacesCommand.AddCommand(&cobra.Command{
Use: "delete <instance_id> <interface_id>",
Short: "Delete a specific interface of the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.DeleteInstanceInterface,
Args: cobra.ExactArgs(2),
})

enableRescueCmd := &cobra.Command{
Use: "reboot-rescue <instance_id>",
Short: "Reboot the given instance in rescue mode",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.EnableInstanceInRescueMode,
Args: cobra.ExactArgs(1),
}
Expand All @@ -360,7 +362,7 @@ There are three ways to define the installation parameters:
disableRescueCmd := &cobra.Command{
Use: "exit-rescue <instance_id>",
Short: "Exit the given instance from rescue mode",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.DisableInstanceRescueMode,
Args: cobra.ExactArgs(1),
}
Expand All @@ -370,7 +372,7 @@ There are three ways to define the installation parameters:
setFlavorCmd := &cobra.Command{
Use: "set-flavor <instance_id> <flavor_id>",
Short: "Migrate the given instance to the specified flavor",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.SetInstanceFlavor,
Args: cobra.RangeArgs(1, 2),
}
Expand All @@ -387,7 +389,7 @@ There are three ways to define the installation parameters:
backupCreateCmd := &cobra.Command{
Use: "create <instance_id> <backup_name>",
Short: "Create a backup of the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.CreateInstanceBackup,
Args: cobra.ExactArgs(2),
}
Expand All @@ -399,7 +401,7 @@ There are three ways to define the installation parameters:
backupCmd.AddCommand(&cobra.Command{
Use: "abort <instance_id>",
Short: "Abort the backup creation of the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.AbortInstanceBackup,
Args: cobra.ExactArgs(1),
})
Expand Down Expand Up @@ -477,23 +479,23 @@ There are three ways to define the installation parameters:
Use: "list <instance_id>",
Aliases: []string{"ls"},
Short: "List automatic backup workflows for the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.ListAutobackups,
Args: cobra.ExactArgs(1),
}))

autobackupCmd.AddCommand(&cobra.Command{
Use: "get <instance_id> <backup_workflow_id>",
Short: "Get details of an automatic backup workflow",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.GetAutobackup,
Args: cobra.ExactArgs(2),
})

createAutobackupCmd := &cobra.Command{
Use: "create <instance_id>",
Short: "Create an automatic backup workflow for the given instance",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.CreateAutobackup,
Args: cobra.ExactArgs(1),
}
Expand All @@ -508,7 +510,7 @@ There are three ways to define the installation parameters:
autobackupCmd.AddCommand(&cobra.Command{
Use: "delete <instance_id> <backup_workflow_id>",
Short: "Delete an automatic backup workflow",
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.DeleteAutobackup,
Args: cobra.ExactArgs(2),
})
Expand All @@ -518,7 +520,7 @@ There are three ways to define the installation parameters:
Use: "application-access <instance_id>",
Short: "Get application access credentials for the given instance",
Long: `Get the credentials to access the application installed on the given instance (e.g. WordPress, GitLab, etc.)`,
ValidArgsFunction: completion.CloudResources("/v1/cloud/project/%s/instance"),
ValidArgsFunction: completion.CloudResources("/v2/publicCloud/project/%s/compute/instance"),
Run: cloud.GetInstanceApplicationAccess,
Args: cobra.ExactArgs(1),
})
Expand Down
Loading
Loading