[Git][NTPsec/ntpsec][21C11-stat-quads] ntpq: Add NTP_PACKETS enum and (ab)use it to indicate 5 column display.

James Browning (@jamesb_fe80) gitlab at mg.gitlab.com
Sun Apr 11 17:47:43 UTC 2021



James Browning pushed to branch 21C11-stat-quads at NTPsec / ntpsec


Commits:
010cbd88 by James Browning at 2021-04-11T10:46:51-07:00
ntpq: Add NTP_PACKETS enum and (ab)use it to indicate 5 column display.

- - - - -


1 changed file:

- ntpclients/ntpq.py


Changes:

=====================================
ntpclients/ntpq.py
=====================================
@@ -54,7 +54,7 @@ NTP_MODE = 0x8    # peer mode
 NTP_2BIT = 0x9    # leap bits
 NTP_FLOAT = 0xa   # Float value
 NTP_UPTIME = 0xb  # uptime in days H:M:S (no frac)
-
+NTP_PACKETS = 0xc # packet counts
 
 class Ntpq(cmd.Cmd):
     "ntpq command interpreter"
@@ -429,6 +429,7 @@ usage: timeout [ msec ]
             self.say(self.session.response)
             return
         try:
+            runs, runl = -1, -1
             for (name, legend, fmt) in variables:
                 if name not in queried:
                     continue
@@ -445,16 +446,30 @@ usage: timeout [ msec ]
                         display2 = ntp.util.unitifyvar(rawvalue2, name)
                     else:
                         display2 = value2
-                    self.say("%13s \t%9s\t%9s\n" %
+                    self.say("%13s   %12s %12s\n" %
                              (legend, display, display2))
+                elif fmt == NTP_PACKETS:
+                    dump = [legend, value, value2]
+                    if isinstance(value, (int, float)):
+                        dump += ['%dp/s' % int(value / runs)]
+                    else:
+                        dump += ['???']
+                    if isinstance(value2, (int, float)):
+                        dump += ['%dp/s' % int(value2 / runs)]
+                    else:
+                        dump += ['???']
+
+                    self.say("%13s   %12s %12s %12s %12s\n" % tuple(dump))
                 elif fmt == NTP_UPTIME:
-                    self.say("%13s  %s\t%s\n" % (legend,
-                             value if not isinstance(value, int) else
-                                  ntp.util.prettyuptime(value),
-                             value2 if not isinstance(value2, int) else
-                                  ntp.util.prettyuptime(value2)))
+                    runs = value if isinstance(value, (int, float)) else -1
+                    runl = value2 if isinstance(value2, (int, float)) else -1
+                    self.say("%13s   %12s %12s\n" % (legend,
+                             runs if runs == -1 else
+                                  ntp.util.prettyuptime(runs),
+                             runl if runl == -1 else
+                                  ntp.util.prettyuptime(runl)))
                 else:
-                    self.warn("unexpected vc type %s for %s, value %s"
+                    self.warn("unexpected vc type %s for %s, value %s %s    "
                               % (fmt, name, value, value2))
         except KeyboardInterrupt:
             self.warn("display interrupted")
@@ -522,7 +537,7 @@ usage: timeout [ msec ]
                         displayvalue = ntp.util.unitifyvar(rawvalue, name)
                     else:
                         displayvalue = value
-                    self.say("%s  %s\n" % (legend, displayvalue))
+                    self.say("%13s   %12s\n" % (legend, displayvalue))
                 elif fmt == NTP_LFP:
                     self.say("%s  %s\n" % (legend, ntp.ntpc.prettydate(value)))
                 elif fmt == NTP_2BIT:
@@ -539,7 +554,7 @@ usage: timeout [ msec ]
                     except IndexError:
                         self.say("%s  %s%d\n" % (legend, "mode#", value))
                 elif fmt == NTP_UPTIME:
-                    self.say("%13s  %s\n" % (legend, ntp.util.prettyuptime(
+                    self.say("%13s   %12s\n" % (legend, ntp.util.prettyuptime(
                         value)))
                 else:
                     self.warn("unexpected vc type %s for %s, value %s"
@@ -1537,16 +1552,16 @@ usage: kerninfo
         )
         sysstats2 = (
             ("ss_reset", "sysstats reset:       ", NTP_UPTIME),
-            ("ss_received", "packets received:     ", NTP_INT),
-            ("ss_thisver", "current version:      ", NTP_INT),
-            ("ss_oldver", "older version:        ", NTP_INT),
-            ("ss_badformat", "bad length or format: ", NTP_INT),
-            ("ss_badauth", "authentication failed:", NTP_INT),
-            ("ss_declined", "declined:             ", NTP_INT),
-            ("ss_restricted", "restricted:           ", NTP_INT),
-            ("ss_limited", "rate limited:         ", NTP_INT),
-            ("ss_kodsent", "KoD responses:        ", NTP_INT),
-            ("ss_processed", "processed for time:   ", NTP_INT),
+            ("ss_received", "packets received:     ", NTP_PACKETS),
+            ("ss_thisver", "current version:      ", NTP_PACKETS),
+            ("ss_oldver", "older version:        ", NTP_PACKETS),
+            ("ss_badformat", "bad length or format: ", NTP_PACKETS),
+            ("ss_badauth", "authentication failed:", NTP_PACKETS),
+            ("ss_declined", "declined:             ", NTP_PACKETS),
+            ("ss_restricted", "restricted:           ", NTP_PACKETS),
+            ("ss_limited", "rate limited:         ", NTP_PACKETS),
+            ("ss_kodsent", "KoD responses:        ", NTP_PACKETS),
+            ("ss_processed", "processed for time:   ", NTP_PACKETS),
         )
         self.collect_display(associd=0, variables=sysstats, decodestatus=False)
         self.collect_display2(variables=sysstats2)



View it on GitLab: https://gitlab.com/NTPsec/ntpsec/-/commit/010cbd88e782a8e57625ff9bbc4e40242db95fdc

-- 
View it on GitLab: https://gitlab.com/NTPsec/ntpsec/-/commit/010cbd88e782a8e57625ff9bbc4e40242db95fdc
You're receiving this email because of your account on gitlab.com.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ntpsec.org/pipermail/vc/attachments/20210411/6c12b259/attachment-0001.htm>


More information about the vc mailing list