]> andersk Git - moira.git/blobdiff - clients/moira/dcmmaint.c
Handle ^C during input
[moira.git] / clients / moira / dcmmaint.c
index 24ee5e11ba787f7794c611c1c223c4deae1d641e..64574032d2b6be9f3e1b5b255e0ef0035549282b 100644 (file)
@@ -8,8 +8,8 @@
 #include <stdio.h>
 #include <strings.h>
 #include <ctype.h>
-#include <sms.h>
-#include <sms_app.h>
+#include <moira.h>
+#include <moira_site.h>
 #include <menu.h>
 
 #include "mit-copyright.h"
@@ -30,7 +30,7 @@ char **argv;
 char **info;
 {
     info[1] = strsave(argv[0]);
-    return(SMS_CONT);
+    return(MR_CONT);
 }
 
 EnableDcm(argc, argv)
@@ -41,10 +41,11 @@ char **argv;
     char *info[3];
 
     info[0] = "dcm_enable";
-    if (status = do_sms_query("get_value", 1, info, genable, info))
+    if (status = do_mr_query("get_value", 1, info, genable, info))
       com_err(whoami, status, " while getting value of dcm_enable");
-    GetValueFromUser("Enable value", &info[1]);
-    if (status = do_sms_query("update_value", 2, info, Scream, NULL))
+    if (GetValueFromUser("Enable value", &info[1]) == SUB_ERROR)
+      return(DM_NORMAL);
+    if (status = do_mr_query("update_value", 2, info, Scream, NULL))
       com_err(whoami, status, " while updating value of dcm_enable");
     FreeAndClear(&info[0], FALSE);
     FreeAndClear(&info[1], TRUE);
@@ -81,7 +82,7 @@ char **argv;
            atoi(argv[SVC_INPROGRESS]) ? "InProgress" : "Idle", tmp);
     Put_message(buf);
     Put_message("");
-    return(SMS_CONT);
+    return(MR_CONT);
 }
 
 
@@ -93,7 +94,7 @@ char **argv;
     int status;        
  
     qargv[0] = argv[1];
-    if (status = do_sms_query("get_server_info", 1, qargv, shserv, NULL))
+    if (status = do_mr_query("get_server_info", 1, qargv, shserv, NULL))
       com_err(whoami, status, " while getting server info");
     return(DM_NORMAL);
 }
@@ -113,27 +114,39 @@ int argc;
 char **argv;
 {
     int status;
-    char *info[8];
+    char *info[SC_END], **askserv();
 
     initserv(argv[1], info);
-    askserv(info);
-    if (status = do_sms_query("add_server_info", 8, info, Scream, NULL))
+    if (askserv(info) == NULL) {
+       Put_message("Aborted.");
+       return(DM_NORMAL);
+    }
+    if (status = do_mr_query("add_server_info", SC_END, info, Scream, NULL))
       com_err(whoami, status, " while updating server info");
     FreeInfo(info);
     return(DM_NORMAL);
 }
 
-askserv(info)
+char **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 (GetValueFromUser("Interval", &info[SC_INTERVAL]) == SUB_ERROR)
+      return(NULL);
+    if (GetValueFromUser("Target", &info[SC_TARGET]) == SUB_ERROR)
+      return(NULL);
+    if (GetValueFromUser("Script", &info[SC_SCRIPT]) == SUB_ERROR)
+      return(NULL);
+    if (GetTypeFromUser("Service type", "service", &info[SC_TYPE]) == SUB_ERROR)
+      return(NULL);
+    if (GetValueFromUser("Enable", &info[SC_ENABLE]) == SUB_ERROR)
+      return(NULL);
+    if (GetTypeFromUser("ACE type", "ace_type", &info[SC_ACE_TYPE]) ==
+       SUB_ERROR)
+      return(NULL);
     if (strcasecmp("none", info[SC_ACE_TYPE]))
-      GetValueFromUser("Ace name", &info[SC_ACE_NAME]);
+      if (GetValueFromUser("Ace name", &info[SC_ACE_NAME]) == SUB_ERROR)
+       return(NULL);
+    return(info);
 }
 
 
@@ -151,7 +164,7 @@ char **cargv;
     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);
+    return(MR_CONT);
 }
 
 initserv(name, argv)
@@ -164,7 +177,7 @@ char **argv;
     argv[SC_INTERVAL] = strsave("1440");
     sprintf(tmp, "/tmp/%s.out", name);
     argv[SC_TARGET] = strsave(tmp);
-    sprintf(tmp, "/u1/sms/bin/%s.sh", name);
+    sprintf(tmp, "%s/%s.sh", BIN_DIR, name);
     argv[SC_SCRIPT] = strsave(tmp);
     argv[SC_TYPE] = strsave("UNIQUE");
     argv[SC_ENABLE] = strsave("1");
