Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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++;
	}
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
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;
}