summaryrefslogtreecommitdiffstats
path: root/utils/capabilities.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/capabilities.h')
-rw-r--r--utils/capabilities.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/utils/capabilities.h b/utils/capabilities.h
new file mode 100644
index 0000000..b157d80
--- /dev/null
+++ b/utils/capabilities.h
@@ -0,0 +1,65 @@
+/*
+ Copyright (c) 2018 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of gluster-block.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+
+# include "block.h"
+# include "common.h"
+
+
+typedef struct gbCapObj {
+ char cap[256];
+ bool status;
+} gbCapObj;
+
+
+typedef struct gbCapResp {
+ int capMax;
+ gbCapObj *response;
+} gbCapResp;
+
+
+enum gbCapabilities {
+ GB_CREATE_CAP,
+ GB_CREATE_HA_CAP,
+ GB_CREATE_PREALLOC_CAP,
+ GB_CREATE_AUTH_CAP,
+
+ GB_DELETE_CAP,
+ GB_DELETE_FORCE_CAP,
+
+ GB_MODIFY_CAP,
+ GB_MODIFY_AUTH_CAP,
+
+ GB_JSON_CAP,
+
+ GB_CAP_MAX
+};
+
+
+static const char *const gbCapabilitiesLookup[] = {
+ [GB_CREATE_CAP] = "create",
+ [GB_CREATE_HA_CAP] = "create_ha",
+ [GB_CREATE_PREALLOC_CAP] = "create_prealloc",
+ [GB_CREATE_AUTH_CAP] = "create_auth",
+
+ [GB_DELETE_CAP] = "delete",
+ [GB_DELETE_FORCE_CAP] = "delete_force",
+
+ [GB_MODIFY_CAP] = "modify",
+ [GB_MODIFY_AUTH_CAP] = "modify_auth",
+
+ [GB_JSON_CAP] = "json",
+
+ [GB_CAP_MAX] = NULL
+};
+
+
+int gbCapabilitiesEnumParse(const char *cap);
+int gbSetCapabilties (blockResponse **c);