示例#1
0
 def test__get_release_id(self):
     engine = fuel.FuelEngine(self.deployment)
     engine.client = mock.Mock()
     fake_releases = [{"name": "fake", "id": 1},
                      {"name": "Havana on Ubuntu 12.04", "id": 42}]
     engine.client.get_releases = mock.Mock(return_value=fake_releases)
     self.assertEqual(42, engine._get_release_id())
示例#2
0
 def test_validate_no_computes(self):
     config = SAMPLE_CONFIG.copy()
     config["nodes"].pop("cinder+compute")
     deployment = {"config": config}
     engine = fuel.FuelEngine(deployment)
     self.assertRaises(exceptions.ValidationError,
                       engine.validate)
示例#3
0
 def test__get_release_id(self):
     engine = fuel.FuelEngine(self.deployment)
     engine.client = mock.Mock()
     fake_releases = [{'name': 'fake', 'id': 1},
                      {'name': 'Havana on Ubuntu 12.04', 'id': 42}]
     engine.client.get_releases = mock.Mock(return_value=fake_releases)
     self.assertEqual(42, engine._get_release_id())
示例#4
0
 def test__get_nodes(self):
     engine = fuel.FuelEngine(self.deployment)
     engine.nodes = mock.MagicMock()
     engine.nodes.pop.side_effect = [1, 2, 3, 4]
     nodes = engine._get_nodes("cinder+compute")
     self.assertEqual([1, 2, 3, 4], nodes)
     expected_calls = [mock.call(["cpus==8", "storage>=2T"])] * 4
     self.assertEqual(expected_calls, engine.nodes.pop.mock_calls)
示例#5
0
    def test_cleanup(self, mock_deployment, mock_fuel_client):
        fake_resources = [{"id": 41, "info": {"id": 42}}]
        self.deployment.get_resources = mock.Mock(return_value=fake_resources)

        engine = fuel.FuelEngine(self.deployment)
        engine.client = mock.Mock()
        engine.cleanup()

        engine.client.delete_cluster.assert_called_once_with(42)
        mock_deployment.delete_resource.assert_called_once_with(41)
示例#6
0
    def test_deploy(self, m_cluster, m_client):
        attributes = {
            'editable': {
                'access': {
                    'user': {
                        'value': 'user'
                    },
                    'password': {
                        'value': 'pw'
                    },
                    'tenant': {
                        'value': 'tn'
                    }
                }
            }
        }
        client = mock.Mock()
        cluster = mock.Mock()
        cluster.cluster = {'id': 42}
        cluster.get_endpoint_ip = mock.Mock(return_value='2.3.4.5')
        cluster.get_attributes = mock.Mock(return_value=attributes)
        m_client.return_value = client
        m_cluster.return_value = cluster
        self.deployment.add_resource = mock.Mock()

        engine = fuel.FuelEngine(self.deployment)

        engine._get_nodes = mock.Mock(side_effect=[1, 2, 3, 4])
        engine._get_release_id = mock.Mock()

        endpoint = engine.deploy()
        self.assertEqual(["admin"], endpoint.keys())
        endpoint = endpoint["admin"]

        self.assertEqual('user', endpoint.username)
        self.assertEqual('pw', endpoint.password)
        self.assertEqual('tn', endpoint.tenant_name)
        self.assertEqual('http://2.3.4.5:5000/v2.0/', endpoint.auth_url)
        self.assertEqual(consts.EndpointPermission.ADMIN, endpoint.permission)

        expected_cluster_calls = [
            mock.call.set_nodes(1, ['controller']),
            mock.call.set_nodes(2, ['compute']),
            mock.call.set_nodes(3, ['cinder']),
            mock.call.set_nodes(4, ['compute', 'cinder']),
            mock.call.configure_network({'public': {
                'cidr': '10.1.1.0/24'
            }}),
            mock.call.deploy(),
            mock.call.get_endpoint_ip(),
            mock.call.get_attributes()
        ]
        self.assertEqual(expected_cluster_calls, cluster.mock_calls)
        self.assertEqual([mock.call.get_nodes()], client.mock_calls)
示例#7
0
    def test_deploy(self, m_cluster, m_client):
        attributes = {
            "editable": {
                "access": {
                    "user": {
                        "value": "user"
                    },
                    "password": {
                        "value": "pw"
                    },
                    "tenant": {
                        "value": "tn"
                    }
                }
            }
        }
        client = mock.Mock()
        cluster = mock.Mock()
        cluster.cluster = {"id": 42}
        cluster.get_endpoint_ip = mock.Mock(return_value="2.3.4.5")
        cluster.get_attributes = mock.Mock(return_value=attributes)
        m_client.return_value = client
        m_cluster.return_value = cluster
        self.deployment.add_resource = mock.Mock()

        engine = fuel.FuelEngine(self.deployment)

        engine._get_nodes = mock.Mock(side_effect=[1, 2, 3, 4])
        engine._get_release_id = mock.Mock()

        endpoint = engine.deploy()
        self.assertEqual(["admin"], list(endpoint))
        endpoint = endpoint["admin"]

        self.assertEqual("user", endpoint.username)
        self.assertEqual("pw", endpoint.password)
        self.assertEqual("tn", endpoint.tenant_name)
        self.assertEqual("http://2.3.4.5:5000/v2.0/", endpoint.auth_url)
        self.assertEqual(consts.EndpointPermission.ADMIN, endpoint.permission)

        expected_cluster_calls = [
            mock.call.set_nodes(1, ["controller"]),
            mock.call.set_nodes(2, ["compute"]),
            mock.call.set_nodes(3, ["cinder"]),
            mock.call.set_nodes(4, ["compute", "cinder"]),
            mock.call.configure_network({"public": {
                "cidr": "10.1.1.0/24"
            }}),
            mock.call.deploy(),
            mock.call.get_endpoint_ip(),
            mock.call.get_attributes()
        ]
        self.assertEqual(expected_cluster_calls, cluster.mock_calls)
        self.assertEqual([mock.call.get_nodes()], client.mock_calls)
示例#8
0
 def test__get_nodes_empty(self):
     engine = fuel.FuelEngine(self.deployment)
     self.assertEqual([], engine._get_nodes("nonexistent"))
示例#9
0
 def test__get_nodes_no_nodes(self):
     engine = fuel.FuelEngine(self.deployment)
     engine.nodes = mock.MagicMock()
     engine.nodes.pop.return_value = None
     self.assertRaises(exceptions.NoNodesFound,
                       engine._get_nodes, "controller")
示例#10
0
 def test_construct(self):
     fuel.FuelEngine(self.deployment)