]> andersk Git - moira.git/blobdiff - clients/moira/dcmmaint.c
fixed include files
[moira.git] / clients / moira / dcmmaint.c
index 0fbbd8f1d7ca4d52fa051bf19013dc770eef6bdc..24ee5e11ba787f7794c611c1c223c4deae1d641e 100644 (file)
@@ -1,50 +1,53 @@
 /* $Header$
+ *
+ * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
  */
 
 #include <stdio.h>
 #include <strings.h>
 #include <ctype.h>
 #include <sms.h>
+#include <sms_app.h>
 #include <menu.h>
 
 #include "mit-copyright.h"
 #include "defs.h"
 #include "f_defs.h"
 #include "globals.h"
-#include "infodefs.h"
-
-char *whoami;
 
+extern char *whoami;
 static char buf[BUFSIZ];
-char *unparse_interval(), *canonicalize_hostname(), *pgets(), *strsave();
+char *unparse_interval(), *canonicalize_hostname();
 char *atot();
 
 #define DCM_ENABLE_FLAG 0
 
-genable(argc, argv, hint)
+genable(argc, argv, info)
 int argc;
 char **argv;
-int *hint;
+char **info;
 {
-    *hint = atoi(argv[0]);
+    info[1] = strsave(argv[0]);
     return(SMS_CONT);
 }
 
-enabledcm(argc, argv)
+EnableDcm(argc, argv)
 int argc;
 char **argv;
 {
-    char *qargv[2];
-    int value, status;
+    int status;
+    char *info[3];
 
-    qargv[0] = "dcm_enable";
-    if (status = sms_query("get_value", 1, qargv, genable, (char *)&value))
+    info[0] = "dcm_enable";
+    if (status = do_sms_query("get_value", 1, info, genable, info))
       com_err(whoami, status, " while getting value of dcm_enable");
-    sprintf(buf, "%d", value);
-    qargv[1] = pgets("Enable value", buf);
-    if (status = sms_query("update_value", 2, qargv, Scream, NULL))
+    GetValueFromUser("Enable value", &info[1]);
+    if (status = do_sms_query("update_value", 2, info, Scream, NULL))
       com_err(whoami, status, " while updating value of dcm_enable");
-    free(qargv[1]);
+    FreeAndClear(&info[0], FALSE);
+    FreeAndClear(&info[1], TRUE);
     return(DM_NORMAL);
 }
 
@@ -55,24 +58,27 @@ char **argv;
 {
     char tmp[64], *dfgen;
 
-    Put_message("Name       Type     Owner          Modified");
-    sprintf(tmp, "%s:%s", argv[11], argv[12]);
-    sprintf(buf, "%-10s %-8s %-14s by %s on %s with %s", argv[0], argv[6],
-           tmp, argv[14], argv[13], argv[15]);
+    Put_message("Name       Type     Owner       Modified");
+    sprintf(tmp, "%s:%s", argv[SVC_ACE_TYPE], argv[SVC_ACE_NAME]);
+    sprintf(buf, "%-10s %-8s %-11s by %s on %s with %s", argv[SVC_SERVICE],
+           argv[SVC_TYPE], tmp, argv[SVC_MODBY], argv[SVC_MODTIME],
+           argv[SVC_MODWITH]);
     Put_message(buf);
     sprintf(buf, "  Interval %s, Target:%s, Script:%s",
-           unparse_interval(atoi(argv[1])), argv[2], argv[3]);
+           unparse_interval(atoi(argv[SVC_INTERVAL])), argv[SVC_TARGET],
+           argv[SVC_SCRIPT]);
     Put_message(buf);
-    if (atoi(argv[9]))
-      sprintf(tmp, "Error %d: %s", atoi(argv[9]), argv[10]);
+    if (atoi(argv[SVC_HARDERROR]))
+      sprintf(tmp, "Error %d: %s", atoi(argv[SVC_HARDERROR]), argv[SVC_ERRMSG]);
     else
       strcpy(tmp, "No error");
