Merge "Add check for users in "deployment check""

This commit is contained in:
Jenkins
2015-06-01 11:14:02 +00:00
committed by Gerrit Code Review
2 changed files with 20 additions and 15 deletions

View File

@@ -236,20 +236,21 @@ class DeploymentCommands(object):
:param deployment: a UUID or name of the deployment
"""
headers = ["services", "type", "status"]
table_rows = []
try:
admin = db.deployment_get(deployment)["admin"]
# TODO(boris-42): make this work for users in future
for endpoint_dict in [admin]:
clients = osclients.Clients(objects.Endpoint(**endpoint_dict))
client = clients.verified_keystone()
print("keystone endpoints are valid and following "
"services are available:")
for service in client.services.list():
data = [service.name, service.type, "Available"]
table_rows.append(utils.Struct(**dict(zip(headers, data))))
deployment = db.deployment_get(deployment)
admin = deployment.get("admin")
clients = osclients.Clients(objects.Endpoint(**admin))
client = clients.verified_keystone()
for service in client.services.list():
data = [service.name, service.type, "Available"]
table_rows.append(utils.Struct(**dict(zip(headers, data))))
users = deployment.get("users")
for endpoint_dict in users:
osclients.Clients(objects.Endpoint(**endpoint_dict)).keystone()
print(_("keystone endpoints are valid and following"
" services are available:"))
except exceptions.InvalidArgumentsException:
data = ["keystone", "identity", "Error"]
table_rows.append(utils.Struct(**dict(zip(headers, data))))

View File

@@ -274,16 +274,20 @@ class DeploymentCommandsTestCase(test.TestCase):
self.assertEqual(1, self.deployment.use(deployment_id))
@mock.patch("rally.osclients.Clients.verified_keystone")
@mock.patch("rally.osclients.Clients.keystone")
@mock.patch("rally.cli.commands.deployment.db.deployment_get")
def test_deployment_check(self, mock_deployment_get, mock_client):
def test_deployment_check(self, mock_deployment_get, mock_keystone,
mock_verified_keystone):
deployment_id = "e87e4dca-b515-4477-888d-5f6103f13b42"
sample_endpoint = objects.Endpoint("http://192.168.1.1:5000/v2.0/",
"admin",
"adminpass").to_dict()
mock_deployment_get.return_value = {"admin": sample_endpoint}
mock_client.services.list.return_value = []
mock_deployment_get.return_value = {"admin": sample_endpoint,
"users": [sample_endpoint]}
self.deployment.check(deployment_id)
mock_deployment_get.assert_called_once_with(deployment_id)
mock_keystone.assert_called_once_with()
mock_verified_keystone.assert_called_once_with()
@mock.patch("rally.osclients.Clients.verified_keystone")
@mock.patch("rally.cli.commands.deployment.db.deployment_get")