summaryrefslogtreecommitdiff
path: root/ironic/tests/api/v1
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-07-02 15:31:54 +0000
committerGerrit Code Review <review@openstack.org>2015-07-02 15:31:54 +0000
commit227edc111c0fd9b20ee774512a00b522743261fd (patch)
treef1ce0dd4412ce58768f34b1a59c924dab879ae8b /ironic/tests/api/v1
parent753937f9e8c158c396c7392230a88b47951f4688 (diff)
parentf1af031c858629f7aa34222a4de56bcf8c762399 (diff)
downloadironic-227edc111c0fd9b20ee774512a00b522743261fd.tar.gz
Merge "Add ability to filter nodes by provision_state via API"
Diffstat (limited to 'ironic/tests/api/v1')
-rw-r--r--ironic/tests/api/v1/test_nodes.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/ironic/tests/api/v1/test_nodes.py b/ironic/tests/api/v1/test_nodes.py
index 349e1b7cf..358245d86 100644
--- a/ironic/tests/api/v1/test_nodes.py
+++ b/ironic/tests/api/v1/test_nodes.py
@@ -616,6 +616,41 @@ class TestListNodes(test_api_base.FunctionalTest):
uuids = [n['uuid'] for n in data['nodes']]
self.assertIn(node.uuid, uuids)
+ def test_get_nodes_by_provision_state(self):
+ node = obj_utils.create_test_node(self.context,
+ uuid=uuidutils.generate_uuid(),
+ provision_state=states.AVAILABLE)
+ node1 = obj_utils.create_test_node(self.context,
+ uuid=uuidutils.generate_uuid(),
+ provision_state=states.DEPLOYING)
+
+ data = self.get_json('/nodes?provision_state=available',
+ headers={api_base.Version.string: "1.9"})
+ uuids = [n['uuid'] for n in data['nodes']]
+ self.assertIn(node.uuid, uuids)
+ self.assertNotIn(node1.uuid, uuids)
+ data = self.get_json('/nodes?provision_state=deploying',
+ headers={api_base.Version.string: "1.9"})
+ uuids = [n['uuid'] for n in data['nodes']]
+ self.assertIn(node1.uuid, uuids)
+ self.assertNotIn(node.uuid, uuids)
+
+ def test_get_nodes_by_invalid_provision_state(self):
+ response = self.get_json('/nodes?provision_state=test',
+ headers={api_base.Version.string: "1.9"},
+ expect_errors=True)
+ self.assertEqual('application/json', response.content_type)
+ self.assertEqual(400, response.status_code)
+ self.assertTrue(response.json['error_message'])
+
+ def test_get_nodes_by_provision_state_not_allowed(self):
+ response = self.get_json('/nodes?provision_state=test',
+ headers={api_base.Version.string: "1.8"},
+ expect_errors=True)
+ self.assertEqual('application/json', response.content_type)
+ self.assertEqual(406, response.status_code)
+ self.assertTrue(response.json['error_message'])
+
def test_get_console_information(self):
node = obj_utils.create_test_node(self.context)
expected_console_info = {'test': 'test-data'}