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  }