Example #1
0
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'])
Example #6
0
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"])