Skip to content

Commit

Permalink
Automatic confirmation of resizes on libvirt
Browse files Browse the repository at this point in the history
fixes bug #911217

Change-Id: I135002a3010416e8c63b3dce303f4e4d47c7c6d3
  • Loading branch information
Philip Knouff committed Feb 10, 2012
1 parent 6fb0adc commit b3a88b5
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
10 changes: 9 additions & 1 deletion nova/virt/driver.py
Expand Up @@ -22,9 +22,17 @@
types that support that contract
"""

from nova import context as nova_context
from nova import db
from nova import flags
from nova import log as logging
from nova.compute import power_state


LOG = logging.getLogger("nova.virt.driver")
FLAGS = flags.FLAGS


class InstanceInfo(object):
def __init__(self, name, state):
self.name = name
Expand Down Expand Up @@ -500,7 +508,7 @@ def poll_rescued_instances(self, timeout):
raise NotImplementedError()

def poll_unconfirmed_resizes(self, resize_confirm_window):
"""Poll for unconfirmed resizes"""
"""Poll for unconfirmed resizes."""
# TODO(Vek): Need to pass context in for access to auth_token
raise NotImplementedError()

Expand Down
20 changes: 19 additions & 1 deletion nova/virt/libvirt/connection.py
Expand Up @@ -688,7 +688,25 @@ def poll_rescued_instances(self, timeout):

@exception.wrap_exception()
def poll_unconfirmed_resizes(self, resize_confirm_window):
pass
"""Poll for unconfirmed resizes.
Look for any unconfirmed resizes that are older than
`resize_confirm_window` and automatically confirm them.
"""
ctxt = nova_context.get_admin_context()
migrations = db.migration_get_all_unconfirmed(ctxt,
resize_confirm_window)

migrations_info = dict(migration_count=len(migrations),
confirm_window=FLAGS.resize_confirm_window)

if migrations_info["migration_count"] > 0:
LOG.info(_("Found %(migration_count)d unconfirmed migrations "
"older than %(confirm_window)d seconds") % migrations_info)

for migration in migrations:
LOG.info(_("Automatically confirming migration %d"), migration.id)
self.compute_api.confirm_resize(ctxt, migration.instance_uuid)

# NOTE(ilyaalekseyev): Implementation like in multinics
# for xenapi(tr3buchet)
Expand Down

0 comments on commit b3a88b5

Please sign in to comment.