Add Nova delete function
This commit is contained in:
		@@ -23,6 +23,7 @@ class Node(object):
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create(self, node_id, image, node_type):
 | 
					    def create(self, node_id, image, node_type):
 | 
				
			||||||
 | 
					        """ create a nova node """
 | 
				
			||||||
        url = "/servers"
 | 
					        url = "/servers"
 | 
				
			||||||
        body = {"server": {
 | 
					        body = {"server": {
 | 
				
			||||||
                "name": 'lbass_{0}'.format(node_id),
 | 
					                "name": 'lbass_{0}'.format(node_id),
 | 
				
			||||||
@@ -34,3 +35,15 @@ class Node(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def status(self, node_id):
 | 
					    def status(self, node_id):
 | 
				
			||||||
        """ used to keep scanning to see if node is up """
 | 
					        """ used to keep scanning to see if node is up """
 | 
				
			||||||
 | 
					        url = "/servers/{0}".format(node_id)
 | 
				
			||||||
 | 
					        resp, body = self.nova.get(url)
 | 
				
			||||||
 | 
					        return body['server']['status']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def delete(self, node_id):
 | 
				
			||||||
 | 
					        """ delete a nova node, return 1 if fail, 0 if succeed """
 | 
				
			||||||
 | 
					        url = "/servers/{0}".format(node_id)
 | 
				
			||||||
 | 
					        resp, body = self.nova.delete(url)
 | 
				
			||||||
 | 
					        if resp.status != 204:
 | 
				
			||||||
 | 
					            return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return 0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,8 +7,12 @@ import mock_objects
 | 
				
			|||||||
from libra.mgm.nova import Node
 | 
					from libra.mgm.nova import Node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fake_response = httplib2.Response({"status": 200})
 | 
					fake_response = httplib2.Response({"status": 200})
 | 
				
			||||||
 | 
					fake_bad_response = httplib2.Response({"status": 500})
 | 
				
			||||||
 | 
					fake_del_response = httplib2.Response({"status": 204})
 | 
				
			||||||
fake_body = '{"hi": "there"}'
 | 
					fake_body = '{"hi": "there"}'
 | 
				
			||||||
mock_request = mock.Mock(return_value=(fake_response, fake_body))
 | 
					mock_request = mock.Mock(return_value=(fake_response, fake_body))
 | 
				
			||||||
 | 
					mock_bad_request = mock.Mock(return_value=(fake_bad_response, fake_body))
 | 
				
			||||||
 | 
					mock_del_request = mock.Mock(return_value=(fake_del_response, fake_body))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestLBaaSMgmTask(unittest.TestCase):
 | 
					class TestLBaaSMgmTask(unittest.TestCase):
 | 
				
			||||||
@@ -39,3 +43,17 @@ class TestLBaaSMgmNova(unittest.TestCase):
 | 
				
			|||||||
        def testCreateCall():
 | 
					        def testCreateCall():
 | 
				
			||||||
            data = self.api.create('4321', '123', '321')
 | 
					            data = self.api.create('4321', '123', '321')
 | 
				
			||||||
            self.assertEqual(data, {"hi": "there"})
 | 
					            self.assertEqual(data, {"hi": "there"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def testDeleteNodeFail(self):
 | 
				
			||||||
 | 
					        @mock.patch.object(httplib2.Http, "request", mock_bad_request)
 | 
				
			||||||
 | 
					        @mock.patch('time.time', mock.Mock(return_value=1234))
 | 
				
			||||||
 | 
					        def testDeleteCall():
 | 
				
			||||||
 | 
					            resp = self.api.delete('1234')
 | 
				
			||||||
 | 
					            self.assertEqual(resp, 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def testDeleteNodeSucceed(self):
 | 
				
			||||||
 | 
					        @mock.patch.object(httplib2.Http, "request", mock_del_request)
 | 
				
			||||||
 | 
					        @mock.patch('time.time', mock.Mock(return_value=1234))
 | 
				
			||||||
 | 
					        def testDeleteCall():
 | 
				
			||||||
 | 
					            resp = self.api.delete('1234')
 | 
				
			||||||
 | 
					            self.assertEqual(resp, 0)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user