def test_release_roles_metadata_upgrade_50_to_51(self): ceilometer_depends = { 'condition': { "settings:additional_components.ceilometer.value": True }, 'warning': "Ceilometer should be enabled" } new_ceilometer_depends = { 'condition': "settings:additional_components.ceilometer.value == " "true", 'warning': "Ceilometer should be enabled" } roles_metadata_50 = { 'mongo': { 'name': "Telemetry - MongoDB", 'description': "A feature-complete and recommended " "database for storage of metering data " "from OpenStack Telemetry (Ceilometer)", 'conflicts': ['compute', 'ceph-osd', 'zabbix-server'], 'depends': [ceilometer_depends] } } roles_metadata_51 = upgrade_release_roles_50_to_51( roles_metadata_50 ) self.assertEqual( roles_metadata_51["mongo"]["depends"], [new_ceilometer_depends] )
def upgrade_releases(connection): select = text( """SELECT id, attributes_metadata, roles_metadata from releases""") update = text( """UPDATE releases SET attributes_metadata = :attrs, roles_metadata = :roles, wizard_metadata = :wiz_meta WHERE id = :id""") r = connection.execute(select) # reading fixture files in loop is in general a bad idea and as long as # wizard_metadata is the same for all existing releases getting it can # be moved outside of the loop for release in r: attrs_meta = upgrade_release_attributes_50_to_51( jsonutils.loads(release[1])) roles_meta = upgrade_release_roles_50_to_51( jsonutils.loads(release[2])) connection.execute( update, id=release[0], attrs=jsonutils.dumps(attrs_meta), roles=jsonutils.dumps(roles_meta), wiz_meta=jsonutils.dumps(_wizard_meta) )
def test_release_roles_metadata_upgrade_50_to_51(self): ceilometer_depends = { 'condition': { "settings:additional_components.ceilometer.value": True }, 'warning': "Ceilometer should be enabled" } new_ceilometer_depends = { 'condition': "settings:additional_components.ceilometer.value == " "true", 'warning': "Ceilometer should be enabled" } roles_metadata_50 = { 'mongo': { 'name': "Telemetry - MongoDB", 'description': "A feature-complete and recommended " "database for storage of metering data " "from OpenStack Telemetry (Ceilometer)", 'conflicts': ['compute', 'ceph-osd', 'zabbix-server'], 'depends': [ceilometer_depends] } } roles_metadata_51 = upgrade_release_roles_50_to_51(roles_metadata_50) self.assertEqual(roles_metadata_51["mongo"]["depends"], [new_ceilometer_depends])