def upgrade_data(): connection = op.get_bind() select = text( """SELECT id, roles_metadata, attributes_metadata, networks_metadata from releases""") update = text( """UPDATE releases SET roles_metadata = :roles, attributes_metadata = :attrs, networks_metadata = :networks WHERE id = :id""") r = connection.execute(select) for release in r: roles_meta = upgrade_role_limits_6_0_to_6_1( jsonutils.loads(release[1]), _limits_to_update) roles_meta = upgrade_role_restrictions_6_0_to_6_1( roles_meta, _new_role_restrictions) for role_name, role in six.iteritems(roles_meta): role.update(_new_roles_metadata.get(role_name, {})) attributes_meta = upgrade_attributes_metadata_6_0_to_6_1( jsonutils.loads(release[2])) networks_meta = upgrade_networks_metadata_to_6_1( jsonutils.loads(release[3]), _bonding_metadata) connection.execute( update, id=release[0], roles=jsonutils.dumps(roles_meta), attrs=jsonutils.dumps(attributes_meta), networks=jsonutils.dumps(networks_meta), ) update_modes = text( 'UPDATE releases SET modes = :modes') connection.execute(update_modes, modes=jsonutils.dumps( ['ha_compact', 'multinode'])) upgrade_master_node_settings(connection) upgrade_6_0_to_6_1_plugins_cluster_attrs_use_ids_mapping(connection) upgrade_ubuntu_cobbler_profile_6_0_to_6_1(connection) upgrade_cluster_attributes_6_0_to_6_1(connection) upgrade_vip_types_6_0_to_6_1(connection) upgrade_network_groups_metadata_6_0_to_6_1(connection) # do not deploy 6.0.x releases upgrade_release_set_deployable_false( connection, [ '2014.2-6.0', '2014.2.2-6.0.1'])
def test_do_not_fail_if_plugin_was_not_found(self): attrs = deepcopy(self.cluster.attributes.editable) attrs['some_plugin_name'] = {} attrs['some_plugin_name']['metadata'] = { 'plugin_version': '1111.111.111'} self.cluster.attributes.editable = attrs self.db.commit() connection = self.db.connection() upgrade_6_0_to_6_1_plugins_cluster_attrs_use_ids_mapping(connection) plugin_attr = self.cluster.attributes.editable['some_plugin_name'] self.assertEqual(plugin_attr['metadata']['plugin_id'], None) self.assertNotIn('plugin_version', plugin_attr['metadata'])
def test_do_not_fail_if_plugin_was_not_found(self): attrs = deepcopy(self.cluster.attributes.editable) attrs['some_plugin_name'] = {} attrs['some_plugin_name']['metadata'] = { 'plugin_version': '1111.111.111' } self.cluster.attributes.editable = attrs self.db.commit() connection = self.db.connection() upgrade_6_0_to_6_1_plugins_cluster_attrs_use_ids_mapping(connection) plugin_attr = self.cluster.attributes.editable['some_plugin_name'] self.assertEqual(plugin_attr['metadata']['plugin_id'], None) self.assertNotIn('plugin_version', plugin_attr['metadata'])
def test_replaces_versions_with_ids(self): attrs = deepcopy(self.cluster.attributes.editable) for plugin in self.plugins: attrs[plugin.name] = {} attrs[plugin.name]['metadata'] = {'plugin_version': plugin.version} self.cluster.attributes.editable = attrs self.db.commit() connection = self.db.connection() upgrade_6_0_to_6_1_plugins_cluster_attrs_use_ids_mapping(connection) for plugin in self.plugins: plugin_attr = self.cluster.attributes.editable[plugin.name] self.assertEqual(plugin_attr['metadata']['plugin_id'], plugin.id) self.assertNotIn('plugin_version', plugin_attr['metadata'])
def test_replaces_versions_with_ids(self): attrs = deepcopy(self.cluster.attributes.editable) for plugin in self.plugins: attrs[plugin.name] = {} attrs[plugin.name]['metadata'] = { 'plugin_version': plugin.version} self.cluster.attributes.editable = attrs self.db.commit() connection = self.db.connection() upgrade_6_0_to_6_1_plugins_cluster_attrs_use_ids_mapping(connection) for plugin in self.plugins: plugin_attr = self.cluster.attributes.editable[plugin.name] self.assertEqual(plugin_attr['metadata']['plugin_id'], plugin.id) self.assertNotIn('plugin_version', plugin_attr['metadata'])
def upgrade_data(): connection = op.get_bind() select = text( """SELECT id, roles_metadata, attributes_metadata, networks_metadata from releases""" ) update = text( """UPDATE releases SET roles_metadata = :roles, attributes_metadata = :attrs, networks_metadata = :networks WHERE id = :id""" ) r = connection.execute(select) for release in r: roles_meta = upgrade_role_limits_6_0_to_6_1(jsonutils.loads(release[1]), _limits_to_update) roles_meta = upgrade_role_restrictions_6_0_to_6_1(roles_meta, _new_role_restrictions) for role_name, role in six.iteritems(roles_meta): role.update(_new_roles_metadata.get(role_name, {})) attributes_meta = upgrade_attributes_metadata_6_0_to_6_1(jsonutils.loads(release[2])) networks_meta = upgrade_networks_metadata_to_6_1(jsonutils.loads(release[3]), _bonding_metadata) connection.execute( update, id=release[0], roles=jsonutils.dumps(roles_meta), attrs=jsonutils.dumps(attributes_meta), networks=jsonutils.dumps(networks_meta), ) update_modes = text("UPDATE releases SET modes = :modes") connection.execute(update_modes, modes=jsonutils.dumps(["ha_compact", "multinode"])) upgrade_master_node_settings(connection) upgrade_6_0_to_6_1_plugins_cluster_attrs_use_ids_mapping(connection) upgrade_ubuntu_cobbler_profile_6_0_to_6_1(connection) upgrade_cluster_attributes_6_0_to_6_1(connection) upgrade_vip_types_6_0_to_6_1(connection) upgrade_network_groups_metadata_6_0_to_6_1(connection) # do not deploy 6.0.x releases upgrade_release_set_deployable_false(connection, ["2014.2-6.0", "2014.2.2-6.0.1"])