def test_network_template_upload_on_multi_group_cluster(self):
        cluster = self.env.create_cluster(api=False)

        custom_group_name = 'group-custom-1'
        custom_group = NodeGroup(name=custom_group_name, cluster_id=cluster.id)
        self.env.db.add(custom_group)
        self.env.db.flush()

        node1 = self.env.create_node(cluster_id=cluster.id,
                                     roles=["controller"])
        node2 = self.env.create_node(cluster_id=cluster.id,
                                     roles=["compute"],
                                     group_id=custom_group.id)

        template = self.env.read_fixtures(['network_template'])[0]
        template.pop('pk')  # PK is not needed

        resp = self.app.put(
            reverse(
                'TemplateNetworkConfigurationHandler',
                kwargs={'cluster_id': cluster.id},
            ),
            jsonutils.dumps(template),
            headers=self.default_headers
        )
        self.assertEqual(200, resp.status_code)
        self.assertDictEqual(
            node1.network_template['templates'],
            base.get_nodegroup_network_schema_template(template, 'default')
        )
        self.assertDictEqual(
            node2.network_template['templates'],
            base.get_nodegroup_network_schema_template(
                template, custom_group_name)
        )
    def test_network_template_upload_on_multi_group_cluster(self):
        cluster = self.env.create_cluster(
            api=False,
            net_provider=consts.CLUSTER_NET_PROVIDERS.neutron
        )
        cluster.release.version = '1111-7.0'

        custom_group_name = 'group-custom-1'
        resp = self.env.create_node_group(
            name=custom_group_name, cluster_id=cluster.id
        )
        custom_group = resp.json_body

        node1 = self.env.create_nodes_w_interfaces_count(
            1, 5,
            cluster_id=cluster.id,
            roles=["controller"],
        )[0]
        node2 = self.env.create_nodes_w_interfaces_count(
            1, 5,
            cluster_id=cluster.id,
            roles=["compute"],
            group_id=custom_group['id'],
        )[0]

        template = self.env.read_fixtures(['network_template_70'])[0]
        template.pop('pk')  # PK is not needed

        resp = self.app.put(
            reverse(
                'TemplateNetworkConfigurationHandler',
                kwargs={'cluster_id': cluster.id},
            ),
            jsonutils.dumps(template),
            headers=self.default_headers
        )
        self.assertEqual(200, resp.status_code)
        self.assertDictEqual(
            node1.network_template['templates'],
            base.get_nodegroup_network_schema_template(template, 'default')
        )
        self.assertDictEqual(
            node2.network_template['templates'],
            base.get_nodegroup_network_schema_template(
                template, custom_group_name)
        )
Example #3
0
    def test_apply_network_template(self):
        node = self.env.create_node()
        template = self.env.read_fixtures(["network_template"])[0]

        group_name = "group-custom-1"
        with mock.patch("objects.NodeGroup.get_by_uid", return_value=NodeGroup(name=group_name)):
            objects.Node.apply_network_template(node, template)
            self.assertDictEqual(
                node.network_template["templates"], base.get_nodegroup_network_schema_template(template, group_name)
            )