def upgrade_releases(): connection = op.get_bind() select = text("""SELECT id, attributes_metadata, roles_metadata from releases""") update = text("""UPDATE releases SET attributes_metadata = :attrs, roles_metadata = :roles WHERE id = :id""") r = connection.execute(select) for release in r: attrs_meta = upgrade_release_attributes_51_to_60( jsonutils.loads(release[1])) roles_meta = upgrade_release_roles_51_to_60(jsonutils.loads( release[2]), add_meta=ADDED_ROLES_META) connection.execute(update, id=release[0], attrs=jsonutils.dumps(attrs_meta), roles=jsonutils.dumps(roles_meta))
def upgrade_releases(): connection = op.get_bind() select = text( """SELECT id, roles_metadata from releases""") update = text( """UPDATE releases SET roles_metadata = :roles WHERE id = :id""") r = connection.execute(select) for release in r: roles_meta = upgrade_release_roles_51_to_60( jsonutils.loads(release[1])) connection.execute( update, id=release[0], roles=jsonutils.dumps(roles_meta) )
def upgrade_releases(): connection = op.get_bind() select = text( """SELECT id, attributes_metadata, roles_metadata from releases""") update = text( """UPDATE releases SET attributes_metadata = :attrs, roles_metadata = :roles WHERE id = :id""") r = connection.execute(select) for release in r: attrs_meta = upgrade_release_attributes_51_to_60( jsonutils.loads(release[1])) roles_meta = upgrade_release_roles_51_to_60( jsonutils.loads(release[2]), add_meta=ADDED_ROLES_META) connection.execute( update, id=release[0], attrs=jsonutils.dumps(attrs_meta), roles=jsonutils.dumps(roles_meta) )
def test_release_roles_metadata_upgrade_51_to_60(self): operational_restriction = { 'condition': "cluster:status != 'operational'", 'warning': "MongoDB node can not be added to an " "operational environment." } ceilometer_restriction = { 'condition': 'settings:additional_components.ceilometer.value? == ' 'true', 'warning': "Ceilometer should be enabled." } new_operational_restriction = { 'condition': remove_question_operator(negate_condition( operational_restriction['condition'])), 'message': operational_restriction['warning'], } new_ceilometer_restriction = { 'condition': remove_question_operator(negate_condition( ceilometer_restriction['condition'])), 'message': ceilometer_restriction['warning'] } false_restriction = { 'condition': "1 == 2", 'message': "This is always false" } roles_metadata_51 = { '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': [ operational_restriction, ceilometer_restriction ], }, 'test': { 'name': "Test restrictions extend", 'description': "Testing restrictions list extend", 'conflicts': [], 'depends': [ operational_restriction, ceilometer_restriction ], 'restrictions': [ false_restriction ] } } roles_metadata_60 = upgrade_release_roles_51_to_60( roles_metadata_51 ) self.assertTrue('depends' not in roles_metadata_60["mongo"]) self.assertTrue('depends' not in roles_metadata_60["test"]) self.assertEqual(roles_metadata_60['mongo']['restrictions'], [ new_operational_restriction, new_ceilometer_restriction ]) self.assertEqual(roles_metadata_60['test']['restrictions'], [ false_restriction, new_operational_restriction, new_ceilometer_restriction ])
def test_release_roles_metadata_upgrade_51_to_60(self): operational_restriction = { 'condition': "cluster:status != 'operational'", 'warning': "MongoDB node can not be added to an " "operational environment." } ceilometer_restriction = { 'condition': 'settings:additional_components.ceilometer.value? == ' 'true', 'warning': "Ceilometer should be enabled." } new_operational_restriction = { 'condition': remove_question_operator( negate_condition(operational_restriction['condition'])), 'message': operational_restriction['warning'], } new_ceilometer_restriction = { 'condition': remove_question_operator( negate_condition(ceilometer_restriction['condition'])), 'message': ceilometer_restriction['warning'] } false_restriction = { 'condition': "1 == 2", 'message': "This is always false" } roles_metadata_51 = { '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': [operational_restriction, ceilometer_restriction], }, 'test': { 'name': "Test restrictions extend", 'description': "Testing restrictions list extend", 'conflicts': [], 'depends': [operational_restriction, ceilometer_restriction], 'restrictions': [false_restriction] } } roles_metadata_60 = upgrade_release_roles_51_to_60(roles_metadata_51) self.assertTrue('depends' not in roles_metadata_60["mongo"]) self.assertTrue('depends' not in roles_metadata_60["test"]) self.assertEqual( roles_metadata_60['mongo']['restrictions'], [new_operational_restriction, new_ceilometer_restriction]) self.assertEqual(roles_metadata_60['test']['restrictions'], [ false_restriction, new_operational_restriction, new_ceilometer_restriction ])