@@ -178,17 +191,20 @@ updateserv(argc, argv)
 int argc;
 char **argv;
 {
-    char *qargv[9];
+    char *qargv[SC_END];
     int status;
 
     qargv[0] = (char *)argv[1];
-    if (status = do_sms_query("get_server_info", 1,
+    if (status = do_mr_query("get_server_info", 1,
                              qargv, gserv, (char *)qargv)) {
        com_err(whoami, status, " while getting server info");
        return(DM_NORMAL);
     }
-    askserv(qargv);
-    if (status = do_sms_query("update_server_info", 8, qargv, Scream, NULL))
+    if (askserv(qargv) == NULL) {
+       Put_message("Aborted.");
+       return(DM_NORMAL);
+    }
+    if (status = do_mr_query("update_server_info", SC_END, qargv, Scream, NULL))
       com_err(whoami, status, " while updating server info");
     return(DM_NORMAL);
 }
@@ -221,7 +237,7 @@ char **argv;
     free(ltt);
     Put_message(buf);
     Put_message("");
-    return(SMS_CONT);
+    return(MR_CONT);
 }
 
 
@@ -234,7 +250,7 @@ char **argv;
 
     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))
+    if (status = do_mr_query("get_server_host_info", 2, qargv, shhost, NULL))
       com_err(whoami, status, " getting server/host info");
     return(DM_NORMAL);
 }
@@ -245,7 +261,7 @@ int argc;
 char  **argv;
 {
     int status;
-    if (status = do_sms_query("reset_server_error", 1, &argv[1], Scream, NULL))
+    if (status = do_mr_query("reset_server_error", 1, &argv[1], Scream, NULL))
       com_err(whoami, status, " while resetting server error");
     return(DM_NORMAL);
 }
