Re: [libvirt] [PATCH] Pass syntax check for block devices to XenD.

2008-06-17 Thread Atsushi SAKAI
Hi, Hiroyuki

This patch is already commited by Rich
http://git.et.redhat.com/?p=libvirt.git;a=commitdiff;h=b612d79d5be4a6f4743da4b85d973fc2f92be4bd

Thanks
Atsushi SAKAI


Hiroyuki Kaguchi [EMAIL PROTECTED] wrote:

 On 2008/06/04 14:17, Hiroyuki Kaguchi wrote:
  Hi,
  
  libvirt doesn't pass disk information that the device type isn't specified 
  to
  XenD and doesn't show the error message either.
  However, the error message should be displayed, and XenD should show it.
  On this account, I change libvirt that libvirt passes the disk information 
  that
  the device type isn't specified to XenD and XenD shows error message.
  
  The related patch:
  After Xen Cset17617, XenD check the syntax of the device type of the disk
  information.
  
  Thanks,
  Signed-off-by: Hiroyuki Kaguchi [EMAIL PROTECTED]
  
  Index: src/xm_internal.c
  ===
  RCS file: /data/cvs/libvirt/src/xm_internal.c,v
  retrieving revision 1.79
  diff -u -p -r1.79 xm_internal.c
  --- src/xm_internal.c   29 May 2008 19:20:23 -  1.79
  +++ src/xm_internal.c   3 Jun 2008 07:48:02 -
  @@ -767,12 +767,10 @@ char *xenXMDomainFormatXML(virConnectPtr
   if (!src[0]) {
   strcpy(drvName, phy);
   tmp = src[0];
  -} else if (!(tmp = strchr(src, ':')) || !tmp[0]) {
  -goto skipdisk;
  -} else {
  -strncpy(drvName, src, (tmp-src));
  -drvName[tmp-src] = '\0';
  -}
  +} else if (tmp = strchr(src, ':')) {
  +strncpy(drvName, src, (tmp-src));
  +drvName[tmp-src] = '\0';
  +}
  
   /* And the source driver sub-type */
   if (STRPREFIX(drvName, tap)) {
  @@ -782,7 +780,7 @@ char *xenXMDomainFormatXML(virConnectPtr
   memmove(src, src+(tmp1-src)+1, strlen(src)-(tmp1-src));
   } else {
   drvType[0] = '\0';
  -if (src[0])
  +if (src[0]  tmp)
   memmove(src, src+(tmp-src)+1, 
  strlen(src)-(tmp-src));
   }
  
 
 Would you give me a comment on this patch? If not, please apply it.
 
 Thanks,
 Hiroyuki Kaguchi
 
 --
 Libvir-list mailing list
 Libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list


--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH]: fix ruby-libvirt bindings when virConnectNum* returns 0

2008-06-17 Thread Chris Lalancette
Attached is a simple patch to fix a problem I ran into when using the
ruby-libvirt bindings with libvirt 0.4.3.  Basically, if you call any of the
virConnectList* functions with a max of 0, it returns Invalid Arg.  To get
around this, modify the ruby-libvirt bindings to return an empty list if we get
num == 0 when calling the corresponding virConnectNumOf* function.  This should
solve: https://bugzilla.redhat.com/show_bug.cgi?id=451666

