Skip to content

Commit c437234

Browse files
authored
Add support of instance tags (#39)
1 parent 22f9d92 commit c437234

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

driver/opentelekomcloud.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ type Driver struct {
112112
RootVolumeOpts *services.DiskOpts `json:"-"`
113113
UserDataFile string `json:"-"`
114114
UserData []byte `json:"-"`
115+
Tags []string `json:"-"`
115116
IPVersion int `json:"-"`
116117
skipEIPCreation bool
117118
eipConfig *services.ElasticIPOpts
@@ -407,6 +408,13 @@ func (d *Driver) createInstance() error {
407408
return err
408409
}
409410
d.InstanceID = instance.ID
411+
412+
if len(d.Tags) > 0 {
413+
if err := d.client.AddTags(d.InstanceID, d.Tags); err != nil {
414+
return err
415+
}
416+
}
417+
410418
if err := d.client.WaitForInstanceStatus(d.InstanceID, services.InstanceStatusRunning); err != nil {
411419
return err
412420
}
@@ -662,6 +670,11 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
662670
Usage: "Set volume size of root partition",
663671
Value: defaultVolumeSize,
664672
},
673+
mcnflag.StringFlag{
674+
Name: "otc-tags",
675+
EnvVar: "OS_TAGS",
676+
Usage: "Comma-separated list of instance tags",
677+
},
665678
mcnflag.StringFlag{
666679
Name: "otc-root-volume-type",
667680
EnvVar: "ROOT_VOLUME_TYPE",
@@ -982,6 +995,10 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
982995
d.UserData = []byte(flags.String("otc-user-data-raw"))
983996
d.ServerGroup = flags.String("otc-server-group")
984997
d.ServerGroupID = flags.String("otc-server-group-id")
998+
tags := flags.String("otc-tags")
999+
if tags != "" {
1000+
d.Tags = strings.Split(tags, ",")
1001+
}
9851002
d.AccessKey = services.AccessKey{
9861003
AccessKey: flags.String("otc-access-key-id"),
9871004
SecretKey: flags.String("otc-access-key-key"),

driver/opentelekomcloud_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ var defaultFlags = map[string]interface{}{
2929
"otc-cloud": "otc",
3030
"otc-subnet-name": subnetName,
3131
"otc-vpc-name": vpcName,
32+
"otc-tags": "machine,test",
3233
}
3334

3435
func newDriverFromFlags(driverFlags map[string]interface{}) (*Driver, error) {

driver/services/compute.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
"github.com/huaweicloud/golangsdk/openstack/compute/v2/extensions/secgroups"
3030
"github.com/huaweicloud/golangsdk/openstack/compute/v2/extensions/servergroups"
3131
"github.com/huaweicloud/golangsdk/openstack/compute/v2/extensions/startstop"
32+
"github.com/huaweicloud/golangsdk/openstack/compute/v2/extensions/tags"
3233
"github.com/huaweicloud/golangsdk/openstack/compute/v2/flavors"
3334
"github.com/huaweicloud/golangsdk/openstack/compute/v2/servers"
3435
"github.com/huaweicloud/golangsdk/openstack/imageservice/v2/images"
@@ -457,3 +458,8 @@ func (c *Client) FindServerGroup(groupName string) (result string, err error) {
457458
})
458459
return
459460
}
461+
462+
func (c *Client) AddTags(instanceID string, serverTags []string) error {
463+
opts := tags.CreateOpts{Tags: serverTags}
464+
return tags.Create(c.ComputeV2, instanceID, opts).Err
465+
}

0 commit comments

Comments
 (0)