/
cloudNetworkPublicRemove.go
72 lines (56 loc) · 2.47 KB
/
cloudNetworkPublicRemove.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
Copyright © LiquidWeb
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package cmd
import (
"fmt"
"github.com/spf13/cobra"
"github.com/liquidweb/liquidweb-cli/instance"
)
var cloudNetworkPublicRemoveCmdIpsFlag []string
var cloudNetworkPublicRemoveCmd = &cobra.Command{
Use: "remove",
Short: "Remove Public IP(s) from a Cloud Server",
Long: `Remove Public IP(s) from a Cloud Server.
Remove specific Public IP(s) from a Cloud Server. If the configure-ips flag is passed in,
the IP addresses given will also be automatically removed from the guest operating system.
If the configure-ips flag is not passed, the IP will be unassigned, and you will no longer
be able to route the IP. However the IP(s) will still be set in the guest operating system.
In this scenario, it will be up to the system administrator to remove the IP(s) from the
network configuration.
Note that you cannot remove the Cloud Servers primary ip with this command.`,
Run: func(cmd *cobra.Command, args []string) {
params := &instance.CloudNetworkPublicRemoveParams{}
params.UniqId, _ = cmd.Flags().GetString("uniq-id")
params.ConfigureIps, _ = cmd.Flags().GetBool("configure-ips")
params.Ips = cloudNetworkPublicRemoveCmdIpsFlag
status, err := lwCliInst.CloudNetworkPublicRemove(params)
if err != nil {
lwCliInst.Die(err)
}
fmt.Print(status)
},
}
func init() {
cloudNetworkPublicCmd.AddCommand(cloudNetworkPublicRemoveCmd)
cloudNetworkPublicRemoveCmd.Flags().String("uniq-id", "", "uniq-id of the Cloud Server")
cloudNetworkPublicRemoveCmd.Flags().Bool("configure-ips", false,
"whether or not to automatically remove the IP address(es) in the server config")
cloudNetworkPublicRemoveCmd.Flags().StringSliceVar(&cloudNetworkPublicRemoveCmdIpsFlag, "ips", []string{},
"ips separated by ',' to remove from the Cloud Server")
if err := cloudNetworkPublicRemoveCmd.MarkFlagRequired("uniq-id"); err != nil {
lwCliInst.Die(err)
}
if err := cloudNetworkPublicRemoveCmd.MarkFlagRequired("ips"); err != nil {
lwCliInst.Die(err)
}
}