Signed-off-by: Chris Lalancette [EMAIL PROTECTED]
diff -r b02171cfad7d ext/libvirt/_libvirt.c
--- a/ext/libvirt/_libvirt.c	Wed Apr 16 09:47:27 2008 -0700
+++ b/ext/libvirt/_libvirt.c	Tue Jun 17 11:06:26 2008 +0200
@@ -256,7 +256,11 @@ static VALUE vol_new(virStorageVolPtr n,
 \
 num = virConnectNumOf##objs(conn);  \
 _E(num  0, create_error(e_RetrieveError, virConnectNumOf # objs, , conn));   \
-\
+if (num == 0) { \
+/* if num is 0, don't call virConnectList* function */  \
+result = rb_ary_new2(num);  \
+return result;  \
+}   \
 names = ALLOC_N(char *, num);   \
 r = virConnectList##objs(conn, names, num); \
 if (r  0) {\
--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH]: fix ruby-libvirt bindings when virConnectNum* returns 0

2008-06-17 Thread Daniel Veillard
On Tue, Jun 17, 2008 at 11:16:31AM +0200, Chris Lalancette wrote:
 Attached is a simple patch to fix a problem I ran into when using the
 ruby-libvirt bindings with libvirt 0.4.3.  Basically, if you call any of the
 virConnectList* functions with a max of 0, it returns Invalid Arg.  To get
 around this, modify the ruby-libvirt bindings to return an empty list if we 
 get
 num == 0 when calling the corresponding virConnectNumOf* function.  This 
 should
 solve: https://bugzilla.redhat.com/show_bug.cgi?id=451666

  That doesn't sound proper to me. I re-checked, all virConnectList* functions
in libvirt.c raise with an error only if the connection is invalid, if 
the pointer to the storage is NULL or if the max value is  0. the max value
being 0 should be accepted, that's the semantic of the check done on top
of the driver. So what driver did fail with an argument error ? this need
to be fixed.
  This looks okay in the QEmu driver from what I saw
  xenHypervisorListDomains seems to need fixing.
  xenDaemonListDomains need to be fixed too.
  xenDaemonListDefinedDomains need to be fixed too.
  The OpenVZ driver looks okay
  The LXC driver looks okay
  The remote driver seems okay but it's harder for me to assert it works 
  through the full chain.

Patch for the Xen parts attached.
Could you try to investigate and find more precisely under what conditions
you got the 'max = 0' returning an invalid arg error, we need to find this
fix it not work around it at the binding level IMHO,

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
Index: src/xen_internal.c
===
RCS file: /data/cvs/libxen/src/xen_internal.c,v
retrieving revision 1.121
diff -u -p -r1.121 xen_internal.c
--- src/xen_internal.c  6 Jun 2008 11:09:57 -   1.121
+++ src/xen_internal.c  17 Jun 2008 09:48:17 -
@@ -2554,9 +2554,12 @@ xenHypervisorListDomains(virConnectPtr c
 
 priv = (xenUnifiedPrivatePtr) conn-privateData;
 if (priv-handle  0 ||
-(ids == NULL) || (maxids  1))
+(ids == NULL) || (maxids  0))
 return (-1);
 
+if (maxids == 0)
+return(0);
+
 if (!(XEN_GETDOMAININFOLIST_ALLOC(dominfos, maxids))) {
 virXenError(conn, VIR_ERR_NO_MEMORY, allocating %d domain info,
 maxids);
Index: src/xend_internal.c
===
RCS file: /data/cvs/libxen/src/xend_internal.c,v
retrieving revision 1.198
diff -u -p -r1.198 xend_internal.c
--- src/xend_internal.c 9 Jun 2008 12:16:03 -   1.198
+++ src/xend_internal.c 17 Jun 2008 09:48:17 -
@@ -3330,7 +3330,10 @@ xenDaemonListDomains(virConnectPtr conn,
 struct sexpr *_for_i, *node;
 long id;
 
-if ((ids == NULL) || (maxids = 0))
+if (maxids == 0)
+return(0);
+
+if ((ids == NULL) || (maxids  0))
 goto error;
 root = sexpr_get(conn, /xend/domain);
 if (root == NULL)
@@ -4219,8 +4222,11 @@ int xenDaemonListDefinedDomains(virConne
 if (priv-xendConfigVersion  3)
 return(-1);
 
-if ((names == NULL) || (maxnames = 0))
+if ((names == NULL) || (maxnames  0))
 goto error;
+if (maxnames == 0)
+return(0);
+
 root = sexpr_get(conn, /xend/domain?state=halted);
 if (root == NULL)
 goto error;
--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH]: fix ruby-libvirt bindings when virConnectNum* returns 0

2008-06-17 Thread Daniel Veillard
On Tue, Jun 17, 2008 at 11:16:31AM +0200, Chris Lalancette wrote:
 Attached is a simple patch to fix a problem I ran into when using the
 ruby-libvirt bindings with libvirt 0.4.3.  Basically, if you call any of the
 virConnectList* functions with a max of 0, it returns Invalid Arg.  To get
 around this, modify the ruby-libvirt bindings to return an empty list if we 
 get
 num == 0 when calling the corresponding virConnectNumOf* function.  This 
 should
 solve: https://bugzilla.redhat.com/show_bug.cgi?id=451666

  Hum, looking at the bugzilla it's for storage that the problem was raised.
It's a bit annoying, the main domain and network functions accept a max = 0
The documentation of virConnectListDefinedStoragePools doesn't prevent
maxnames = 0

  Actually the check done in the function is 
if ((names == NULL) || (maxnames  0))

i.e. it allows 0, and pass it to the underlying driver. One solution
would be to just return 0 there, as attached in this patch, the other
solution would be to check which underlying storage driver failed and
fix it,

Daniel


-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
Index: src/libvirt.c
===
RCS file: /data/cvs/libxen/src/libvirt.c,v
retrieving revision 1.146
diff -u -p -r1.146 libvirt.c
--- src/libvirt.c   10 Jun 2008 10:43:28 -  1.146
+++ src/libvirt.c   17 Jun 2008 09:59:00 -
@@ -4023,6 +4023,9 @@ virConnectListStoragePools(virConnectPt
 return (-1);
 }
 
+if (maxnames == 0)
+return (0);
+
 if (conn-storageDriver  conn-storageDriver-listPools)
 return conn-storageDriver-listPools (conn, names, maxnames);
 
@@ -4087,6 +4090,9 @@ virConnectListDefinedStoragePools(virCon
 return (-1);
 }
 
+if (maxnames == 0)
+return(0);
+
 if (conn-storageDriver  conn-storageDriver-listDefinedPools)
 return conn-storageDriver-listDefinedPools (conn, names, maxnames);
 
--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 5/5]: Rewrite findLuns function

2008-06-17 Thread Jim Meyering
Chris Lalancette [EMAIL PROTECTED] wrote:
 This rather large patch rewrites the virStorageBackendISCSIFindLUNs() function
 to only rely on sysfs for finding LUNs, given a session number.  Along the 
 way,
 it also fixes the bug where we wouldn't find LUNs for older kernels (with the
 block:sda format), and also (possibly) fixes a race condition where we could 
 try
 to find the LUN before udev has finished connecting it.  I say it possibly
 fixes it because I haven't been able to hit it so far, but I definitely need
 more testing to try and confirm.

 Changes since last time:
 1)  Don't blindly ignore the 0'th LUN (thanks Stefan).  Instead, look if the
 LUNs are Direct-Access devices (as defined by the kernel); if so, they are 
 LUNs
 we can use.
 2)  Fix up whitespace damage.
 3)  Check the return value of the scsidev strdup as pointed out by Jim.
 4)  Change all ISCSIADM commands to be const char *const as pointed out by 
 Jim.

 diff -urp libvirt.sendtarget/src/storage_backend_iscsi.c 
 libvirt.findLun/src/storage_backend_iscsi.c
 --- libvirt.sendtarget/src/storage_backend_iscsi.c2008-06-16 
 14:35:34.0 +0200
 +++ libvirt.findLun/src/storage_backend_iscsi.c   2008-06-16 
 14:52:31.0 +0200
 @@ -119,7 +119,7 @@ virStorageBackendISCSISession(virConnect
...
 +while ((sys_dirent = readdir(sysdir))) {
 +/* double-negative, so we can use the same function for scandir 
 below */
 +if (!notdotdir(sys_dirent))
 +continue;
 +
 +if (STREQLEN(sys_dirent-d_name, target, 6)) {
 +if (sscanf(sys_dirent-d_name, target%u:%u:%u,
 +   host, bus, target) != 3) {
 +virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
 +  _(Failed to parse target in sysfs 
 path %s: %s),
 +  sysfs_path, strerror(errno));

You can remove the : %s suffix and the strerror(errno) argument,
since errno isn't relevant here.  Or maybe better: leave the suffix
and use sys_dirent-d_name as the argument, so the diagnostic shows
what couldn't be parsed.

 +closedir(sysdir);
 +return -1;
 + 

The above line has just three TABs.
Best to delete it.

The rest, including patches 1-4, looks fine,
so, pending whatever tests you deem adequate,
ACK.

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 5/5]: Rewrite findLuns function

2008-06-17 Thread Chris Lalancette
Reposting the 5/5 patch with Jim's minor comments fixed up.  Compile tested only
with his changes.

This rather large patch rewrites the virStorageBackendISCSIFindLUNs() function
to only rely on sysfs for finding LUNs, given a session number.  Along the way,
it also fixes the bug where we wouldn't find LUNs for older kernels (with the
block:sda format), and also (possibly) fixes a race condition where we could try
to find the LUN before udev has finished connecting it.  I say it possibly
fixes it because I haven't been able to hit it so far, but I definitely need
more testing to try and confirm.

Changes since last time:
1)  Don't blindly ignore the 0'th LUN (thanks Stefan).  Instead, look if the
LUNs are Direct-Access devices (as defined by the kernel); if so, they are LUNs
we can use.
2)  Fix up whitespace damage.
3)  Check the return value of the scsidev strdup as pointed out by Jim.
4)  Change all ISCSIADM commands to be const char *const as pointed out by Jim.