-    dfgen = strsave(atot(argv[4]));
-    sprintf(buf, "  Generated %s; Last Checked %s", dfgen, atot(argv[5]));
+    dfgen = strsave(atot(argv[SVC_DFGEN]));
+    sprintf(buf, "  Generated %s; Last Checked %s", dfgen,
+           atot(argv[SVC_DFCHECK]));
     free(dfgen);
     Put_message(buf);
-    sprintf(buf, "  %s/%s/%s", atoi(argv[7]) ? "Enabled" : "Disabled",
-           atoi(argv[8]) ? "InProgress" : "Idle", tmp);
+    sprintf(buf, "  %s/%s/%s", atoi(argv[SVC_ENABLE]) ? "Enabled" : "Disabled",
+           atoi(argv[SVC_INPROGRESS]) ? "InProgress" : "Idle", tmp);
     Put_message(buf);
     Put_message("");
     return(SMS_CONT);
@@ -87,7 +93,7 @@ char **argv;
     int status;        
  
     qargv[0] = argv[1];
-    if (status = sms_query("get_server_info", 1, qargv, shserv, NULL))
+    if (status = do_sms_query("get_server_info", 1, qargv, shserv, NULL))
       com_err(whoami, status, " while getting server info");
     return(DM_NORMAL);
 }
@@ -106,54 +112,65 @@ addserv(argc, argv)
 int argc;
 char **argv;
 {
-    char *qargv[8], tmp[BUFSIZ];
     int status;
+    char *info[8];
 
-    qargv[0] = argv[1];
-    qargv[1] = pgets("Interval", "1440");
-    sprintf(tmp, "/tmp/%s.out", argv[1]);
-    qargv[2] = pgets("Target", tmp);
-    sprintf(tmp, "/u1/sms/bin/%s.sh", argv[1]);
-    qargv[3] = pgets("Script", tmp);
-    qargv[4] = pgets("Service type", "UNIQUE");
-    qargv[5] = pgets("Enable", "1");
-    qargv[6] = pgets("ACE type", "list");
-    qargv[7] = pgets("ACE name", "dbadmin");
-    if (status = sms_query("add_server_info", 8, qargv, Scream, NULL))
+    initserv(argv[1], info);
+    askserv(info);
+    if (status = do_sms_query("add_server_info", 8, info, Scream, NULL))
       com_err(whoami, status, " while updating server info");
+    FreeInfo(info);
     return(DM_NORMAL);
 }
 
+askserv(info)
+char **info;
+{
+    GetValueFromUser("Interval", &info[SC_INTERVAL]);
+    GetValueFromUser("Target", &info[SC_TARGET]);
+    GetValueFromUser("Script", &info[SC_SCRIPT]);
+    GetTypeFromUser("Service type", "service", &info[SC_TYPE]);
+    GetValueFromUser("Enable", &info[SC_ENABLE]);
+    GetTypeFromUser("ACE type", "ace_type", &info[SC_ACE_TYPE]);
+    if (strcasecmp("none", info[SC_ACE_TYPE]))
+      GetValueFromUser("Ace name", &info[SC_ACE_NAME]);
+}
+
 
 gserv(argc, argv, cargv)
 int argc;
 char **argv;
 char **cargv;
 {
-    cargv[0] = argv[0];
-    cargv[1] = argv[1];
-    cargv[2] = argv[2];
-    cargv[3] = argv[3];
-    cargv[4] = argv[6];
-    cargv[5] = argv[7];
-    cargv[6] = argv[11];
-    cargv[7] = argv[12];
+    cargv[SC_SERVICE] = strsave(argv[SVC_SERVICE]);
+    cargv[SC_INTERVAL] = strsave(argv[SVC_INTERVAL]);
+    cargv[SC_TARGET] = strsave(argv[SVC_TARGET]);
+    cargv[SC_SCRIPT] = strsave(argv[SVC_SCRIPT]);
+    cargv[SC_TYPE] = strsave(argv[SVC_TYPE]);
+    cargv[SC_ENABLE] = strsave(argv[SVC_ENABLE]);
+    cargv[SC_ACE_TYPE] = strsave(argv[SVC_ACE_TYPE]);
+    cargv[SC_ACE_NAME] = strsave(argv[SVC_ACE_NAME]);
+    cargv[SC_END] = NULL;
     return(SMS_CONT);
 }
 
