@@ -631,3 +631,40 @@ func TestServerNoNetworkCreateDestroy(t *testing.T) {
631631 t .Fatalf ("Instance must not be a member of specified network" )
632632 }
633633}
634+
635+ func TestServersUpdateHostname (t * testing.T ) {
636+ clients .RequireLong (t )
637+
638+ client , err := clients .NewComputeV2Client ()
639+ th .AssertNoErr (t , err )
640+ client .Microversion = "2.90"
641+
642+ server , err := CreateMicroversionServer (t , client )
643+ th .AssertNoErr (t , err )
644+ defer DeleteServer (t , client , server )
645+
646+ alternateHostname := tools .RandomString ("ACPTTEST" , 16 )
647+ for alternateHostname == * server .Hostname {
648+ alternateHostname = tools .RandomString ("ACPTTEST" , 16 )
649+ }
650+
651+ t .Logf ("Attempting to change the server's hostname to %s." , alternateHostname )
652+
653+ updateOpts := servers.UpdateOpts {
654+ Hostname : & alternateHostname ,
655+ }
656+
657+ updated , err := servers .Update (context .TODO (), client , server .ID , updateOpts ).Extract ()
658+ th .AssertNoErr (t , err )
659+
660+ th .AssertEquals (t , server .ID , updated .ID )
661+
662+ err = tools .WaitFor (func (ctx context.Context ) (bool , error ) {
663+ latest , err := servers .Get (ctx , client , updated .ID ).Extract ()
664+ if err != nil {
665+ return false , err
666+ }
667+ return * latest .Hostname == alternateHostname , nil
668+ })
669+ th .AssertNoErr (t , err )
670+ }
0 commit comments