@@ -256,15 +272,18 @@ int argc;
 char **argv;
 {
     int status;
-    char *qargv[5];
+    char *qargv[6], buf[BUFSIZ];
 
+    sprintf(buf, "Reset state for service %s (Y/N)", argv[1]);
+    if (!Confirm(buf))
+      return(DM_NORMAL);
     qargv[0] = argv[1];
     qargv[1] = "0";
     qargv[2] = "0";
     qargv[3] = "0";
     qargv[4] = "0";
     qargv[5] = "";
-    if (status = do_sms_query("set_server_internal_flags", 6, qargv,
+    if (status = do_mr_query("set_server_internal_flags", 6, qargv,
                              Scream, NULL))
       com_err(whoami, status, " while resetting server error");
     return(DM_NORMAL);
@@ -278,7 +297,7 @@ char  **argv;
     int status;
 
     argv[2] = canonicalize_hostname(argv[2]);
-    if (status = do_sms_query("reset_server_host_error", 2, &argv[1],
+    if (status = do_mr_query("reset_server_host_error", 2, &argv[1],
                              Scream, NULL))
       com_err(whoami, status, " while resetting server/host error");
     return(DM_NORMAL);
@@ -290,8 +309,12 @@ int argc;
 char **argv;
 {
     int status;
-    char *qargv[9];
+    char *qargv[9], buf[BUFSIZ];
 
+    sprintf(buf, "Reset state for service %s on host %s (Y/N)", argv[1],
+           canonicalize_hostname(argv[2]));
+    if (!Confirm(buf))
+      return(DM_NORMAL);
     qargv[0] = argv[1];
     qargv[1] = canonicalize_hostname(argv[2]);
     qargv[2] = "0";
@@ -301,7 +324,7 @@ char **argv;
     qargv[6] = "";
     qargv[7] = "0";
     qargv[8] = "0";
-    if (status = do_sms_query("set_server_host_internal", 9, qargv,
+    if (status = do_mr_query("set_server_host_internal", 9, qargv,
                              Scream, NULL))
       com_err(whoami, status, " while resetting server/host error");
     return(DM_NORMAL);
@@ -315,7 +338,7 @@ char  **argv;
     int status;
 
     argv[2] = canonicalize_hostname(argv[2]);
-    if (status = do_sms_query("set_server_host_override", 2, &argv[1],
+    if (status = do_mr_query("set_server_host_override", 2, &argv[1],
                              Scream, NULL))
       com_err(whoami, status, " while setting server/host override");
     return(DM_NORMAL);
@@ -334,7 +357,7 @@ char **cargv;
     cargv[SHI_VALUE2] = strsave(argv[SH_VALUE2]);
     cargv[SHI_VALUE3] = strsave(argv[SH_VALUE3]);
     cargv[SHI_END] = NULL;
-    return(SMS_CONT);
+    return(MR_CONT);
 }
 
 
@@ -350,13 +373,18 @@ char **info;
 }
 
 
-askhost(info)
+char **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]);
+    if (GetValueFromUser("Enable", &info[SHI_ENABLE]) == SUB_ERROR)
+      return(NULL);
+    if (GetValueFromUser("Value 1", &info[SHI_VALUE1]) == SUB_ERROR)
+      return(NULL);
+    if (GetValueFromUser("Value 2", &info[SHI_VALUE2]) == SUB_ERROR)
+      return(NULL);
+    if (GetValueFromUser("Value 3", &info[SHI_VALUE3]) == SUB_ERROR)
+      return(NULL);
+    return(info);
 }
 
 
@@ -364,18 +392,21 @@ updatehost(argc, argv)
 int argc;
 char **argv;
 {
-    char *info[SHI_END+1];
+    char *info[SHI_END];
     int status;
 
     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, 
+    if (status = do_mr_query("get_server_host_info", 2, info, ghost, 
                              (char *)info)) {
        com_err(whoami, status, " while getting server/host info");
        return(DM_NORMAL);
     }
-    askhost(info);
-    if (status = do_sms_query("update_server_host_info", SHI_END, info,
+    if (askhost(info) == NULL) {
+       Put_message("Aborted.");
+       return(DM_NORMAL);
+    }
+    if (status = do_mr_query("update_server_host_info", SHI_END, info,
                              Scream, NULL))
       com_err(whoami, status, " while updating server/host info");
     FreeInfo(info);
@@ -387,14 +418,18 @@ addhost(argc, argv)
 int argc;
 char **argv;
 {
-    char *info[SHI_END+1];
+    char *info[SHI_END];
     int status;
 
     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))
+    if (askhost(info) == NULL) {
+       Put_message("Aborted.");
+       return(DM_NORMAL);
+    }
+    if (status = do_mr_query("add_server_host_info", SHI_END, info,
+                            Scream, NULL))
       com_err(whoami, status, " while adding server/host info");
     FreeInfo(info);
     return(DM_NORMAL);
@@ -407,7 +442,7 @@ char **argv;
 {
     int status;
 
-    if (status = do_sms_query("delete_server_info", 1, &argv[1], Scream, NULL))
+    if (status = do_mr_query("delete_server_info", 1, &argv[1], Scream, NULL))
       com_err(whoami, status, " while deleting server info");
     return(DM_NORMAL);
 }
@@ -420,7 +455,7 @@ char **argv;
     int status;
 
     argv[2] = canonicalize_hostname(argv[2]);
-    if (status = do_sms_query("delete_server_host_info", 2, &argv[1],
+    if (status = do_mr_query("delete_server_host_info", 2, &argv[1],
                              Scream, NULL))
       com_err(whoami, status, " while deleting server/host info");
     return(DM_NORMAL);
@@ -435,7 +470,7 @@ int *count;
     sprintf(buf, "Service %s", argv[0]);
     Put_message(buf);
     (*count)++;
-    return(SMS_CONT);
+    return(MR_CONT);
 }
 
 phost(argc, argv, count)
@@ -446,7 +481,7 @@ int *count;
     sprintf(buf, "Host %s:%s", argv[0], argv[1]);
     Put_message(buf);
     (*count)++;
-    return(SMS_CONT);
+    return(MR_CONT);
 }
 
 
@@ -457,16 +492,16 @@ InProgress()
 
     argv[0] = argv[2] = "DONTCARE";
     argv[1] = "TRUE";
-    if ((status = do_sms_query("qualified_get_server", 3, argv, pserv, 
+    if ((status = do_mr_query("qualified_get_server", 3, argv, pserv, 
                               (char *)&count)) &&
-       status != SMS_NO_MATCH)
+       status != MR_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 = do_sms_query("qualified_get_server_host",6,argv,phost,
+    if ((status = do_mr_query("qualified_get_server_host",6,argv,phost,
                               (char *)&count)) &&
-       status != SMS_NO_MATCH)
+       status != MR_NO_MATCH)
       com_err(whoami, status, " while getting server/hosts");
     if (!count)
       strcpy(buf, "Nothing is in progress at this time");
@@ -484,16 +519,16 @@ DcmFailed()
 
     argv[0] = argv[1] = "DONTCARE";
     argv[2] = "TRUE";
-    if ((status = do_sms_query("qualified_get_server", 3, argv, pserv, 
+    if ((status = do_mr_query("qualified_get_server", 3, argv, pserv, 
                               (char *)&count)) &&
-       status != SMS_NO_MATCH)
+       status != MR_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 = do_sms_query("qualified_get_server_host",6,argv,phost,
+    if ((status = do_mr_query("qualified_get_server_host",6,argv,phost,
                               (char *)&count)) &&
-       status != SMS_NO_MATCH)
+       status != MR_NO_MATCH)
       com_err(whoami, status, " while getting server/hosts");
     if (!count)
       strcpy(buf, "Nothing has failed at this time");
@@ -508,7 +543,7 @@ DcmFailed()
 Dcm()
 {
     int status;
-    if (status = sms_do_update())
+    if (status = mr_do_update())
       com_err(whoami, status, " while triggering update");
     return(DM_NORMAL);
 }
This page took 0.073424 seconds and 4 git commands to generate.