-
-char *pgets(prompt, def)
-char *prompt;
-char *def;
+initserv(name, argv)
+char *name;
+char **argv;
 {
-    char ibuf[BUFSIZ], pbuf[BUFSIZ];
-
-    sprintf(pbuf, "%s [%s]: ", prompt, def);
-    Prompt_input(pbuf, ibuf, BUFSIZ);
-    if (!strlen(ibuf))
-      return(strsave(def));
-    else
-      return(strsave(ibuf));
+    char tmp[BUFSIZ];
+
+    argv[SC_SERVICE] = strsave(name);
+    argv[SC_INTERVAL] = strsave("1440");
+    sprintf(tmp, "/tmp/%s.out", name);
+    argv[SC_TARGET] = strsave(tmp);
+    sprintf(tmp, "/u1/sms/bin/%s.sh", name);
+    argv[SC_SCRIPT] = strsave(tmp);
+    argv[SC_TYPE] = strsave("UNIQUE");
+    argv[SC_ENABLE] = strsave("1");
+    argv[SC_ACE_TYPE] = strsave("LIST");
+    argv[SC_ACE_NAME] = strsave("dbadmin");
+    argv[SC_END] = NULL;
 }
 
 
@@ -161,22 +178,17 @@ updateserv(argc, argv)
 int argc;
 char **argv;
 {
-    char *qargv[8];
+    char *qargv[9];
     int status;
 
     qargv[0] = (char *)argv[1];
-    if (status = sms_query("get_server_info", 1, qargv,gserv,(char *)qargv)) {
+    if (status = do_sms_query("get_server_info", 1,
+                             qargv, gserv, (char *)qargv)) {
        com_err(whoami, status, " while getting server info");
        return(DM_NORMAL);
     }
-    qargv[1] = pgets("Interval", qargv[1]);
-    qargv[2] = pgets("Target", qargv[2]);
-    qargv[3] = pgets("Script", qargv[3]);
-    qargv[4] = pgets("Service type", qargv[4]);
-    qargv[5] = pgets("Enable", qargv[5]);
-    qargv[6] = pgets("ACE type", qargv[6]);
-    qargv[7] = pgets("ACE name", qargv[7]);
-    if (status = sms_query("update_server_info", 8, qargv, Scream, NULL))
+    askserv(qargv);
+    if (status = do_sms_query("update_server_info", 8, qargv, Scream, NULL))
       com_err(whoami, status, " while updating server info");
     return(DM_NORMAL);
 }
@@ -188,23 +200,24 @@ char **argv;
 {
     char tmp[64], *ltt;
 
-    sprintf(buf, "%s:%s  mod by %s on %s with %s", argv[1], argv[0],
-           argv[14], argv[13], argv[15]);
+    sprintf(buf, "%s:%s  mod by %s on %s with %s", argv[SH_MACHINE],
+           argv[SH_SERVICE], argv[SH_MODBY], argv[SH_MODTIME],
+           argv[SH_MODWITH]);
     Put_message(buf);
-    if (atoi(argv[6]))
-      sprintf(tmp, "Error %d: %s", atoi(argv[6]), argv[7]);
+    if (atoi(argv[SH_HOSTERROR]))
+      sprintf(tmp, "Error %d: %s", atoi(argv[SH_HOSTERROR]), argv[SH_ERRMSG]);
     else
       strcpy(tmp, "No error");
     sprintf(buf, "  %s/%s/%s/%s/%s",
-           atoi(argv[2]) ? "Enabled" : "Disabled",
-           atoi(argv[4]) ? "Success" : "Failure",
-           atoi(argv[5]) ? "InProgress" : "Idle",
-           atoi(argv[3]) ? "Override" : "Normal", tmp);
+           atoi(argv[SH_ENABLE]) ? "Enabled" : "Disabled",
+           atoi(argv[SH_SUCCESS]) ? "Success" : "Failure",
+           atoi(argv[SH_INPROGRESS]) ? "InProgress" : "Idle",
+           atoi(argv[SH_OVERRIDE]) ? "Override" : "Normal", tmp);
     Put_message(buf);
     Put_message("  Last Try             Last Success         Value1    Value2    Value3");
-    ltt = strsave(atot(argv[8]));
-    sprintf(buf, "  %-20s %-20s %-9d %-9d %s", ltt, atot(argv[9]),
-           atoi(argv[10]), atoi(argv[11]), argv[12]);
+    ltt = strsave(atot(argv[SH_LASTTRY]));
+    sprintf(buf, "  %-20s %-20s %-9d %-9d %s", ltt, atot(argv[SH_LASTSUCCESS]),
+           atoi(argv[SH_VALUE1]), atoi(argv[SH_VALUE2]), argv[SH_VALUE3]);
     free(ltt);
     Put_message(buf);
     Put_message("");
@@ -216,12 +229,12 @@ showhost(argc, argv)
 int argc;
 char **argv;
 {
-    char *qargv[1];
+    char *qargv[2];
     int status;
 
-    qargv[0] = argv[1];
-    qargv[1] = canonicalize_hostname(argv[2]);
-    if (status = sms_query("get_server_host_info", 2, qargv, shhost, NULL))
+    qargv[SHI_SERVICE] = argv[1];
+    qargv[SHI_MACHINE] = canonicalize_hostname(argv[2]);
+    if (status = do_sms_query("get_server_host_info", 2, qargv, shhost, NULL))
       com_err(whoami, status, " getting server/host info");
     return(DM_NORMAL);
 }
@@ -232,7 +245,7 @@ int argc;
 char  **argv;
 {
     int status;
-    if (status = sms_query("reset_server_error", 1, &argv[1], Scream, NULL))
+    if (status = do_sms_query("reset_server_error", 1, &argv[1], Scream, NULL))
       com_err(whoami, status, " while resetting server error");
     return(DM_NORMAL);
 }
@@ -251,7 +264,8 @@ char **argv;
     qargv[3] = "0";
     qargv[4] = "0";
     qargv[5] = "";
-    if (status = sms_query("set_server_internal_flags", 6, qargv, Scream, NULL))
+    if (status = do_sms_query("set_server_internal_flags", 6, qargv,
+                             Scream, NULL))
       com_err(whoami, status, " while resetting server error");
     return(DM_NORMAL);
 }