Signed-off-by: Chris Lalancette [EMAIL PROTECTED]
diff -urp libvirt.1to4/src/storage_backend_iscsi.c libvirt.5/src/storage_backend_iscsi.c
--- libvirt.1to4/src/storage_backend_iscsi.c	2008-06-17 12:52:44.0 +0200
+++ libvirt.5/src/storage_backend_iscsi.c	2008-06-17 12:54:21.0 +0200
@@ -119,7 +119,7 @@ virStorageBackendISCSISession(virConnect
 int vars[] = {
 2,
 };
-const char *prog[] = {
+const char *const prog[] = {
 ISCSIADM, --mode, session, NULL
 };
 char *session = NULL;
@@ -153,7 +153,7 @@ virStorageBackendISCSIConnection(virConn
  const char *portal,
  const char *action)
 {
-const char *cmdargv[] = {
+const char *const cmdargv[] = {
 ISCSIADM, --mode, node, --portal, portal,
 --targetname, pool-def-source.devices[0].path, action, NULL
 };
@@ -164,110 +164,30 @@ virStorageBackendISCSIConnection(virConn
 return 0;
 }
 
-
 static int
-virStorageBackendISCSIMakeLUN(virConnectPtr conn,
-  virStoragePoolObjPtr pool,
-  char **const groups,
-  void *data)
+virStorageBackendISCSINewLun(virConnectPtr conn, virStoragePoolObjPtr pool,
+ unsigned int lun, const char *dev)
 {
 virStorageVolDefPtr vol;
 int fd = -1;
-unsigned int target, channel, id, lun;
-char lunid[100];
-int opentries = 0;
 char *devpath = NULL;
-char *session = data;
-char sysfs_path[PATH_MAX];
-char *dev = NULL;
-DIR *sysdir;
-struct dirent *block_dirent;
-struct stat sbuf;
-int len;
-
-if ((virStrToLong_ui(groups[0], NULL, 10, target)  0) ||
-(virStrToLong_ui(groups[1], NULL, 10, channel)  0) ||
-(virStrToLong_ui(groups[2], NULL, 10, id)  0) ||
-(virStrToLong_ui(groups[3], NULL, 10, lun)  0)) {
-virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR, %s,
-  _(Failed parsing iscsiadm commands));
-return -1;
-}
-
-if (lun == 0) {
-/* the 0'th LUN isn't a real LUN, it's just a control LUN; skip it */
-return 0;
-}
-
-snprintf(sysfs_path, PATH_MAX,
- /sys/class/iscsi_session/session%s/device/
- target%d:%d:%d/%d:%d:%d:%d/block,
- session, target, channel, id, target, channel, id, lun);
-
-if (stat(sysfs_path, sbuf)  0) {
-/* block path in subdir didn't exist; this is unexpected, so fail */
-virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
-  _(Failed to find the sysfs path for %d:%d:%d:%d: %s),
-  target, channel, id, lun, strerror(errno));
-return -1;
-}
-
-sysdir = opendir(sysfs_path);
-if (sysdir == NULL) {
-/* we failed for some reason; return an error */
-virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
-  _(Failed to opendir sysfs path %s: %s),
-  sysfs_path, strerror(errno));
-return -1;
-}
-
-while ((block_dirent = readdir(sysdir)) != NULL) {
-len = strlen(block_dirent-d_name);
-if ((len == 1  block_dirent-d_name[0] == '.') ||
-(len == 2  block_dirent-d_name[0] == '.'  block_dirent-d_name[1] == '.')) {
-/* the . and .. directories; just skip them */
-continue;
-}
-
-/* OK, not . or ..; let's see if it is a SCSI device */
-if (len  2 
-block_dirent-d_name[0] == 's' 
-block_dirent-d_name[1] == 'd') {
-/* looks like a scsi device, smells like scsi device; it must be
-   a scsi device */
-dev = strdup(block_dirent-d_name);
-break;
-}
-}
-closedir(sysdir);
-
-if (dev == NULL) {
-/* we didn't find the sd? device we were looking for; fail */
-virStorageReportError(conn, 

Re: [libvirt] PATCH: Helper for enumerations

2008-06-17 Thread Daniel Veillard
On Sun, Jun 15, 2008 at 09:59:38PM +0100, Daniel P. Berrange wrote:
 There are quite a few places in our code where we have to convert from
 a string to an int enumeration, and vica-verca. This is tedious code to
 write, and I'm about to introduce a tonne more enumerations in the new
 generic domain XML parser / generator. So I reckon its time for some
 helper APIs

  Looks fine to me, +1

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 1/5]: Return exitstatus from virStorageBackendRunProgRegex

2008-06-17 Thread Daniel Veillard
On Mon, Jun 16, 2008 at 03:52:31PM +0200, Chris Lalancette wrote:
 This patch changes things around so that virStorageBackendRunProgRegex() does
 *not* virStorageReportError() if the fork()/exec() process it spawned 
 returned a
 != 0 exit code.  Rather, it returns the exitcode in this case, and it is up to
 the higher level to determine whether this is a fatal error or not.  The use
 case for this change is in the iSCSI stuff; older versions of iscsiadm tools
 would return a failure when getting the session number, despite the command
 succeeding.

  Looks fine to me, +1

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 2/5]: Cleanup carriage returns in util.c

2008-06-17 Thread Daniel Veillard
On Mon, Jun 16, 2008 at 03:52:36PM +0200, Chris Lalancette wrote:
 In src/util.c, virLog is just a wrapper around fprintf(stderr).  Make sure to
 put line breaks at the end of lines that use virLog() (noticed during 
 testing).

  Looks fine to me, but IMHO we should instead switch to the normal libvirt
error reporting, +1 

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 4/5]: Move the sendtarget command into the login command

2008-06-17 Thread Daniel Veillard
On Mon, Jun 16, 2008 at 03:52:46PM +0200, Chris Lalancette wrote:
 A small bugfix; we only need to call the iscsiadm sendtarget command when we 
 are
 first logging in; we don't need to do it for logout.  Move the sendtarget
 command into the Login() function.

  Again I don't know the details, but patch looks okay +1

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 5/5]: Rewrite findLuns function

