static int testTextMetadata(const void *data) { const struct metadataTest *test = data; char *actual = NULL; int ret = -1; if (virDomainSetMetadata(test->dom, test->type, test->data, NULL, NULL, 0) < 0) { if (test->fail) return 0; return -1; } actual = virDomainGetMetadata(test->dom, test->type, NULL, 0); if (STRNEQ_NULLABLE(test->data, actual)) { virReportError(VIR_ERR_INTERNAL_ERROR, "expected metadata doesn't match actual: " "expected:'%s'\ngot: '%s'", NULLSTR(test->data), NULLSTR(actual)); goto cleanup; } ret = 0; cleanup: VIR_FREE(actual); return ret; }
void main(int argc, char *argv[]) { if(argc <= 1) printf("usage: deletedom domname\n"),exit(-1); char **hosts = gethosts(); char **hostsptr = hosts; virConnectPtr *dests = (virConnectPtr*)malloc(sizeof(virConnectPtr)*1024); virConnectPtr *destsptr = dests; while(*hostsptr != NULL) { printf("Adding vmhost %s\n", *hostsptr); char URL[512]; sprintf(URL, "qemu+ssh://%s/system", *hostsptr); virConnectPtr dest = virConnectOpen(URL); *(destsptr++) = dest; *destsptr = NULL; hostsptr++; } char *searched_name = argv[1]; virConnectPtr src = virConnectOpen("qemu:///system"); virDomainPtr *domains, *domainsptr; virConnectListAllDomains(src, &domains, VIR_CONNECT_LIST_DOMAINS_ACTIVE|VIR_CONNECT_LIST_DOMAINS_INACTIVE|VIR_CONNECT_LIST_DOMAINS_RUNNING|VIR_CONNECT_LIST_DOMAINS_SHUTOFF|VIR_CONNECT_LIST_DOMAINS_PERSISTENT|VIR_CONNECT_LIST_DOMAINS_OTHER|VIR_CONNECT_LIST_DOMAINS_TRANSIENT|VIR_CONNECT_LIST_DOMAINS_PAUSED); domainsptr = domains; while(*domainsptr != NULL) { virDomainPtr d = *domainsptr; const char *name = virDomainGetName(d); if (!strcmp(name, searched_name)) { printf("Found it!\n"); destsptr = dests; char uuid[VIR_UUID_BUFLEN]; virDomainGetUUID(*domainsptr, uuid); while(*destsptr != NULL) { virDomainPtr target=virDomainLookupByUUID(*destsptr, uuid); virDomainSetMetadata(target, VIR_DOMAIN_METADATA_ELEMENT, "<value>1</value>", "do_delete", "/do_delete", VIR_DOMAIN_AFFECT_CURRENT); destsptr++; } virDomainSetMetadata(d, VIR_DOMAIN_METADATA_ELEMENT, "<value>1</value>", "do_delete", "/do_delete", VIR_DOMAIN_AFFECT_CURRENT); } domainsptr++; } }
static int testEraseMetadata(const void *data) { const struct metadataTest *test = data; if (virDomainSetMetadata(test->dom, VIR_DOMAIN_METADATA_ELEMENT, NULL, NULL, "http://herp.derp/", 0) < 0) return -1; if (!verifyMetadata(test->dom, NULL, NULL, "http://herp.derp/")) return -1; return 0; }
static int testRewriteMetadata(const void *data) { const struct metadataTest *test = data; if (virDomainSetMetadata(test->dom, VIR_DOMAIN_METADATA_ELEMENT, metadata2, "blurb", "http://herp.derp/", 0) < 0) return -1; if (!verifyMetadata(test->dom, metadata2_ns, metadata2, "http://herp.derp/")) return -1; return 0; }