X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=template.ml;h=4db0b66d0c62aca2e6f3beeb81ffc330fa3b091f;hb=84c3f83dd0dfc363ce72b06dbb4a7955ce653dfd;hp=dfeae3f08e79862dd595efbe6d1cbf9211490364;hpb=f1ab6f3938cb6d38798e438ed63d2e018049a9b2;p=mclu.git diff --git a/template.ml b/template.ml index dfeae3f..4db0b66 100644 --- a/template.ml +++ b/template.ml @@ -75,8 +75,11 @@ type template_info = { base_image : string; minimum_memory : int64 option; recommended_memory : int64 option; + minimum_size : int64 option; disk_bus : string option; network_model : string option; + has_xml_target : bool; + needs_external_kernel : bool; } let probe ?(verbose = false) filename = @@ -115,6 +118,16 @@ let probe ?(verbose = false) filename = exit 1 ); | _ -> None in + let minimum_size = + match run_template ~verbose filename "minimum-size" [] with + | Some [size] -> + (try Some (bytes_of_human_size size) + with Not_found -> + eprintf "mclu: cannot parse output of '%s minimum-size'\n" + filename; + exit 1 + ); + | _ -> None in let disk_bus = match run_template ~verbose filename "disk-bus" [] with | Some [answer] -> Some answer @@ -124,8 +137,19 @@ let probe ?(verbose = false) filename = | Some [answer] -> Some answer | _ -> None in + let has_xml_target = run_template ~verbose filename "xml" [] <> None in + + let needs_external_kernel = + match run_template ~verbose filename "needs-external-kernel" [] with + | None -> false + | Some ["1"|"yes"] -> true + | Some _ -> false in + { base_image = base_image; minimum_memory = minimum_memory; recommended_memory = recommended_memory; + minimum_size = minimum_size; disk_bus = disk_bus; - network_model = network_model } + network_model = network_model; + has_xml_target = has_xml_target; + needs_external_kernel = needs_external_kernel; }