Skip to content

storage_pool_details overprovisioning settings are being picked up as a tag #2758

@borisstoyanov

Description

@borisstoyanov
ISSUE TYPE
  • Bug Report
COMPONENT NAME
Storage
CLOUDSTACK VERSION
4.12
SUMMARY

When user uses the updateConfiguration api:

update configuration name = "storage.overprovisioning.factor" value = 2.0 storageid = [pool.id]

Cloudstack api creates a record in the storage_pool_details table looking like that:

MariaDB [cloud]>  select * from storage_pool_details;
+----+---------+---------------------------------+-------+---------+
| id | pool_id | name                            | value | display |
+----+---------+---------------------------------+-------+---------+
|  2 |       2 | storage.overprovisioning.factor | 2.0   |       1 |
+----+---------+---------------------------------+-------+---------+
1 row in set (0.00 sec)

At this point if you try to migrate a volume and change it's disk offering, it fails with

{errorcode : 431, errortext : u'Target Storage [id=26055c44-abb2-3ec6-8098-3c7f067e6d34] tags [storage.overprovisioning.factor] does not match new disk offering [id=637a5ded-3fba-4eda-9515-fc5218d1c905] tags [null].'}

Which makes me think that cloudstack thinks this setting is actually a tag and fails the operation.

There are no other setting or tags at the storage at this moment that might cause this.

MariaDB [cloud]>  select * from storage_pool_details;
+----+---------+---------------------------------+-------+---------+
| id | pool_id | name                            | value | display |
+----+---------+---------------------------------+-------+---------+
|  2 |       2 | storage.overprovisioning.factor | 2.0   |       1 |
+----+---------+---------------------------------+-------+---------+
1 row in set (0.00 sec)

MariaDB [cloud]>  select * from storage_pool_tags;
Empty set (0.00 sec)

STEPS TO REPRODUCE
- Deploy a VM and attach a small disk to it
- with cloudmonkey execute: update configuration name = "storage.overprovisioning.factor" value = 2.0 storageid = [target.pool.id]
- with cloudmonkey execute: migrate volume volumeid=[vol.id] storageid=[target.pool.id] newdiskofferingid=[large.disk.off.id]
EXPECTED RESULTS
I would expect that the volume is migrated with new disk offering
ACTUAL RESULTS
It fails with:
{errorcode : 431, errortext : u'Target Storage [id=26055c44-abb2-3ec6-8098-3c7f067e6d34] tags [storage.overprovisioning.factor] does not match new disk offering [id=637a5ded-3fba-4eda-9515-fc5218d1c905] tags [null].'}

which looks like the overriding overprovisiohnning setting is taken as a tag. Note that there are no tags to the pool or offering at this time that might interfere.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions