]> andersk Git - moira.git/blobdiff - server/qsetup.pc
Add queries for creating, deleting, and modifying containers, as well as
[moira.git] / server / qsetup.pc
index 11a4da78b7b3f715585d413ed73e73c0249fb489..ab50d669732360ca055b8ac5bd4490b85330dce4 100644 (file)
@@ -220,6 +220,10 @@ int setup_dmac(struct query *q, char *argv[], client *cl)
     return MR_IN_USE;
 
   EXEC SQL DELETE FROM mcmap WHERE mach_id = :id;
+  if (dbms_errno)
+    return mr_errcode;
+
+  EXEC SQL DELETE FROM mcntmap WHERE mach_id = :id;
   if (dbms_errno)
     return mr_errcode;
   return MR_SUCCESS;
@@ -1257,6 +1261,42 @@ int setup_dpsv(struct query *q, char **argv, client *cl)
   return MR_SUCCESS;
 }
 
+int setup_dcon(struct query *q, char *argv[], client *cl)
+{
+  EXEC SQL BEGIN DECLARE SECTION;
+  int id, cnt;
+  char containername[CONTAINERS_NAME_SIZE];
+  EXEC SQL END DECLARE SECTION;
+
+  id = *(int *)argv[0];
+  /* check to see if there are machines in this container */
+  EXEC SQL SELECT COUNT(mach_id) INTO :cnt FROM mcntmap
+    WHERE cnt_id = :id;
+  if (cnt > 0)
+    return MR_IN_USE;
+
+  /* check to see if there are subcontainers in this container */
+
+  /* get the container name */
+  
+  EXEC SQL SELECT name INTO :containername
+    FROM containers
+    WHERE cnt_id = :id; 
+
+  /* trim off the trailing spaces */
+   strcpy(containername, strtrim(containername));
+
+  EXEC SQL SELECT COUNT(cnt_id) INTO :cnt FROM containers
+    WHERE name LIKE :containername || '/' || '%';
+
+  if (cnt > 0)
+    return MR_IN_USE;
+
+  if (dbms_errno)
+    return mr_errcode;
+  return MR_SUCCESS;
+}
+
 /* hostname_check()
  * validate the rfc1035/rfc1123-ness of a hostname
  */
This page took 0.038893 seconds and 4 git commands to generate.