<td>secret_usage_target</td>
<td>Name of the associated iSCSI target, if any</td>
</tr>
- <tr>
- <td>secret_usage_name</td>
- <td>Name of be associated passphrase secret, if any</td>
- </tr>
</tbody>
</table>
<ref name='usagevolume'/>
<ref name='usageceph'/>
<ref name='usageiscsi'/>
- <ref name='usagepassphrase'/>
<!-- More choices later -->
</choice>
</element>
</element>
</define>
- <define name='usagepassphrase'>
- <attribute name='type'>
- <value>passphrase</value>
- </attribute>
- <element name='name'>
- <ref name='genericName'/>
- </element>
- </define>
-
</grammar>
VIR_SECRET_USAGE_TYPE_VOLUME = 1,
VIR_SECRET_USAGE_TYPE_CEPH = 2,
VIR_SECRET_USAGE_TYPE_ISCSI = 3,
- VIR_SECRET_USAGE_TYPE_PASSPHRASE = 4,
# ifdef VIR_ENUM_SENTINELS
VIR_SECRET_USAGE_TYPE_LAST
virAccessPermSecretTypeToString(perm),
attrs);
} break;
- case VIR_SECRET_USAGE_TYPE_PASSPHRASE: {
- const char *attrs[] = {
- "connect_driver", driverName,
- "secret_uuid", uuidstr,
- "secret_usage_name", secret->usage.name,
- NULL,
- };
-
- return virAccessDriverPolkitCheck(manager,
- "secret",
- virAccessPermSecretTypeToString(perm),
- attrs);
- } break;
}
}
#include "viralloc.h"
#include "secret_conf.h"
#include "virsecretobj.h"
-#include "virstring.h"
#include "virerror.h"
#include "virxml.h"
#include "viruuid.h"
VIR_LOG_INIT("conf.secret_conf");
VIR_ENUM_IMPL(virSecretUsage, VIR_SECRET_USAGE_TYPE_LAST,
- "none", "volume", "ceph", "iscsi", "passphrase")
+ "none", "volume", "ceph", "iscsi")
const char *
virSecretUsageIDForDef(virSecretDefPtr def)
case VIR_SECRET_USAGE_TYPE_ISCSI:
return def->usage.target;
- case VIR_SECRET_USAGE_TYPE_PASSPHRASE:
- return def->usage.name;
-
default:
return NULL;
}
VIR_FREE(def->usage.target);
break;
- case VIR_SECRET_USAGE_TYPE_PASSPHRASE:
- VIR_FREE(def->usage.name);
- break;
-
default:
VIR_ERROR(_("unexpected secret usage type %d"), def->usage_type);
break;
}
break;
- case VIR_SECRET_USAGE_TYPE_PASSPHRASE:
- if (!(def->usage.name = virXPathString("string(./usage/name)", ctxt))) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("passphrase usage specified, but name is missing"));
- return -1;
- }
- break;
-
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected secret usage type %d"),
virBufferEscapeString(buf, "<target>%s</target>\n", def->usage.target);
break;
- case VIR_SECRET_USAGE_TYPE_PASSPHRASE:
- virBufferEscapeString(buf, "<name>%s</name>\n", def->usage.name);
- break;
-
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected secret usage type %d"),
char *volume; /* May be NULL */
char *ceph;
char *target;
- char *name;
} usage;
};
if (STREQ(secret->def->usage.target, data->usageID))
found = 1;
break;
-
- case VIR_SECRET_USAGE_TYPE_PASSPHRASE:
- if (STREQ(secret->def->usage.name, data->usageID))
- found = 1;
- break;
}
cleanup:
+++ /dev/null
-<secret ephemeral='no' private='no'>
- <uuid>f52a81b2-424e-490c-823d-6bd4235bc572</uuid>
- <description>Sample Passphrase Secret</description>
- <usage type='passphrase'>
- <name>mumblyfratz</name>
- </usage>
-</secret>
DO_TEST("usage-volume");
DO_TEST("usage-ceph");
DO_TEST("usage-iscsi");
- DO_TEST("usage-passphrase");
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}