Merge "service instance: Read public ssh key directly"
This commit is contained in:
commit
5a21666551
|
@ -220,7 +220,6 @@ class ServiceInstanceManager(object):
|
|||
raise exception.ServiceInstanceException(
|
||||
_('Service instance user is not specified.'))
|
||||
self.admin_context = context.get_admin_context()
|
||||
self._execute = utils.execute
|
||||
|
||||
self.image_api = image.API()
|
||||
self.compute_api = compute.API()
|
||||
|
@ -493,6 +492,11 @@ class ServiceInstanceManager(object):
|
|||
instance_details.pop(key)
|
||||
return instance_details
|
||||
|
||||
def _load_public_key(self, path):
|
||||
with open(path, 'r') as f:
|
||||
public_key = f.read()
|
||||
return public_key
|
||||
|
||||
@utils.synchronized("service_instance_get_key", external=True)
|
||||
def _get_key(self, context):
|
||||
"""Get ssh key.
|
||||
|
@ -513,7 +517,7 @@ class ServiceInstanceManager(object):
|
|||
if len(keypairs) > 1:
|
||||
raise exception.ServiceInstanceException(_('Ambiguous keypairs.'))
|
||||
|
||||
public_key, __ = self._execute('cat', path_to_public_key)
|
||||
public_key = self._load_public_key(path_to_public_key)
|
||||
if not keypairs:
|
||||
keypair = self.compute_api.keypair_import(
|
||||
context, keypair_name, public_key)
|
||||
|
|
|
@ -137,7 +137,7 @@ class ServiceInstanceManagerTestCase(test.TestCase):
|
|||
self.mock_object(service_instance, 'NeutronNetworkHelper',
|
||||
mock.Mock(side_effect=FakeNetworkHelper))
|
||||
self._manager = service_instance.ServiceInstanceManager(self.config)
|
||||
self._manager._execute = mock.Mock(return_value=('', ''))
|
||||
self._manager._load_public_key = mock.Mock(return_value='')
|
||||
self.mock_object(time, 'sleep')
|
||||
|
||||
def test_get_config_option_from_driver_config(self):
|
||||
|
@ -645,8 +645,8 @@ class ServiceInstanceManagerTestCase(test.TestCase):
|
|||
mock.Mock(return_value=[fake_keypair]))
|
||||
self.mock_object(self._manager.compute_api, 'keypair_import',
|
||||
mock.Mock(return_value=fake_keypair))
|
||||
self.mock_object(self._manager, '_execute',
|
||||
mock.Mock(return_value=('fake_public_key', '')))
|
||||
self.mock_object(self._manager, '_load_public_key',
|
||||
mock.Mock(return_value='fake_public_key'))
|
||||
|
||||
result = self._manager._get_key(self._manager.admin_context)
|
||||
|
||||
|
@ -669,8 +669,8 @@ class ServiceInstanceManagerTestCase(test.TestCase):
|
|||
self.mock_object(self._manager.compute_api, 'keypair_import',
|
||||
mock.Mock(return_value=fake_keypair))
|
||||
self.mock_object(self._manager.compute_api, 'keypair_delete')
|
||||
self.mock_object(self._manager, '_execute',
|
||||
mock.Mock(return_value=('fake_public_key2', '')))
|
||||
self.mock_object(self._manager, '_load_public_key',
|
||||
mock.Mock(return_value='fake_public_key2'))
|
||||
|
||||
result = self._manager._get_key(self._manager.admin_context)
|
||||
|
||||
|
|
Loading…
Reference in New Issue