func TestExtractRebuild(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() servers.HandleRebuildSuccessfully(t, servers.SingleServerBody) r := servers.Rebuild(client.ServiceClient(), "1234asdf", servers.RebuildOpts{ Name: "new-name", AdminPass: "******", ImageID: "http://104.130.131.164:8774/fcad67a6189847c4aecfa3c81a05783b/images/f90f6034-2570-4974-8351-6b49732ef2eb", AccessIPv4: "1.2.3.4", }) config, err := ExtractRebuild(r) th.AssertNoErr(t, err) th.CheckEquals(t, Manual, *config) }
func TestActionRebuild(t *testing.T) { t.Parallel() client, err := newClient() if err != nil { t.Fatalf("Unable to create a compute client: %v", err) } choices, err := ComputeChoicesFromEnv() if err != nil { t.Fatal(err) } server, err := createServer(t, client, choices) if err != nil { t.Fatal(err) } defer servers.Delete(client, server.ID) if err = waitForStatus(client, server, "ACTIVE"); err != nil { t.Fatal(err) } t.Logf("Attempting to rebuild server %s", server.ID) rebuildOpts := servers.RebuildOpts{ Name: tools.RandomString("ACPTTEST", 16), AdminPass: tools.MakeNewPassword(server.AdminPass), ImageID: choices.ImageID, } rebuilt, err := servers.Rebuild(client, server.ID, rebuildOpts).Extract() if err != nil { t.Fatal(err) } if rebuilt.ID != server.ID { t.Errorf("Expected rebuilt server ID of [%s]; got [%s]", server.ID, rebuilt.ID) } if err = waitForStatus(client, rebuilt, "REBUILD"); err != nil { t.Fatal(err) } if err = waitForStatus(client, rebuilt, "ACTIVE"); err != nil { t.Fatal(err) } }
// Rebuild will reprovision the server according to the configuration options provided in the // RebuildOpts struct. func Rebuild(client *gophercloud.ServiceClient, id string, opts os.RebuildOptsBuilder) os.RebuildResult { return os.Rebuild(client, id, opts) }