CA-99728: Spelling errors.

Signed-off-by: Konstantina Chremmou <Konstantina.Chremmou@citrix.com>
CA-98936: Stop xapi from creating files in /tmp every time it gets an update from xenopsd

Signed-off-by: John Else <john.else@citrix.com>
CA-96893: Remove metadata from xenopsd after a suspend.

Previously metadata was only removed after a shutdown.

Signed-off-by: John Else <john.else@citrix.com>
CA-96893: VM.remove now also removes the VmExtra persistent data.

Signed-off-by: John Else <john.else@citrix.com>
CA-98535: Fix VDI.create

The other_config, shareable, tags and xenstore_data fields are now set
to their correct values when creating a VDI.

Signed-off-by: John Else <john.else@citrix.com>
CA-92553: Thoroughly clear PCI attachments for stopped VMs

This should not be necessary if many-to-many relations in the DB
work properly. People have reported issues that may indicate that this is
not the case, but we have not yet found the root cause. Therefore, this
code is added "just to be sure".

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
CA-96950: Fix HIMN bridge name if needed

Previously, the bridge name used for the Host Internal Management Network
(HIMN) was usually xapi0, i.e. a normal name in the xapi* range. Now, the HIMN
has a special bridge name ("xenapi").

This commit ensures that the new name is used on existing HIMNs.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
CA-96541/SCTX-1188: Fix race condition when creating metrics for VLAN PIFs

This fixes a race condition between the thread that copies bonds and VLANs from
the master when a new slave joins the pool, and the thread that creates/updates
the PIF_metrics (the "monitor thread"). Or in fact a race between anything that
creates a bond and very soon after that a VLAN on top of it.

Since XCP1.6/XS6.1, VLANs no longer have their own PIF_metrics. Rather, they point
to the PIF_metrics of the underlying PIF, which can be either a physical PIF
(e.g. for eth0), or a bond PIF. Therefore, the carrier of a VLAN PIF is the same
as the carrier of the underlying PIF.

When a physical PIF or bond PIF is created, it does not immediately have
PIF_metrics (PIF.metrics = "OpaqueRef:NULL"). The PIF_metrics object is created
and assigned to the PIF by the monitor thread a short while after that. If you
create a VLAN before the PIF_metrics have been created, the PIF.metrics field from
the underlying PIF will still be copied, which is "OpaqueRef:NULL". This will never
get updated, because the monitor thread ignores VLANs.

The fix is simply to immediately create an (empty) metrics object when creating a
bond.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
xenopsd: Support driver domains for PV guests

The case of HVM guests with emulated QEMU networks devices is not yet
handled.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Allow setting the VIF backend for a network

If, on a network, other_config:backend_vm is set to the UUID of a VM, this VM is
used for the VIF backends (netback) of any VIFs on the network.

This is useful for internal networks (only), since the key is set on a network
rather than on a PIF.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
CA-101922: Properly close the nbd connection

The recent change to default http connections to v1.1 and
keep-alive=true was probably the cause of failures in storage
migration. This patch reverts the connection in question to
the previous behaviour

It's likely what happened was that xapi kept the connection
open after the fd was handed off to tapdisk and consumed
the requests coming in from the source.

Signed-off-by: Jon Ludlam <jonathan.ludlam@eu.citrix.com>
Merge pull request #1124 from jonludlam/CA-101922-clearwater

CLEARWATER: CA-101922: Properly close the nbd connection
Refactor unit tests for consistency

Signed-off-by: John Else <john.else@citrix.com>
Merge pull request #1128 from johnelse/unit-test-refactor-clearwater

CLEARWATER: Refactor unit tests for consistency
CP-4325: Split License_check.check_expiry up into two functions.

Signed-off-by: John Else <john.else@citrix.com>
CP-4325: Implement pool.get_license_state

Signed-off-by: John Else <john.else@citrix.com>
CP-4325: Add pool.license_state getter to CLI

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

Signed-off-by: John Else <john.else@citrix.com>
Add high-level unit testing framework

Signed-off-by: John Else <john.else@citrix.com>
CP-4325: Add tests for pool-wide license logic

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