本文整理汇总了Golang中github.com/scaleway/scaleway-cli/pkg/api.ScalewayServerPatchDefinition类的典型用法代码示例。如果您正苦于以下问题:Golang ScalewayServerPatchDefinition类的具体用法?Golang ScalewayServerPatchDefinition怎么用?Golang ScalewayServerPatchDefinition使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ScalewayServerPatchDefinition类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: resourceScalewayServerUpdate
func resourceScalewayServerUpdate(d *schema.ResourceData, m interface{}) error {
scaleway := m.(*Client).scaleway
var req api.ScalewayServerPatchDefinition
if d.HasChange("name") {
name := d.Get("name").(string)
req.Name = &name
}
if d.HasChange("tags") {
if raw, ok := d.GetOk("tags"); ok {
var tags []string
for _, tag := range raw.([]interface{}) {
tags = append(tags, tag.(string))
}
req.Tags = &tags
}
}
if d.HasChange("dynamic_ip_required") {
req.DynamicIPRequired = Bool(d.Get("dynamic_ip_required").(bool))
}
if err := scaleway.PatchServer(d.Id(), req); err != nil {
return fmt.Errorf("Failed patching scaleway server: %q", err)
}
return resourceScalewayServerRead(d, m)
}
示例2: RunRename
// RunRename is the handler for 'scw rename'
func RunRename(ctx CommandContext, args RenameArgs) error {
serverID, err := ctx.API.GetServerID(args.Server)
if err != nil {
return err
}
var server api.ScalewayServerPatchDefinition
server.Name = &args.NewName
if err = ctx.API.PatchServer(serverID, server); err != nil {
return fmt.Errorf("cannot rename server: %v", err)
}
// FIXME region, arch, owner, title
ctx.API.Cache.InsertServer(serverID, "fr-1", *server.Arch, *server.Organization, *server.Name)
return nil
}
示例3: RunRename
// RunRename is the handler for 'scw rename'
func RunRename(ctx CommandContext, args RenameArgs) error {
serverID := ctx.API.GetServerID(args.Server)
var server api.ScalewayServerPatchDefinition
server.Name = &args.NewName
err := ctx.API.PatchServer(serverID, server)
if err != nil {
return fmt.Errorf("cannot rename server: %v", err)
}
ctx.API.Cache.InsertServer(serverID, *server.Name)
return nil
}
示例4: resourceServerUpdate
func resourceServerUpdate(d *schema.ResourceData, m interface{}) error {
scaleway := m.(*api.ScalewayAPI)
var server api.ScalewayServerPatchDefinition
if d.HasChange("name") {
name := d.Get("name").(string)
server.Name = &name
}
if d.HasChange("volumes") {
volumes := make(map[string]api.ScalewayVolume)
for k, v := range d.Get("volumes").(map[string]interface{}) {
volumes[k] = api.ScalewayVolume{
Identifier: v.(string),
}
}
server.Volumes = &volumes
}
scaleway.PatchServer(d.Id(), server)
return nil
}
示例5: runPatch
func runPatch(cmd *Command, args []string) error {
if patchHelp {
return cmd.PrintUsage()
}
if len(args) != 2 {
return cmd.PrintShortUsage()
}
// Parsing FIELD=VALUE
updateParts := strings.SplitN(args[1], "=", 2)
if len(updateParts) != 2 {
return cmd.PrintShortUsage()
}
fieldName := updateParts[0]
newValue := updateParts[1]
changes := 0
ident := api.GetIdentifier(cmd.API, args[0])
switch ident.Type {
case api.IdentifierServer:
currentServer, err := cmd.API.GetServer(ident.Identifier)
if err != nil {
log.Fatalf("Cannot get server %s: %v", ident.Identifier, err)
}
var payload api.ScalewayServerPatchDefinition
switch fieldName {
case "state_detail":
log.Debugf("%s=%s => %s=%s", fieldName, currentServer.StateDetail, fieldName, newValue)
if currentServer.StateDetail != newValue {
changes++
payload.StateDetail = &newValue
}
case "name":
log.Warnf("To rename a server, Use 'scw rename'")
log.Debugf("%s=%s => %s=%s", fieldName, currentServer.StateDetail, fieldName, newValue)
if currentServer.Name != newValue {
changes++
payload.Name = &newValue
}
case "bootscript":
log.Debugf("%s=%s => %s=%s", fieldName, currentServer.Bootscript.Identifier, fieldName, newValue)
if currentServer.Bootscript.Identifier != newValue {
changes++
payload.Bootscript.Identifier = newValue
}
case "security_group":
log.Debugf("%s=%s => %s=%s", fieldName, currentServer.SecurityGroup.Identifier, fieldName, newValue)
if currentServer.SecurityGroup.Identifier != newValue {
changes++
payload.SecurityGroup.Identifier = newValue
}
case "tags":
newTags := strings.Split(newValue, " ")
log.Debugf("%s=%s => %s=%s", fieldName, currentServer.Tags, fieldName, newTags)
// fixme test equality with reflect.DeepEqual ?
changes++
payload.Tags = &newTags
default:
log.Fatalf("'_patch server %s=' not implemented", fieldName)
}
// FIXME: volumes, tags, dynamic_ip_required
if changes > 0 {
log.Debugf("updating server: %d change(s)", changes)
err = cmd.API.PatchServer(ident.Identifier, payload)
} else {
log.Debugf("no changes, not updating server")
}
if err != nil {
log.Fatalf("Cannot update server: %v", err)
}
default:
log.Fatalf("_patch not implemented for this kind of object")
}
fmt.Println(ident.Identifier)
return nil
}