Tag OpenStack Cinder volumes created by Kubernetes.

This synchronizes Cinder with AWS EBS code, where we already tag volumes with
claim.Namespace and claim.Name (and pv.Name, as suggested in separate PR).
This commit is contained in:
Jan Safranek 2015-12-21 11:36:42 +01:00
parent 2f89af92bc
commit 488a862037
2 changed files with 8 additions and 2 deletions

View File

@ -1025,7 +1025,7 @@ func (os *OpenStack) getVolume(diskName string) (volumes.Volume, error) {
}
// Create a volume of given size (in GiB)
func (os *OpenStack) CreateVolume(size int) (volumeName string, err error) {
func (os *OpenStack) CreateVolume(size int, tags *map[string]string) (volumeName string, err error) {
sClient, err := openstack.NewBlockStorageV1(os.provider, gophercloud.EndpointOpts{
Region: os.region,
@ -1037,6 +1037,9 @@ func (os *OpenStack) CreateVolume(size int) (volumeName string, err error) {
}
opts := volumes.CreateOpts{Size: size}
if tags != nil {
opts.Metadata = *tags
}
vol, err := volumes.Create(sClient, opts).Extract()
if err != nil {
glog.Errorf("Failed to create a %d GB volume: %v", size, err)

View File

@ -210,7 +210,10 @@ func TestVolumes(t *testing.T) {
t.Fatalf("Failed to construct/authenticate OpenStack: %s", err)
}
vol, err := os.CreateVolume(1)
tags := map[string]string{
"test": "value",
}
vol, err := os.CreateVolume(1, &tags)
if err != nil {
t.Fatalf("Cannot create a new Cinder volume: %v", err)
}