type db_dump_manifest =
{
- control_domain_uuid : string;
pool_conf : string;
pool_token : string;
schema_major_vsn : int;
let gen_manifest gen_count =
{
- control_domain_uuid = Xapi_inventory.lookup Xapi_inventory._control_domain_uuid;
pool_conf = Unixext.string_of_file Xapi_globs.pool_config_file;
pool_token = Unixext.string_of_file Xapi_globs.pool_secret_path;
schema_major_vsn = Datamodel.schema_major_vsn;
let name x = ("", x) (* no namespace *)
let make_tag n attrs : Xmlm.tag = (name n), List.map (fun (k, v) -> name k, v) attrs
-let _control_domain_uuid = "control_domain_uuid"
let _pool_conf = "pool_conf"
let _pool_token = "pool_token"
let _schema_major_vsn = "schema_major_vsn"
(* Write out a manifest *)
let manifest (output: Xmlm.output) (manifest: db_dump_manifest) : unit =
Xmlm.output output (`El_start (make_tag "manifest" []));
- string output _control_domain_uuid manifest.control_domain_uuid;
string output _pool_conf manifest.pool_conf;
string output _pool_token manifest.pool_token;
int output _schema_major_vsn manifest.schema_major_vsn;
let (cache, _, manifest) = f (create_empty_cache (), create_empty_table (), []) in
(* Manifest is actually a record *)
let manifest = {
- control_domain_uuid = List.assoc _control_domain_uuid manifest;
pool_conf = List.assoc _pool_conf manifest;
pool_token = List.assoc _pool_token manifest;
schema_major_vsn = int_of_string (List.assoc _schema_major_vsn manifest);
(* CA-18377: The smallest database that is compatible with the Miami database schema. *)
let minimally_compliant_miami_database =
- "<database><manifest><pair key=\"control_domain_uuid\" value=\"422f53c6-be3b-439c-b8ea-d47c659752d2\"/><pair key=\"pool_conf\" value=\"master\"/><pair key=\"pool_token\" value=\"0495123c-aea2-be65-5885-c82ef39c630e/b56675f7-9f11-6b89-aebe-a82396a3bf0f/0141aea4-2858-4414-fbb7-a25dc95daa58\"/><pair key=\"schema_major_vsn\" value=\"5\"/><pair key=\"schema_minor_vsn\" value=\"35\"/><pair key=\"product_version\" value=\"4.1.0\"/><pair key=\"product_brand\" value=\"XenServer\"/><pair key=\"build_number\" value=\"7843c\"/><pair key=\"xapi_major_vsn\" value=\"1\"/><pair key=\"xapi_minor_vsn\" value=\"1\"/><pair key=\"generation_count\" value=\"103\"/></manifest><table name=\"SR\" /><table name=\"pool\" /><table name=\"VBD_metrics\"/><table name=\"console\" /><table name=\"host\" /><table name=\"VIF_metrics\"/><table name=\"user\" /><table name=\"PBD\" /><table name=\"pool_patch\" /><table name=\"host_metrics\" /><table name=\"VLAN\" /><table name=\"Bond\" /><table name=\"VTPM\" /><table name=\"event\"/><table name=\"VBD\" /><table name=\"VM_guest_metrics\" /><table name=\"VDI\" /><table name=\"VM_metrics\"/><table name=\"task\"/><table name=\"VM\" /><table name=\"crashdump\"/><table name=\"network\" /><table name=\"PIF\" /><table name=\"host_patch\"/><table name=\"host_crashdump\"/><table name=\"SM\" /><table name=\"host_cpu\" /><table name=\"VIF\" /><table name=\"session\" /><table name=\"PIF_metrics\" /></database>"
+ "<database><manifest><pair key=\"pool_conf\" value=\"master\"/><pair key=\"pool_token\" value=\"0495123c-aea2-be65-5885-c82ef39c630e/b56675f7-9f11-6b89-aebe-a82396a3bf0f/0141aea4-2858-4414-fbb7-a25dc95daa58\"/><pair key=\"schema_major_vsn\" value=\"5\"/><pair key=\"schema_minor_vsn\" value=\"35\"/><pair key=\"product_version\" value=\"4.1.0\"/><pair key=\"product_brand\" value=\"XenServer\"/><pair key=\"build_number\" value=\"7843c\"/><pair key=\"xapi_major_vsn\" value=\"1\"/><pair key=\"xapi_minor_vsn\" value=\"1\"/><pair key=\"generation_count\" value=\"103\"/></manifest><table name=\"SR\" /><table name=\"pool\" /><table name=\"VBD_metrics\"/><table name=\"console\" /><table name=\"host\" /><table name=\"VIF_metrics\"/><table name=\"user\" /><table name=\"PBD\" /><table name=\"pool_patch\" /><table name=\"host_metrics\" /><table name=\"VLAN\" /><table name=\"Bond\" /><table name=\"VTPM\" /><table name=\"event\"/><table name=\"VBD\" /><table name=\"VM_guest_metrics\" /><table name=\"VDI\" /><table name=\"VM_metrics\"/><table name=\"task\"/><table name=\"VM\" /><table name=\"crashdump\"/><table name=\"network\" /><table name=\"PIF\" /><table name=\"host_patch\"/><table name=\"host_crashdump\"/><table name=\"SM\" /><table name=\"host_cpu\" /><table name=\"VIF\" /><table name=\"session\" /><table name=\"PIF_metrics\" /></database>"
(** Write the database dump out to a file/socket *)
let write_database (s: Unix.file_descr) ~__context =