@@ -264,7 +278,8 @@ char  **argv;
     int status;
 
     argv[2] = canonicalize_hostname(argv[2]);
-    if (status = sms_query("reset_server_host_error",2, &argv[1], Scream, NULL))
+    if (status = do_sms_query("reset_server_host_error", 2, &argv[1],
+                             Scream, NULL))
       com_err(whoami, status, " while resetting server/host error");
     return(DM_NORMAL);
 }
@@ -286,7 +301,8 @@ char **argv;
     qargv[6] = "";
     qargv[7] = "0";
     qargv[8] = "0";
-    if (status = sms_query("set_server_host_internal", 9, qargv, Scream, NULL))
+    if (status = do_sms_query("set_server_host_internal", 9, qargv,
+                             Scream, NULL))
       com_err(whoami, status, " while resetting server/host error");
     return(DM_NORMAL);
 }
@@ -299,7 +315,8 @@ char  **argv;
     int status;
 
     argv[2] = canonicalize_hostname(argv[2]);
-    if (status = sms_query("set_server_host_override",2,&argv[1], Scream, NULL))
+    if (status = do_sms_query("set_server_host_override", 2, &argv[1],
+                             Scream, NULL))
       com_err(whoami, status, " while setting server/host override");
     return(DM_NORMAL);
 }
