github.com/scaleway/scaleway-cli@v1.11.1/pkg/commands/rename.go (about) 1 // Copyright (C) 2015 Scaleway. All rights reserved. 2 // Use of this source code is governed by a MIT-style 3 // license that can be found in the LICENSE.md file. 4 5 package commands 6 7 import ( 8 "fmt" 9 10 "github.com/scaleway/scaleway-cli/pkg/api" 11 ) 12 13 // RenameArgs are flags for the `RunRename` function 14 type RenameArgs struct { 15 Server string 16 NewName string 17 } 18 19 // RunRename is the handler for 'scw rename' 20 func RunRename(ctx CommandContext, args RenameArgs) error { 21 serverID, err := ctx.API.GetServerID(args.Server) 22 if err != nil { 23 return err 24 } 25 if err = ctx.API.PatchServer(serverID, 26 api.ScalewayServerPatchDefinition{ 27 Name: &args.NewName, 28 }); err != nil { 29 return fmt.Errorf("cannot rename server: %v", err) 30 } 31 if server, err := ctx.API.GetServer(serverID); err == nil { 32 ctx.API.Cache.InsertServer(serverID, server.Location.ZoneID, server.Arch, server.Organization, server.Name) 33 } 34 return nil 35 }