Exemple #1
0
    def test_node_load_diff_project(self):
        x_node_id = 'c06840c5-f4e4-49ae-8143-9da5b4c73f38'
        utils.create_node(self.context, x_node_id, PROFILE_ID, CLUSTER_ID)

        new_ctx = utils.dummy_context(project='a-different-project')
        ex = self.assertRaises(exception.ResourceNotFound, nodem.Node.load,
                               new_ctx, x_node_id, None)
        self.assertEqual("The node '%s' could not be found." % x_node_id,
                         six.text_type(ex))

        res = nodem.Node.load(new_ctx, x_node_id, project_safe=False)
        self.assertIsNotNone(res)
        self.assertEqual(x_node_id, res.id)
Exemple #2
0
    def test_node_load_diff_project(self):
        x_node_id = 'c06840c5-f4e4-49ae-8143-9da5b4c73f38'
        utils.create_node(self.context, x_node_id, PROFILE_ID, CLUSTER_ID)

        new_ctx = utils.dummy_context(project='a-different-project')
        ex = self.assertRaises(exception.NodeNotFound,
                               nodem.Node.load,
                               new_ctx, x_node_id, None)
        self.assertEqual('The node (%s) could not be found.' % x_node_id,
                         six.text_type(ex))

        res = nodem.Node.load(new_ctx, x_node_id, project_safe=False)
        self.assertIsNotNone(res)
        self.assertEqual(x_node_id, res.id)
Exemple #3
0
    def test_node_load_all(self):
        node_info = nodem.Node.load_all(self.context)
        self.assertEqual([], [c for c in node_info])
        x_node_id1 = 'e7ec30c4-4dbf-45ac-a6b5-6c675c58d892'
        x_node_id2 = '9d87b415-a572-407f-ab55-21a0f0073ee4'

        utils.create_node(self.context, x_node_id1, PROFILE_ID, CLUSTER_ID)
        utils.create_node(self.context, x_node_id2, PROFILE_ID, CLUSTER_ID)

        # NOTE: we don't test all other parameters because the db api tests
        #       already covered that
        nodes = nodem.Node.load_all(self.context)
        self.assertEqual(2, len(nodes))
        self.assertEqual(x_node_id1, nodes[0].id)
        self.assertEqual(x_node_id2, nodes[1].id)
Exemple #4
0
    def test_node_load_all(self):
        node_info = nodem.Node.load_all(self.context)
        self.assertEqual([], [c for c in node_info])
        x_node_id1 = 'e7ec30c4-4dbf-45ac-a6b5-6c675c58d892'
        x_node_id2 = '9d87b415-a572-407f-ab55-21a0f0073ee4'

        utils.create_node(self.context, x_node_id1, PROFILE_ID, CLUSTER_ID)
        utils.create_node(self.context, x_node_id2, PROFILE_ID, CLUSTER_ID)

        # NOTE: we don't test all other parameters because the db api tests
        #       already covered that
        nodes = nodem.Node.load_all(self.context)
        self.assertEqual(2, len(nodes))
        self.assertEqual(x_node_id1, nodes[0].id)
        self.assertEqual(x_node_id2, nodes[1].id)
