cluster: RHEL56 - rgmanager: Add non-critical flag to resources
Lon Hohberger
lon at fedoraproject.org
Fri Sep 24 22:20:43 UTC 2010
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=977a199f73e70d8527a335841a5188bcaaa99477
Commit: 977a199f73e70d8527a335841a5188bcaaa99477
Parent: 6a3d7a53e4c9ca2e06e8c6043db86c08eba4d481
Author: Lon Hohberger <lhh at redhat.com>
AuthorDate: Thu Aug 12 16:28:59 2010 -0400
Committer: Lon Hohberger <lhh at redhat.com>
CommitterDate: Fri Sep 24 16:16:02 2010 -0400
rgmanager: Add non-critical flag to resources
Resolves: rhbz#605733
Signed-off-by: Lon Hohberger <lhh at redhat.com>
---
rgmanager/include/reslist.h | 1 +
rgmanager/src/daemons/restree.c | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/rgmanager/include/reslist.h b/rgmanager/include/reslist.h
index 001f56b..b2923ab 100644
--- a/rgmanager/include/reslist.h
+++ b/rgmanager/include/reslist.h
@@ -46,6 +46,7 @@
resource class if you delete it from
the configuration */
#define RF_ENFORCE_TIMEOUTS (1<<9) /** Enforce timeouts for this node */
+#define RF_NON_CRITCIAL (1<<10) /** stop this resource if it fails */
diff --git a/rgmanager/src/daemons/restree.c b/rgmanager/src/daemons/restree.c
index 3f07f8f..2462af2 100644
--- a/rgmanager/src/daemons/restree.c
+++ b/rgmanager/src/daemons/restree.c
@@ -645,8 +645,11 @@ do_load_resource(int ccsfd, char *base,
#else
if (conf_get(tok, &ref) == 0) {
#endif
- if (atoi(ref) > 0 || strcasecmp(ref, "yes") == 0)
+ if (atoi(ref) == 1 || strcasecmp(ref, "yes") == 0)
node->rn_flags |= RF_INDEPENDENT;
+ if (atoi(ref) == 2 || strcasecmp(ref, "non-critical") == 0) {
+ curres->r_flags |= RF_NON_CRITICAL;
+ }
free(ref);
}
@@ -693,6 +696,13 @@ do_load_resource(int ccsfd, char *base,
curres->r_refs++;
+ if (curres->r_refs > 1 &&
+ (curres->r_flags & RF_NON_CRITICAL)) {
+ res_build_name(tok, sizeof(tok), curres);
+ printf("Non-critical flag for %s is being cleared due to multiple references.\n", tok);
+ curres->r_flags &= ~RF_NON_CRITICAL;
+ }
+
*newnode = node;
list_insert(tree, node);
@@ -981,6 +991,8 @@ _print_resource_tree(FILE *fp, resource_node_t **tree, int level)
fprintf(fp, "DESTROY ");
if (node->rn_flags & RF_ENFORCE_TIMEOUTS)
fprintf(fp, "ENFORCE-TIMEOUTS ");
+ if (node->rn_flags & RF_NON_CRITICAL)
+ fprintf(fp, "NON-CRITICAL ");
fprintf(fp, "]");
}
fprintf(fp, " {\n");
More information about the cluster-commits
mailing list