Author: marck (doc committer)
Date: Fri Jul  5 08:16:40 2013
New Revision: 252776
URL: http://svnweb.freebsd.org/changeset/base/252776

Log:
  Finish MFC of r248291,249741:
  
  Change 'status' command to produce one-line easy-parseable output.
  
  Approved by:  trociny

Modified:
  stable/9/UPDATING
  stable/9/sbin/hastctl/hastctl.8
  stable/9/sbin/hastctl/hastctl.c
Directory Properties:
  stable/9/sbin/hastctl/   (props changed)

Modified: stable/9/UPDATING
==============================================================================
--- stable/9/UPDATING   Fri Jul  5 06:52:07 2013        (r252775)
+++ stable/9/UPDATING   Fri Jul  5 08:16:40 2013        (r252776)
@@ -11,6 +11,10 @@ handbook:
 Items affecting the ports and packages system can be found in
 /usr/ports/UPDATING.  Please read that file before running portupgrade.
 
+20130705:
+       hastctl(8)'s `status' command output changed to terse one-liner format.
+       Scripts using this should switch to `list' command or be rewritten.
+
 20130618:
         Fix a bug that allowed a tracing process (e.g. gdb) to write
         to a memory-mapped file in the traced process's address space

Modified: stable/9/sbin/hastctl/hastctl.8
==============================================================================
--- stable/9/sbin/hastctl/hastctl.8     Fri Jul  5 06:52:07 2013        
(r252775)
+++ stable/9/sbin/hastctl/hastctl.8     Fri Jul  5 08:16:40 2013        
(r252776)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 24, 2013
+.Dd July 5, 2013
 .Dt HASTCTL 8
 .Os
 .Sh NAME
@@ -145,18 +145,10 @@ GEOM provider
 will not be created on secondary node.
 .El
 .It Cm list
-.It Cm status
 Present verbose status of the configured resources.
-For now, list and status commands are equivalent.
-In the near future the output of 
-.Nm
-status command will change to more terse format.
-If you use `
-.Nm
-status' for parsing in your scripts, switch to `
-.Nm
-list'.
-
+.It Cm status
+Present terse (and more easy machine-parseable) status of the configured
+resources.
 .It Cm dump
 Dump metadata stored on local component for the configured resources.
 .El

Modified: stable/9/sbin/hastctl/hastctl.c
==============================================================================
--- stable/9/sbin/hastctl/hastctl.c     Fri Jul  5 06:52:07 2013        
(r252775)
+++ stable/9/sbin/hastctl/hastctl.c     Fri Jul  5 08:16:40 2013        
(r252776)
@@ -291,7 +291,7 @@ control_set_role(struct nv *nv, const ch
 }
 
 static int
-control_status(struct nv *nv)
+control_list(struct nv *nv)
 {
        unsigned int ii;
        const char *str;
@@ -355,6 +355,43 @@ control_status(struct nv *nv)
        return (ret);
 }
 
+static int
+control_status(struct nv *nv)
+{
+       unsigned int ii;
+       const char *str;
+       int error, hprinted, ret;
+
+       hprinted = 0;
+       ret = 0;
+
+       for (ii = 0; ; ii++) {
+               str = nv_get_string(nv, "resource%u", ii);
+               if (str == NULL)
+                       break;
+               if (!hprinted) {
+                       printf("Name\tStatus\t Role\t\tComponents\n");
+                       hprinted = 1;
+               }
+               printf("%s\t", str);
+               error = nv_get_int16(nv, "error%u", ii);
+               if (error != 0) {
+                       if (ret == 0)
+                               ret = error;
+                       printf("ERR%d\n", error);
+                       continue;
+               }
+               str = nv_get_string(nv, "status%u", ii);
+               printf("%-9s", (str != NULL) ? str : "-");
+               printf("%-15s", nv_get_string(nv, "role%u", ii));
+               printf("%s\t",
+                   nv_get_string(nv, "localpath%u", ii));
+               printf("%s\n",
+                   nv_get_string(nv, "remoteaddr%u", ii));
+       }
+       return (ret);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -523,6 +560,8 @@ main(int argc, char *argv[])
                error = control_set_role(nv, argv[0]);
                break;
        case CMD_LIST:
+               error = control_list(nv);
+               break;
        case CMD_STATUS:
                error = control_status(nv);
                break;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to