2008-06-17 Thread Daniel Veillard
On Tue, Jun 17, 2008 at 01:02:30PM +0200, Chris Lalancette wrote:
 Reposting the 5/5 patch with Jim's minor comments fixed up.  Compile tested 
 only
 with his changes.
 
 This rather large patch rewrites the virStorageBackendISCSIFindLUNs() function
 to only rely on sysfs for finding LUNs, given a session number.  Along the 
 way,
 it also fixes the bug where we wouldn't find LUNs for older kernels (with the
 block:sda format), and also (possibly) fixes a race condition where we could 
 try
 to find the LUN before udev has finished connecting it.  I say it possibly
 fixes it because I haven't been able to hit it so far, but I definitely need
 more testing to try and confirm.

  I guess it got sufficient review and feedback, +1

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 1/5]: Return exitstatus from virStorageBackendRunProgRegex

2008-06-17 Thread Chris Lalancette
Chris Lalancette wrote:
 This patch changes things around so that virStorageBackendRunProgRegex() does
 *not* virStorageReportError() if the fork()/exec() process it spawned 
 returned a
 != 0 exit code.  Rather, it returns the exitcode in this case, and it is up to
 the higher level to determine whether this is a fatal error or not.  The use
 case for this change is in the iSCSI stuff; older versions of iscsiadm tools
 would return a failure when getting the session number, despite the command
 succeeding.
 
 Changes since last time:
 1)  Fix up whitespace damage
 
 Signed-off-by: Chris Lalancette [EMAIL PROTECTED]

