[libvirt] [PATCH 06/12] Move virSecret related APIs out of libvirt.h.in

Daniel P. Berrange berrange at redhat.com
Thu Oct 23 12:58:28 UTC 2014


Create a new libvirt-secret.h file to hold the public
API definitions for the virSecret type. This header
file is not self-contained, so applications will not directly
include it. They will contain to #include <libvirt/libvirt.h>
---
 docs/apibuild.py                 |   1 +
 include/libvirt/Makefile.am      |   1 +
 include/libvirt/libvirt-secret.h | 113 +++++++++++++++++++++++++++++++++++++++
 include/libvirt/libvirt.h.in     |  85 +----------------------------
 4 files changed, 116 insertions(+), 84 deletions(-)
 create mode 100644 include/libvirt/libvirt-secret.h

diff --git a/docs/apibuild.py b/docs/apibuild.py
index 32ac773..b8fd191 100755
--- a/docs/apibuild.py
+++ b/docs/apibuild.py
@@ -27,6 +27,7 @@ included_files = {
   "libvirt-network.h": "header with general libvirt API definitions",
   "libvirt-nodedev.h": "header with general libvirt API definitions",
   "libvirt-nwfilter.h": "header with general libvirt API definitions",
+  "libvirt-secret.h": "header with general libvirt API definitions",
   "virterror.h": "header with error specific API definitions",
   "libvirt.c": "Main interfaces for the libvirt library",
   "libvirt-domain.c": "Domain interfaces for the libvirt library",
diff --git a/include/libvirt/Makefile.am b/include/libvirt/Makefile.am
index 75142d8..62332e1 100644
--- a/include/libvirt/Makefile.am
+++ b/include/libvirt/Makefile.am
@@ -24,6 +24,7 @@ virinc_HEADERS = libvirt.h		\
 		 libvirt-network.h \
 		 libvirt-nodedev.h \
 		 libvirt-nwfilter.h \
+		 libvirt-secret.h \
 		 libvirt-lxc.h		\
 		 libvirt-qemu.h		\
 		 virterror.h
diff --git a/include/libvirt/libvirt-secret.h b/include/libvirt/libvirt-secret.h
new file mode 100644
index 0000000..3e5cdf6
--- /dev/null
+++ b/include/libvirt/libvirt-secret.h
@@ -0,0 +1,113 @@
+/*
+ * libvirt-secret.h
+ * Summary: APIs for management of secrets
+ * Description: Provides APIs for the management of secrets
+ * Author: Daniel Veillard <veillard at redhat.com>
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_LIBVIRT_SECRET_H__
+# define __VIR_LIBVIRT_SECRET_H__
+
+# ifndef __VIR_LIBVIRT_H_INCLUDES__
+#  error "Don't include this file directly, only use libvirt/libvirt.h"
+# endif
+
+
+/**
+ * virSecret:
+ *
+ * A virSecret stores a secret value (e.g. a passphrase or encryption key)
+ * and associated metadata.
+ */
+typedef struct _virSecret virSecret;
+typedef virSecret *virSecretPtr;
+
+typedef enum {
+    VIR_SECRET_USAGE_TYPE_NONE = 0,
+    VIR_SECRET_USAGE_TYPE_VOLUME = 1,
+    VIR_SECRET_USAGE_TYPE_CEPH = 2,
+    VIR_SECRET_USAGE_TYPE_ISCSI = 3,
+
+# ifdef VIR_ENUM_SENTINELS
+    VIR_SECRET_USAGE_TYPE_LAST
+    /*
+     * NB: this enum value will increase over time as new events are
+     * added to the libvirt API. It reflects the last secret owner ID
+     * supported by this version of the libvirt API.
+     */
+# endif
+} virSecretUsageType;
+
+virConnectPtr           virSecretGetConnect     (virSecretPtr secret);
+int                     virConnectNumOfSecrets  (virConnectPtr conn);
+int                     virConnectListSecrets   (virConnectPtr conn,
+                                                 char **uuids,
+                                                 int maxuuids);
+
+/*
+ * virConnectListAllSecrets:
+ *
+ * Flags used to filter the returned secrets. Flags in each group
+ * are exclusive attributes of a secret.
+ */
+typedef enum {
+    VIR_CONNECT_LIST_SECRETS_EPHEMERAL    = 1 << 0, /* kept in memory, never
+                                                       stored persistently */
+    VIR_CONNECT_LIST_SECRETS_NO_EPHEMERAL = 1 << 1,
+
+    VIR_CONNECT_LIST_SECRETS_PRIVATE      = 1 << 2, /* not revealed to any caller
+                                                       of libvirt, nor to any other
+                                                       node */
+    VIR_CONNECT_LIST_SECRETS_NO_PRIVATE   = 1 << 3,
+} virConnectListAllSecretsFlags;
+
+int                     virConnectListAllSecrets(virConnectPtr conn,
+                                                 virSecretPtr **secrets,
+                                                 unsigned int flags);
+virSecretPtr            virSecretLookupByUUID(virConnectPtr conn,
+                                              const unsigned char *uuid);
+virSecretPtr            virSecretLookupByUUIDString(virConnectPtr conn,
+                                                    const char *uuid);
+virSecretPtr            virSecretLookupByUsage(virConnectPtr conn,
+                                               int usageType,
+                                               const char *usageID);
+virSecretPtr            virSecretDefineXML      (virConnectPtr conn,
+                                                 const char *xml,
+                                                 unsigned int flags);
+int                     virSecretGetUUID        (virSecretPtr secret,
+                                                 unsigned char *buf);
+int                     virSecretGetUUIDString  (virSecretPtr secret,
+                                                 char *buf);
+int                     virSecretGetUsageType   (virSecretPtr secret);
+const char *            virSecretGetUsageID     (virSecretPtr secret);
+char *                  virSecretGetXMLDesc     (virSecretPtr secret,
+                                                 unsigned int flags);
+int                     virSecretSetValue       (virSecretPtr secret,
+                                                 const unsigned char *value,
+                                                 size_t value_size,
+                                                 unsigned int flags);
+unsigned char *         virSecretGetValue       (virSecretPtr secret,
+                                                 size_t *value_size,
+                                                 unsigned int flags);
+int                     virSecretUndefine       (virSecretPtr secret);
+int                     virSecretRef            (virSecretPtr secret);
+int                     virSecretFree           (virSecretPtr secret);
+
+
+#endif /* __VIR_LIBVIRT_SECRET_H__ */
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 14cd205..39824ab 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -3673,90 +3673,6 @@ int virEventAddTimeout(int frequency,
 void virEventUpdateTimeout(int timer, int frequency);
 int virEventRemoveTimeout(int timer);
 
-/*
- * Secret manipulation API
- */
-
-/**
- * virSecret:
- *
- * A virSecret stores a secret value (e.g. a passphrase or encryption key)
- * and associated metadata.
- */
-typedef struct _virSecret virSecret;
-typedef virSecret *virSecretPtr;
-
-typedef enum {
-    VIR_SECRET_USAGE_TYPE_NONE = 0,
-    VIR_SECRET_USAGE_TYPE_VOLUME = 1,
-    VIR_SECRET_USAGE_TYPE_CEPH = 2,
-    VIR_SECRET_USAGE_TYPE_ISCSI = 3,
-
-#ifdef VIR_ENUM_SENTINELS
-    VIR_SECRET_USAGE_TYPE_LAST
-    /*
-     * NB: this enum value will increase over time as new events are
-     * added to the libvirt API. It reflects the last secret owner ID
-     * supported by this version of the libvirt API.
-     */
-#endif
-} virSecretUsageType;
-
-virConnectPtr           virSecretGetConnect     (virSecretPtr secret);
-int                     virConnectNumOfSecrets  (virConnectPtr conn);
-int                     virConnectListSecrets   (virConnectPtr conn,
-                                                 char **uuids,
-                                                 int maxuuids);
-
-/*
- * virConnectListAllSecrets:
- *
- * Flags used to filter the returned secrets. Flags in each group
- * are exclusive attributes of a secret.
- */
-typedef enum {
-    VIR_CONNECT_LIST_SECRETS_EPHEMERAL    = 1 << 0, /* kept in memory, never
-                                                       stored persistently */
-    VIR_CONNECT_LIST_SECRETS_NO_EPHEMERAL = 1 << 1,
-
-    VIR_CONNECT_LIST_SECRETS_PRIVATE      = 1 << 2, /* not revealed to any caller
-                                                       of libvirt, nor to any other
-                                                       node */
-    VIR_CONNECT_LIST_SECRETS_NO_PRIVATE   = 1 << 3,
-} virConnectListAllSecretsFlags;
-
-int                     virConnectListAllSecrets(virConnectPtr conn,
-                                                 virSecretPtr **secrets,
-                                                 unsigned int flags);
-virSecretPtr            virSecretLookupByUUID(virConnectPtr conn,
-                                              const unsigned char *uuid);
-virSecretPtr            virSecretLookupByUUIDString(virConnectPtr conn,
-                                                    const char *uuid);
-virSecretPtr            virSecretLookupByUsage(virConnectPtr conn,
-                                               int usageType,
-                                               const char *usageID);
-virSecretPtr            virSecretDefineXML      (virConnectPtr conn,
-                                                 const char *xml,
-                                                 unsigned int flags);
-int                     virSecretGetUUID        (virSecretPtr secret,
-                                                 unsigned char *buf);
-int                     virSecretGetUUIDString  (virSecretPtr secret,
-                                                 char *buf);
-int                     virSecretGetUsageType   (virSecretPtr secret);
-const char *            virSecretGetUsageID     (virSecretPtr secret);
-char *                  virSecretGetXMLDesc     (virSecretPtr secret,
-                                                 unsigned int flags);
-int                     virSecretSetValue       (virSecretPtr secret,
-                                                 const unsigned char *value,
-                                                 size_t value_size,
-                                                 unsigned int flags);
-unsigned char *         virSecretGetValue       (virSecretPtr secret,
-                                                 size_t *value_size,
-                                                 unsigned int flags);
-int                     virSecretUndefine       (virSecretPtr secret);
-int                     virSecretRef            (virSecretPtr secret);
-int                     virSecretFree           (virSecretPtr secret);
-
 typedef enum {
     VIR_STREAM_NONBLOCK = (1 << 0),
 } virStreamFlags;
@@ -5109,6 +5025,7 @@ typedef virMemoryParameter *virMemoryParameterPtr;
 #include <libvirt/libvirt-network.h>
 #include <libvirt/libvirt-nodedev.h>
 #include <libvirt/libvirt-nwfilter.h>
+#include <libvirt/libvirt-secret.h>
 #undef __VIR_LIBVIRT_H_INCLUDES__
 
 #ifdef __cplusplus
-- 
2.1.0




More information about the libvir-list mailing list