MCPcopy Index your code
hub / github.com/linuxkit/linuxkit / runOpenStackCmd

Function runOpenStackCmd

src/cmd/linuxkit/run_openstack.go:19–88  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

17)
18
19func runOpenStackCmd() *cobra.Command {
20 var (
21 flavorName string
22 instanceName string
23 networkID string
24 secGroups string
25 keyName string
26 )
27
28 cmd := &cobra.Command{
29 Use: "openstack",
30 Short: "launch an openstack instance using an existing image",
31 Long: `Launch an openstack instance using an existing image.
32 'name' is the name of an OpenStack image that has already been uploaded using 'linuxkit push'.
33 `,
34 Args: cobra.ExactArgs(1),
35 Example: "linuxkit run openstack [options] [name]",
36 RunE: func(cmd *cobra.Command, args []string) error {
37 name := args[0]
38 if instanceName == "" {
39 instanceName = name
40 }
41
42 client, err := clientconfig.NewServiceClient("compute", nil)
43 if err != nil {
44 return fmt.Errorf("unable to create Compute client, %s", err)
45 }
46
47 network := servers.Network{
48 UUID: networkID,
49 }
50
51 var serverOpts servers.CreateOptsBuilder
52
53 serverOpts = &servers.CreateOpts{
54 FlavorName: flavorName,
55 ImageName: name,
56 Name: instanceName,
57 Networks: []servers.Network{network},
58 ServiceClient: client,
59 SecurityGroups: strings.Split(secGroups, ","),
60 }
61
62 if keyName != "" {
63 serverOpts = &keypairs.CreateOptsExt{
64 CreateOptsBuilder: serverOpts,
65 KeyName: keyName,
66 }
67 }
68
69 server, err := servers.Create(client, serverOpts).Extract()
70 if err != nil {
71 return fmt.Errorf("unable to create server: %w", err)
72 }
73
74 _ = servers.WaitForStatus(client, server.ID, "ACTIVE", 600)
75 log.Infof("Server created, UUID is %s", server.ID)
76 fmt.Println(server.ID)

Callers 1

runCmdFunction · 0.85

Calls 1

ExtractMethod · 0.65

Tested by

no test coverage detected