Commit Graph
4374 Commits
Author SHA1 Message Date
Ewan Mellor 556d54c7ce Added Xen-API implementations for xm pause, xm unpause, xm destroy, xm rename,
and fix xm suspend and xm delete.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 11:25:51 +00:00
Ewan Mellor 2420eb41c5 Implement VM.set_name_label.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 11:24:37 +00:00
Ewan Mellor 8edc7b1c06 Added support for configuration file for xm, and use that to specify
contact and authentication details for the Xen-API server.

The default behaviour is still to use the existing legacy XML-RPC server.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 11:02:32 +00:00
Ewan Mellor 6455e182f2 Added server proxy and session manager for Xen-API clients.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 10:47:31 +00:00
Ewan Mellor 5ef203e373 Fix server reloading when the HTTP server is enabled.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 10:37:10 +00:00
Ewan Mellor 81f605d9cb Don't trace inside SrvServer.py -- it's doing a one-second sleep in a loop, so
it just fills the trace with useless clutter.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 10:13:46 +00:00
Ewan Mellor 1d68773ad2 Move the actual call routed by do_legacy_api_with_uuid out of the scope of
the domains_lock.  The call itself is already locking as necessary, and it
is important for domain_start to be able to release the lock across the scope
of waitForDevices.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 10:12:39 +00:00
Ewan Mellor 6e66f078d4 Fix HTTP server.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-06 10:10:06 +00:00
Ewan Mellor ec168504b9 Fix error message.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-05 15:47:43 +00:00
Ewan Mellor 89ebc69e6a This adds a recently added parameter to the vm.start call.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-12-04 19:13:55 +00:00
Ewan Mellor bb34321ece Tidy.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 18:05:32 +00:00
Ewan Mellor 4a0a4459e9 Fix numpad handling in QEMU's VNC server. The keymaps that we have include
information on which keys change depending upon the numlock setting, but
this isn't being used.  By forcing numlock on and off as necessary, when
receiving these keysyms through the VNC connection, we ensure that the
server's numlock status is the same as the client's.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 17:52:33 +00:00
Ewan Mellor 549aad081d Close the server when instructed, so that we can reload on the same port, and
diagnose a server that fails to start.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 13:57:18 +00:00
Ewan Mellor bcf6d372d8 Diagnose a failing server, rather than just locking up the whole daemon.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 13:56:27 +00:00
Ewan Mellor d529c3d93b Added rudimentary "xend reload" functionality. This allows you to reconfigure
the services offered by Xend, without restarting the daemon itself.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 13:37:53 +00:00
Ewan Mellor aeb915bbac Tidy error message.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 10:27:23 +00:00
Ewan Mellor 3dca648478 More capitalisation fixes.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 10:24:54 +00:00
Ewan Mellor 78bc404b6b With PERMISSIVE turned on, diagnose missing Enums and Bools, and improve the
diagnosis of missing structure values.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 10:20:56 +00:00
kfraser@localhost.localdomain a52cacaef9 [QEMU] Error reporting in IDE device model.
Following on from my patch to make blktap report I/O errors back to
guest OS, a similar problem exists in the QEMU codebase. The IDE
driver never reports I/O errors during read/write operations back to
the guest OS. Instead all I/O operations are reported as
succesfull. If, for example, the host FS holding the disk image fills
up, then writes may fail due to lack of space. Since the guest OS
never sees these failures, it assumes all is well & will continue
writing. Eventually this can lead to severe & unrecoverable filesystem
corruption.

The attached patch fixes QEMU ide driver such that any failure of a
read or write operation sets the appropriate IDE status/error
registers. Having read the ATA-6 spec I think the most compliant
behaviour is to set the status register to 'READY_STAT | ERR_STAT',
and the error register to ABRT_ERR. There is already a convenience
function ide_abort_command() in the QEMU codebase which does just
this, so the attached patch simply calls that function.

With this patch the guest OS sees the I/O failure & the kernel logs
IDE errors and then retries the operation. This at least ensures that
the guest can be shutdown the out of space issue in the host corrected
and the guest restarted, without any serious filesystem damage having
occurred.

