Example #1
0
    def setUp(self):
        super(TestNailgunReceiver, self).setUp()

        self.cluster = self.env.create(
            status=consts.CLUSTER_STATUSES.operational,
            nodes_kwargs=[
                {'roles': ['controller'],
                 'status': consts.NODE_STATUSES.ready}])

        for i in range(2):
            meta = self.env.get_default_plugin_metadata(
                name='name{0}'.format(i),
                title='title{0}'.format(i),
                description='description{0}'.format(i))

            self.plugin = Plugin.create(meta)
            self.cluster.plugins.append(self.plugin)
            ClusterPlugin.set_attributes(self.cluster.id,
                                         self.plugin.id,
                                         enabled=True)

        self.task = self.env.create_task(
            name=consts.TASK_NAMES.deployment,
            status=consts.TASK_STATUSES.ready,
            cluster_id=self.cluster.id)
    def test_get_all_attributes_by_bond_with_enabled_plugin(self):
        plugin_bond_config = self.env.get_default_plugin_bond_config()
        plugin = self.env.create_plugin(
            name='plugin_a_with_bond_attributes',
            package_version='5.0.0',
            bond_attributes_metadata=plugin_bond_config)
        cluster = self._create_test_cluster()
        node = self.env.create_nodes_w_interfaces_count(
            1, 2, **{"cluster_id": cluster.id})[0]
        bond_config = {
            'type__': {'value': consts.BOND_TYPES.linux},
            'mode': {'value': {'value': consts.BOND_MODES.balance_rr}}}
        nic_names = [iface.name for iface in node.nic_interfaces]
        self.env.make_bond_via_api(
            'lnx_bond', '', nic_names, node.id, attrs=bond_config)
        bond = node.bond_interfaces[0]
        bond_plugin_id = node.node_bond_interface_cluster_plugins[0].id
        ClusterPlugin.set_attributes(cluster.id, plugin.id, enabled=True)

        attributes = NodeBondInterfaceClusterPlugin.\
            get_all_enabled_attributes_by_bond(bond)
        expected_attributes = {
            'plugin_a_with_bond_attributes': {
                'metadata': {
                    'label': 'Test base plugin',
                    'bond_plugin_id': bond_plugin_id,
                    'class': 'plugin'},
                'plugin_name_text': {
                    'value': 'value',
                    'type': 'text',
                    'description': 'Some description',
                    'weight': 25,
                    'label': 'label'}}}

        self.assertEqual(expected_attributes, attributes)
