diff --git a/docs/apibuild.py b/docs/apibuild.py index 32ac773e9c..b8fd191c4b 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 75142d81e4..62332e1cba 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 0000000000..3e5cdf621c --- /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 + * + * 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 + * . + */ + +#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 14cd205f48..39824ab53d 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 #include #include +#include #undef __VIR_LIBVIRT_H_INCLUDES__ #ifdef __cplusplus diff --git a/libvirt.spec.in b/libvirt.spec.in index 15d267a087..745e182ac3 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -2256,6 +2256,7 @@ exit 0 %{_includedir}/libvirt/libvirt-network.h %{_includedir}/libvirt/libvirt-nodedev.h %{_includedir}/libvirt/libvirt-nwfilter.h +%{_includedir}/libvirt/libvirt-secret.h %{_includedir}/libvirt/libvirt-qemu.h %{_includedir}/libvirt/libvirt-lxc.h %{_libdir}/pkgconfig/libvirt.pc diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in index 828238b601..69bd62a6c3 100644 --- a/mingw-libvirt.spec.in +++ b/mingw-libvirt.spec.in @@ -234,6 +234,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh %{mingw32_includedir}/libvirt/libvirt-network.h %{mingw32_includedir}/libvirt/libvirt-nodedev.h %{mingw32_includedir}/libvirt/libvirt-nwfilter.h +%{mingw32_includedir}/libvirt/libvirt-secret.h %{mingw32_includedir}/libvirt/virterror.h %{mingw32_includedir}/libvirt/libvirt-lxc.h %{mingw32_includedir}/libvirt/libvirt-qemu.h @@ -302,6 +303,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh %{mingw64_includedir}/libvirt/libvirt-network.h %{mingw64_includedir}/libvirt/libvirt-nodedev.h %{mingw64_includedir}/libvirt/libvirt-nwfilter.h +%{mingw64_includedir}/libvirt/libvirt-secret.h %{mingw64_includedir}/libvirt/virterror.h %{mingw64_includedir}/libvirt/libvirt-lxc.h %{mingw64_includedir}/libvirt/libvirt-qemu.h