def test_get_node_works(self):
        hostname = "TEST_HOST"
        host_info = ["H1", "H2"]
        self.fake_client_set.compute.hosts.get(hostname).AndReturn(host_info)
        nodes._node_to_view(hostname, host_info).AndReturn("REPLY")

        self.mox.ReplayAll()
        rv = self.client.get("/v1/nodes/%s" % hostname)
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, "REPLY")
    def test_get_node_works(self):
        hostname = 'TEST_HOST'
        host_info = ['H1', 'H2']
        self.fake_client_set.compute.hosts.get(hostname)\
                .AndReturn(host_info)
        nodes._node_to_view(hostname, host_info)\
                .AndReturn('REPLY')

        self.mox.ReplayAll()
        rv = self.client.get('/v1/nodes/%s' % hostname)
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, 'REPLY')
    def test_list_nodes_work(self):
        hm = self.fake_client_set.compute.hosts
        hm.list_all().AndReturn([doubles.make(self.mox, doubles.Host, _info=info) for info in _TEST_HOSTS])
        hm.get("master").AndReturn("MASTER_DATA")
        nodes._node_to_view("master", "MASTER_DATA").AndReturn("H1")
        hm.get("slave1").AndRaise(osc_exc.NotFound("gone"))
        hm.get("slave2").AndReturn("SLAVE_DATA")
        nodes._node_to_view("slave2", "SLAVE_DATA").AndReturn("H3")

        expected = {"collection": {"name": "nodes", "size": 2}, "nodes": ["H1", "H3"]}
        self.mox.ReplayAll()
        rv = self.client.get("/v1/nodes/")
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, expected)
    def test_list_nodes_work(self):
        hm = self.fake_client_set.compute.hosts
        hm.list_all().AndReturn([
            doubles.make(self.mox, doubles.Host, _info=info)
            for info in _TEST_HOSTS
        ])
        hm.get('master').AndReturn('MASTER_DATA')
        nodes._node_to_view('master', 'MASTER_DATA').AndReturn('H1')
        hm.get('slave1').AndRaise(osc_exc.NotFound('gone'))
        hm.get('slave2').AndReturn('SLAVE_DATA')
        nodes._node_to_view('slave2', 'SLAVE_DATA').AndReturn('H3')

        expected = {
            'collection': {
                'name': 'nodes',
                'size': 2,
            },
            'nodes': ['H1', 'H3']
        }
        self.mox.ReplayAll()
        rv = self.client.get('/v1/nodes/')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, expected)
    def test_node_to_view_works(self):
        data = [doubles.make(self.mox, doubles.Host, **kwargs) for kwargs in _TEST_DATA]

        expected = {
            "name": "test",
            "href": "/v1/nodes/test",
            "memory": 3831 * _MB,
            "cpus": 2,
            "memory-used": 1156 * _MB,
            "cpus-used": 5,
        }

        self.mox.ReplayAll()
        with self.app.test_request_context():
            result = nodes._node_to_view("test", data)
        self.assertEquals(result, expected)
    def test_node_to_view_works(self):
        data = [
            doubles.make(self.mox, doubles.Host, **kwargs)
            for kwargs in _TEST_DATA
        ]

        expected = {
            'name': 'test',
            'href': '/v1/nodes/test',
            'memory': 3831 * _MB,
            'cpus': 2,
            'memory-used': 1156 * _MB,
            'cpus-used': 5,
        }

        self.mox.ReplayAll()
        with self.app.test_request_context():
            result = nodes._node_to_view('test', data)
        self.assertEquals(result, expected)