Example #3
0
    def setUp(self):
        super(TestNailgunReceiver, self).setUp()

        self.cluster = self.env.create(
            status=consts.CLUSTER_STATUSES.operational,
            nodes_kwargs=[{
                'roles': ['controller'],
                'status': consts.NODE_STATUSES.ready
            }])

        for i in range(2):
            meta = self.env.get_default_plugin_metadata(
                name='name{0}'.format(i),
                title='title{0}'.format(i),
                description='description{0}'.format(i))

            self.plugin = Plugin.create(meta)
            self.cluster.plugins.append(self.plugin)
            ClusterPlugin.set_attributes(self.cluster.id,
                                         self.plugin.id,
                                         enabled=True)

        self.task = self.env.create_task(name=consts.TASK_NAMES.deployment,
                                         status=consts.TASK_STATUSES.ready,
                                         cluster_id=self.cluster.id)
    def test_get_all_attributes_by_interface_with_enabled_plugin(self):
        nic_config = self.env.get_default_plugin_nic_config()
        plugin = self.env.create_plugin(
            name='plugin_a_with_nic_attributes',
            package_version='5.0.0',
            nic_attributes_metadata=nic_config)
        cluster = self._create_test_cluster()
        # create node with 1 interface for easy testing
        node = self.env.create_nodes_w_interfaces_count(
            1, 1, **{"cluster_id": cluster.id})[0]
        interface = node.nic_interfaces[0]
        nic_plugin_id = node.node_nic_interface_cluster_plugins[0].id
        ClusterPlugin.set_attributes(cluster.id, plugin.id, enabled=True)

        attributes = NodeNICInterfaceClusterPlugin.\
            get_all_enabled_attributes_by_interface(interface)
        expected_attributes = {
            'plugin_a_with_nic_attributes': {
                'metadata': {
                    'label': 'Test base plugin',
                    'nic_plugin_id': nic_plugin_id,
                    'class': 'plugin'},
                'plugin_name_text': {
                    'value': 'value',
                    'type': 'text',
                    'description': 'Some description',
                    'weight': 25,
                    'label': 'label'}}}

        self.assertEqual(expected_attributes, attributes)
    def test_is_plugin_used(self):
        self._create_test_plugins()
        cluster = self._create_test_cluster()

        plugin = ClusterPlugin.get_connected_plugins(cluster).first()
        self.assertFalse(ClusterPlugin.is_plugin_used(plugin.id))
        ClusterPlugin.set_attributes(cluster.id, plugin.id, enabled=True)
        self.assertTrue(ClusterPlugin.is_plugin_used(plugin.id))
    def test_get_enabled(self):
        self._create_test_plugins()
        cluster = self._create_test_cluster()

        plugin = ClusterPlugin.get_connected_plugins(cluster).first()
        ClusterPlugin.set_attributes(cluster.id, plugin.id, enabled=True)

        enabled_plugin = ClusterPlugin.get_enabled(cluster.id).first()
        self.assertEqual(plugin.id, enabled_plugin.id)
    def test_get_enabled_plugins(self):
        plugin_a = self._create_plugin(**self._compat_meta)
        plugin_b = self._create_plugin(**self._compat_meta)

        ClusterPlugin.set_attributes(
            self.cluster.id, plugin_a.id, enabled=True)

        compat_plugins = ClusterPlugin.get_compatible_plugins(self.cluster)
        self.assertItemsEqual(compat_plugins, [plugin_a, plugin_b])

        enabled_plugins = ClusterPlugin.get_enabled(self.cluster.id)
        self.assertItemsEqual(enabled_plugins, [plugin_a])
    def test_get_enabled_plugins(self):
        plugin_a = self._create_plugin(**self._compat_meta)
        plugin_b = self._create_plugin(**self._compat_meta)

        ClusterPlugin.set_attributes(
            self.cluster.id, plugin_a.id, enabled=True)

        compat_plugins = ClusterPlugin.get_compatible_plugins(self.cluster)
        self.assertItemsEqual(compat_plugins, [plugin_a, plugin_b])

        enabled_plugins = ClusterPlugin.get_enabled(self.cluster.id)
        self.assertItemsEqual(enabled_plugins, [plugin_a])
    def test_set_plugin_attributes(self):
        meta = base.reflect_db_metadata()
        self._create_test_plugins()
        cluster = self._create_test_cluster()

        plugin = ClusterPlugin.get_connected_plugins(cluster).first()
        ClusterPlugin.set_attributes(cluster.id, plugin.id, enabled=True)

        columns = meta.tables["cluster_plugins"].c
        enabled = self.db.execute(
            sa.select([columns.enabled]).where(columns.cluster_id == cluster.id).where(columns.plugin_id == plugin.id)
        ).fetchone()
        self.assertTrue(enabled[0])
Example #10
0
    def test_set_plugin_attributes(self):
        meta = base.reflect_db_metadata()
        self._create_test_plugins()
        cluster = self._create_test_cluster()

        plugin = ClusterPlugin.get_connected_plugins(cluster).first()
        ClusterPlugin.set_attributes(cluster.id, plugin.id, enabled=True)

        columns = meta.tables['cluster_plugins'].c
        enabled = self.db.execute(
            sa.select([columns.enabled
                       ]).where(columns.cluster_id == cluster.id).where(
                           columns.plugin_id == plugin.id)).fetchone()
        self.assertTrue(enabled[0])