mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 10:52:22 +00:00
Cleanup UUID apis & constants
This commit is contained in:
parent
3860cbb2b7
commit
46b433f069
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
Thu Aug 9 14:27:00 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
|
* src/libvirt.c, src/openvz_conf.c, src/qemu_conf.c,
|
||||||
|
src/test.c, src/xm_internal.c, src/xend_internal.c: Use
|
||||||
|
virUUIDFormat() / virUUIDGenerate / virUUIDParse apis.
|
||||||
|
* qemu/internal.h: Remove unused UUID_LEN constants
|
||||||
|
* src/openvz_conf.h, src/qemu_conf.h: Remove duplicated
|
||||||
|
UUID length constants
|
||||||
|
* src/xml.c, src/xml.h: Remove virParseUUID api
|
||||||
|
* src/uuid.h, src/uuid.c: Add virUUIDFormat() api.
|
||||||
|
* proxy/Makefile.am: Include uuid.o
|
||||||
|
|
||||||
Tue Aug 7 16:35:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
|
Tue Aug 7 16:35:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
|
||||||
* src/Makefile.am: gnutls_1_0_compat.h to list of sources
|
* src/Makefile.am: gnutls_1_0_compat.h to list of sources
|
||||||
|
@ -10,7 +10,7 @@ libexec_PROGRAMS = libvirt_proxy
|
|||||||
libvirt_proxy_SOURCES = libvirt_proxy.c @top_srcdir@/src/xend_internal.c \
|
libvirt_proxy_SOURCES = libvirt_proxy.c @top_srcdir@/src/xend_internal.c \
|
||||||
@top_srcdir@/src/xen_internal.c @top_srcdir@/src/virterror.c \
|
@top_srcdir@/src/xen_internal.c @top_srcdir@/src/virterror.c \
|
||||||
@top_srcdir@/src/sexpr.c @top_srcdir@/src/xml.c \
|
@top_srcdir@/src/sexpr.c @top_srcdir@/src/xml.c \
|
||||||
@top_srcdir@/src/xs_internal.c @top_srcdir@/src/buf.c
|
@top_srcdir@/src/xs_internal.c @top_srcdir@/src/buf.c @top_srcdir@/src/uuid.c
|
||||||
libvirt_proxy_LDFLAGS = $(WARN_CFLAGS)
|
libvirt_proxy_LDFLAGS = $(WARN_CFLAGS)
|
||||||
libvirt_proxy_DEPENDENCIES =
|
libvirt_proxy_DEPENDENCIES =
|
||||||
libvirt_proxy_LDADD =
|
libvirt_proxy_LDADD =
|
||||||
|
@ -48,8 +48,6 @@
|
|||||||
#define ATTRIBUTE_FORMAT(...)
|
#define ATTRIBUTE_FORMAT(...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define UUID_LEN 16
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
QEMUD_ERR,
|
QEMUD_ERR,
|
||||||
QEMUD_WARN,
|
QEMUD_WARN,
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
|
|
||||||
#include "xml.h"
|
#include "uuid.h"
|
||||||
#include "test.h"
|
#include "test.h"
|
||||||
#include "xen_unified.h"
|
#include "xen_unified.h"
|
||||||
#include "remote_internal.h"
|
#include "remote_internal.h"
|
||||||
@ -1384,22 +1384,6 @@ virDomainGetUUID(virDomainPtr domain, unsigned char *uuid)
|
|||||||
if (domain->id == 0) {
|
if (domain->id == 0) {
|
||||||
memset(uuid, 0, VIR_UUID_BUFLEN);
|
memset(uuid, 0, VIR_UUID_BUFLEN);
|
||||||
} else {
|
} else {
|
||||||
#if 0
|
|
||||||
/* Probably legacy code: It appears that we always fill in
|
|
||||||
* the UUID when creating the virDomain structure, so this
|
|
||||||
* shouldn't be necessary.
|
|
||||||
*/
|
|
||||||
if ((domain->uuid[0] == 0) && (domain->uuid[1] == 0) &&
|
|
||||||
(domain->uuid[2] == 0) && (domain->uuid[3] == 0) &&
|
|
||||||
(domain->uuid[4] == 0) && (domain->uuid[5] == 0) &&
|
|
||||||
(domain->uuid[6] == 0) && (domain->uuid[7] == 0) &&
|
|
||||||
(domain->uuid[8] == 0) && (domain->uuid[9] == 0) &&
|
|
||||||
(domain->uuid[10] == 0) && (domain->uuid[11] == 0) &&
|
|
||||||
(domain->uuid[12] == 0) && (domain->uuid[13] == 0) &&
|
|
||||||
(domain->uuid[14] == 0) && (domain->uuid[15] == 0))
|
|
||||||
xenDaemonDomainLookupByName_ids(domain->conn, domain->name,
|
|
||||||
&domain->uuid[0]);
|
|
||||||
#endif
|
|
||||||
memcpy(uuid, &domain->uuid[0], VIR_UUID_BUFLEN);
|
memcpy(uuid, &domain->uuid[0], VIR_UUID_BUFLEN);
|
||||||
}
|
}
|
||||||
return (0);
|
return (0);
|
||||||
@ -1433,12 +1417,7 @@ virDomainGetUUIDString(virDomainPtr domain, char *buf)
|
|||||||
if (virDomainGetUUID(domain, &uuid[0]))
|
if (virDomainGetUUID(domain, &uuid[0]))
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
snprintf(buf, VIR_UUID_STRING_BUFLEN,
|
virUUIDFormat(uuid, buf);
|
||||||
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
|
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]);
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2853,14 +2832,9 @@ virNetworkGetUUIDString(virNetworkPtr network, char *buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (virNetworkGetUUID(network, &uuid[0]))
|
if (virNetworkGetUUID(network, &uuid[0]))
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
snprintf(buf, VIR_UUID_STRING_BUFLEN,
|
virUUIDFormat(uuid, buf);
|
||||||
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
|
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]);
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ struct openvz_vm
|
|||||||
struct openvz_vm *vm = driver->vms;
|
struct openvz_vm *vm = driver->vms;
|
||||||
|
|
||||||
while (vm) {
|
while (vm) {
|
||||||
if (!memcmp(vm->vmdef->uuid, uuid, OPENVZ_UUID_MAX))
|
if (!memcmp(vm->vmdef->uuid, uuid, VIR_UUID_BUFLEN))
|
||||||
return vm;
|
return vm;
|
||||||
vm = vm->next;
|
vm = vm->next;
|
||||||
}
|
}
|
||||||
@ -400,8 +400,8 @@ static int
|
|||||||
openvzSetUUID(int vpsid)
|
openvzSetUUID(int vpsid)
|
||||||
{
|
{
|
||||||
char conf_file[PATH_MAX];
|
char conf_file[PATH_MAX];
|
||||||
char uuid[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
unsigned char new_uuid[VIR_UUID_BUFLEN];
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
char *conf_dir;
|
char *conf_dir;
|
||||||
int fd, ret, i;
|
int fd, ret, i;
|
||||||
|
|
||||||
@ -418,11 +418,9 @@ openvzSetUUID(int vpsid)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if(uuid[0] == (int)NULL) {
|
if(uuid[0] == (int)NULL) {
|
||||||
virUUIDGenerate(new_uuid);
|
virUUIDGenerate(uuid);
|
||||||
bzero(uuid, VIR_UUID_STRING_BUFLEN);
|
virUUIDFormat(uuid, uuidstr);
|
||||||
for(i = 0; i < VIR_UUID_BUFLEN; i ++)
|
|
||||||
sprintf(uuid + (i * 2), "%02x", (unsigned char)new_uuid[i]);
|
|
||||||
|
|
||||||
lseek(fd, 0, SEEK_END);
|
lseek(fd, 0, SEEK_END);
|
||||||
write(fd, "\n#UUID: ", 8);
|
write(fd, "\n#UUID: ", 8);
|
||||||
write(fd, uuid, strlen(uuid));
|
write(fd, uuid, strlen(uuid));
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#include "openvz_driver.h"
|
#include "openvz_driver.h"
|
||||||
|
|
||||||
#define OPENVZ_NAME_MAX 8
|
#define OPENVZ_NAME_MAX 8
|
||||||
#define OPENVZ_UUID_MAX 16
|
|
||||||
#define OPENVZ_TMPL_MAX 256
|
#define OPENVZ_TMPL_MAX 256
|
||||||
#define OPENVZ_UNAME_MAX 32
|
#define OPENVZ_UNAME_MAX 32
|
||||||
#define OPENVZ_IP_MAX 16
|
#define OPENVZ_IP_MAX 16
|
||||||
@ -74,7 +73,7 @@ struct openvz_net_def {
|
|||||||
|
|
||||||
struct openvz_vm_def {
|
struct openvz_vm_def {
|
||||||
char name[OPENVZ_NAME_MAX];
|
char name[OPENVZ_NAME_MAX];
|
||||||
unsigned char uuid[OPENVZ_UUID_MAX];
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
char profile[OPENVZ_PROFILE_MAX];
|
char profile[OPENVZ_PROFILE_MAX];
|
||||||
struct openvz_fs_def fs;
|
struct openvz_fs_def fs;
|
||||||
struct openvz_net_def net;
|
struct openvz_net_def net;
|
||||||
|
@ -83,7 +83,7 @@ struct qemud_vm *qemudFindVMByUUID(const struct qemud_driver *driver,
|
|||||||
struct qemud_vm *vm = driver->vms;
|
struct qemud_vm *vm = driver->vms;
|
||||||
|
|
||||||
while (vm) {
|
while (vm) {
|
||||||
if (!memcmp(vm->def->uuid, uuid, QEMUD_UUID_RAW_LEN))
|
if (!memcmp(vm->def->uuid, uuid, VIR_UUID_BUFLEN))
|
||||||
return vm;
|
return vm;
|
||||||
vm = vm->next;
|
vm = vm->next;
|
||||||
}
|
}
|
||||||
@ -109,7 +109,7 @@ struct qemud_network *qemudFindNetworkByUUID(const struct qemud_driver *driver,
|
|||||||
struct qemud_network *network = driver->networks;
|
struct qemud_network *network = driver->networks;
|
||||||
|
|
||||||
while (network) {
|
while (network) {
|
||||||
if (!memcmp(network->def->uuid, uuid, QEMUD_UUID_RAW_LEN))
|
if (!memcmp(network->def->uuid, uuid, VIR_UUID_BUFLEN))
|
||||||
return network;
|
return network;
|
||||||
network = network->next;
|
network = network->next;
|
||||||
}
|
}
|
||||||
@ -2724,6 +2724,7 @@ char *qemudGenerateXML(virConnectPtr conn,
|
|||||||
int live) {
|
int live) {
|
||||||
virBufferPtr buf = 0;
|
virBufferPtr buf = 0;
|
||||||
unsigned char *uuid;
|
unsigned char *uuid;
|
||||||
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
struct qemud_vm_disk_def *disk;
|
struct qemud_vm_disk_def *disk;
|
||||||
struct qemud_vm_net_def *net;
|
struct qemud_vm_net_def *net;
|
||||||
struct qemud_vm_input_def *input;
|
struct qemud_vm_input_def *input;
|
||||||
@ -2762,11 +2763,8 @@ char *qemudGenerateXML(virConnectPtr conn,
|
|||||||
goto no_memory;
|
goto no_memory;
|
||||||
|
|
||||||
uuid = def->uuid;
|
uuid = def->uuid;
|
||||||
if (virBufferVSprintf(buf, " <uuid>%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x</uuid>\n",
|
virUUIDFormat(uuid, uuidstr);
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
if (virBufferVSprintf(buf, " <uuid>%s</uuid>\n", uuidstr) < 0)
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]) < 0)
|
|
||||||
goto no_memory;
|
goto no_memory;
|
||||||
if (virBufferVSprintf(buf, " <memory>%d</memory>\n", def->maxmem) < 0)
|
if (virBufferVSprintf(buf, " <memory>%d</memory>\n", def->maxmem) < 0)
|
||||||
goto no_memory;
|
goto no_memory;
|
||||||
@ -3023,6 +3021,7 @@ char *qemudGenerateNetworkXML(virConnectPtr conn,
|
|||||||
struct qemud_network_def *def) {
|
struct qemud_network_def *def) {
|
||||||
virBufferPtr buf = 0;
|
virBufferPtr buf = 0;
|
||||||
unsigned char *uuid;
|
unsigned char *uuid;
|
||||||
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
|
|
||||||
buf = virBufferNew (QEMUD_MAX_XML_LEN);
|
buf = virBufferNew (QEMUD_MAX_XML_LEN);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
@ -3035,11 +3034,8 @@ char *qemudGenerateNetworkXML(virConnectPtr conn,
|
|||||||
goto no_memory;
|
goto no_memory;
|
||||||
|
|
||||||
uuid = def->uuid;
|
uuid = def->uuid;
|
||||||
if (virBufferVSprintf(buf, " <uuid>%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x</uuid>\n",
|
virUUIDFormat(uuid, uuidstr);
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
if (virBufferVSprintf(buf, " <uuid>%s</uuid>\n", uuidstr) < 0)
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]) < 0)
|
|
||||||
goto no_memory;
|
goto no_memory;
|
||||||
|
|
||||||
if (def->forward) {
|
if (def->forward) {
|
||||||
|
@ -78,7 +78,6 @@ enum qemud_vm_net_type {
|
|||||||
QEMUD_NET_BRIDGE,
|
QEMUD_NET_BRIDGE,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define QEMUD_UUID_RAW_LEN 16
|
|
||||||
#define QEMUD_MAX_NAME_LEN 50
|
#define QEMUD_MAX_NAME_LEN 50
|
||||||
#define QEMUD_MAX_XML_LEN 4096
|
#define QEMUD_MAX_XML_LEN 4096
|
||||||
#define QEMUD_MAX_ERROR_LEN 1024
|
#define QEMUD_MAX_ERROR_LEN 1024
|
||||||
@ -170,7 +169,7 @@ struct qemud_vm_os_def {
|
|||||||
/* Guest VM main configuration */
|
/* Guest VM main configuration */
|
||||||
struct qemud_vm_def {
|
struct qemud_vm_def {
|
||||||
int virtType;
|
int virtType;
|
||||||
unsigned char uuid[QEMUD_UUID_RAW_LEN];
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
char name[QEMUD_MAX_NAME_LEN];
|
char name[QEMUD_MAX_NAME_LEN];
|
||||||
|
|
||||||
int memory;
|
int memory;
|
||||||
@ -232,7 +231,7 @@ struct qemud_dhcp_range_def {
|
|||||||
|
|
||||||
/* Virtual Network main configuration */
|
/* Virtual Network main configuration */
|
||||||
struct qemud_network_def {
|
struct qemud_network_def {
|
||||||
unsigned char uuid[QEMUD_UUID_RAW_LEN];
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
char name[QEMUD_MAX_NAME_LEN];
|
char name[QEMUD_MAX_NAME_LEN];
|
||||||
|
|
||||||
char bridge[BR_IFNAME_MAXLEN];
|
char bridge[BR_IFNAME_MAXLEN];
|
||||||
|
40
src/test.c
40
src/test.c
@ -42,7 +42,7 @@
|
|||||||
#include "test.h"
|
#include "test.h"
|
||||||
#include "xml.h"
|
#include "xml.h"
|
||||||
#include "buf.h"
|
#include "buf.h"
|
||||||
|
#include "uuid.h"
|
||||||
|
|
||||||
struct _testDev {
|
struct _testDev {
|
||||||
char name[20];
|
char name[20];
|
||||||
@ -206,8 +206,7 @@ static int testLoadDomain(virConnectPtr conn,
|
|||||||
xmlNodePtr root = NULL;
|
xmlNodePtr root = NULL;
|
||||||
xmlXPathContextPtr ctxt = NULL;
|
xmlXPathContextPtr ctxt = NULL;
|
||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
unsigned char rawuuid[VIR_UUID_BUFLEN];
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
char *dst_uuid;
|
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
unsigned long memory = 0;
|
unsigned long memory = 0;
|
||||||
unsigned long maxMem = 0;
|
unsigned long maxMem = 0;
|
||||||
@ -248,8 +247,7 @@ static int testLoadDomain(virConnectPtr conn,
|
|||||||
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("domain uuid"));
|
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("domain uuid"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
dst_uuid = (char *) &rawuuid[0];
|
if (virUUIDParse(str, uuid) < 0) {
|
||||||
if (!(virParseUUID((char **)&dst_uuid, str))) {
|
|
||||||
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("domain uuid"));
|
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("domain uuid"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@ -332,7 +330,7 @@ static int testLoadDomain(virConnectPtr conn,
|
|||||||
if (memory > maxMem)
|
if (memory > maxMem)
|
||||||
memory = maxMem;
|
memory = maxMem;
|
||||||
|
|
||||||
memmove(privconn->domains[handle].uuid, rawuuid, VIR_UUID_BUFLEN);
|
memmove(privconn->domains[handle].uuid, uuid, VIR_UUID_BUFLEN);
|
||||||
privconn->domains[handle].info.maxMem = maxMem;
|
privconn->domains[handle].info.maxMem = maxMem;
|
||||||
privconn->domains[handle].info.memory = memory;
|
privconn->domains[handle].info.memory = memory;
|
||||||
privconn->domains[handle].info.state = domid < 0 ? VIR_DOMAIN_SHUTOFF : VIR_DOMAIN_RUNNING;
|
privconn->domains[handle].info.state = domid < 0 ? VIR_DOMAIN_SHUTOFF : VIR_DOMAIN_RUNNING;
|
||||||
@ -404,8 +402,7 @@ static int testLoadNetwork(virConnectPtr conn,
|
|||||||
xmlNodePtr root = NULL;
|
xmlNodePtr root = NULL;
|
||||||
xmlXPathContextPtr ctxt = NULL;
|
xmlXPathContextPtr ctxt = NULL;
|
||||||
char *name = NULL, *bridge = NULL;
|
char *name = NULL, *bridge = NULL;
|
||||||
unsigned char rawuuid[VIR_UUID_BUFLEN];
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
char *dst_uuid;
|
|
||||||
char *str;
|
char *str;
|
||||||
char *ipaddress = NULL, *ipnetmask = NULL, *dhcpstart = NULL, *dhcpend = NULL;
|
char *ipaddress = NULL, *ipnetmask = NULL, *dhcpstart = NULL, *dhcpend = NULL;
|
||||||
int forward;
|
int forward;
|
||||||
@ -438,8 +435,7 @@ static int testLoadNetwork(virConnectPtr conn,
|
|||||||
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("network uuid"));
|
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("network uuid"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
dst_uuid = (char *) &rawuuid[0];
|
if (virUUIDParse(str, uuid) < 0) {
|
||||||
if (!(virParseUUID((char **)&dst_uuid, str))) {
|
|
||||||
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("network uuid"));
|
testError(conn, NULL, NULL, VIR_ERR_XML_ERROR, _("network uuid"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@ -498,7 +494,7 @@ static int testLoadNetwork(virConnectPtr conn,
|
|||||||
bridge = NULL;
|
bridge = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
memmove(privconn->networks[handle].uuid, rawuuid, VIR_UUID_BUFLEN);
|
memmove(privconn->networks[handle].uuid, uuid, VIR_UUID_BUFLEN);
|
||||||
privconn->networks[handle].forward = forward;
|
privconn->networks[handle].forward = forward;
|
||||||
if (forwardDev) {
|
if (forwardDev) {
|
||||||
strncpy(privconn->networks[handle].forwardDev, forwardDev, sizeof(privconn->networks[handle].forwardDev)-1);
|
strncpy(privconn->networks[handle].forwardDev, forwardDev, sizeof(privconn->networks[handle].forwardDev)-1);
|
||||||
@ -664,7 +660,7 @@ static int testOpenFromFile(virConnectPtr conn,
|
|||||||
char *str;
|
char *str;
|
||||||
xmlDocPtr xml = NULL;
|
xmlDocPtr xml = NULL;
|
||||||
xmlNodePtr root = NULL;
|
xmlNodePtr root = NULL;
|
||||||
xmlNodePtr *domains, *networks;
|
xmlNodePtr *domains, *networks = NULL;
|
||||||
xmlXPathContextPtr ctxt = NULL;
|
xmlXPathContextPtr ctxt = NULL;
|
||||||
virNodeInfoPtr nodeInfo;
|
virNodeInfoPtr nodeInfo;
|
||||||
testConnPtr privconn = malloc(sizeof(testConn));
|
testConnPtr privconn = malloc(sizeof(testConn));
|
||||||
@ -1474,6 +1470,7 @@ static char *testDomainDumpXML(virDomainPtr domain, int flags ATTRIBUTE_UNUSED)
|
|||||||
virBufferPtr buf;
|
virBufferPtr buf;
|
||||||
char *xml;
|
char *xml;
|
||||||
unsigned char *uuid;
|
unsigned char *uuid;
|
||||||
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
GET_DOMAIN(domain, NULL);
|
GET_DOMAIN(domain, NULL);
|
||||||
|
|
||||||
if (!(buf = virBufferNew(4000))) {
|
if (!(buf = virBufferNew(4000))) {
|
||||||
@ -1484,13 +1481,8 @@ static char *testDomainDumpXML(virDomainPtr domain, int flags ATTRIBUTE_UNUSED)
|
|||||||
virBufferVSprintf(buf, "<domain type='test' id='%d'>\n", domain->id);
|
virBufferVSprintf(buf, "<domain type='test' id='%d'>\n", domain->id);
|
||||||
virBufferVSprintf(buf, " <name>%s</name>\n", domain->name);
|
virBufferVSprintf(buf, " <name>%s</name>\n", domain->name);
|
||||||
uuid = domain->uuid;
|
uuid = domain->uuid;
|
||||||
virBufferVSprintf(buf,
|
virUUIDFormat(uuid, uuidstr);
|
||||||
" <uuid>%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x</uuid>\n",
|
virBufferVSprintf(buf, " <uuid>%s</uuid>\n", uuidstr);
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]);
|
|
||||||
|
|
||||||
virBufferVSprintf(buf, " <memory>%lu</memory>\n", privdom->info.maxMem);
|
virBufferVSprintf(buf, " <memory>%lu</memory>\n", privdom->info.maxMem);
|
||||||
virBufferVSprintf(buf, " <vcpu>%d</vcpu>\n", privdom->info.nrVirtCpu);
|
virBufferVSprintf(buf, " <vcpu>%d</vcpu>\n", privdom->info.nrVirtCpu);
|
||||||
virBufferVSprintf(buf, " <on_reboot>%s</on_reboot>\n", testRestartFlagToString(privdom->onReboot));
|
virBufferVSprintf(buf, " <on_reboot>%s</on_reboot>\n", testRestartFlagToString(privdom->onReboot));
|
||||||
@ -1859,6 +1851,7 @@ static char *testNetworkDumpXML(virNetworkPtr network, int flags ATTRIBUTE_UNUSE
|
|||||||
virBufferPtr buf;
|
virBufferPtr buf;
|
||||||
char *xml;
|
char *xml;
|
||||||
unsigned char *uuid;
|
unsigned char *uuid;
|
||||||
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
GET_NETWORK(network, NULL);
|
GET_NETWORK(network, NULL);
|
||||||
|
|
||||||
if (!(buf = virBufferNew(4000))) {
|
if (!(buf = virBufferNew(4000))) {
|
||||||
@ -1869,13 +1862,8 @@ static char *testNetworkDumpXML(virNetworkPtr network, int flags ATTRIBUTE_UNUSE
|
|||||||
virBufferAdd(buf, "<network>\n", -1);
|
virBufferAdd(buf, "<network>\n", -1);
|
||||||
virBufferVSprintf(buf, " <name>%s</name>\n", network->name);
|
virBufferVSprintf(buf, " <name>%s</name>\n", network->name);
|
||||||
uuid = network->uuid;
|
uuid = network->uuid;
|
||||||
virBufferVSprintf(buf,
|
virUUIDFormat(uuid, uuidstr);
|
||||||
" <uuid>%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x</uuid>\n",
|
virBufferVSprintf(buf, " <uuid>%s</uuid>\n", uuidstr);
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]);
|
|
||||||
|
|
||||||
virBufferVSprintf(buf, " <bridge name='%s'/>\n", privnet->bridge);
|
virBufferVSprintf(buf, " <bridge name='%s'/>\n", privnet->bridge);
|
||||||
if (privnet->forward) {
|
if (privnet->forward) {
|
||||||
if (privnet->forwardDev[0])
|
if (privnet->forwardDev[0])
|
||||||
|
57
src/uuid.c
57
src/uuid.c
@ -79,7 +79,7 @@ virUUIDGeneratePseudoRandomBytes(unsigned char *buf,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* virUUIDGenerate:
|
* virUUIDGenerate:
|
||||||
* @uuid: array of VIR_UUID_RAW_LEN bytes to store the new UUID
|
* @uuid: array of VIR_UUID_BUFLEN bytes to store the new UUID
|
||||||
*
|
*
|
||||||
* Generates a randomized unique identifier.
|
* Generates a randomized unique identifier.
|
||||||
*
|
*
|
||||||
@ -93,18 +93,18 @@ virUUIDGenerate(unsigned char *uuid)
|
|||||||
if (uuid == NULL)
|
if (uuid == NULL)
|
||||||
return(-1);
|
return(-1);
|
||||||
|
|
||||||
if ((err = virUUIDGenerateRandomBytes(uuid, VIR_UUID_RAW_LEN)))
|
if ((err = virUUIDGenerateRandomBytes(uuid, VIR_UUID_BUFLEN)))
|
||||||
qemudLog(QEMUD_WARN,
|
qemudLog(QEMUD_WARN,
|
||||||
"Falling back to pseudorandom UUID, "
|
"Falling back to pseudorandom UUID, "
|
||||||
"failed to generate random bytes: %s", strerror(err));
|
"failed to generate random bytes: %s", strerror(err));
|
||||||
|
|
||||||
return virUUIDGeneratePseudoRandomBytes(uuid, VIR_UUID_RAW_LEN);
|
return virUUIDGeneratePseudoRandomBytes(uuid, VIR_UUID_BUFLEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virUUIDParse:
|
* virUUIDParse:
|
||||||
* @uuid: zero terminated string representation of the UUID
|
* @uuidstr: zero terminated string representation of the UUID
|
||||||
* @rawuuid: array of VIR_UUID_RAW_LEN bytes to store the raw UUID
|
* @uuid: array of VIR_UUID_BUFLEN bytes to store the raw UUID
|
||||||
*
|
*
|
||||||
* Parses the external string representation, allowing spaces and '-'
|
* Parses the external string representation, allowing spaces and '-'
|
||||||
* character in the sequence, and storing the result as a raw UUID
|
* character in the sequence, and storing the result as a raw UUID
|
||||||
@ -112,20 +112,20 @@ virUUIDGenerate(unsigned char *uuid)
|
|||||||
* Returns 0 in case of success and -1 in case of error.
|
* Returns 0 in case of success and -1 in case of error.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virUUIDParse(const char *uuid, unsigned char *rawuuid) {
|
virUUIDParse(const char *uuidstr, unsigned char *uuid) {
|
||||||
const char *cur;
|
const char *cur;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if ((uuid == NULL) || (rawuuid == NULL))
|
if ((uuidstr == NULL) || (uuid == NULL))
|
||||||
return(-1);
|
return(-1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do a liberal scan allowing '-' and ' ' anywhere between character
|
* do a liberal scan allowing '-' and ' ' anywhere between character
|
||||||
* pairs as long as there is 32 of them in the end.
|
* pairs as long as there is 32 of them in the end.
|
||||||
*/
|
*/
|
||||||
cur = uuid;
|
cur = uuidstr;
|
||||||
for (i = 0;i < 16;) {
|
for (i = 0;i < VIR_UUID_BUFLEN;) {
|
||||||
rawuuid[i] = 0;
|
uuid[i] = 0;
|
||||||
if (*cur == 0)
|
if (*cur == 0)
|
||||||
goto error;
|
goto error;
|
||||||
if ((*cur == '-') || (*cur == ' ')) {
|
if ((*cur == '-') || (*cur == ' ')) {
|
||||||
@ -133,23 +133,23 @@ virUUIDParse(const char *uuid, unsigned char *rawuuid) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ((*cur >= '0') && (*cur <= '9'))
|
if ((*cur >= '0') && (*cur <= '9'))
|
||||||
rawuuid[i] = *cur - '0';
|
uuid[i] = *cur - '0';
|
||||||
else if ((*cur >= 'a') && (*cur <= 'f'))
|
else if ((*cur >= 'a') && (*cur <= 'f'))
|
||||||
rawuuid[i] = *cur - 'a' + 10;
|
uuid[i] = *cur - 'a' + 10;
|
||||||
else if ((*cur >= 'A') && (*cur <= 'F'))
|
else if ((*cur >= 'A') && (*cur <= 'F'))
|
||||||
rawuuid[i] = *cur - 'A' + 10;
|
uuid[i] = *cur - 'A' + 10;
|
||||||
else
|
else
|
||||||
goto error;
|
goto error;
|
||||||
rawuuid[i] *= 16;
|
uuid[i] *= 16;
|
||||||
cur++;
|
cur++;
|
||||||
if (*cur == 0)
|
if (*cur == 0)
|
||||||
goto error;
|
goto error;
|
||||||
if ((*cur >= '0') && (*cur <= '9'))
|
if ((*cur >= '0') && (*cur <= '9'))
|
||||||
rawuuid[i] += *cur - '0';
|
uuid[i] += *cur - '0';
|
||||||
else if ((*cur >= 'a') && (*cur <= 'f'))
|
else if ((*cur >= 'a') && (*cur <= 'f'))
|
||||||
rawuuid[i] += *cur - 'a' + 10;
|
uuid[i] += *cur - 'a' + 10;
|
||||||
else if ((*cur >= 'A') && (*cur <= 'F'))
|
else if ((*cur >= 'A') && (*cur <= 'F'))
|
||||||
rawuuid[i] += *cur - 'A' + 10;
|
uuid[i] += *cur - 'A' + 10;
|
||||||
else
|
else
|
||||||
goto error;
|
goto error;
|
||||||
i++;
|
i++;
|
||||||
@ -162,6 +162,29 @@ virUUIDParse(const char *uuid, unsigned char *rawuuid) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* virUUIDFormat:
|
||||||
|
* @uuid: array of VIR_UUID_RAW_LEN bytes to store the raw UUID
|
||||||
|
* @uuidstr: array of VIR_UUID_STRING_BUFLEN bytes to store the
|
||||||
|
* string representation of the UUID in. The resulting string
|
||||||
|
* will be NULL terminated.
|
||||||
|
*
|
||||||
|
* Converts the raw UUID into printable format, with embedded '-'
|
||||||
|
*
|
||||||
|
* Returns 0 in case of success and -1 in case of error.
|
||||||
|
*/
|
||||||
|
void virUUIDFormat(const unsigned char *uuid, char *uuidstr)
|
||||||
|
{
|
||||||
|
snprintf(uuidstr, VIR_UUID_STRING_BUFLEN,
|
||||||
|
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
|
||||||
|
uuid[0], uuid[1], uuid[2], uuid[3],
|
||||||
|
uuid[4], uuid[5], uuid[6], uuid[7],
|
||||||
|
uuid[8], uuid[9], uuid[10], uuid[11],
|
||||||
|
uuid[12], uuid[13], uuid[14], uuid[15]);
|
||||||
|
uuidstr[VIR_UUID_STRING_BUFLEN-1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Local variables:
|
* Local variables:
|
||||||
* indent-tabs-mode: nil
|
* indent-tabs-mode: nil
|
||||||
|
13
src/uuid.h
13
src/uuid.h
@ -22,15 +22,12 @@
|
|||||||
#ifndef __VIR_UUID_H__
|
#ifndef __VIR_UUID_H__
|
||||||
#define __VIR_UUID_H__
|
#define __VIR_UUID_H__
|
||||||
|
|
||||||
/**
|
|
||||||
* VIR_UUID_RAW_LEN:
|
|
||||||
* number of bytes used by an UUID in raw form
|
|
||||||
*/
|
|
||||||
#define VIR_UUID_RAW_LEN 16
|
|
||||||
|
|
||||||
int virUUIDGenerate(unsigned char *uuid);
|
int virUUIDGenerate(unsigned char *uuid);
|
||||||
|
|
||||||
int virUUIDParse(const char *uuid,
|
int virUUIDParse(const char *uuidstr,
|
||||||
unsigned char *rawuuid);
|
unsigned char *uuid);
|
||||||
|
|
||||||
|
void virUUIDFormat(const unsigned char *uuid,
|
||||||
|
char *uuidstr);
|
||||||
|
|
||||||
#endif /* __VIR_UUID_H__ */
|
#endif /* __VIR_UUID_H__ */
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "sexpr.h"
|
#include "sexpr.h"
|
||||||
#include "xml.h"
|
#include "xml.h"
|
||||||
#include "buf.h"
|
#include "buf.h"
|
||||||
|
#include "uuid.h"
|
||||||
#include "xen_unified.h"
|
#include "xen_unified.h"
|
||||||
#include "xend_internal.h"
|
#include "xend_internal.h"
|
||||||
#include "xen_internal.h" /* for DOM0_INTERFACE_VERSION */
|
#include "xen_internal.h" /* for DOM0_INTERFACE_VERSION */
|
||||||
@ -776,13 +777,15 @@ sexpr_u64(struct sexpr *sexpr, const char *name)
|
|||||||
*
|
*
|
||||||
* convenience function to lookup an UUID value from the S-Expression
|
* convenience function to lookup an UUID value from the S-Expression
|
||||||
*
|
*
|
||||||
* Returns a pointer to the stored UUID or NULL in case of error.
|
* Returns a -1 on error, 0 on success
|
||||||
*/
|
*/
|
||||||
static unsigned char *
|
static int
|
||||||
sexpr_uuid(char **ptr, struct sexpr *node, const char *path)
|
sexpr_uuid(unsigned char *ptr, struct sexpr *node, const char *path)
|
||||||
{
|
{
|
||||||
const char *r = sexpr_node(node, path);
|
const char *r = sexpr_node(node, path);
|
||||||
return virParseUUID(ptr, r);
|
if (!r)
|
||||||
|
return -1;
|
||||||
|
return virUUIDParse(r, ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1061,10 +1064,7 @@ xenDaemonDomainLookupByName_ids(virConnectPtr xend, const char *domname,
|
|||||||
_("domain information incorrect domid not numeric"));
|
_("domain information incorrect domid not numeric"));
|
||||||
ret = -1;
|
ret = -1;
|
||||||
} else if (uuid != NULL) {
|
} else if (uuid != NULL) {
|
||||||
char *uuid_c = (char *) uuid;
|
if (sexpr_uuid(uuid, root, "domain/uuid") < 0) {
|
||||||
char **ptr = &uuid_c;
|
|
||||||
|
|
||||||
if (sexpr_uuid(ptr, root, "domain/uuid") == NULL) {
|
|
||||||
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
|
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
|
||||||
_("domain information incomplete, missing uuid"));
|
_("domain information incomplete, missing uuid"));
|
||||||
}
|
}
|
||||||
@ -1094,7 +1094,6 @@ xenDaemonDomainLookupByID(virConnectPtr xend,
|
|||||||
unsigned char *uuid)
|
unsigned char *uuid)
|
||||||
{
|
{
|
||||||
const char *name = NULL;
|
const char *name = NULL;
|
||||||
char *dst_uuid;
|
|
||||||
struct sexpr *root;
|
struct sexpr *root;
|
||||||
|
|
||||||
memset(uuid, 0, VIR_UUID_BUFLEN);
|
memset(uuid, 0, VIR_UUID_BUFLEN);
|
||||||
@ -1112,8 +1111,7 @@ xenDaemonDomainLookupByID(virConnectPtr xend,
|
|||||||
if (domname)
|
if (domname)
|
||||||
*domname = strdup(name);
|
*domname = strdup(name);
|
||||||
|
|
||||||
dst_uuid = (char *)&uuid[0];
|
if (sexpr_uuid(uuid, root, "domain/uuid") < 0) {
|
||||||
if (sexpr_uuid(&dst_uuid, root, "domain/uuid") == NULL) {
|
|
||||||
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
|
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
|
||||||
_("domain information incomplete, missing uuid"));
|
_("domain information incomplete, missing uuid"));
|
||||||
goto error;
|
goto error;
|
||||||
@ -1354,6 +1352,8 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi
|
|||||||
int hvm = 0, bootloader = 0;
|
int hvm = 0, bootloader = 0;
|
||||||
int domid = -1;
|
int domid = -1;
|
||||||
int max_mem, cur_mem;
|
int max_mem, cur_mem;
|
||||||
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
|
|
||||||
if (root == NULL) {
|
if (root == NULL) {
|
||||||
/* ERROR */
|
/* ERROR */
|
||||||
@ -1386,21 +1386,15 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root, int xendConfigVersi
|
|||||||
}
|
}
|
||||||
virBufferVSprintf(&buf, " <name>%s</name>\n", tmp);
|
virBufferVSprintf(&buf, " <name>%s</name>\n", tmp);
|
||||||
tmp = sexpr_node(root, "domain/uuid");
|
tmp = sexpr_node(root, "domain/uuid");
|
||||||
if (tmp != NULL) {
|
if (tmp == NULL) {
|
||||||
char compact[33];
|
virXendError(conn, VIR_ERR_INTERNAL_ERROR,
|
||||||
int i, j;
|
_("domain information incomplete, missing name"));
|
||||||
for (i = 0, j = 0;(i < 32) && (tmp[j] != 0);j++) {
|
goto error;
|
||||||
if (((tmp[j] >= '0') && (tmp[j] <= '9')) ||
|
|
||||||
((tmp[j] >= 'a') && (tmp[j] <= 'f'))) {
|
|
||||||
compact[i++] = tmp[j];
|
|
||||||
} else if ((tmp[j] >= 'A') && (tmp[j] <= 'F')) {
|
|
||||||
compact[i++] = tmp[j] + 'a' - 'A';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
compact[i] = 0;
|
|
||||||
if (i > 0)
|
|
||||||
virBufferVSprintf(&buf, " <uuid>%s</uuid>\n", compact);
|
|
||||||
}
|
}
|
||||||
|
virUUIDParse(tmp, uuid);
|
||||||
|
virUUIDFormat(uuid, uuidstr);
|
||||||
|
virBufferVSprintf(&buf, " <uuid>%s</uuid>\n", uuidstr);
|
||||||
|
|
||||||
tmp = sexpr_node(root, "domain/bootloader");
|
tmp = sexpr_node(root, "domain/bootloader");
|
||||||
if (tmp != NULL) {
|
if (tmp != NULL) {
|
||||||
bootloader = 1;
|
bootloader = 1;
|
||||||
@ -1884,8 +1878,7 @@ static virDomainPtr
|
|||||||
sexpr_to_domain(virConnectPtr conn, struct sexpr *root)
|
sexpr_to_domain(virConnectPtr conn, struct sexpr *root)
|
||||||
{
|
{
|
||||||
virDomainPtr ret = NULL;
|
virDomainPtr ret = NULL;
|
||||||
char *dst_uuid = NULL;
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
char uuid[VIR_UUID_BUFLEN];
|
|
||||||
const char *name;
|
const char *name;
|
||||||
const char *tmp;
|
const char *tmp;
|
||||||
xenUnifiedPrivatePtr priv;
|
xenUnifiedPrivatePtr priv;
|
||||||
@ -1895,14 +1888,13 @@ sexpr_to_domain(virConnectPtr conn, struct sexpr *root)
|
|||||||
|
|
||||||
priv = (xenUnifiedPrivatePtr) conn->privateData;
|
priv = (xenUnifiedPrivatePtr) conn->privateData;
|
||||||
|
|
||||||
dst_uuid = (char *) &uuid[0];
|
if (sexpr_uuid(uuid, root, "domain/uuid") < 0)
|
||||||
if (sexpr_uuid(&dst_uuid, root, "domain/uuid") == NULL)
|
|
||||||
goto error;
|
goto error;
|
||||||
name = sexpr_node(root, "domain/name");
|
name = sexpr_node(root, "domain/name");
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
ret = virGetDomain(conn, name, (const unsigned char *) &uuid[0]);
|
ret = virGetDomain(conn, name, uuid);
|
||||||
if (ret == NULL) return NULL;
|
if (ret == NULL) return NULL;
|
||||||
|
|
||||||
tmp = sexpr_node(root, "domain/domid");
|
tmp = sexpr_node(root, "domain/domid");
|
||||||
@ -2974,15 +2966,7 @@ xenDaemonLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
|
|||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
struct sexpr *root = NULL;
|
struct sexpr *root = NULL;
|
||||||
|
|
||||||
memset(uuidstr, '\0', VIR_UUID_STRING_BUFLEN);
|
virUUIDFormat(uuid, uuidstr);
|
||||||
|
|
||||||
snprintf(uuidstr, VIR_UUID_STRING_BUFLEN,
|
|
||||||
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
|
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]);
|
|
||||||
|
|
||||||
root = sexpr_get(conn, "/xend/domain/%s?detail=1", uuidstr);
|
root = sexpr_get(conn, "/xend/domain/%s?detail=1", uuidstr);
|
||||||
if (root == NULL)
|
if (root == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "xml.h"
|
#include "xml.h"
|
||||||
#include "buf.h"
|
#include "buf.h"
|
||||||
|
#include "uuid.h"
|
||||||
|
|
||||||
typedef struct xenXMConfCache *xenXMConfCachePtr;
|
typedef struct xenXMConfCache *xenXMConfCachePtr;
|
||||||
typedef struct xenXMConfCache {
|
typedef struct xenXMConfCache {
|
||||||
@ -200,7 +201,6 @@ static int xenXMConfigGetString(virConfPtr conf, const char *name, const char **
|
|||||||
/* Convenience method to grab a string UUID from the config file object */
|
/* Convenience method to grab a string UUID from the config file object */
|
||||||
static int xenXMConfigGetUUID(virConfPtr conf, const char *name, unsigned char *uuid) {
|
static int xenXMConfigGetUUID(virConfPtr conf, const char *name, unsigned char *uuid) {
|
||||||
virConfValuePtr val;
|
virConfValuePtr val;
|
||||||
char *rawuuid = (char *)uuid;
|
|
||||||
if (!uuid || !name || !conf)
|
if (!uuid || !name || !conf)
|
||||||
return (-1);
|
return (-1);
|
||||||
if (!(val = virConfGetValue(conf, name))) {
|
if (!(val = virConfGetValue(conf, name))) {
|
||||||
@ -212,20 +212,12 @@ static int xenXMConfigGetUUID(virConfPtr conf, const char *name, unsigned char *
|
|||||||
if (!val->str)
|
if (!val->str)
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
if (!virParseUUID(&rawuuid, val->str))
|
if (virUUIDParse(val->str, uuid) < 0)
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generate a rnadom UUID - used if domain doesn't already
|
|
||||||
have one in its config */
|
|
||||||
static void xenXMConfigGenerateUUID(unsigned char *uuid) {
|
|
||||||
int i;
|
|
||||||
for (i = 0 ; i < VIR_UUID_BUFLEN ; i++) {
|
|
||||||
uuid[i] = (unsigned char)(1 + (int) (256.0 * (rand() / (RAND_MAX + 1.0))));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ensure that a config object has a valid UUID in it,
|
/* Ensure that a config object has a valid UUID in it,
|
||||||
if it doesn't then (re-)generate one */
|
if it doesn't then (re-)generate one */
|
||||||
@ -263,14 +255,8 @@ static int xenXMConfigEnsureIdentity(virConfPtr conf, const char *filename) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ... then generate one */
|
/* ... then generate one */
|
||||||
xenXMConfigGenerateUUID(uuid);
|
virUUIDGenerate(uuid);
|
||||||
snprintf(uuidstr, VIR_UUID_STRING_BUFLEN,
|
virUUIDFormat(uuid, uuidstr);
|
||||||
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x</uuid>\n",
|
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]);
|
|
||||||
uuidstr[VIR_UUID_STRING_BUFLEN-1] = '\0';
|
|
||||||
|
|
||||||
value->type = VIR_CONF_STRING;
|
value->type = VIR_CONF_STRING;
|
||||||
value->str = strdup(uuidstr);
|
value->str = strdup(uuidstr);
|
||||||
@ -587,6 +573,7 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
|||||||
char *xml;
|
char *xml;
|
||||||
const char *name;
|
const char *name;
|
||||||
unsigned char uuid[VIR_UUID_BUFLEN];
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
const char *str;
|
const char *str;
|
||||||
int hvm = 0;
|
int hvm = 0;
|
||||||
long val;
|
long val;
|
||||||
@ -609,12 +596,8 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
|||||||
|
|
||||||
virBufferAdd(buf, "<domain type='xen'>\n", -1);
|
virBufferAdd(buf, "<domain type='xen'>\n", -1);
|
||||||
virBufferVSprintf(buf, " <name>%s</name>\n", name);
|
virBufferVSprintf(buf, " <name>%s</name>\n", name);
|
||||||
virBufferVSprintf(buf,
|
virUUIDFormat(uuid, uuidstr);
|
||||||
" <uuid>%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x</uuid>\n",
|
virBufferVSprintf(buf, " <uuid>%s</uuid>\n", uuidstr);
|
||||||
uuid[0], uuid[1], uuid[2], uuid[3],
|
|
||||||
uuid[4], uuid[5], uuid[6], uuid[7],
|
|
||||||
uuid[8], uuid[9], uuid[10], uuid[11],
|
|
||||||
uuid[12], uuid[13], uuid[14], uuid[15]);
|
|
||||||
|
|
||||||
if ((xenXMConfigGetString(conf, "builder", &str) == 0) &&
|
if ((xenXMConfigGetString(conf, "builder", &str) == 0) &&
|
||||||
!strcmp(str, "hvm"))
|
!strcmp(str, "hvm"))
|
||||||
|
61
src/xml.c
61
src/xml.c
@ -1308,67 +1308,6 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !PROXY */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned char *virParseUUID(char **ptr, const char *uuid) {
|
|
||||||
int rawuuid[VIR_UUID_BUFLEN];
|
|
||||||
const char *cur;
|
|
||||||
unsigned char *dst_uuid = NULL;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (uuid == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* do a liberal scan allowing '-' and ' ' anywhere between character
|
|
||||||
* pairs as long as there is 32 of them in the end.
|
|
||||||
*/
|
|
||||||
cur = uuid;
|
|
||||||
for (i = 0;i < VIR_UUID_BUFLEN;) {
|
|
||||||
rawuuid[i] = 0;
|
|
||||||
if (*cur == 0)
|
|
||||||
goto error;
|
|
||||||
if ((*cur == '-') || (*cur == ' ')) {
|
|
||||||
cur++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ((*cur >= '0') && (*cur <= '9'))
|
|
||||||
rawuuid[i] = *cur - '0';
|
|
||||||
else if ((*cur >= 'a') && (*cur <= 'f'))
|
|
||||||
rawuuid[i] = *cur - 'a' + 10;
|
|
||||||
else if ((*cur >= 'A') && (*cur <= 'F'))
|
|
||||||
rawuuid[i] = *cur - 'A' + 10;
|
|
||||||
else
|
|
||||||
goto error;
|
|
||||||
rawuuid[i] *= 16;
|
|
||||||
cur++;
|
|
||||||
if (*cur == 0)
|
|
||||||
goto error;
|
|
||||||
if ((*cur >= '0') && (*cur <= '9'))
|
|
||||||
rawuuid[i] += *cur - '0';
|
|
||||||
else if ((*cur >= 'a') && (*cur <= 'f'))
|
|
||||||
rawuuid[i] += *cur - 'a' + 10;
|
|
||||||
else if ((*cur >= 'A') && (*cur <= 'F'))
|
|
||||||
rawuuid[i] += *cur - 'A' + 10;
|
|
||||||
else
|
|
||||||
goto error;
|
|
||||||
i++;
|
|
||||||
cur++;
|
|
||||||
}
|
|
||||||
|
|
||||||
dst_uuid = (unsigned char *) *ptr;
|
|
||||||
*ptr += 16;
|
|
||||||
|
|
||||||
for (i = 0; i < VIR_UUID_BUFLEN; i++)
|
|
||||||
dst_uuid[i] = rawuuid[i] & 0xFF;
|
|
||||||
|
|
||||||
error:
|
|
||||||
return(dst_uuid);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef PROXY
|
|
||||||
/**
|
/**
|
||||||
* virParseXMLDevice:
|
* virParseXMLDevice:
|
||||||
* @conn: pointer to the hypervisor connection
|
* @conn: pointer to the hypervisor connection
|
||||||
|
@ -32,7 +32,6 @@ int virXPathNodeSet (const char *xpath,
|
|||||||
xmlNodePtr **list);
|
xmlNodePtr **list);
|
||||||
|
|
||||||
char *virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int xendConfigVersion);
|
char *virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int xendConfigVersion);
|
||||||
unsigned char *virParseUUID(char **ptr, const char *uuid);
|
|
||||||
char *virParseXMLDevice(virConnectPtr conn, char *xmldesc, int hvm, int xendConfigVersion);
|
char *virParseXMLDevice(virConnectPtr conn, char *xmldesc, int hvm, int xendConfigVersion);
|
||||||
int virDomainXMLDevID(virDomainPtr domain, char *xmldesc, char *class, char *ref);
|
int virDomainXMLDevID(virDomainPtr domain, char *xmldesc, char *class, char *ref);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='5'>
|
<domain type='xen' id='5'>
|
||||||
<name>rhel5</name>
|
<name>rhel5</name>
|
||||||
<uuid>4f77abd2301958e83bab6fbf2118f880</uuid>
|
<uuid>4f77abd2-3019-58e8-3bab-6fbf2118f880</uuid>
|
||||||
<bootloader>/usr/bin/pygrub</bootloader>
|
<bootloader>/usr/bin/pygrub</bootloader>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='3'>
|
<domain type='xen' id='3'>
|
||||||
<name>fvtest</name>
|
<name>fvtest</name>
|
||||||
<uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
|
<uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='3'>
|
<domain type='xen' id='3'>
|
||||||
<name>fvtest</name>
|
<name>fvtest</name>
|
||||||
<uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
|
<uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='3'>
|
<domain type='xen' id='3'>
|
||||||
<name>fvtest</name>
|
<name>fvtest</name>
|
||||||
<uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
|
<uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='3'>
|
<domain type='xen' id='3'>
|
||||||
<name>fvtest</name>
|
<name>fvtest</name>
|
||||||
<uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
|
<uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='3'>
|
<domain type='xen' id='3'>
|
||||||
<name>fvtest</name>
|
<name>fvtest</name>
|
||||||
<uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
|
<uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='3'>
|
<domain type='xen' id='3'>
|
||||||
<name>fvtest</name>
|
<name>fvtest</name>
|
||||||
<uuid>b5d70dd275cdaca517769660b059d8bc</uuid>
|
<uuid>b5d70dd2-75cd-aca5-1776-9660b059d8bc</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>test</name>
|
<name>test</name>
|
||||||
<uuid>cc2315e7d26a307a438c6d188ec4c09c</uuid>
|
<uuid>cc2315e7-d26a-307a-438c-6d188ec4c09c</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<bootloader>/usr/bin/pypxeboot</bootloader>
|
<bootloader>/usr/bin/pypxeboot</bootloader>
|
||||||
<bootloader_args>mac=AA:00:86:e2:35:72</bootloader_args>
|
<bootloader_args>mac=AA:00:86:e2:35:72</bootloader_args>
|
||||||
<memory>430080</memory>
|
<memory>430080</memory>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen' id='6'>
|
<domain type='xen' id='6'>
|
||||||
<name>pvtest</name>
|
<name>pvtest</name>
|
||||||
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>linux</type>
|
<type>linux</type>
|
||||||
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
<kernel>/var/lib/xen/vmlinuz.2Dn2YT</kernel>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest2"
|
name = "XenGuest2"
|
||||||
uuid = "c7a5fdb2cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest2</name>
|
<name>XenGuest2</name>
|
||||||
<uuid>c7a5fdb2cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest2"
|
name = "XenGuest2"
|
||||||
uuid = "c7a5fdb2cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest2</name>
|
<name>XenGuest2</name>
|
||||||
<uuid>c7a5fdb2cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest2"
|
name = "XenGuest2"
|
||||||
uuid = "c7a5fdb2cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest2</name>
|
<name>XenGuest2</name>
|
||||||
<uuid>c7a5fdb2cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest2"
|
name = "XenGuest2"
|
||||||
uuid = "c7a5fdb2cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest2</name>
|
<name>XenGuest2</name>
|
||||||
<uuid>c7a5fdb2cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest2</name>
|
<name>XenGuest2</name>
|
||||||
<uuid>c7a5fdb2cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest2"
|
name = "XenGuest2"
|
||||||
uuid = "c7a5fdb2cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest2</name>
|
<name>XenGuest2</name>
|
||||||
<uuid>c7a5fdb2cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest2"
|
name = "XenGuest2"
|
||||||
uuid = "c7a5fdb2cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest2</name>
|
<name>XenGuest2</name>
|
||||||
<uuid>c7a5fdb2cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<os>
|
<os>
|
||||||
<type>hvm</type>
|
<type>hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest1"
|
name = "XenGuest1"
|
||||||
uuid = "c7a5fdb0cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb0-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest1</name>
|
<name>XenGuest1</name>
|
||||||
<uuid>c7a5fdb0cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb0-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<bootloader>/usr/bin/pygrub</bootloader>
|
<bootloader>/usr/bin/pygrub</bootloader>
|
||||||
<currentMemory>403456</currentMemory>
|
<currentMemory>403456</currentMemory>
|
||||||
<memory>592896</memory>
|
<memory>592896</memory>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name = "XenGuest1"
|
name = "XenGuest1"
|
||||||
uuid = "c7a5fdb0cdaf9455926ad65c16db1809"
|
uuid = "c7a5fdb0-cdaf-9455-926a-d65c16db1809"
|
||||||
maxmem = 579
|
maxmem = 579
|
||||||
memory = 394
|
memory = 394
|
||||||
vcpus = 1
|
vcpus = 1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<domain type='xen'>
|
<domain type='xen'>
|
||||||
<name>XenGuest1</name>
|
<name>XenGuest1</name>
|
||||||
<uuid>c7a5fdb0cdaf9455926ad65c16db1809</uuid>
|
<uuid>c7a5fdb0-cdaf-9455-926a-d65c16db1809</uuid>
|
||||||
<bootloader>/usr/bin/pygrub</bootloader>
|
<bootloader>/usr/bin/pygrub</bootloader>
|
||||||
<currentMemory>403456</currentMemory>
|
<currentMemory>403456</currentMemory>
|
||||||
<memory>592896</memory>
|
<memory>592896</memory>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user