Exemple #5
0
    def test_node_load(self):
        ex = self.assertRaises(exception.ResourceNotFound, nodem.Node.load,
                               self.context, 'non-existent', None)
        self.assertEqual("The node 'non-existent' could not be found.",
                         six.text_type(ex))

        x_node_id = 'ee96c490-2dee-40c8-8919-4c64b89e326c'
        node = utils.create_node(self.context, x_node_id, PROFILE_ID,
                                 CLUSTER_ID)
        node_info = nodem.Node.load(self.context, x_node_id)

        self.assertEqual(node.id, node_info.id)
        self.assertEqual(node.name, node_info.name)
        self.assertEqual(node.physical_id, node_info.physical_id)
        self.assertEqual(node.cluster_id, node_info.cluster_id)
        self.assertEqual(node.profile_id, node_info.profile_id)
        self.assertEqual(node.user, node_info.user)
        self.assertEqual(node.project, node_info.project)
        self.assertEqual(node.domain, node_info.domain)
        self.assertEqual(node.index, node_info.index)
        self.assertEqual(node.role, node_info.role)

        self.assertEqual(node.init_at, node_info.init_at)
        self.assertEqual(node.created_at, node_info.created_at)
        self.assertEqual(node.updated_at, node_info.updated_at)

        self.assertEqual(node.status, node_info.status)
        self.assertEqual(node.status_reason, node_info.status_reason)
        self.assertEqual(node.metadata, node_info.metadata)
        self.assertEqual(node.data, node_info.data)
        self.assertEqual(self.profile.name, node_info.rt['profile'].name)
Exemple #6
0
 def test_node_to_dict_no_profile(self, mock_profile_get):
     x_node_id = '11ad5c3d-e1e5-4ed8-8fe3-2938b63a11cb'
     node = utils.create_node(self.context, x_node_id, PROFILE_ID,
                              CLUSTER_ID)
     self.assertIsNotNone(node.id)
     expected = {
         'id': node.id,
         'name': node.name,
         'cluster_id': node.cluster_id,
         'physical_id': node.physical_id,
         'profile_id': node.profile_id,
         'user': node.user,
         'project': node.project,
         'domain': node.domain,
         'index': node.index,
         'role': node.role,
         'init_at': common_utils.isotime(node.init_at),
         'created_at': common_utils.isotime(node.created_at),
         'updated_at': common_utils.isotime(node.updated_at),
         'status': node.status,
         'status_reason': node.status_reason,
         'data': node.data,
         'metadata': node.metadata,
         'dependents': node.dependents,
         'profile_name': 'Unknown',
     }
     mock_profile_get.return_value = None
     result = nodem.Node.load(self.context, x_node_id)
     dt = result.to_dict()
     self.assertEqual(expected, dt)
Exemple #7
0
 def test_node_to_dict(self):
     x_node_id = '16e70db8-4f70-4883-96be-cf40264a5abd'
     node = utils.create_node(self.context, x_node_id, PROFILE_ID,
                              CLUSTER_ID)
     self.assertIsNotNone(node.id)
     expected = {
         'id': node.id,
         'name': node.name,
         'cluster_id': node.cluster_id,
         'physical_id': node.physical_id,
         'profile_id': node.profile_id,
         'user': node.user,
         'project': node.project,
         'domain': node.domain,
         'index': node.index,
         'role': node.role,
         'init_at': common_utils.isotime(node.init_at),
         'created_at': common_utils.isotime(node.created_at),
         'updated_at': common_utils.isotime(node.updated_at),
         'status': node.status,
         'status_reason': node.status_reason,
         'data': node.data,
         'metadata': node.metadata,
         'dependents': node.dependents,
         'profile_name': self.profile.name,
     }
     result = nodem.Node.load(self.context, x_node_id)
     dt = result.to_dict()
     self.assertEqual(expected, dt)
Exemple #8
0
 def test_node_to_dict_no_profile(self, mock_profile_get):
     x_node_id = '11ad5c3d-e1e5-4ed8-8fe3-2938b63a11cb'
     node = utils.create_node(self.context, x_node_id, PROFILE_ID,
                              CLUSTER_ID)
     self.assertIsNotNone(node.id)
     expected = {
         'id': node.id,
         'name': node.name,
         'cluster_id': node.cluster_id,
         'physical_id': node.physical_id,
         'profile_id': node.profile_id,
         'user': node.user,
         'project': node.project,
         'domain': node.domain,
         'index': node.index,
         'role': node.role,
         'init_at': common_utils.isotime(node.init_at),
         'created_at': common_utils.isotime(node.created_at),
         'updated_at': common_utils.isotime(node.updated_at),
         'status': node.status,
         'status_reason': node.status_reason,
         'data': node.data,
         'metadata': node.metadata,
         'profile_name': 'Unknown',
     }
     mock_profile_get.return_value = None
     result = nodem.Node.load(self.context, x_node_id)
     dt = result.to_dict()
     self.assertEqual(expected, dt)
