Skip to content

Commit

Permalink
1. small cleanups
Browse files Browse the repository at this point in the history
2. fixing unit tests for nova domain service
  • Loading branch information
alexazarh committed Aug 30, 2016
1 parent b821f3b commit 9c35e0a
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,3 @@ def delete_instance(self, openstack_session, deployed_app_resource, logger):
self.instance_service.terminate_instance(openstack_session=openstack_session,
instance_id=instance_id,
logger=logger)
pass
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from cloudshell.cp.openstack.domain.services.nova.nova_instance_service import NovaInstanceService
from cloudshell.cp.openstack.domain.services.waiters.instance import InstanceWaiter
from cloudshell.shell.core.session.logging_session import LoggingSessionContext

class PowerOperation(object):
def __init__(self):
Expand All @@ -19,9 +20,9 @@ def power_on(self, openstack_session, cloudshell_session,
:param deployed_app_resource:
:type deployed_app_resource:
:param resource_fullname:
:type resource_fullname:
:type str:
:param logger:
:type logger:
:type logging.Logger:
:return:
"""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,6 @@ def create_instance(self, openstack_session, name, reservation,
flavor=flavor_obj,
nics=[qnet_dict])

if not instance:
return None

# instance_attrrs = instance.get
# FIXME : Wait for the server to be ready
self.instance_waiter.wait(instance, state=self.instance_waiter.ACTIVE)
Expand Down Expand Up @@ -85,9 +82,6 @@ def terminate_instance(self, openstack_session, instance_id, logger):
else:
client.servers.delete(instance)

# self.instance_waiter.wait(instance, state=self.instance_waiter.DELETED)
return #True

def instance_power_on(self, openstack_session, instance_id, logger):
"""
call instance.start() for the instance for a given instance_id
Expand All @@ -108,7 +102,7 @@ def instance_power_on(self, openstack_session, instance_id, logger):
if instance is None:
logger.info("Instance with Instance ID {0} does not exist. Already Deleted?".format(instance_id))
else:
instance.get()

if instance.status != self.instance_waiter.ACTIVE:
instance.start()
self.instance_waiter.wait(instance, self.instance_waiter.ACTIVE)
Expand All @@ -133,7 +127,7 @@ def instance_power_off(self, openstack_session, instance_id, logger):
if instance is None:
logger.info("Instance with Instance ID {0} does not exist. Already Deleted?".format(instance_id))
else:
instance.get()

if instance.status != self.instance_waiter.SHUTOFF:
instance.stop()
self.instance_waiter.wait(instance, self.instance_waiter.SHUTOFF)
Expand Down
36 changes: 20 additions & 16 deletions package/cloudshell/cp/openstack/openstack_shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,16 @@
from cloudshell.cp.openstack.command.command_result_parser import OpenStackShellCommandResultParser

from cloudshell.cp.openstack.domain.services.session_providers.os_session_provider \
import OpenStackSessionProvider
import OpenStackSessionProvider


class OpenStackShell(object):
"""
OpenStackShell: An Object of this is created by Shell Driver. Methods of
this class implement the functionality as required by Shell Driver, which
provides wrapper over this class.
"""

def __init__(self):
self.os_session_provider = OpenStackSessionProvider()
self.cs_driver_helper = CloudshellDriverHelper()
Expand All @@ -43,8 +45,8 @@ def __init__(self):
self.model_parser = OpenStackShellModelParser()
self.command_result_parser = OpenStackShellCommandResultParser()

# ## Below all operations are implemented as public methods
# Power Operations Begin
# ## Below all operations are implemented as public methods
# Power Operations Begin
def power_on(self, command_context):
"""
Powers On the instance.
Expand Down Expand Up @@ -98,14 +100,15 @@ def power_off(self, command_context):

os_session = self.os_session_provider.get_openstack_session(cs_session, resource_model, logger)
self.power_operation.power_off(openstack_session=os_session,
cloudshell_session=cs_session,
deployed_app_resource=deployed_app_resource,
resource_fullname=deployed_app_fullname,
logger=logger)
cloudshell_session=cs_session,
deployed_app_resource=deployed_app_resource,
resource_fullname=deployed_app_fullname,
logger=logger)

# Power Operations End

# Power Operations End
# Deploy Operations Begin

# Deploy Operations Begin
def deploy_instance_from_image(self, command_context, deploy_request):
"""
Deploys an image with specification provided by deploy_request on a
Expand All @@ -132,10 +135,10 @@ def deploy_instance_from_image(self, command_context, deploy_request):

# Get reservation
reservation_model = ReservationModel.create_reservation_model_from_context_reservation(
command_context.reservation)
command_context.reservation)
# From deploy_request obtain DeployOSNovaImageInstanceResourceModel
deploy_req_model, app_name = self.model_parser.deploy_res_model_appname_from_deploy_req(
deploy_request)
deploy_request)

