summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCerberus <matt.dietz@rackspace.com>2011-02-18 16:13:34 -0600
committerCerberus <matt.dietz@rackspace.com>2011-02-18 16:13:34 -0600
commita43c5929de7ebf58eb9ecb8416ce3cf4194c176a (patch)
treea572833216fa6394b8b647f0064db198ef2b404a
parent62b3eb71384581e900b061e65caa6418c4452fa9 (diff)
Pep8 cleanup
-rw-r--r--nova/api/openstack/servers.py13
-rw-r--r--nova/compute/api.py12
-rw-r--r--nova/compute/manager.py85
-rw-r--r--nova/db/api.py5
-rw-r--r--nova/db/sqlalchemy/api.py6
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/004_add_instance_migrations.py3
-rw-r--r--nova/db/sqlalchemy/models.py5
-rw-r--r--nova/tests/api/openstack/common.py7
-rw-r--r--nova/tests/api/openstack/test_servers.py24
-rw-r--r--nova/tests/test_compute.py6
-rw-r--r--nova/tests/test_xenapi.py1
-rw-r--r--nova/tests/xenapi/stubs.py11
-rw-r--r--nova/virt/xenapi/vm_utils.py13
-rw-r--r--nova/virt/xenapi/vmops.py5
-rw-r--r--nova/virt/xenapi_conn.py6
15 files changed, 104 insertions, 98 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index a719f5e15..f68c97323 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -209,12 +209,12 @@ class Controller(wsgi.Controller):
resize a server """
actions = {
- 'reboot':self._action_reboot,
- 'resize':self._action_resize,
- 'confirmResize':self._action_confirm_resize,
- 'revertResize':self._action_revert_resize,
- 'rebuild':self._action_rebuild
- }
+ 'reboot': self._action_reboot,
+ 'resize': self._action_resize,
+ 'confirmResize': self._action_confirm_resize,
+ 'revertResize': self._action_revert_resize,
+ 'rebuild': self._action_rebuild,
+ }
input_dict = self._deserialize(req.body, req)
for key in actions.keys():
@@ -256,7 +256,6 @@ class Controller(wsgi.Controller):
return faults.Fault(exc.HTTPBadRequest())
return faults.Fault(exc.HTTPAccepted())
-
def _action_reboot(self, input_dict, req, id):
try:
reboot_type = input_dict['reboot']['type']
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 371cbae5f..2eb0e0743 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -408,7 +408,7 @@ class API(base.Base):
raise exception.Error(_("No finished migrations found for \
instance"))
- params = { 'migration_id': migration_ref['id'] }
+ params = {'migration_id': migration_ref['id']}
self._cast_compute_message('revert_resize', context, instance_id,
migration_ref['dest_compute'], params=params)
@@ -422,14 +422,12 @@ class API(base.Base):
raise exception.Error(_("No finished migrations found for \
instance"))
instance_ref = self.db.instance_get(context, instance_id)
-
- params = { 'migration_id': migration_ref['id'] }
+ params = {'migration_id': migration_ref['id']}
self._cast_compute_message('confirm_resize', context, instance_id,
migration_ref['source_compute'], params=params)
- self.db.migration_update(context, migration_id,
- { 'status': 'confirmed' })
-
+ self.db.migration_update(context, migration_id,
+ {'status': 'confirmed'})
self.db.instance_update(context, instance_id,
{'host': migration_ref['dest_compute'], })
@@ -439,7 +437,7 @@ class API(base.Base):
{"method": "prep_resize",
"args": {"topic": FLAGS.compute_topic,
"instance_id": instance_id, }},)
-
+
def pause(self, context, instance_id):
"""Pause the given instance."""
self._cast_compute_message('pause_instance', context, instance_id)
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 1e1c44663..3f6c359ba 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -379,7 +379,7 @@ class ComputeManager(manager.Manager):
def _update_state_callback(self, context, instance_id, result):
"""Update instance state when async task completes."""
self._update_state(context, instance_id)
-
+
@exception.wrap_exception
@checks_instance_lock
def confirm_resize(self, context, instance_id, migration_id):
@@ -392,8 +392,8 @@ class ComputeManager(manager.Manager):
@exception.wrap_exception
@checks_instance_lock
def revert_resize(self, context, instance_id, migration_id):
- """Destroys the new instance on the destination machine,
- reverts the model changes, and powers on the old
+ """Destroys the new instance on the destination machine,
+ reverts the model changes, and powers on the old
instance on the source machine"""
instance_ref = self.db.instance_get(context, instance_id)
migration_ref = self.db.migration_get(context, migration_id)
@@ -401,24 +401,23 @@ class ComputeManager(manager.Manager):
#TODO(mdietz): we may want to split these into separate methods.
if migration_ref['source_compute'] == FLAGS.host:
self.driver.power_on(instance_ref)
- self.db.migration_update(context, migration_id,
- { 'status': 'reverted' })
+ self.db.migration_update(context, migration_id,
+ {'status': 'reverted'})
else:
self.driver.destroy(instance_ref)
- topic = self.db.queue_get_for(context, FLAGS.compute_topic,
+ topic = self.db.queue_get_for(context, FLAGS.compute_topic,
instance_ref['host'])
- rpc.cast(context, topic,
- { 'method': 'revert_resize',
- 'args': {
- 'migration_id': migration_ref['id'],
- 'instance_id': instance_id,
- },
+ rpc.cast(context, topic,
+ {'method': 'revert_resize',
+ 'args': {
+ 'migration_id': migration_ref['id'],
+ 'instance_id': instance_id, },
})
@exception.wrap_exception
@checks_instance_lock
def prep_resize(self, context, instance_id):
- """Initiates the process of moving a running instance to another
+ """Initiates the process of moving a running instance to another
host, possibly changing the RAM and disk size in the process"""
context = context.elevated()
instance_ref = self.db.instance_get(context, instance_id)
@@ -426,21 +425,21 @@ class ComputeManager(manager.Manager):
raise exception.Error(_(
'Migration error: destination same as source!'))
- migration_ref = self.db.migration_create(context,
- { 'instance_id': instance_id,
- 'source_compute': instance_ref['host'],
- 'dest_compute': FLAGS.host,
- 'dest_host': self.driver.get_host_ip_addr(),
- 'status': 'pre-migrating' })
- LOG.audit(_('instance %s: migrating to '), instance_id, context=context)
- topic = self.db.queue_get_for(context, FLAGS.compute_topic,
+ migration_ref = self.db.migration_create(context,
+ {'instance_id': instance_id,
+ 'source_compute': instance_ref['host'],
+ 'dest_compute': FLAGS.host,
+ 'dest_host': self.driver.get_host_ip_addr(),
+ 'status': 'pre-migrating'})
+ LOG.audit(_('instance %s: migrating to '), instance_id,
+ context=context)
+ topic = self.db.queue_get_for(context, FLAGS.compute_topic,
instance_ref['host'])
- rpc.cast(context, topic,
- { 'method': 'resize_instance',
- 'args': {
- 'migration_id': migration_ref['id'],
- 'instance_id': instance_id,
- },
+ rpc.cast(context, topic,
+ {'method': 'resize_instance',
+ 'args': {
+ 'migration_id': migration_ref['id'],
+ 'instance_id': instance_id, },
})
@exception.wrap_exception
@@ -449,28 +448,26 @@ class ComputeManager(manager.Manager):
"""Starts the migration of a running instance to another host"""
migration_ref = self.db.migration_get(context, migration_id)
instance_ref = self.db.instance_get(context, instance_id)
- self.db.migration_update(context, migration_id,
- { 'status': 'migrating', })
+ self.db.migration_update(context, migration_id,
+ {'status': 'migrating', })
- disk_info = self.driver.migrate_disk_and_power_off(instance_ref,
+ disk_info = self.driver.migrate_disk_and_power_off(instance_ref,
migration_ref['dest_host'])
-
- self.db.migration_update(context, migration_id,
- { 'status': 'post-migrating', })
+ self.db.migration_update(context, migration_id,
+ {'status': 'post-migrating', })
- #TODO(mdietz): This is where we would update the VM record
+ #TODO(mdietz): This is where we would update the VM record
#after resizing
service = self.db.service_get_by_host_and_topic(context,
migration_ref['dest_compute'], FLAGS.compute_topic)
- topic = self.db.queue_get_for(context, FLAGS.compute_topic,
+ topic = self.db.queue_get_for(context, FLAGS.compute_topic,
migration_ref['dest_compute'])
- rpc.cast(context, topic,
- { 'method': 'finish_resize',
- 'args': {
- 'migration_id': migration_id,
- 'instance_id': instance_id,
- 'disk_info': disk_info,
- },
+ rpc.cast(context, topic,
+ {'method': 'finish_resize',
+ 'args': {
+ 'migration_id': migration_id,
+ 'instance_id': instance_id,
+ 'disk_info': disk_info, },
})
@exception.wrap_exception
@@ -486,8 +483,8 @@ class ComputeManager(manager.Manager):
new_disk_info = self.driver.attach_disk(instance_ref, disk_info)
self.driver.spawn(instance_ref, disk=new_disk_info)
- self.db.migration_update(context, migration_id,
- {'status': 'finished', })
+ self.db.migration_update(context, migration_id,
+ {'status': 'finished', })
@exception.wrap_exception
@checks_instance_lock
diff --git a/nova/db/api.py b/nova/db/api.py
index 5a9d49374..8706ef3d6 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -260,17 +260,20 @@ def floating_ip_get_by_address(context, address):
####################
def migration_update(context, id, values):
- """Update a migration instance"""
+ """Update a migration instance"""
return IMPL.migration_update(context, id, values)
+
def migration_create(context, values):
"""Create a migration record"""
return IMPL.migration_create(context, values)
+
def migration_get(context, migration_id):
"""Finds a migration by the id"""
return IMPL.migration_get(context, migration_id)
+
def migration_get_by_instance_and_status(context, instance_id, status):
"""Finds a migration by the instance id its migrating"""
return IMPL.migration_get_by_instance_and_status(context, instance_id,
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 210b53296..facb46b8b 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -156,6 +156,7 @@ def service_get_all_by_topic(context, topic):
filter_by(topic=topic).\
all()
+
@require_admin_context
def service_get_by_host_and_topic(context, host, topic):
session = get_session()
@@ -166,6 +167,7 @@ def service_get_by_host_and_topic(context, host, topic):
filter_by(topic=topic).\
first()
+
@require_admin_context
def service_get_all_by_host(context, host):
session = get_session()
@@ -1996,7 +1998,7 @@ def migration_get(context, id, session=None):
result = session.query(models.Migration).\
filter_by(id=id).first()
if not result:
- raise exception.NotFound(_("No migration found with id %s")
+ raise exception.NotFound(_("No migration found with id %s")
% migration_id)
return result
@@ -2008,7 +2010,7 @@ def migration_get_by_instance_and_status(context, instance_id, status):
filter_by(instance_id=instance_id).\
filter_by(status=status).first()
if not result:
- raise exception.NotFound(_("No migration found with instance id %s")
+ raise exception.NotFound(_("No migration found with instance id %s")
% migration_id)
return result
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/004_add_instance_migrations.py b/nova/db/sqlalchemy/migrate_repo/versions/004_add_instance_migrations.py
index 4aab5bdc6..4fda525f1 100644
--- a/nova/db/sqlalchemy/migrate_repo/versions/004_add_instance_migrations.py
+++ b/nova/db/sqlalchemy/migrate_repo/versions/004_add_instance_migrations.py
@@ -44,9 +44,10 @@ migrations = Table('migrations', meta,
Column('dest_host', String(255)),
Column('instance_id', Integer, ForeignKey('instances.id'),
nullable=True),
- Column('status', String(255))
+ Column('status', String(255)),
)
+
def upgrade(migrate_engine):
# Upgrade operations go here. Don't create your own engine;
# bind migrate_engine to your metadata
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index 0140fbeab..b05f134b7 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -374,7 +374,8 @@ class Migration(BASE, NovaBase):
dest_compute = Column(String(255))
dest_host = Column(String(255))
instance_id = Column(Integer, ForeignKey('instances.id'), nullable=True)
- status = Column(String(255)) #TODO(_cerberus_): enum
+ #TODO(_cerberus_): enum
+ status = Column(String(255))
class Network(BASE, NovaBase):
@@ -559,7 +560,7 @@ def register_models():
Volume, ExportDevice, IscsiTarget, FixedIp, FloatingIp,
Network, SecurityGroup, SecurityGroupIngressRule,
SecurityGroupInstanceAssociation, AuthToken, User,
- Project, Certificate, ConsolePool, Console,
+ Project, Certificate, ConsolePool, Console,
Migration) # , Image, Host
engine = create_engine(FLAGS.sql_connection, echo=False)
for model in models:
diff --git a/nova/tests/api/openstack/common.py b/nova/tests/api/openstack/common.py
index 66207cddc..3f9c7d3cf 100644
--- a/nova/tests/api/openstack/common.py
+++ b/nova/tests/api/openstack/common.py
@@ -19,14 +19,17 @@ import json
import webob
+
def webob_factory(url):
+ """Factory for removing duplicate webob code from tests"""
+
base_url = url
+
def web_request(url, method=None, body=None):
- req = webob.Request.blank("%s%s" % (base_url, url))
+ req = webob.Request.blank("%s%s" % (base_url, url))
if method:
req.method = method
if body:
req.body = json.dumps(body)
return req
return web_request
-
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index 665551c55..4eb4a3c62 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -419,8 +419,9 @@ class ServersTest(unittest.TestCase):
req = self.webreq('/1/action', 'POST', dict(resize=dict(flavorId=3)))
self.resize_called = False
+
def resize_mock(*args):
- self.resize_called = True
+ self.resize_called = True
self.stubs.Set(nova.compute.api.API, 'resize', resize_mock)
@@ -432,8 +433,9 @@ class ServersTest(unittest.TestCase):
req = self.webreq('/1/action', 'POST', dict(resize=dict(derp=3)))
self.resize_called = False
+
def resize_mock(*args):
- self.resize_called = True
+ self.resize_called = True
self.stubs.Set(nova.compute.api.API, 'resize', resize_mock)
@@ -445,7 +447,7 @@ class ServersTest(unittest.TestCase):
req = self.webreq('/1/action', 'POST', dict(resize=dict(flavorId=3)))
def resize_mock(*args):
- raise Exception, 'hurr durr'
+ raise Exception('hurr durr')
self.stubs.Set(nova.compute.api.API, 'resize', resize_mock)
@@ -456,10 +458,11 @@ class ServersTest(unittest.TestCase):
req = self.webreq('/1/action', 'POST', dict(confirmResize=None))
self.resize_called = False
+
def confirm_resize_mock(*args):
- self.resize_called = True
+ self.resize_called = True
- self.stubs.Set(nova.compute.api.API, 'confirm_resize',
+ self.stubs.Set(nova.compute.api.API, 'confirm_resize',
confirm_resize_mock)
res = req.get_response(fakes.wsgi_app())
@@ -470,9 +473,9 @@ class ServersTest(unittest.TestCase):
req = self.webreq('/1/action', 'POST', dict(confirmResize=None))
def confirm_resize_mock(*args):
- raise Exception, 'hurr durr'
+ raise Exception('hurr durr')
- self.stubs.Set(nova.compute.api.API, 'confirm_resize',
+ self.stubs.Set(nova.compute.api.API, 'confirm_resize',
confirm_resize_mock)
res = req.get_response(fakes.wsgi_app())
@@ -482,10 +485,11 @@ class ServersTest(unittest.TestCase):
req = self.webreq('/1/action', 'POST', dict(revertResize=None))
self.resize_called = False
+
def revert_resize_mock(*args):
self.resize_called = True
- self.stubs.Set(nova.compute.api.API, 'revert_resize',
+ self.stubs.Set(nova.compute.api.API, 'revert_resize',
revert_resize_mock)
res = req.get_response(fakes.wsgi_app())
@@ -496,9 +500,9 @@ class ServersTest(unittest.TestCase):
req = self.webreq('/1/action', 'POST', dict(revertResize=None))
def revert_resize_mock(*args):
- raise Exception, 'hurr durr'
+ raise Exception('hurr durr')
- self.stubs.Set(nova.compute.api.API, 'revert_resize',
+ self.stubs.Set(nova.compute.api.API, 'revert_resize',
revert_resize_mock)
res = req.get_response(fakes.wsgi_app())
diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py
index 3f2e64c87..5fd1ddaec 100644
--- a/nova/tests/test_compute.py
+++ b/nova/tests/test_compute.py
@@ -265,8 +265,7 @@ class ComputeTestCase(test.TestCase):
instance_id = self._create_instance()
context = self.context.elevated()
self.compute.run_instance(self.context, instance_id)
- db.instance_update(self.context, instance_id, {'host':'foo'})
-
+ db.instance_update(self.context, instance_id, {'host': 'foo'})
self.compute.prep_resize(context, instance_id)
migration_ref = db.migration_get_by_instance_and_status(context,
instance_id, 'pre-migrating')
@@ -279,7 +278,6 @@ class ComputeTestCase(test.TestCase):
the same host"""
instance_id = self._create_instance()
self.compute.run_instance(self.context, instance_id)
- self.assertRaises(exception.Error, self.compute.prep_resize,
+ self.assertRaises(exception.Error, self.compute.prep_resize,
self.context, instance_id)
-
self.compute.terminate_instance(self.context, instance_id)
diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py
index 3cbc01e5c..cb9b6620a 100644
--- a/nova/tests/test_xenapi.py
+++ b/nova/tests/test_xenapi.py
@@ -337,6 +337,7 @@ class XenAPIDiffieHellmanTestCase(test.TestCase):
def tearDown(self):
super(XenAPIDiffieHellmanTestCase, self).tearDown()
+
class XenAPIMigrateInstance(test.TestCase):
"""
Unit test for verifying migration-related actions
diff --git a/nova/tests/xenapi/stubs.py b/nova/tests/xenapi/stubs.py
index 054fc434b..303c37eb9 100644
--- a/nova/tests/xenapi/stubs.py
+++ b/nova/tests/xenapi/stubs.py
@@ -171,8 +171,8 @@ class FakeSessionForVMTests(fake.SessionBase):
def VM_destroy(self, session_ref, vm_ref):
fake.destroy_vm(vm_ref)
-
-
+
+
class FakeSessionForVolumeTests(fake.SessionBase):
""" Stubs out a XenAPISession for Volume tests """
def __init__(self, uri):
@@ -207,6 +207,7 @@ class FakeSessionForVolumeFailedTests(FakeSessionForVolumeTests):
def SR_forget(self, _1, ref):
pass
+
class FakeSessionForMigrationTests(fake.SessionBase):
""" Stubs out a XenAPISession for Migration tests """
def __init__(self, uri):
@@ -232,8 +233,8 @@ def stub_out_migration_methods(stubs):
vdi_ref = fake.create_vdi(name_label='derp', read_only=False,
sr_ref='herp', sharable=False)
vdi_rec = session.get_xenapi().VDI.get_record(vdi_ref)
- return vdi_ref, {'uuid': vdi_rec['uuid']}
-
+ return vdi_ref, {'uuid': vdi_rec['uuid'], }
+
def fake_shutdown(self, inst, vm, method='clean'):
pass
@@ -244,5 +245,5 @@ def stub_out_migration_methods(stubs):
stubs.Set(vm_utils.VMHelper, 'scan_sr', fake_scan_sr)
stubs.Set(vmops.VMOps, '_get_snapshot', fake_get_snapshot)
stubs.Set(vm_utils.VMHelper, 'get_vdi_for_vm_safely', fake_get_vdi)
- stubs.Set(xenapi_conn.XenAPISession, 'wait_for_task', lambda x,y,z: None)
+ stubs.Set(xenapi_conn.XenAPISession, 'wait_for_task', lambda x, y, z: None)
stubs.Set(vmops.VMOps, '_shutdown', fake_shutdown)
diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py
index 91e7339b1..436c88023 100644
--- a/nova/virt/xenapi/vm_utils.py
+++ b/nova/virt/xenapi/vm_utils.py
@@ -256,21 +256,18 @@ class VMHelper(HelperBase):
else:
num_vdis = len(vdi_refs)
if num_vdis != 1:
- raise Exception(_("Unexpected number of VDIs (%(num_vdis)s) found"
+ raise Exception(
+ _("Unexpected number of VDIs (%(num_vdis)s) found"
" for VM %(vm_ref)s") % locals())
vdi_ref = vdi_refs[0]
vdi_rec = session.get_xenapi().VDI.get_record(vdi_ref)
return vdi_ref, vdi_rec
-
-
-
@classmethod
def create_snapshot(cls, session, instance_id, vm_ref, label):
""" Creates Snapshot (Template) VM, Snapshot VBD, Snapshot VDI,
- Snapshot VHD
- """
+ Snapshot VHD """
#TODO(sirp): Add quiesce and VSS locking support when Windows support
# is added
LOG.debug(_("Snapshotting VM %(vm_ref)s with label '%(label)s'...")
@@ -284,7 +281,7 @@ class VMHelper(HelperBase):
task = session.call_xenapi('Async.VM.snapshot', vm_ref, label)
template_vm_ref = session.wait_for_task(instance_id, task)
- template_vdi_rec = cls.get_vdi_for_vm_safely(session,
+ template_vdi_rec = cls.get_vdi_for_vm_safely(session,
template_vm_ref)[1]
template_vdi_uuid = template_vdi_rec["uuid"]
@@ -299,7 +296,7 @@ class VMHelper(HelperBase):
@classmethod
def get_sr(cls, session, sr_label='slices'):
- """ Finds the SR named by the given name label and returns
+ """ Finds the SR named by the given name label and returns
the UUID """
return session.call_xenapi('SR.get_by_name_label', sr_label)[0]
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 552c2ddd1..d457f2e3f 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -345,7 +345,7 @@ class VMOps(object):
'new_base_copy_uuid': new_base_copy_uuid,
'new_cow_uuid': new_cow_uuid, }
- task = self._session.async_call_plugin('migration',
+ task = self._session.async_call_plugin('migration',
'move_vhds_into_sr', {'params': pickle.dumps(params)})
self._session.wait_for_task(instance.id, task)
@@ -469,7 +469,8 @@ class VMOps(object):
vm = VMHelper.lookup(self._session, instance.name)
return self._destroy(instance, vm, shutdown=True)
- def _destroy(self, instance, vm, shutdown=True, destroy_kernel_ramdisk=True):
+ def _destroy(self, instance, vm, shutdown=True,
+ destroy_kernel_ramdisk=True):
"""
Destroys VM instance by performing:
diff --git a/nova/virt/xenapi_conn.py b/nova/virt/xenapi_conn.py
index be018b47f..e1c5dcc7c 100644
--- a/nova/virt/xenapi_conn.py
+++ b/nova/virt/xenapi_conn.py
@@ -192,7 +192,7 @@ class XenAPIConnection(object):
def attach_disk(self, instance, disk_info):
"""Moves the copied VDIs into the SR"""
return self._vmops.attach_disk(instance, disk_info)
-
+
def suspend(self, instance, callback):
"""suspend the specified instance"""
self._vmops.suspend(instance, callback)
@@ -220,9 +220,9 @@ class XenAPIConnection(object):
def get_ajax_console(self, instance):
"""Return link to instance's ajax console"""
return self._vmops.get_ajax_console(instance)
-
+
def get_host_ip_addr(self):
- xs_url = urlparse.urlparse(FLAGS.xenapi_connection_url)
+ xs_url = urlparse.urlparse(FLAGS.xenapi_connection_url)
return xs_url.netloc
def attach_volume(self, instance_name, device_path, mountpoint):