Exemple #9
0
 def test_node_to_dict(self):
     x_node_id = '16e70db8-4f70-4883-96be-cf40264a5abd'
     node = utils.create_node(self.context, x_node_id, PROFILE_ID,
                              CLUSTER_ID)
     self.assertIsNotNone(node.id)
     expected = {
         'id': node.id,
         'name': node.name,
         'cluster_id': node.cluster_id,
         'physical_id': node.physical_id,
         'profile_id': node.profile_id,
         'user': node.user,
         'project': node.project,
         'domain': node.domain,
         'index': node.index,
         'role': node.role,
         'init_at': common_utils.isotime(node.init_at),
         'created_at': common_utils.isotime(node.created_at),
         'updated_at': common_utils.isotime(node.updated_at),
         'status': node.status,
         'status_reason': node.status_reason,
         'data': node.data,
         'metadata': node.metadata,
         'profile_name': self.profile.name,
     }
     result = nodem.Node.load(self.context, x_node_id)
     dt = result.to_dict()
     self.assertEqual(expected, dt)
Exemple #10
0
    def test_node_load(self):
        ex = self.assertRaises(exception.NodeNotFound,
                               nodem.Node.load,
                               self.context, 'non-existent', None)
        self.assertEqual('The node (non-existent) could not be found.',
                         six.text_type(ex))

        x_node_id = 'ee96c490-2dee-40c8-8919-4c64b89e326c'
        node = utils.create_node(self.context, x_node_id, PROFILE_ID,
                                 CLUSTER_ID)
        node_info = nodem.Node.load(self.context, x_node_id)

        self.assertEqual(node.id, node_info.id)
        self.assertEqual(node.name, node_info.name)
        self.assertEqual(node.physical_id, node_info.physical_id)
        self.assertEqual(node.cluster_id, node_info.cluster_id)
        self.assertEqual(node.profile_id, node_info.profile_id)
        self.assertEqual(node.user, node_info.user)
        self.assertEqual(node.project, node_info.project)
        self.assertEqual(node.domain, node_info.domain)
        self.assertEqual(node.index, node_info.index)
        self.assertEqual(node.role, node_info.role)

        self.assertEqual(node.init_at, node_info.init_at)
        self.assertEqual(node.created_at, node_info.created_at)
        self.assertEqual(node.updated_at, node_info.updated_at)

        self.assertEqual(node.status, node_info.status)
        self.assertEqual(node.status_reason, node_info.status_reason)
        self.assertEqual(node.metadata, node_info.metadata)
        self.assertEqual(node.data, node_info.data)
        self.assertEqual(self.profile.name, node_info.rt['profile'].name)
    def _create_nodes(self, count):
        NODE_IDS = [
            '6eaa45fa-bd2e-426d-ae49-f75db1a4bd73',
            '8bf73953-b57b-4e6b-bdef-83fa9420befb',
            'c3058ea0-5241-466b-89bc-6a85f6050a11',
        ]
        PHYSICAL_IDS = [
            '2417c5d6-9a89-4637-9ba6-82c00b180cb7',
            '374bf2b9-30ba-4a9b-822b-1196f6d4a368',
            '2a1b7e37-de18-4b22-9489-a7a413fdfe48',
        ]

        nodes = []
        for i in range(count):
            utils.create_node(self.context, NODE_IDS[i], PROFILE_ID,
                              CLUSTER_ID, PHYSICAL_IDS[i])
            nodes.append(NODE_IDS[i])
        return nodes