@@ -310,37 +327,58 @@ int argc;
 char **argv;
 char **cargv;
 {
-    cargv[0] = argv[0];
-    cargv[1] = argv[1];
-    cargv[2] = argv[2];
-    cargv[3] = argv[10];
-    cargv[4] = argv[11];
-    cargv[5] = argv[12];
+    cargv[SHI_SERVICE] = strsave(argv[SH_SERVICE]);
+    cargv[SHI_MACHINE] = strsave(argv[SH_MACHINE]);
+    cargv[SHI_ENABLE] = strsave(argv[SH_ENABLE]);
+    cargv[SHI_VALUE1] = strsave(argv[SH_VALUE1]);
+    cargv[SHI_VALUE2] = strsave(argv[SH_VALUE2]);
+    cargv[SHI_VALUE3] = strsave(argv[SH_VALUE3]);
+    cargv[SHI_END] = NULL;
     return(SMS_CONT);
 }
 
 
+inithost(info)
+char **info;
+{
+    info[SHI_MACHINE] = strsave(canonicalize_hostname(info[SH_MACHINE]));
+    info[SHI_ENABLE] = strsave("1");
+    info[SHI_VALUE1] = strsave("0");
+    info[SHI_VALUE2] = strsave("0");
+    info[SHI_VALUE3] = strsave("");
+    info[SHI_END] = NULL;
+}
+
+
+askhost(info)
+char **info;
+{
+    GetValueFromUser("Enable", &info[SHI_ENABLE]);
+    GetValueFromUser("Value 1", &info[SHI_VALUE1]);
+    GetValueFromUser("Value 2", &info[SHI_VALUE2]);
+    GetValueFromUser("Value 3", &info[SHI_VALUE3]);
+}
+
+
 updatehost(argc, argv)
 int argc;
 char **argv;
 {
-    char *qargv[6];
+    char *info[SHI_END+1];
     int status;
 
-    qargv[0] = (char *)argv[1];
-    qargv[1] = canonicalize_hostname(argv[2]);
-    if (status = sms_query("get_server_host_info", 2, qargv, ghost, 
-                          (char *)qargv)) {
+    info[SHI_SERVICE] = strsave(argv[1]);
+    info[SHI_MACHINE] = strsave(canonicalize_hostname(argv[2]));
+    if (status = do_sms_query("get_server_host_info", 2, info, ghost, 
+                             (char *)info)) {
        com_err(whoami, status, " while getting server/host info");
        return(DM_NORMAL);
     }
-    qargv[1] = canonicalize_hostname(argv[2]);
-    qargv[2] = pgets("Enable", qargv[2]);
-    qargv[3] = pgets("Value 1", qargv[3]);
-    qargv[4] = pgets("Value 2", qargv[4]);
-    qargv[5] = pgets("Value 3", qargv[5]);
-    if (status = sms_query("update_server_host_info", 6, qargv, Scream, NULL))
+    askhost(info);
+    if (status = do_sms_query("update_server_host_info", SHI_END, info,
+                             Scream, NULL))
       com_err(whoami, status, " while updating server/host info");
+    FreeInfo(info);
     return(DM_NORMAL);
 }
 
@@ -349,17 +387,16 @@ addhost(argc, argv)
 int argc;
 char **argv;
 {
-    char *qargv[6];
+    char *info[SHI_END+1];
     int status;
 
-    qargv[0] = argv[1];
-    qargv[1] = canonicalize_hostname(argv[2]);
-    qargv[2] = pgets("Enable", "1");
-    qargv[3] = pgets("Value 1", "0");
-    qargv[4] = pgets("Value 2", "0");
-    qargv[5] = pgets("Value 3", "");
-    if (status = sms_query("add_server_host_info", 6, qargv, Scream, NULL))
+    info[SHI_SERVICE] = strsave(argv[1]);
+    info[SHI_MACHINE] = strsave(canonicalize_hostname(argv[2]));
+    inithost(info);
+    askhost(info);
+    if (status = do_sms_query("add_server_host_info", 6, info, Scream, NULL))
       com_err(whoami, status, " while adding server/host info");
+    FreeInfo(info);
     return(DM_NORMAL);
 }
 
@@ -370,7 +407,7 @@ char **argv;
 {
     int status;
 
-    if (status = sms_query("delete_server_info", 1, &argv[1], Scream, NULL))
+    if (status = do_sms_query("delete_server_info", 1, &argv[1], Scream, NULL))
       com_err(whoami, status, " while deleting server info");
     return(DM_NORMAL);
 }
@@ -383,7 +420,8 @@ char **argv;
     int status;
 
     argv[2] = canonicalize_hostname(argv[2]);
-    if (status = sms_query("delete_server_host_info",2, &argv[1], Scream, NULL))
+    if (status = do_sms_query("delete_server_host_info", 2, &argv[1],
+                             Scream, NULL))
       com_err(whoami, status, " while deleting server/host info");
     return(DM_NORMAL);
 }
