Beispiel #1
0
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))
Beispiel #2
0
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)
        )
Beispiel #3
0
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)
        )
Beispiel #4
0
    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
                         ])
Beispiel #5
0
    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
        ])