Muehlenhoff has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/236009

Change subject: Implement list-server-groups command
......................................................................

Implement list-server-groups command

Implement list-server-groups command to show which server groups still
need an update.

Also fixes restart of salt-master in postinst

Change-Id: Ie403603b551af9dbda392954723474927e629e36
---
M debian/changelog
M debian/debdeploy-master.postinst
M docs/readme.txt
M master/debdeploy
4 files changed, 59 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/debs/debdeploy 
refs/changes/09/236009/1

diff --git a/debian/changelog b/debian/changelog
index 7784bd1..0a9e091 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+debdeploy (0.0.4-1) jessie-wikimedia; urgency=medium
+
+  * Implement list-server-groups command
+  * Fix restart of salt-master
+
+ -- Moritz Muehlenhoff <mmuhlenh...@wikimedia.org>  Fri, 04 Sep 2015 13:37:23 
+0200
+
 debdeploy (0.0.3-1) jessie-wikimedia; urgency=medium
 
   * Remove some currently unused imports
diff --git a/debian/debdeploy-master.postinst b/debian/debdeploy-master.postinst
index fbebfc9..a8c6216 100644
--- a/debian/debdeploy-master.postinst
+++ b/debian/debdeploy-master.postinst
@@ -5,7 +5,7 @@
 then
     systemctl restart salt-master.service
 else
-    service restart salt-master
+    service salt-master restart
 fi
 
 #DEBHELPER#
diff --git a/docs/readme.txt b/docs/readme.txt
index eec1418..6add055 100644
--- a/docs/readme.txt
+++ b/docs/readme.txt
@@ -127,6 +127,15 @@
 
 debdeploy status-rollback -u elinks.yaml -s testsystem
 
+If you have an updatespec which applies to more than one group of
+servers (which will usually be the case for generic systems libs
+etc), you can check which server groups haven't had the update
+applied:
+
+debdeploy list-server-groups -u dpkg.yaml
+
+
+
 
 Restart detection / handling
 
diff --git a/master/debdeploy b/master/debdeploy
index 0cd8ee6..5912645 100755
--- a/master/debdeploy
+++ b/master/debdeploy
@@ -274,6 +274,40 @@
             print proc, "wasn't running on on", c_stopped[proc], "out of", c, 
"hosts."
 
 
+def list_server_groups(update=None):
+    '''
+    List all available server groups
+
+    update      : If an update is specified, it is displayed whether an update
+                  has already been deployed for that group.
+    '''
+
+    if not update:
+        for servergroup in sorted(conf.server_groups):
+            print servergroup
+    else:
+        done_list = []
+        missing_list = []
+
+        for servergroup in conf.server_groups:
+            job_ran = False
+            for grain in conf.server_groups[servergroup]:
+                if joblogdb.does_job_exist(update, grain):
+                    job_ran = True
+            if job_ran:
+                done_list.append(servergroup)
+            else:
+                missing_list.append(servergroup)
+
+        print update, "has been applied to these server groups:"
+        for i in sorted(done_list):
+            print i
+
+        print
+        print update, "hasn't been applied to these server groups:"
+        for i in sorted(missing_list):
+            print i
+
 def rollback(grains, update_file):
     '''
     Trigger process restarts for a set of servers
@@ -319,7 +353,8 @@
   status-deploy        : Query the status of a software deployment, requires 
--update and --servers\n \
   rollback             : Rollback a software deployment\n \
   status-rollback      : Query the status of a software deployment rollback\n \
-  list-server-groups   : Display a list of all defined server groups \n \
+  list-server-groups   : Display a list of all defined server groups. If an 
update file is listed \n \
+                         in addition, it shows whether an update has been 
applied for that group. \n \
   check-missing        : Display a list of all servers which don't have an 
update installed \n \
   pkgdb-source         : Re-read the package status of a given host into the 
package database")
 
@@ -366,6 +401,12 @@
 elif command == "rollback":
     rollback(conf.server_groups[opt.serverlist], opt.updatefile)
 
+elif command == "list-server-groups":
+    if opt.updatefile:
+        list_server_groups(opt.updatefile)
+    else:
+        list_server_groups()
+
 sys.exit(0)
 
 

-- 
To view, visit https://gerrit.wikimedia.org/r/236009
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie403603b551af9dbda392954723474927e629e36
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/debdeploy
Gerrit-Branch: master
Gerrit-Owner: Muehlenhoff <mmuhlenh...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to