Commiting our first manpages.
Made changes requested by XenAPI admins and also added xe-network-create.ad
Made changes requested by Xen-API admins and also added xe-network-create.ad
Changed copyright message
Updated pages
CA-90189: In the case of a dry_run live migrate, skip checking for
missing disks as CDs will be ejected during a real VM migrate.

Signed-off-by: Siddharth Vinothkumar <siddharth.vinothkumar@citrix.com>
CI-44: Add an extra field "originator" to session object.

This is a key string used for distinguishing different API users sharing the same login name.

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: Add the originator param to XAPI session creation

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: update internal uses of login_with_password with the originator param

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: update external components and tests with the new originator param

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: Add max_sessions_per_originator config

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: update session create/destory rbac audit functions

Based on some previous patches from Thomas Sanders.

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: it seems making better sense to expire tasks before sessions

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: add max_sessions_per_user_name config variable

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
CI-44: expire sessions based on username/originator specific quota

Based on some previous patches by Thomas Sanders.

The current algorithm is implemented as follows:

  * For sessions with their own auth_user_name (other than "root"/""), they will use their independent session quota (Xapi_globs.max_sessions_per_user_name) grouped by their auth_user_name. This can happen in following cases:
    - The session creator uses an external authentication method where the username is not the default
    - The session creator is logged in as local super user (hence no username/password authentication required) but still chooses to pass an independent username argument in purpose (e.g. vmpr, sm)

  * Sessions without independent auth_user_name (e.g. without RBAC, most external API users will have to share the same super user login) can still distiguish themselves using the new "originator" param during session creation. For sessions created with the optional "originator" argument, they will use their independent session quota (Xapi_globs.max_sessions_per_originator) grouped by their originator key.

  * All the rest sessions are in the common session pool, as before, sharing the default session quota (Xapi_globs.max_sessions). Among them, internal sessions will have higher prioirty than the external ones.

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
Correcting Indentation
Signed-off-by: Siddharth Vinothkumar <siddharth.vinothkumar@citrix.com>
CA-102259: Refactor xenstore-watching code out of xenopsd

This code is potentially reusable by other components, so this patch disentangles the xenopsd-specific stuff from the generic xenstore-watching stuff.

Summary of the refactoring, from the point of view of xenops_server_xen:

 * Split IntMap watches into IntSet watches (domains being watched, moved to xenstore_watch) and IntMap device_watches (list of devices watched per domain, kept)

 * Moved several functions into xenstore_watch's new WATCH_ACTIONS interface:
    - the code that does an action depending on which watch fired (to watch_fired, also including fire_event_on_vm and fire_event_on_device),
    - renamed all_domU_watches (to interesting_paths_for_domain),
    - the device-specific bits of remove_domU_watches (in domain_disappeared, which also inherited the content of cancel_domU_operations),
    - definition of unmanaged domain (in unmanaged_domain), and
    - definition of what we want to do each time we notice a domain running (in found_running_domain).

 * Moved to xenstore_watch's WatchXenstore module:
    - list_domains (verbatim)
    - domain_looks_different (verbatim),
    - list_different_domains (verbatim),
    - watch_xenstore, with the following changes:
       (a) rename {add,remove}_domU_watches to {add,remove}_watches_for_domain (but don't take the device-specific bit in remove_domU_watches)
       (b) call the functions listed above through WATCH_ACTIONS, and
    - the code that creates the watch_xenstore thread (to a function "create_watcher_thread") (verbatim).
CA-102259: make squeezed use the new xenstore-watching interface

The only change to observational semantics is that the following actions are no longer performed atomically:

-				  Mutex.execute m
-					  (fun () ->
-						  IntSet.iter (Hashtbl.remove cache) gone;
-						  IntSet.iter (fun domid -> try ignore(get_per_domain (xc, xs) domid) with _ -> ()) arrived
-					  ) in

Now, we execute (Hashtbl.remove cache) on each disappeared domain, separately, and get_per_domain on each new domain, separately.
CA-101580: rrdd: watch xenstore instead of polling

xcp-rrdd is interested in domains' data/meminfo_free values. In one example, polling xenstore for these values took about 30 seconds for 700 VMs. Instead of polling, use watches.
CP-4322: Remove license check from VM lifecycle operations

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