From: Daniel Berrange <berrange@redhat.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-04 09:29:26 +00:00
kfraser@localhost.localdomain b3fba4e07b Remove useless segments push/pop in VMXAssist.
According to Intel Spec, segments registors are cleared when exiting
virtual-8086 mode through trap or interrupts gate, so it's no need to
save their values in stack.
Signed-off-by: Xin Li <xin.b.li@intel.com>
2006-12-04 09:20:12 +00:00
kaf24@localhost.localdomain df69bc8551 [XEN] Add 'insn_fetch' memory operation to the x86_emulator.
This can be used to perform correct access checks, provide appropriate
error codes when injecting faults, and to implement an
instruction-stream prefetch cache (which is included here for HVM PTE
update emulations).

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-03 17:15:48 +00:00
Ewan Mellor 43bbe5bc96 Revert the change to destroy all VMs when skipping or failing tests -- this
needs more thought, because people shouldn't need to set up their Xen-API server
to run the non-Xen-API bits of the test, and at the moment, you get
authentication failures on every SKIP.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-03 13:30:23 +00:00
Ewan Mellor 7169017f84 Make the xenfb tools an optional part of the build, as they introduce new
dependencies (libvncserver and libsdl devel packages).  Enable them with
XENFB_TOOLS=y.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-02 16:39:53 +00:00
Alastair Tse f24b8a3348 [XEND] Fix mis-types in XendConfig
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 18:35:19 +00:00
Alastair Tse 63f6456e92 Merge 2006-12-01 18:33:11 +00:00
Alastair Tse 77f0ea8ba8 Merge 2006-12-01 17:43:18 +00:00
Alastair Tse f83b348cf8 Merge 2006-12-01 17:42:39 +00:00
Ewan Mellor 468c5c0084 Use the new xen-api.sock for the calls to the Xen-API server.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 17:40:07 +00:00
Alastair Tse 0f07569d15 [XEND] Re-add vtpm device support in XendConfig
This patch re-adds a recently removed vTPM device handling code.
I am also removing that one code part in the test script that does not
work.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-12-01 17:37:42 +00:00
Ewan Mellor cebaab7c6b This patch provides XmTestManagedDomain and XenManagedDomain classes
similar to the XmTestDomain and XenDomain classes. I have wrapped the
xen-api for VM configuration creation, starting and stopping of VMs and
destruction of the VM configuration in the XenManagedDomain class's
methods. No device-related functions are provided through the class.

The managed domains' UUIDs are tracked and all created VMs are destroyed
upon failure or skipping of the test or by calling
xapi.vm_destroy_all().

I am adding a new grouptest 'xapi' for running xen-api tests.

Only caveat: I am using an empty username and password
(XmTestList/xapi.py) with Xend's authentication deactivated to run these
tests.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-12-01 17:37:09 +00:00
Alastair Tse c88422678e Merge 2006-12-01 17:31:50 +00:00
Alastair Tse 0ee9d7cc29 [XENAPI] Add extra param for VM.start and fix case for printing out
the output of VM.get_record.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 17:31:30 +00:00
Alastair Tse 486d848417 [XEND] Proper importing of Xen API VM Struct into new XendConfig
Use a smarter method of importing the Xen API VM struct when adding to
XendConfig.

Also add a commented __setitem__ override for XendConfig to type check
certain configuration values.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 17:30:39 +00:00
Alastair Tse 123c8f3d8c [XEND] Fix case mismatch in VM.get_record for Xen API
Also make VM.get_all return halted domains too.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 17:21:19 +00:00
Andrew Warfield ed6af790ae Fix a number of flaws in the blktap userspace daemon when dealing
with I/O errors.