@@ -412,22 +450,22 @@ int *count;
 }
 
 
-inprogress()
+InProgress()
 {
     char *argv[6];
     int status, count = 0;
 
     argv[0] = argv[2] = "DONTCARE";
     argv[1] = "TRUE";
-    if ((status = sms_query("qualified_get_server", 3, argv, pserv, 
-                           (char *)&count)) &&
+    if ((status = do_sms_query("qualified_get_server", 3, argv, pserv, 
+                              (char *)&count)) &&
        status != SMS_NO_MATCH)
       com_err(whoami, status, " while getting servers");
     argv[0] = "*";
     argv[1] = argv[2] = argv[3] = argv[5] = "DONTCARE";
     argv[4] = "TRUE";
-    if ((status = sms_query("qualified_get_server_host",6,argv,phost,
-                           (char *)&count)) &&
+    if ((status = do_sms_query("qualified_get_server_host",6,argv,phost,
+                              (char *)&count)) &&
        status != SMS_NO_MATCH)
       com_err(whoami, status, " while getting server/hosts");
     if (!count)
@@ -439,22 +477,22 @@ inprogress()
     return(DM_NORMAL);
 }
 
-failed()
+DcmFailed()
 {
     char *argv[6];
     int status, count = 0;
 
     argv[0] = argv[1] = "DONTCARE";
     argv[2] = "TRUE";
-    if ((status = sms_query("qualified_get_server", 3, argv, pserv, 
-                           (char *)&count)) &&
+    if ((status = do_sms_query("qualified_get_server", 3, argv, pserv, 
+                              (char *)&count)) &&
        status != SMS_NO_MATCH)
       com_err(whoami, status, " while getting servers");
     argv[0] = "*";
     argv[1] = argv[2] = argv[3] = argv[4] = "DONTCARE";
     argv[5] = "TRUE";
-    if ((status = sms_query("qualified_get_server_host",6,argv,phost,
-                           (char *)&count)) &&
+    if ((status = do_sms_query("qualified_get_server_host",6,argv,phost,
+                              (char *)&count)) &&
        status != SMS_NO_MATCH)
       com_err(whoami, status, " while getting server/hosts");
     if (!count)
@@ -467,7 +505,7 @@ failed()
 }
 
 
-dcm()
+Dcm()
 {
     int status;
     if (status = sms_do_update())
This page took 0.05995 seconds and 4 git commands to generate.