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
self.instances = GetInstanceList()
self.bootids = GetNodeBootIDs()
self.messages = []
+ self.started_instances = set()
def Run(self):
notepad = WatcherState()
" 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)))
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)))