There are a number of flaws in the blktap userspace daemon when dealing
with I/O errors.

 - The backends which use AIO check the io_events.res member to determine
  if an I/O error occurred. Which is good. But when calling the callback
  to signal completion of the I/O, they pass the io_events.res2 member

  Now this seems fine at first glance[1]

    "res is the usual result of an I/O operation: the number of bytes
     transfered, or a negative error code. res2 is a second status
     value which will be returned to the user"

  Except that

     "currently (2.6.0-test9), callers of aio_complete() within the
      kernel always set res2 to zero."

  And this hasn't changed anytime since 2.6.0, so by passing through
  the status from 'res2', the callback thinks the I/O operation succeeded
  even when it failed :-(

  The fix is simple instead of passing 'res2', just pass

     ep->res == io->u.c.nbytes ? 0 : 1

  This would solve the error reporting to the guest, except that there
  is a second flaw...

 - The tapdisk I/O completion callback checks the status parameter
  passed in, syslog's it and then returns. It never bothers to send
  the I/O completion response back to the blktap kernel driver when
  a failure occurrs.

  Fortunately the fix for this is also simple. Instead of returning
  from the callback when dealing with an error, we simply toggle the
  status field for the pending response to BLKIF_RSP_ERROR and then
  continue with the normal codepath. So the error eventually gets
  back to the guest.


The scenario I used to discover the problem and test the patch is thus:

 - In dom0  create a filesystem with only 200 MB of free space
 - Create a 1 GB sparse file on this volume.
 - Configure the guest so this sparse file appears as /dev/xvdb
 - In the domU create a single partition on /dev/xvdb and format
  it with ext3.
 - In the DomU, mount /dev/xvdb1 on /mnt and then run

     dd if=/dev/zero of=/mnt/data.bin bs=1GB count=1


Without this patch, the 'dd' command would succeed in writing 1 GB of data
even though the underlying disk in Dom0 was only 200 MB in size. More complex
tests of copying a whole directory heirarchy across resulted in catastrophic
data corruption of the filessytem itself. Manual fsck was needed to fixup
the filesystem & there were many very bad errors needing fixing.


With this patch applied the DomU sees the I/O failures and kernel  logs
messages

Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 722127
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 730327
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 738527
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 746727
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 754927
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 763127
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 771327
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 779527
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 792399

It will retry the I/O operation until it runs out of sectors to try, and then
fail the operation. The filesystem is not seriously damaged - ext3 journal
recovery will trivially cleanup if the guest is rebooted after the disk in
Dom0 is enlarged.

  Signed-off-by: Daniel P. Berrange <berrange@redhat.com>


[1] http://lwn.net/Articles/24366/
2006-12-01 09:01:04 -08:00
Alastair Tse 916bea06a7 [XEND] Fix outputting device SXPs when domain is halted.
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 16:31:36 +00:00
Alastair Tse b331298825 [TOOLS] Checks for libvncserver-dev and libsdl-dev.
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 15:12:48 +00:00
Alastair Tse feeb19b8cb [XEND] Fix missing vncpasswd option for HVM domains.
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 14:35:33 +00:00
kfraser@localhost.localdomain fcad36eb80 [LIBXC] Add new AP{I function xc_evtchn_bind_unbound_port().
Add a comment clarifying how this function differs from
xc_evtchn_alloc_unbound().
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 14:25:36 +00:00
kfraser@localhost.localdomain 2aba25fee2 [XEN] Emulate XADD instruction.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 13:57:46 +00:00
Alastair Tse ea1248436a [XEND] Reapply fix for ever expanding kernel_args in XendConfig
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 13:55:28 +00:00
Alastair Tse 2e23acca55 [XEND] Ensure config value types in XendConfig
Add definitions of what we expect the types to be for the values in
XendConfig and apply them when parsing SXP where all values are either
strings or list.

Also fix missing stdvga in HVM config.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 13:53:04 +00:00
Ewan Mellor 4bdbd7644a Actually return something from bool0.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:25:33 +00:00
Ewan Mellor 4dc8c41b11 Update README to reflect moved library.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:09:30 +00:00
Steven Smith e812bdf5c4 Merge. 2006-12-01 13:12:41 +00:00
Steven Smith 4ffdeb2ddc [PVFB][TOOLS] Don't unwatch the framebuffer frontend's state node just
because it want to state Closed.  Otherwise, we don't notice when
the node gets deleted, and can't reliably shut the backend down.

Signed-off-by: Steven Smith <sos22@cam.ac.uk>
2006-12-01 13:11:53 +00:00
Ewan Mellor 7be5d5173c Set localtime, enable_audio, clock_offset, and std_vga back to being bools, not
ints.  This is a recent breakage.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:08:36 +00:00
Ewan Mellor 2f61385eed Added log message for when a VM is deleted.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:07:19 +00:00
Ewan Mellor c7a44ef04b Include the rotated xend.log.X in the bug report.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:06:15 +00:00
Steven Smith e9167464c4 [PVFB][TOOLS] Fix save/restore for domains with PV framebuffers.
Signed-off-by: Steven Smith <sos22@cam.ac.uk>
2006-12-01 12:38:41 +00:00