|
@@ -950,8 +950,29 @@ class DefaultControllerPlugin(ControllerPluginBase):
|
|
raise e
|
|
raise e
|
|
|
|
|
|
added, changed, removed = result[0]
|
|
added, changed, removed = result[0]
|
|
|
|
+ valid_gnames = set(arg.strip().split())
|
|
|
|
+
|
|
|
|
+ # If all is specified treat it as if nothing was specified.
|
|
|
|
+ if "all" in valid_gnames:
|
|
|
|
+ valid_gnames = set()
|
|
|
|
+
|
|
|
|
+ # If any gnames are specified we need to verify that they are
|
|
|
|
+ # valid in order to print a useful error message.
|
|
|
|
+ if valid_gnames:
|
|
|
|
+ groups = set()
|
|
|
|
+ for info in supervisor.getAllProcessInfo():
|
|
|
|
+ groups.add(info['group'])
|
|
|
|
+ # New gnames would not currently exist in this set so
|
|
|
|
+ # add those as well.
|
|
|
|
+ groups.update(added)
|
|
|
|
+
|
|
|
|
+ for gname in valid_gnames:
|
|
|
|
+ if gname not in groups:
|
|
|
|
+ self.ctl.output('ERROR: no such group: %s' % gname)
|
|
|
|
|
|
for gname in removed:
|
|
for gname in removed:
|
|
|
|
+ if valid_gnames and gname not in valid_gnames:
|
|
|
|
+ continue
|
|
results = supervisor.stopProcessGroup(gname)
|
|
results = supervisor.stopProcessGroup(gname)
|
|
log(gname, "stopped")
|
|
log(gname, "stopped")
|
|
|
|
|
|
@@ -964,6 +985,8 @@ class DefaultControllerPlugin(ControllerPluginBase):
|
|
log(gname, "removed process group")
|
|
log(gname, "removed process group")
|
|
|
|
|
|
for gname in changed:
|
|
for gname in changed:
|
|
|
|
+ if valid_gnames and gname not in valid_gnames:
|
|
|
|
+ continue
|
|
results = supervisor.stopProcessGroup(gname)
|
|
results = supervisor.stopProcessGroup(gname)
|
|
log(gname, "stopped")
|
|
log(gname, "stopped")
|
|
|
|
|
|
@@ -972,11 +995,15 @@ class DefaultControllerPlugin(ControllerPluginBase):
|
|
log(gname, "updated process group")
|
|
log(gname, "updated process group")
|
|
|
|
|
|
for gname in added:
|
|
for gname in added:
|
|
|
|
+ if valid_gnames and gname not in valid_gnames:
|
|
|
|
+ continue
|
|
supervisor.addProcessGroup(gname)
|
|
supervisor.addProcessGroup(gname)
|
|
log(gname, "added process group")
|
|
log(gname, "added process group")
|
|
|
|
|
|
def help_update(self):
|
|
def help_update(self):
|
|
- self.ctl.output("update\t\tReload config and add/remove as necessary")
|
|
|
|
|
|
+ self.ctl.output("update\t\t\tReload config and add/remove as necessary")
|
|
|
|
+ self.ctl.output("update all\t\tReload config and add/remove as necessary")
|
|
|
|
+ self.ctl.output("update <gname> [...]\tUpdate specific groups")
|
|
|
|
|
|
def _clearresult(self, result):
|
|
def _clearresult(self, result):
|
|
name = result['name']
|
|
name = result['name']
|