Exemple #12
0
    def _create_nodes(self, count):
        NODE_IDS = [
            '6eaa45fa-bd2e-426d-ae49-f75db1a4bd73',
            '8bf73953-b57b-4e6b-bdef-83fa9420befb',
            'c3058ea0-5241-466b-89bc-6a85f6050a11',
        ]
        PHYSICAL_IDS = [
            '2417c5d6-9a89-4637-9ba6-82c00b180cb7',
            '374bf2b9-30ba-4a9b-822b-1196f6d4a368',
            '2a1b7e37-de18-4b22-9489-a7a413fdfe48',
        ]

        nodes = []
        for i in range(count):
            utils.create_node(self.context, NODE_IDS[i], PROFILE_ID,
                              CLUSTER_ID, PHYSICAL_IDS[i])
            nodes.append(NODE_IDS[i])
        return nodes
Exemple #13
0
    def test_to_dict(self):
        PROFILE_ID = '96f4df4b-889e-4184-ba8d-b5ca122f95bb'
        POLICY1_ID = '2c5139a6-24ba-4a6f-bd53-a268f61536de'
        POLICY2_ID = '2c5139a6-24ba-4a6f-bd53-a268f61536d3'
        NODE1_ID = '26f4df4b-889e-4184-ba8d-b5ca122f9566'
        NODE2_ID = '26f4df4b-889e-4184-ba8d-b5ca122f9567'

        utils.create_profile(self.ctx, PROFILE_ID)
        policy_1 = utils.create_policy(self.ctx, POLICY1_ID, 'P1')
        policy_2 = utils.create_policy(self.ctx, POLICY2_ID, 'P2')

        values = {
            'profile_id': PROFILE_ID,
            'name': 'test-cluster',
            'desired_capacity': 1,
            'status': 'INIT',
            'init_at': timeutils.utcnow(True),
            'max_size': -1,
            'min_size': 0,
            'timeout': cfg.CONF.default_action_timeout,
            'user': self.ctx.user_id,
            'project': self.ctx.project_id,
        }
        cluster = co.Cluster.create(self.ctx, values)
        p1 = cpo.ClusterPolicy(cluster_id=cluster.id,
                               policy_id=policy_1.id,
                               enabled=True,
                               id=uuidutils.generate_uuid(),
                               last_op=None)
        p2 = cpo.ClusterPolicy(cluster_id=cluster.id,
                               policy_id=policy_2.id,
                               enabled=True,
                               id=uuidutils.generate_uuid(),
                               last_op=None)
        values = {
            'priority': 12,
            'enabled': True,
        }
        p1.create(self.ctx, cluster.id, POLICY1_ID, values)
        p2.create(self.ctx, cluster.id, POLICY2_ID, values)
        utils.create_node(self.ctx, NODE1_ID, PROFILE_ID, cluster.id)
        utils.create_node(self.ctx, NODE2_ID, PROFILE_ID, cluster.id)
        cluster = co.Cluster.get(self.ctx, cluster.id)
        expected = {
            'id': cluster.id,
            'name': cluster.name,
            'profile_id': PROFILE_ID,
            'user': cluster.user,
            'project': cluster.project,
            'domain': cluster.domain,
            'init_at': mock.ANY,
            'created_at': None,
            'updated_at': None,
            'min_size': 0,
            'max_size': -1,
            'desired_capacity': 1,
            'timeout': cfg.CONF.default_action_timeout,
            'status': six.text_type('INIT'),
            'status_reason': None,
            'metadata': {},
            'data': {},
            'dependents': {},
            'config': {},
            'nodes': [mock.ANY, mock.ANY],
            'policies': [mock.ANY, mock.ANY],
            'profile_name': six.text_type('test-profile'),
        }
        cluster_dict = cluster.to_dict()

        self.assertEqual(expected, cluster_dict)
        self.assertEqual(2, len(cluster_dict['nodes']))
        self.assertEqual(2, len(cluster_dict['policies']))