Committed

Chris Lalancette

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 3/5]: Fix up the call to iscsiadm --mode session

2008-06-17 Thread Chris Lalancette
Chris Lalancette wrote:
 Older versions of iscsiadm didn't support the -P 0 flag to the iscsiadm
 --mode session command.  However, just running iscsiadm --mode session 
 seems
 to work on all version of iscsiadm commands back to FC-6, so just use that.
 
 Changes since last time:
 None
 
 Signed-off-by: Chris Lalancette [EMAIL PROTECTED]

Committed

Chris Lalancette

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 4/5]: Move the sendtarget command into the login command

2008-06-17 Thread Chris Lalancette
Chris Lalancette wrote:
 A small bugfix; we only need to call the iscsiadm sendtarget command when we 
 are
 first logging in; we don't need to do it for logout.  Move the sendtarget
 command into the Login() function.
 
 Changes since last time:
 1)  Make const char *cmdsendtarget into const char *const cmdsendtarget based 
 on
 feedback from Jim.
 
 Signed-off-by: Chris Lalancette [EMAIL PROTECTED]

Committed

Chris Lalancette

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 5/5]: Rewrite findLuns function

2008-06-17 Thread Chris Lalancette
Chris Lalancette wrote:
 Reposting the 5/5 patch with Jim's minor comments fixed up.  Compile tested 
 only
 with his changes.
 
 This rather large patch rewrites the virStorageBackendISCSIFindLUNs() function
 to only rely on sysfs for finding LUNs, given a session number.  Along the 
 way,
 it also fixes the bug where we wouldn't find LUNs for older kernels (with the
 block:sda format), and also (possibly) fixes a race condition where we could 
 try
 to find the LUN before udev has finished connecting it.  I say it possibly
 fixes it because I haven't been able to hit it so far, but I definitely need
 more testing to try and confirm.
 
 Changes since last time:
 1)  Don't blindly ignore the 0'th LUN (thanks Stefan).  Instead, look if the
 LUNs are Direct-Access devices (as defined by the kernel); if so, they are 
 LUNs
 we can use.
 2)  Fix up whitespace damage.
 3)  Check the return value of the scsidev strdup as pointed out by Jim.
 4)  Change all ISCSIADM commands to be const char *const as pointed out by 
 Jim.
 
 Signed-off-by: Chris Lalancette [EMAIL PROTECTED]