logger.info("Deploying: App: {0}".format(app_name))

Expand All @@ -153,9 +156,10 @@ def deploy_instance_from_image(self, command_context, deploy_request):
logger.info("Deploying: App: 2 {0}".format(app_name))
return self.command_result_parser.set_command_result(deployed_data)

# Deploy Operations End
# Deploy Operations End

# Hidden Operations Begin

# Hidden Operations Begin
def delete_instance(self, command_context):
"""
Deletes the Nova instance and associated block devices if delete_true
Expand All @@ -168,7 +172,6 @@ def delete_instance(self, command_context):
with LoggingSessionContext(command_context) as logger:
with ErrorHandlingContext(logger):
with CloudShellSessionContext(command_context) as cs_session:

resource_model = self.model_parser.get_resource_model_from_context(command_context.resource)

context_remote = command_context.remote_endpoints[0]
Expand All @@ -183,9 +186,10 @@ def delete_instance(self, command_context):
deployed_app_resource=deployed_app_resource,
logger=logger)

# Hidden Operations End
# Hidden Operations End

# Connectivity Operations Begin

# Connectivity Operations Begin
def refresh_ip(self, command_context):
"""
Refresh IP
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
from cloudshell.cp.openstack.domain.services.nova.nova_instance_service import NovaInstanceService
import cloudshell.cp.openstack.domain.services.nova.nova_instance_service as test_nova_instance_service


class TestNovaInstanceService(TestCase):
def setUp(self):
self.instance_service = NovaInstanceService(instance_waiter=Mock())

self.instance_service.instance_waiter.wait = Mock()
instance_waiter = Mock()
instance_waiter.wait = Mock()
self.instance_service = NovaInstanceService(instance_waiter=instance_waiter)
self.mock_logger = Mock()
self.openstack_session = Mock()

Expand All @@ -32,22 +33,25 @@ def test_instance_create_success(self):

mock_netobj = Mock()
mock_client2.networks.find = Mock(return_type=mock_netobj)
mock_client2.servers = Mock()
mocked_inst = Mock()
mock_client2.servers.create = Mock(return_value=mocked_inst)
mock_qnet_dict = {'qnet-id': mock_netobj}
result = self.instance_service.create_instance(openstack_session=self.openstack_session,
name=test_name,
reservation=Mock(),
deploy_req_model=Mock(),
logger=self.mock_logger)
name=test_name,
reservation=Mock(),
deploy_req_model=Mock(),
logger=self.mock_logger)

self.assertTrue(mock_client2.servers.create.called)
mock_client2.servers.create.assert_called()
# FIXME : Assert called_with
self.assertTrue(result)
self.assertEquals(result, mocked_inst)

def test_instance_terminate_openstack_session_none(self):
with self.assertRaises(ValueError) as context:
self.instance_service.terminate_instance(openstack_session=None,
instance_id='1234',
logger = self.mock_logger)
logger=self.mock_logger)
self.assertTrue(context)

def test_instance_terminate_success(self):
Expand All @@ -58,7 +62,7 @@ def test_instance_terminate_success(self):
test_instance_id = '1234-56'
self.instance_service.get_instance_from_instance_id = Mock(return_value=mock_instance)
self.instance_service.terminate_instance(openstack_session=self.openstack_session,
instance_id=test_instance_id,
logger=self.mock_logger)
instance_id=test_instance_id,
logger=self.mock_logger)

self.assertTrue(mock_client2.servers.delete.called)
mock_client2.servers.delete.assert_called_with(mock_instance)

0 comments on commit 9c35e0a

Please sign in to comment.