summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2010-09-14 14:45:16 +0200
committerRonnie Sahlberg <ronniesahlberg@gmail.com>2010-10-21 11:09:55 +1100
commit19bc2e40ca1252629f86ea9603a03651021835ad (patch)
treeb9145b191417f59897ba5893b33eb589bfcb50a3
parentab6beb6b7fdffd53b8feb84e008562a2ef33d546 (diff)
downloadsamba-19bc2e40ca1252629f86ea9603a03651021835ad.tar.gz
samba-19bc2e40ca1252629f86ea9603a03651021835ad.tar.xz
samba-19bc2e40ca1252629f86ea9603a03651021835ad.zip
tools/ctdb: let "ctdb catdb" pass the persistent flag to ctdb_attach()
metze (This used to be ctdb commit 4ec99c1eeab529865ac790ef554f3b099a14faf1)
-rw-r--r--ctdb/tools/ctdb.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c
index 6b048907ec..d8f8ea029b 100644
--- a/ctdb/tools/ctdb.c
+++ b/ctdb/tools/ctdb.c
@@ -106,7 +106,7 @@ static void verify_node(struct ctdb_context *ctdb)
/*
check if a database exists
*/
-static int db_exists(struct ctdb_context *ctdb, const char *db_name)
+static int db_exists(struct ctdb_context *ctdb, const char *db_name, bool *persistent)
{
int i, ret;
struct ctdb_dbid_map *dbmap=NULL;
@@ -122,6 +122,9 @@ static int db_exists(struct ctdb_context *ctdb, const char *db_name)
ctdb_ctrl_getdbname(ctdb, TIMELIMIT(), options.pnn, dbmap->dbs[i].dbid, ctdb, &name);
if (!strcmp(name, db_name)) {
+ if (persistent) {
+ *persistent = dbmap->dbs[i].persistent;
+ }
return 0;
}
}
@@ -2942,6 +2945,7 @@ static int control_catdb(struct ctdb_context *ctdb, int argc, const char **argv)
const char *db_name;
struct ctdb_db_context *ctdb_db;
int ret;
+ bool persistent;
if (argc < 1) {
usage();
@@ -2950,12 +2954,12 @@ static int control_catdb(struct ctdb_context *ctdb, int argc, const char **argv)
db_name = argv[0];
- if (db_exists(ctdb, db_name)) {
+ if (db_exists(ctdb, db_name, &persistent)) {
DEBUG(DEBUG_ERR,("Database '%s' does not exist\n", db_name));
return -1;
}
- ctdb_db = ctdb_attach(ctdb, db_name, false, 0);
+ ctdb_db = ctdb_attach(ctdb, db_name, persistent, 0);
if (ctdb_db == NULL) {
DEBUG(DEBUG_ERR,("Unable to attach to database '%s'\n", db_name));
@@ -2998,7 +3002,7 @@ static int control_pfetch(struct ctdb_context *ctdb, int argc, const char **argv
db_name = argv[0];
- if (db_exists(ctdb, db_name)) {
+ if (db_exists(ctdb, db_name, NULL)) {
DEBUG(DEBUG_ERR,("Database '%s' does not exist\n", db_name));
talloc_free(tmp_ctx);
return -1;