From: zacheiss Date: Sun, 29 Jul 2001 15:14:26 +0000 (+0000) Subject: Cause incrementals to happen on container add/delete/modify. X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/commitdiff_plain/bb5c9457ebb4c88c2afe0e2af7c11c43f9f75460 Cause incrementals to happen on container add/delete/modify. --- diff --git a/server/increment.pc b/server/increment.pc index d1c3b144..b7a27c09 100644 --- a/server/increment.pc +++ b/server/increment.pc @@ -110,6 +110,13 @@ void incremental_before(enum tables table, char *qual, char **argv) dosql(before); beforec = 4; break; + case CONTAINERS_TABLE: + sprintf(stmt_buf, "SELECT c.name, c.description, c.location, c.contact, " + "c.acl_type, c.acl_id, c.cnt_id FROM containers c WHERE %s", + qual); + dosql(before); + beforec = 7; + break; case MCMAP_TABLE: strcpy(before[0], argv[0]); strcpy(before[1], argv[1]); @@ -243,6 +250,13 @@ void incremental_after(enum tables table, char *qual, char **argv) dosql(after); afterc = 4; break; + case CONTAINERS_TABLE: + sprintf(stmt_buf, "SELECT c.name, c.description, c.location, c.contact, " + "c.acl_type, c.acl_id, c.cnt_id FROM containers c WHERE %s", + qual); + dosql(after); + afterc = 7; + break; case MCMAP_TABLE: strcpy(after[0], argv[0]); strcpy(after[1], argv[1]); diff --git a/server/qsupport.pc b/server/qsupport.pc index 5dd8b454..9fd7edca 100644 --- a/server/qsupport.pc +++ b/server/qsupport.pc @@ -1862,6 +1862,7 @@ int update_container(struct query *q, char *argv[], client *cl) char* tmpchar; int cnt, childid; char childname[CONTAINERS_NAME_SIZE]; + char *qual; cnt_id = *(int *)argv[0]; newname = argv[1]; @@ -1902,6 +1903,10 @@ int update_container(struct query *q, char *argv[], client *cl) return MR_NEW_CONTAINER_NAME; } + qual = xmalloc(CONTAINERS_NAME_SIZE + 10); + sprintf(qual, "name = '%s'", name); + incremental_before(CONTAINERS_TABLE, qual, argv); + /* update the name for this container */ EXEC SQL UPDATE containers SET name = :newname @@ -1955,6 +1960,9 @@ int update_container(struct query *q, char *argv[], client *cl) if (dbms_errno) return mr_errcode; + + sprintf(qual, "name = '%s'", newname); + incremental_after(CONTAINERS_TABLE, qual, argv); return MR_SUCCESS; }