|
@@ -20,26 +20,27 @@ limitations under the License.
|
|
import logging
|
|
import logging
|
|
|
|
|
|
from ambari_client.model.status import StatusModel
|
|
from ambari_client.model.status import StatusModel
|
|
-from mock.mock import MagicMock, patch
|
|
|
|
|
|
+from mock.mock import MagicMock
|
|
from HttpClientInvoker import HttpClientInvoker
|
|
from HttpClientInvoker import HttpClientInvoker
|
|
|
|
|
|
from ambari_client.ambari_api import AmbariClient
|
|
from ambari_client.ambari_api import AmbariClient
|
|
import unittest
|
|
import unittest
|
|
|
|
|
|
|
|
+
|
|
class TestStatusModel(unittest.TestCase):
|
|
class TestStatusModel(unittest.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
def setUp(self):
|
|
http_client_logger = logging.getLogger()
|
|
http_client_logger = logging.getLogger()
|
|
http_client_logger.info('Running test:' + self.id())
|
|
http_client_logger.info('Running test:' + self.id())
|
|
|
|
|
|
- def create_service(self, http_client_mock = MagicMock()):
|
|
|
|
|
|
+ def create_service(self, http_client_mock=MagicMock()):
|
|
http_client_mock.invoke.side_effect = HttpClientInvoker.http_client_invoke_side_effects
|
|
http_client_mock.invoke.side_effect = HttpClientInvoker.http_client_invoke_side_effects
|
|
client = AmbariClient("localhost", 8080, "admin", "admin", version=1, client=http_client_mock)
|
|
client = AmbariClient("localhost", 8080, "admin", "admin", version=1, client=http_client_mock)
|
|
cluster = client.get_cluster('test1')
|
|
cluster = client.get_cluster('test1')
|
|
service = cluster.get_service('GANGLIA')
|
|
service = cluster.get_service('GANGLIA')
|
|
return service
|
|
return service
|
|
|
|
|
|
- def create_client(self, http_client_mock = MagicMock()):
|
|
|
|
|
|
+ def create_client(self, http_client_mock=MagicMock()):
|
|
http_client_mock.invoke.side_effect = HttpClientInvoker.http_client_invoke_side_effects
|
|
http_client_mock.invoke.side_effect = HttpClientInvoker.http_client_invoke_side_effects
|
|
client = AmbariClient("localhost", 8080, "admin", "admin", version=1, client=http_client_mock)
|
|
client = AmbariClient("localhost", 8080, "admin", "admin", version=1, client=http_client_mock)
|
|
return client
|
|
return client
|
|
@@ -57,28 +58,26 @@ class TestStatusModel(unittest.TestCase):
|
|
self.assertEqual(status.get_request_path(), expected_request_path)
|
|
self.assertEqual(status.get_request_path(), expected_request_path)
|
|
http_client_mock.invoke.assert_called_with('PUT', expected_path, headers=None, payload=expected_payload)
|
|
http_client_mock.invoke.assert_called_with('PUT', expected_path, headers=None, payload=expected_payload)
|
|
|
|
|
|
-
|
|
|
|
def test_is_error(self):
|
|
def test_is_error(self):
|
|
error_model = StatusModel(None, 400)
|
|
error_model = StatusModel(None, 400)
|
|
- ok_model = StatusModel(None, 201)
|
|
|
|
|
|
+ ok_model = StatusModel(None, 201)
|
|
|
|
|
|
self.assertTrue(error_model.is_error())
|
|
self.assertTrue(error_model.is_error())
|
|
self.assertFalse(ok_model.is_error())
|
|
self.assertFalse(ok_model.is_error())
|
|
|
|
|
|
def test_get_bootstrap_path(self):
|
|
def test_get_bootstrap_path(self):
|
|
http_client_mock = MagicMock()
|
|
http_client_mock = MagicMock()
|
|
-
|
|
|
|
|
|
+
|
|
ssh_key = 'abc!@#$%^&*()_:"|<>?[];\'\\./'
|
|
ssh_key = 'abc!@#$%^&*()_:"|<>?[];\'\\./'
|
|
- host_list = ['dev05.hortonworks.com','dev06.hortonworks.com']
|
|
|
|
- ssh_user='root'
|
|
|
|
-
|
|
|
|
|
|
+ host_list = ['dev05.hortonworks.com', 'dev06.hortonworks.com']
|
|
|
|
+ ssh_user = 'root'
|
|
|
|
+
|
|
expected_path = '//bootstrap'
|
|
expected_path = '//bootstrap'
|
|
expected_headers = {'Content-Type': 'application/json'}
|
|
expected_headers = {'Content-Type': 'application/json'}
|
|
- expected_request = {'user': ssh_user,'hosts': str(host_list),'verbose':True, 'sshKey': ssh_key}
|
|
|
|
- expected_response = {'status': 201, 'message': u'Running Bootstrap now.', 'requestId': 5}
|
|
|
|
- expected_bootstrap_path = '/bootstrap/5'
|
|
|
|
|
|
+ expected_request = {'user': ssh_user, 'hosts': str(host_list), 'verbose': True, 'sshKey': ssh_key}
|
|
|
|
+ expected_bootstrap_path = '/bootstrap/5'
|
|
client = self.create_client(http_client_mock)
|
|
client = self.create_client(http_client_mock)
|
|
resp = client.bootstrap_hosts(host_list, ssh_key, ssh_user)
|
|
resp = client.bootstrap_hosts(host_list, ssh_key, ssh_user)
|
|
|
|
|
|
- self.assertEqual(resp.get_bootstrap_path(),expected_bootstrap_path)
|
|
|
|
- http_client_mock.invoke.assert_called_with('POST', expected_path, headers=expected_headers, payload={'user': 'root', 'hosts': "['dev05.hortonworks.com', 'dev06.hortonworks.com']", 'verbose': True, 'sshKey': 'abc!@#$%^&*()_:"|<>?[];\\\'\\\\./'})
|
|
|
|
|
|
+ self.assertEqual(resp.get_bootstrap_path(), expected_bootstrap_path)
|
|
|
|
+ http_client_mock.invoke.assert_called_with('POST', expected_path, headers=expected_headers, payload=expected_request)
|