Reports enabled-root for restored instance
Reasons: - This condition got missed in one of the earlier patchsets. - When a root-enabled instance's backup is restored, it does not reports to service database that root was enabled for restored instance. Changes: - report_root method added in conductor. - Reports, if root is enabled for restored instance, through conductor. Change-Id: I186398e6651421cecb7169e4eec1d6a8a166ee97 Closes-Bug: #1277745
This commit is contained in:
parent
71446a6f17
commit
b0b92bf171
@ -51,3 +51,10 @@ class API(proxy.RpcProxy):
|
||||
backup_id=backup_id,
|
||||
sent=sent,
|
||||
**backup_fields))
|
||||
|
||||
def report_root(self, instance_id, user):
|
||||
LOG.debug("Making async call to cast report_root for instance: %s"
|
||||
% instance_id)
|
||||
self.cast(self.context, self.make_msg("report_root",
|
||||
instance_id=instance_id,
|
||||
user=user))
|
||||
|
@ -17,6 +17,7 @@ from trove.common import cfg
|
||||
from trove.common import exception
|
||||
from trove.common.instance import ServiceStatus
|
||||
from trove.conductor.models import LastSeen
|
||||
from trove.extensions.mysql import models as mysql_models
|
||||
from trove.instance import models as t_models
|
||||
from trove.openstack.common import log as logging
|
||||
from trove.openstack.common import periodic_task
|
||||
@ -128,3 +129,6 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
LOG.debug("Backup %(key)s: %(value)s" % fields)
|
||||
setattr(backup, k, v)
|
||||
backup.save()
|
||||
|
||||
def report_root(self, context, instance_id, user):
|
||||
mysql_models.RootHistory.create(context, instance_id, user)
|
||||
|
@ -138,6 +138,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
MySqlAdmin().enable_root(root_password)
|
||||
elif enable_root_on_restore:
|
||||
app.secure_root(secure_remote_root=False)
|
||||
MySqlAppStatus.get().report_root('root')
|
||||
else:
|
||||
app.secure_root(secure_remote_root=True)
|
||||
|
||||
|
@ -154,3 +154,12 @@ class BaseDbStatus(object):
|
||||
return True
|
||||
LOG.error("Time out while waiting for DB status to change!")
|
||||
return False
|
||||
|
||||
def report_root(self, user):
|
||||
"""Use conductor to update the root-enable status."""
|
||||
LOG.debug("Casting report_root message to conductor.")
|
||||
ctxt = context.TroveContext(user=CONF.nova_proxy_admin_user,
|
||||
auth_token=CONF.nova_proxy_admin_pass)
|
||||
|
||||
conductor_api.API(ctxt).report_root(CONF.guest_id, user)
|
||||
LOG.debug("Successfully cast report_root.")
|
||||
|
Loading…
x
Reference in New Issue
Block a user