1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
(* virt-v2v
* Copyright (C) 2009-2019 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*)
(** Functions for dealing with VMware vCenter. *)
type remote_resource = {
https_url : string;
(** The full URL of the remote disk as an https link on the vCenter
server. It will have the general form
[https://vcenter/folder/.../guest-flat.vmdk?dcPath=...&...] *)
qemu_uri : string;
(** The remote disk as a QEMU URI. This opaque blob (usually a
[json:] URL) can be passed to [qemu] or [qemu-img] as a backing
file. *)
session_cookie : string option;
(** When creating the URLs above, the module contacts the vCenter
server, logs in, and gets the session cookie, which can later
be passed back to the server instead of having to log in each
time (this is also more efficient since it avoids vCenter
running out of authentication sessions).
This can be [None] if the session cookie could not be read (but
authentication was successful). You can proceed without the
session cookie in this case, but there is an unavoidable
danger of running out of authentication sessions. If the
session cookie could not be read, this function prints a
warning.
If authentication {i failed} then the {!map_source} function
would exit with an error, so [None] does not indicate auth
failure. *)
sslverify : bool;
(** This is true except when the libvirt URI had [?no_verify=1] in
the parameters. *)
}
(** The "remote resource" is the structure returned by the {!map_source}
function. *)
val map_source : ?readahead:int -> ?password_file:string -> string -> Xml.uri -> string -> string -> remote_resource
(** [map_source ?readahead ?password_file dcPath uri server path]
maps the [<source path=...>] string to a {!remote_resource}
structure containing both an [https://] URL and a qemu URI,
both pointing the guest disk.
The input [path] comes from libvirt and will be something like:
["[datastore1] Fedora 20/Fedora 20.vmdk"]
(including those literal spaces in the string).
This checks that the disk exists and that authentication is
correct, otherwise it will fail. *)
|