Committed

Chris Lalancette

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] libvirt passes wrong MAC address to KVM

2008-06-17 Thread Nikola Ciprich
Hi all,
I think there could be a bug in libvirt passing MAC address to KVM.
If I have following in my xml config:
interface type=bridge
source bridge=br0/
 mac address=00:16:3e:0d:24:00/
/interface

and start the domain (I'm using python binding btw), qemu is then executed with 
following parameter:

... -net nic,macaddr=00:16:3e:18:24:00,vlan=0 ...

MAC address given in config is not used by any other machine. Does somebody 
have a tip on where the problem could be?
I'm using libvirt-0.4.3.
Thanks in advance
BR
nik


-- 
-
Nikola CIPRICH
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava

tel.:   +420 596 603 142
fax:+420 596 621 273
mobil:  +420 777 093 799
www.linuxbox.cz

mobil servis: +420 737 238 656
email servis: [EMAIL PROTECTED]
-

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] libvirt passes wrong MAC address to KVM

2008-06-17 Thread Daniel Veillard
On Tue, Jun 17, 2008 at 04:18:59PM +0200, Nikola Ciprich wrote:
 Hi all,
 I think there could be a bug in libvirt passing MAC address to KVM.
 If I have following in my xml config:
 interface type=bridge
 source bridge=br0/
  mac address=00:16:3e:0d:24:00/
 /interface
 
 and start the domain (I'm using python binding btw), qemu is then executed 
 with following parameter:
 
 ... -net nic,macaddr=00:16:3e:18:24:00,vlan=0 ...
 
 MAC address given in config is not used by any other machine. Does somebody 
 have a tip on where the problem could be?
 I'm using libvirt-0.4.3.

  Hum, I can't really reproduce this. I used a definition like:

interface type='network'
  mac address='00:16:3e:0d:24:00'/
  source network='default'/
  target dev='vnet0'/
/interface

since i don't have bridging set. When starting the guest with 0.4.2 I see

/usr/bin/qemu-kvm -M pc -m 512 -smp 1 -monitor pty -boot c -hda 
/virt/test-mac.img -net nic,macaddr=00:16:3e:0d:24:00,vlan=0 -net 
tap,fd=14,script=,vlan=0,ifname=vnet0 -usb -vnc 127.0.0.1:0 -k en-us

when starting with 0.4.3 I see

/usr/bin/qemu-kvm -S -M pc -m 512 -smp 1 -name test-mac -monitor pty -boot c 
-drive file=/virt/test-mac.img,if=ide,index=0,boot=on -drive 
file=,if=ide,media=cdrom,index=2 -net nic,macaddr=00:16:3e:0d:24:00,vlan=0 -net 
tap,fd=13,script=,vlan=0,ifname=vnet0 -serial none -parallel none -usb -vnc 
127.0.0.1:0 -k en-us

but in both cases the MAC parsing looks correct and properly provided down
to qemu-kvm . Could you double check with virsh directly (though i don't see
how python could scramble just that part of the XML description) using
virsh dumpxml and virsh create ...
Also testing with a network type of setting may help finding what is happening
precisely here

  thanks,

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list