xc has access to the page size for the platform and the Python layer does not,
so there was a hardcoded "/ 256" in there.
Rename the "memory" physinfo parameter to "total_memory", to match the usage
elsewhere.
Tidy the code generating the SXP for xm info.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
a device from two guests, or from dom 0 and a guest, can destroy the filesystem,
and this check prevents that. This should ensure that the xm tests
11_block_attach_shared_dom0 and 12_block_attach_shared_domU should pass.
Closes bug #331.
Devices may be shared only if all uses are read-only. If anyone has read-write
access to a device, then no sharing is allowed.
The mode in the config file may now have an exclamation mark appended, to
indicate that devices may be shared (i.e. that this new check should be
bypassed). This supports some network block devices, but is clearly dangerous
and should only be used when you know what you are doing.
The mode specified in the config file is now written explicitly to the store,
To implement this, the blkback driver has been changed to create two entries
in /sys describing each device in use. This means that we can determine which
devices are in use without crawling through the store.
The physical-device node has been changed to give the major and minor of the
device, separated by a colon. This means that we do not need to pack these
numbers into one, removing the restriction to 8 bit minors that we had in place
before.
The mode specified in the config file is now written explicitly to the store,
rather than using the presence or absence of a read-only node. This supports
the write-sharing override above.
If the device is in use, a new hotplug status of "busy" is written to the
store, and a message is written to a new hotplug-error node. Xend uses these
things for diagnosis.
The block scripts do not need to handle online or offline events, so this
support has been removed. These scripts can be called twice, depending upon
the hotplug config, so they now identify the second run and do not attempt to
set up the device again.
The device directories in the store are cleaned out before new details are
written there. This prevents stale information from messing up block device
hotplugging. This will be one cause of "blkback: changing physical device
not supported" messages.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
splicing the strings together manually.
Replace the word "bogus" with the command in question where it appears, as this
shows up in the Usage statements.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
again. Closes bug #397.
To perform this check in the same transaction as the writing of the device
entries has required a little bit of rejigging.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
once. This makes it possible to unit test this code. Remove the odd aliasing
of gopts to opts inside parseCommandLine.
Rename local variables globals and locals inside opts.load -- these are built-in
functions.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
using connectionMade, connectionLost, startedConnecting, clientConnectionLost,
and clientConnectionFailed was the test classes (TestClientFactory,
TestClientProtocol, TestServerFactory, TestServerProtocol), so they were
actually testing lots of code that no-one else was using. All these classes
have gone, freeing up lots of cruft around.
The useless classes Factory, ServerFactory, ClientFactory, RelocationFactory,
UnixServerConnection, and TCPServerConnection have gone, in favour of passing
the Protocol class directly to SocketListener, and using SocketServerConnection
directly.
connectTransport has gone, in favour of overriding connect directly.
Piles of closedown cruft has gone, as this was only supporting the correct
output of connectionLost events, none of which we need.
Unused SocketServerConnection.{getHost,getPeer} have gone.
Mark some parameters in relocate as unused.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
forking implied by the start method. This makes it easier to run valgrind
against Xend, or run it with a pydebug-compiled Python.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
deallocation to match those in the Python/C tutorial. This has been done to
make the interface here more conventional, in the hunt for bug #411. One
double deallocation has been fixed, but this would only occur if we failed to
create the connection to Xenstore, and so unfortunately is not the cause of
that bug.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
many places we were supporting keywords for calling the methods here, and never
using that feature (especially where all the arguments were compulsory anyway)
and in some places we were even accepting positional and keyword arguments, and
not actually taking any arguments to the method at all!
Fix the permission parsing string in xspy_set_permissions -- this would have
blown up horribly if anyone were actually calling this code.
Fix the documentation comments to include the transaction handle throughout.
Have the self parameter to all the methods be an XsHandle, not a PyObject, to
avoid casting.
Remove unused pyvalue_int and pyvalue_str.
Signed-off-by: Ewan Mellor <ewan@xensource.com>