Commit eee1fa2d authored by Iustin Pop's avatar Iustin Pop

Watcher: do not activate disks for started instances

Currently the watcher runs first the instance startup and then the
boot-id method of disk reactivation. However, irrelevant of the fact
that a node has rebooted or not, if we just started an instance, there's
no need for its disks to be activated again, since the start instance
has done that (if it is at all possible).

The patch modifies the watcher to remember all started instances and not
run activate-disks for them.

Reviewed-by: ultrotter
parent 0c0f834d
......@@ -344,6 +344,7 @@ class Watcher(object):
self.instances = GetInstanceList()
self.bootids = GetNodeBootIDs()
self.messages = []
self.started_instances = set()
def Run(self):
notepad = WatcherState()
......@@ -373,6 +374,10 @@ class Watcher(object):
" non-autostart instance '%s'." %
instance.name)))
continue
if instance.name in self.started_instances:
# we already tried to start the instance, which should have
# activated its drives (if they can be at all)
continue
try:
self.messages.append(Message(NOTICE, ("Activating disks for %s." %
instance.name)))
......@@ -411,6 +416,7 @@ class Watcher(object):
self.messages.append(Message(NOTICE, ("Restarting %s%s." %
(instance.name, last))))
instance.Restart()
self.started_instances.add(instance.name)
except Error, x:
self.messages.append(Message(ERROR, str(x)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment