Don't default to master host-uuid if sr-create shared=false

sr-create had been defaulting the host-uuid to master if it wasn't
specified. This would cause problems when creating a local SR without
specifying the host-uuid. We now raise a CLI exception if we create
non-shared SR without specifying the host-uuid.

CA-98185

Signed-off-by: Mike McClurg <mike.mcclurg@citrix.com>
CA-129192: restore metadata for all SR

CA-129192/SCTX-1728: revise restore-sr-metadata.py so that it could restore
metadata for all SR with command line:
   ./restore-sr-metadata.py -f <input file> -u all
or just omit the sr-uuid:
   ./restore-sr-metadata.py -f <input file>

xe-restore-metadata is modified accordingly.

Signed-off-by: Kaifeng Zhu <kaifeng.zhu@citrix.com>
Add 'xe vdi-export' for symmetry with 'xe vdi-import'

  xe vdi-export uuid=<VDI> filename=<filename>

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
xe vdi-{export,import}: display a progress bar if "--progress" is given

Note we now send 'PrintStderr' commands to the CLI while it is busy
downloading or uploading disk images. A multithreaded CLI is necessary
for this to work.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
{import,export}_raw_vdi use vhd-tool via vhd_tool_wrapper

This allows both functions to use O_DIRECT.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
{import,export}_raw_vdi: update Task.progress

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
VDI.export: allow the user to specify a format; currently either 'raw' or 'vhd'

The HTTP handler accepts an additional argument:

  GET /export_raw_vdi?vdi=<vdi>&format=<raw|vhd>...

The content-disposition HTTP header is used to suggest a useful filename, and
the content-type HTTP header is set to either application/octet-stream or
application/vhd.

The CLI accepts an optional argument:

  xe vdi-export uuid=<uuid> filename=<filename> [format=(raw|vhd)]

.vhd format export will require a newer vhd-tool (>= 0.6.5)

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
import_raw_vdi: normalise whitespace

$ camlp4o -printer o -no_comments ocaml/xapi/import_raw_vdi.ml | md5sum
e74faa7367f4c06d818a04fd87dfeeb5
$ git checkout HEAD^
$ camlp4o -printer o -no_comments ocaml/xapi/import_raw_vdi.ml | md5sum
e74faa7367f4c06d818a04fd87dfeeb5

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
import_raw_vdi: support importing vhd-format data

This requires vhd-tool >= 0.6.6

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
xe vdi-import: add support for [type=(raw|vhd)]

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
VDI.export: add /dev/mapper to the vhd parent search path

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
VDI.export: add a 'base' argument to export only VDI differences

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
SCTX-1817: Check host memory before executing vdi-pool-migrate.

Ensure that the host has sufficient memory to accomodate 2x the VM
memory during a vdi-pool-migrate operation.

Signed-off-by: Akshay <akshay.ramani@citrix.com>
Switch the stylesheet to the in the xenserver subdir

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Docs: update release names and page title

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Merge pull request #1782 from djs55/forupstream/VDI.export

Not recently tested: Add prototype vhd-format VDI.{import,export}
CA-137238: Revert "CA-90424: Does not migrate VDI if it is already migrating."

The added assert meant that we couldn't make use of the queuing
functionality of VM.with_vm_operation. After the change which this
commit reverts, if one of a VM's disks was undergoing a VDI.pool_migrate
then attempting to VDI.pool_migrate another of the VM's disks would fail
immediately with OTHER_OPERATION_IN_PROGRESS.

After reverting this commit, the second VDI.pool_migrate gets queued up
behind the first.

This reverts commit f5f2e2af0116445d76438d4b5ee64fd870839594.

Signed-off-by: John Else <john.else@citrix.com>
Merge pull request #1786 from johnelse/ca-137238

CA-137238: Revert "CA-90424: Does not migrate VDI if it is already migrating."
CP-8358: Don't filter out quotes before parsing lspci output

Instead take them into account when doing the sscanf.

Signed-off-by: John Else <john.else@citrix.com>
CP-8358: Rename field pci.id to pci.pci_id

Signed-off-by: John Else <john.else@citrix.com>