This series of patches relates to the cpus parameter and pinning vcpus. The first patch is a clean-up of getVcpuInfo, which previously only returned the vcpu to cpu mapping. This was insufficient for extracting affinity information. The patch extends getVcpuInfo to return a dict of all the fields in xm vcpu-list for a domain. It also fixes a couple users of the function and moves them to a new vcpu_to_cpu function which retains the old behavior of getVcpuInfo. The second patch adds multiple cpumask support to the cpus variable. We currently support two formats: cpus = [ "0", "2-4" ] and cpus = "0|2-4". The documentation encourages the use of the python list notation. The third patch introduces a testcase for the cpus parameter in the create subset. The forth patch adds support for the keyword 'all' to the vcpu-pin operation. Using 'all' in place of a specific vcpu will apply the cpumask to all vcpus in the domain. The fifth patch creates a testcase for the 'all' keyword in the vcpu-pin subset.