* Support for OS type selection was missing in tools/anvil-provision-server, this commit adds support for this, as well as some infrastructure to support it. This includes a new 'sys::servers::os_short_list' variable that contains a CSV of main OSes to show in a "short" list (the full list is massive). This variable can be set by the user in anvil.conf. Also added job progress calls that were missing through the storage config.

* Created a new tools/striker-parse-os-list tool that parses 'osinfo-query os' and prints out entries for words.xml for any new OSes.

Signed-off-by: Digimer <digimer@alteeve.ca>
main
Digimer 4 years ago
parent e82025ba61
commit 8127c70237
  1. 7
      Anvil/Tools.pm
  2. 2
      Anvil/Tools/Words.pm
  3. 6
      anvil.conf
  4. 684
      share/words.xml
  5. 185
      tools/anvil-provision-server
  6. 60
      tools/striker-parse-os-list

@ -905,6 +905,12 @@ sub _set_defaults
node => ["rhel-8-for-x86_64-highavailability-rpms"],
},
},
servers => {
# This is the list of OSes short in the user's short list of OS types to
# optimize for. The full the list is available by running:
# /usr/bin/osinfo-query os
os_short_list => "rhel5.11, rhel6.10, rhel7.9, rhel8.3, win10, win2k16, win2k19",
},
terminal => {
columns => 80,
stty => "",
@ -1149,6 +1155,7 @@ sub _set_paths
nmap => "/usr/bin/nmap",
nmcli => "/bin/nmcli",
openssl => "/usr/bin/openssl",
'osinfo-query' => "/usr/bin/osinfo-query",
passwd => "/usr/bin/passwd",
pcs => "/usr/sbin/pcs",
perccli64 => "/opt/MegaRAID/perccli/perccli64",

@ -214,7 +214,7 @@ sub key
}
}
if ($string eq "#!not_found!")
if ($string eq "#!not_found!#")
{
print $THIS_FILE." ".__LINE__."; [ Error ] - Failed to find the string key: [".$key."]!!\n" if $test;
}

@ -181,3 +181,9 @@ striker::repo::extra-packages =
# Setting this to '0' will disable auto-management of the firewall.
sys::manage::firewall = 1
### Server related options
# This is the "short list" of servers shown when provisioning a new server. To see the full list of options,
# run '/usr/bin/osinfo-query os' on any machine in the Anvil!.
#sys::servers::os_short_list = debian10,fedora32,freebsd12.1,gentoo,macosx10.7,msdos6.22,openbsd6.7,opensuse15.2,rhel5.11,rhel6.10,rhel7.9,rhel8.3,sles12sp5,solaris11,ubuntu20.04,win10,win2k16,win2k19

@ -591,6 +591,15 @@ It should be provisioned in the next minute or two.</key>
<key name="job_0187">[ Warning ] - The logical volume: [#!variable!lv_path!#] to use for this server already exists. We will NOT initialize it! If the LV does not have DRBD metadata, the server install will fail. If the LV is a DRBD resource, and it is inconsistent or outdated, provisioning will stall until the peer comes online. If the install fails, please determine why (or remove the existing LV) and try again.</key>
<key name="job_0188">The peer job: [#!variable!job_uuid!#] has been created for the peer: [#!variable!peer_name!#] to create it's side of the storage.</key>
<key name="job_0189">The new logical volume: [#!variable!lv_path!#] has been created. This will back the replicated storage used for the new server.</key>
<key name="job_0190">The DRBD resource: [#!variable!resource!#] configuration has been created and loaded.</key>
<key name="job_0191">The DRBD resource: [#!variable!resource!#] metadata has been created.</key>
<key name="job_0192">Bringing up the new resource.</key>
<key name="job_0193">Waiting for the disk state to be ready. The current volume: [#!variable!volume!#] disk state is: [#!variale!disk_state!#], waiting for it to become 'UpToDate', 'Consistent', 'Outdated' or 'Inconsistent'.</key>
<key name="job_0194">The LV(s) behind the resource: [#!variable!resource!#] already existed, and the DRBD resource is not in the disk state 'UpToDate'. As such, we'll keep waiting before provisioning the server.</key>
<key name="job_0195">The resource needs to be forced to UpToDate as it is brand now, doing that now.</key>
<key name="job_0196">-=] OS Short List</key>
<key name="job_0197">* Please enter an OS key that is closest to your target OS. Run 'osinfo-query os' for a full list.</key>
<key name="job_0198">Optimize for: .. [#!variable!os!#]</key>
<!-- Log entries -->
<key name="log_0001">Starting: [#!variable!program!#].</key>
@ -1262,7 +1271,7 @@ The file: [#!variable!file!#] needs to be updated. The difference is:
<key name="log_0575">The host: [#!variable!host_name!#] was powered off for thermal reasons. All available thermal sensors read as OK now. Booting it back up now.</key>
<key name="log_0576">The file: [#!variable!file_path!#] isn't on (or isn't the right size on) Striker: [#!variable!host_name!#]. Not using it to pull from.</key>
<key name="log_0577">The job: [#!variable!job_uuid!#] was assigned to our Anvil! and this is the primary node. Assigning the job to this machine.</key>
<key name="log_0578">The LV(s) behind the resource: [#!variable!resource!#] already existed, and the DRBD resource is not in the disk state 'UpToDate'. As such, we'll keep waiting before provisioning the server.</key>
<key name="log_0578">#!free!#</key>
<key name="log_0579">The LV(s) behind the resource: [#!variable!resource!#] have had their DRBD metadata created successfully.</key>
<key name="log_0580">The LV(s) behind the resource: [#!variable!resource!#] have been forced to primary to initialize the resource.</key>
@ -2143,6 +2152,679 @@ Read UUID: .... [#!variable!read_uuid!#]
<key name="warning_0070">[ Warning ] - Unable to report the available resources for the Anvil! [#!variable!anvil_name!#] as it looks like ScanCore has not yet run. Please try again after starting the 'scancore' daemon on the nodes.</key>
<key name="warning_0071">[ Warning ] - We were asked to create a new storage group called: [#!variable!name!#] but that name is already used by the group with UUID: [#!variable!uuid!#].</key>
<key name="warning_0072">[ Warning ] - The file: [#!variable!file_path!#] was not found on any accessible Striker dashboard (or it isn't the same size as recorded in the database). Will sleep for a minute and exit, then we'll try again.</key>
<!-- The entries below here are not sequential, but use a key to find the entry. -->
<!-- Run 'striker-parse-os-list to find new entries. -->
<key name="os_list_alpinelinux3.5"><![CDATA[Alpine Linux 3.5]]></key>
<key name="os_list_alpinelinux3.6"><![CDATA[Alpine Linux 3.6]]></key>
<key name="os_list_alpinelinux3.7"><![CDATA[Alpine Linux 3.7]]></key>
<key name="os_list_alpinelinux3.8"><![CDATA[Alpine Linux 3.8]]></key>
<key name="os_list_alt.p8"><![CDATA[ALT p8 StarterKits]]></key>
<key name="os_list_alt.p9"><![CDATA[ALT p9 StarterKits]]></key>
<key name="os_list_alt.sisyphus"><![CDATA[ALT regular]]></key>
<key name="os_list_alt8.0"><![CDATA[ALT 8 Education]]></key>
<key name="os_list_alt8.1"><![CDATA[ALT 8.1]]></key>
<key name="os_list_alt8.2"><![CDATA[ALT 8.2]]></key>
<key name="os_list_alt9.0"><![CDATA[ALT 9.0]]></key>
<key name="os_list_altlinux1.0"><![CDATA[Mandrake RE Spring 2001]]></key>
<key name="os_list_altlinux2.0"><![CDATA[ALT Linux 2.0]]></key>
<key name="os_list_altlinux2.2"><![CDATA[ALT Linux 2.2]]></key>
<key name="os_list_altlinux2.4"><![CDATA[ALT Linux 2.4]]></key>
<key name="os_list_altlinux3.0"><![CDATA[ALT Linux 3.0]]></key>
<key name="os_list_altlinux4.0"><![CDATA[ALT Linux 4.0]]></key>
<key name="os_list_altlinux4.1"><![CDATA[ALT Linux 4.1]]></key>
<key name="os_list_altlinux5.0"><![CDATA[ALT Linux 5.0]]></key>
<key name="os_list_altlinux6.0"><![CDATA[ALT Linux 6.0]]></key>
<key name="os_list_altlinux7.0"><![CDATA[ALT Linux 7.0]]></key>
<key name="os_list_android-x86-8.1"><![CDATA[Android-x86 8.1]]></key>
<key name="os_list_android-x86-9.0"><![CDATA[Android-x86 9.0]]></key>
<key name="os_list_archlinux"><![CDATA[Arch Linux]]></key>
<key name="os_list_asianux-unknown"><![CDATA[Asianux unknown]]></key>
<key name="os_list_asianux4.6"><![CDATA[Asianux Server 4 SP6]]></key>
<key name="os_list_asianux4.7"><![CDATA[Asianux Server 4 SP7]]></key>
<key name="os_list_asianux7.0"><![CDATA[Asianux Server 7]]></key>
<key name="os_list_asianux7.1"><![CDATA[Asianux Server 7 SP1]]></key>
<key name="os_list_asianux7.2"><![CDATA[Asianux Server 7 SP2]]></key>
<key name="os_list_asianux7.3"><![CDATA[Asianux Server 7 SP3]]></key>
<key name="os_list_asianux8.0"><![CDATA[Asianux Server 8]]></key>
<key name="os_list_caasp-unknown"><![CDATA[SUSE CaaS Platform Unknown]]></key>
<key name="os_list_caasp1.0"><![CDATA[SUSE CaaS Platform 1.0]]></key>
<key name="os_list_caasp2.0"><![CDATA[SUSE CaaS Platform 2.0]]></key>
<key name="os_list_caasp3.0"><![CDATA[SUSE CaaS Platform 3.0]]></key>
<key name="os_list_centos-stream8"><![CDATA[CentOS Stream 8]]></key>
<key name="os_list_centos5.0"><![CDATA[CentOS 5.0]]></key>
<key name="os_list_centos5.1"><![CDATA[CentOS 5.1]]></key>
<key name="os_list_centos5.10"><![CDATA[CentOS 5.10]]></key>
<key name="os_list_centos5.11"><![CDATA[CentOS 5.11]]></key>
<key name="os_list_centos5.2"><![CDATA[CentOS 5.2]]></key>
<key name="os_list_centos5.3"><![CDATA[CentOS 5.3]]></key>
<key name="os_list_centos5.4"><![CDATA[CentOS 5.4]]></key>
<key name="os_list_centos5.5"><![CDATA[CentOS 5.5]]></key>
<key name="os_list_centos5.6"><![CDATA[CentOS 5.6]]></key>
<key name="os_list_centos5.7"><![CDATA[CentOS 5.7]]></key>
<key name="os_list_centos5.8"><![CDATA[CentOS 5.8]]></key>
<key name="os_list_centos5.9"><![CDATA[CentOS 5.9]]></key>
<key name="os_list_centos6.0"><![CDATA[CentOS 6.0]]></key>
<key name="os_list_centos6.1"><![CDATA[CentOS 6.1]]></key>
<key name="os_list_centos6.10"><![CDATA[CentOS 6.10]]></key>
<key name="os_list_centos6.2"><![CDATA[CentOS 6.2]]></key>
<key name="os_list_centos6.3"><![CDATA[CentOS 6.3]]></key>
<key name="os_list_centos6.4"><![CDATA[CentOS 6.4]]></key>
<key name="os_list_centos6.5"><![CDATA[CentOS 6.5]]></key>
<key name="os_list_centos6.6"><![CDATA[CentOS 6.6]]></key>
<key name="os_list_centos6.7"><![CDATA[CentOS 6.7]]></key>
<key name="os_list_centos6.8"><![CDATA[CentOS 6.8]]></key>
<key name="os_list_centos6.9"><![CDATA[CentOS 6.9]]></key>
<key name="os_list_centos7.0"><![CDATA[CentOS 7]]></key>
<key name="os_list_centos8"><![CDATA[CentOS 8]]></key>
<key name="os_list_cirros0.3.0"><![CDATA[CirrOS 0.3.0]]></key>
<key name="os_list_cirros0.3.1"><![CDATA[CirrOS 0.3.1]]></key>
<key name="os_list_cirros0.3.2"><![CDATA[CirrOS 0.3.2]]></key>
<key name="os_list_cirros0.3.3"><![CDATA[CirrOS 0.3.3]]></key>
<key name="os_list_cirros0.3.4"><![CDATA[CirrOS 0.3.4]]></key>
<key name="os_list_cirros0.3.5"><![CDATA[CirrOS 0.3.5]]></key>
<key name="os_list_cirros0.4.0"><![CDATA[CirrOS 0.4.0]]></key>
<key name="os_list_clearlinux"><![CDATA[Clear Linux OS]]></key>
<key name="os_list_debian1.1"><![CDATA[Debian GNU/Linux 1.1]]></key>
<key name="os_list_debian1.2"><![CDATA[Debian GNU/Linux 1.2]]></key>
<key name="os_list_debian1.3"><![CDATA[Debian GNU/Linux 1.3]]></key>
<key name="os_list_debian10"><![CDATA[Debian 10]]></key>
<key name="os_list_debian2.0"><![CDATA[Debian GNU/Linux 2.0]]></key>
<key name="os_list_debian2.1"><![CDATA[Debian GNU/Linux 2.1]]></key>
<key name="os_list_debian2.2"><![CDATA[Debian GNU/Linux 2.2]]></key>
<key name="os_list_debian3"><![CDATA[Debian GNU/Linux 3.0]]></key>
<key name="os_list_debian3.1"><![CDATA[Debian GNU/Linux 3.1]]></key>
<key name="os_list_debian4"><![CDATA[Debian GNU/Linux 4.0]]></key>
<key name="os_list_debian5"><![CDATA[Debian GNU/Linux 5.0]]></key>
<key name="os_list_debian6"><![CDATA[Debian 6.0]]></key>
<key name="os_list_debian7"><![CDATA[Debian 7]]></key>
<key name="os_list_debian8"><![CDATA[Debian 8]]></key>
<key name="os_list_debian9"><![CDATA[Debian 9]]></key>
<key name="os_list_debiantesting"><![CDATA[Debian testing]]></key>
<key name="os_list_dragonflybsd1.0"><![CDATA[DragonFlyBSD 1.0]]></key>
<key name="os_list_dragonflybsd1.0A"><![CDATA[DragonFlyBSD 1.0A]]></key>
<key name="os_list_dragonflybsd1.10.0"><![CDATA[DragonFlyBSD 1.10.0]]></key>
<key name="os_list_dragonflybsd1.10.1"><![CDATA[DragonFlyBSD 1.10.1]]></key>
<key name="os_list_dragonflybsd1.12.0"><![CDATA[DragonFlyBSD 1.12.0]]></key>
<key name="os_list_dragonflybsd1.12.1"><![CDATA[DragonFlyBSD 1.12.1]]></key>
<key name="os_list_dragonflybsd1.12.2"><![CDATA[DragonFlyBSD 1.12.2]]></key>
<key name="os_list_dragonflybsd1.2.0"><![CDATA[DragonFlyBSD 1.2.0]]></key>
<key name="os_list_dragonflybsd1.2.1"><![CDATA[DragonFlyBSD 1.2.1]]></key>
<key name="os_list_dragonflybsd1.2.2"><![CDATA[DragonFlyBSD 1.2.2]]></key>
<key name="os_list_dragonflybsd1.2.3"><![CDATA[DragonFlyBSD 1.2.3]]></key>
<key name="os_list_dragonflybsd1.2.4"><![CDATA[DragonFlyBSD 1.2.4]]></key>
<key name="os_list_dragonflybsd1.2.5"><![CDATA[DragonFlyBSD 1.2.5]]></key>
<key name="os_list_dragonflybsd1.2.6"><![CDATA[DragonFlyBSD 1.2.6]]></key>
<key name="os_list_dragonflybsd1.4.0"><![CDATA[DragonFlyBSD 1.4.0]]></key>
<key name="os_list_dragonflybsd1.4.4"><![CDATA[DragonFlyBSD 1.4.4]]></key>
<key name="os_list_dragonflybsd1.6.0"><![CDATA[DragonFlyBSD 1.6.0]]></key>
<key name="os_list_dragonflybsd1.8.0"><![CDATA[DragonFlyBSD 1.8.0]]></key>
<key name="os_list_dragonflybsd1.8.1"><![CDATA[DragonFlyBSD 1.8.1]]></key>
<key name="os_list_dragonflybsd2.0.0"><![CDATA[DragonFlyBSD 2.0.0]]></key>
<key name="os_list_dragonflybsd2.0.1"><![CDATA[DragonFlyBSD 2.0.1]]></key>
<key name="os_list_dragonflybsd2.10.1"><![CDATA[DragonFlyBSD 2.10.1]]></key>
<key name="os_list_dragonflybsd2.2.0"><![CDATA[DragonFlyBSD 2.2.0]]></key>
<key name="os_list_dragonflybsd2.2.1"><![CDATA[DragonFlyBSD 2.2.1]]></key>
<key name="os_list_dragonflybsd2.4.0"><![CDATA[DragonFlyBSD 2.4.0]]></key>
<key name="os_list_dragonflybsd2.4.1"><![CDATA[DragonFlyBSD 2.4.1]]></key>
<key name="os_list_dragonflybsd2.6.1"><![CDATA[DragonFlyBSD 2.6.1]]></key>
<key name="os_list_dragonflybsd2.6.2"><![CDATA[DragonFlyBSD 2.6.2]]></key>
<key name="os_list_dragonflybsd2.6.3"><![CDATA[DragonFlyBSD 2.6.3]]></key>
<key name="os_list_dragonflybsd2.8.2"><![CDATA[DragonFlyBSD 2.8.2]]></key>
<key name="os_list_dragonflybsd3.0.1"><![CDATA[DragonFlyBSD 3.0.1]]></key>
<key name="os_list_dragonflybsd3.2.1"><![CDATA[DragonFlyBSD 3.2.1]]></key>
<key name="os_list_dragonflybsd3.4.1"><![CDATA[DragonFlyBSD 3.4.1]]></key>
<key name="os_list_dragonflybsd3.4.2"><![CDATA[DragonFlyBSD 3.4.2]]></key>
<key name="os_list_dragonflybsd3.4.3"><![CDATA[DragonFlyBSD 3.4.3]]></key>
<key name="os_list_dragonflybsd3.6.0"><![CDATA[DragonFlyBSD 3.6.0]]></key>
<key name="os_list_dragonflybsd3.6.1"><![CDATA[DragonFlyBSD 3.6.1]]></key>
<key name="os_list_dragonflybsd3.6.2"><![CDATA[DragonFlyBSD 3.6.2]]></key>
<key name="os_list_dragonflybsd3.8.0"><![CDATA[DragonFlyBSD 3.8.0]]></key>
<key name="os_list_dragonflybsd3.8.1"><![CDATA[DragonFlyBSD 3.8.1]]></key>
<key name="os_list_dragonflybsd3.8.2"><![CDATA[DragonFlyBSD 3.8.2]]></key>
<key name="os_list_dragonflybsd4.0.0"><![CDATA[DragonFlyBSD 4.0.0]]></key>
<key name="os_list_dragonflybsd4.0.1"><![CDATA[DragonFlyBSD 4.0.1]]></key>
<key name="os_list_dragonflybsd4.2.0"><![CDATA[DragonFlyBSD 4.2.0]]></key>
<key name="os_list_dragonflybsd4.2.1"><![CDATA[DragonFlyBSD 4.2.1]]></key>
<key name="os_list_dragonflybsd4.2.3"><![CDATA[DragonFlyBSD 4.2.3]]></key>
<key name="os_list_dragonflybsd4.2.4"><![CDATA[DragonFlyBSD 4.2.4]]></key>
<key name="os_list_dragonflybsd4.4.1"><![CDATA[DragonFlyBSD 4.4.1]]></key>
<key name="os_list_dragonflybsd4.4.2"><![CDATA[DragonFlyBSD 4.4.2]]></key>
<key name="os_list_dragonflybsd4.4.3"><![CDATA[DragonFlyBSD 4.4.3]]></key>
<key name="os_list_dragonflybsd4.6.0"><![CDATA[DragonFlyBSD 4.6.0]]></key>
<key name="os_list_dragonflybsd4.6.1"><![CDATA[DragonFlyBSD 4.6.1]]></key>
<key name="os_list_dragonflybsd4.6.2"><![CDATA[DragonFlyBSD 4.6.2]]></key>
<key name="os_list_dragonflybsd4.8.0"><![CDATA[DragonFlyBSD 4.8.0]]></key>
<key name="os_list_dragonflybsd4.8.1"><![CDATA[DragonFlyBSD 4.8.1]]></key>
<key name="os_list_dragonflybsd5.0.0"><![CDATA[DragonFlyBSD 5.0.0]]></key>
<key name="os_list_dragonflybsd5.0.1"><![CDATA[DragonFlyBSD 5.0.1]]></key>
<key name="os_list_dragonflybsd5.0.2"><![CDATA[DragonFlyBSD 5.0.2]]></key>
<key name="os_list_dragonflybsd5.2.0"><![CDATA[DragonFlyBSD 5.2.0]]></key>
<key name="os_list_dragonflybsd5.2.1"><![CDATA[DragonFlyBSD 5.2.1]]></key>
<key name="os_list_dragonflybsd5.2.2"><![CDATA[DragonFlyBSD 5.2.2]]></key>
<key name="os_list_dragonflybsd5.4.0"><![CDATA[DragonFlyBSD 5.4.0]]></key>
<key name="os_list_dragonflybsd5.4.1"><![CDATA[DragonFlyBSD 5.4.1]]></key>
<key name="os_list_dragonflybsd5.4.2"><![CDATA[DragonFlyBSD 5.4.2]]></key>
<key name="os_list_dragonflybsd5.4.3"><![CDATA[DragonFlyBSD 5.4.3]]></key>
<key name="os_list_dragonflybsd5.6"><![CDATA[DragonFlyBSD 5.6]]></key>
<key name="os_list_elementary5.0"><![CDATA[Elementary OS 5.0 Juno]]></key>
<key name="os_list_eos3.1"><![CDATA[Endless OS 3.1]]></key>
<key name="os_list_eos3.2"><![CDATA[Endless OS 3.2]]></key>
<key name="os_list_eos3.3"><![CDATA[Endless OS 3.3]]></key>
<key name="os_list_eos3.4"><![CDATA[Endless OS 3.4]]></key>
<key name="os_list_eos3.5"><![CDATA[Endless OS 3.5]]></key>
<key name="os_list_eos3.6"><![CDATA[Endless OS 3.6]]></key>
<key name="os_list_eos3.7"><![CDATA[Endless OS 3.7]]></key>
<key name="os_list_eos3.8"><![CDATA[Endless OS 3.8]]></key>
<key name="os_list_fedora-rawhide"><![CDATA[Fedora Rawhide]]></key>
<key name="os_list_fedora-unknown"><![CDATA[Fedora]]></key>
<key name="os_list_fedora1"><![CDATA[Fedora Core 1]]></key>
<key name="os_list_fedora10"><![CDATA[Fedora 10]]></key>
<key name="os_list_fedora11"><![CDATA[Fedora 11]]></key>
<key name="os_list_fedora12"><![CDATA[Fedora 12]]></key>
<key name="os_list_fedora13"><![CDATA[Fedora 13]]></key>
<key name="os_list_fedora14"><![CDATA[Fedora 14]]></key>
<key name="os_list_fedora15"><![CDATA[Fedora 15]]></key>
<key name="os_list_fedora16"><![CDATA[Fedora 16]]></key>
<key name="os_list_fedora17"><![CDATA[Fedora 17]]></key>
<key name="os_list_fedora18"><![CDATA[Fedora 18]]></key>
<key name="os_list_fedora19"><![CDATA[Fedora 19]]></key>
<key name="os_list_fedora2"><![CDATA[Fedora Core 2]]></key>
<key name="os_list_fedora20"><![CDATA[Fedora 20]]></key>
<key name="os_list_fedora21"><![CDATA[Fedora 21]]></key>
<key name="os_list_fedora22"><![CDATA[Fedora 22]]></key>
<key name="os_list_fedora23"><![CDATA[Fedora 23]]></key>
<key name="os_list_fedora24"><![CDATA[Fedora 24]]></key>
<key name="os_list_fedora25"><![CDATA[Fedora 25]]></key>
<key name="os_list_fedora26"><![CDATA[Fedora 26]]></key>
<key name="os_list_fedora27"><![CDATA[Fedora 27]]></key>
<key name="os_list_fedora28"><![CDATA[Fedora 28]]></key>
<key name="os_list_fedora29"><![CDATA[Fedora 29]]></key>
<key name="os_list_fedora3"><![CDATA[Fedora Core 3]]></key>
<key name="os_list_fedora30"><![CDATA[Fedora 30]]></key>
<key name="os_list_fedora31"><![CDATA[Fedora 31]]></key>
<key name="os_list_fedora32"><![CDATA[Fedora 32]]></key>
<key name="os_list_fedora4"><![CDATA[Fedora Core 4]]></key>
<key name="os_list_fedora5"><![CDATA[Fedora Core 5]]></key>
<key name="os_list_fedora6"><![CDATA[Fedora Core 6]]></key>
<key name="os_list_fedora7"><![CDATA[Fedora 7]]></key>
<key name="os_list_fedora8"><![CDATA[Fedora 8]]></key>
<key name="os_list_fedora9"><![CDATA[Fedora 9]]></key>
<key name="os_list_freebsd1.0"><![CDATA[FreeBSD 1.0]]></key>
<key name="os_list_freebsd10.0"><![CDATA[FreeBSD 10.0]]></key>
<key name="os_list_freebsd10.1"><![CDATA[FreeBSD 10.1]]></key>
<key name="os_list_freebsd10.2"><![CDATA[FreeBSD 10.2]]></key>
<key name="os_list_freebsd10.3"><![CDATA[FreeBSD 10.3]]></key>
<key name="os_list_freebsd10.4"><![CDATA[FreeBSD 10.4]]></key>
<key name="os_list_freebsd11.0"><![CDATA[FreeBSD 11.0]]></key>
<key name="os_list_freebsd11.1"><![CDATA[FreeBSD 11.1]]></key>
<key name="os_list_freebsd11.2"><![CDATA[FreeBSD 11.2]]></key>
<key name="os_list_freebsd11.3"><![CDATA[FreeBSD 11.3]]></key>
<key name="os_list_freebsd11.4"><![CDATA[FreeBSD 11.4]]></key>
<key name="os_list_freebsd12.0"><![CDATA[FreeBSD 12.0]]></key>
<key name="os_list_freebsd12.1"><![CDATA[FreeBSD 12.1]]></key>
<key name="os_list_freebsd2.0"><![CDATA[FreeBSD 2.0]]></key>
<key name="os_list_freebsd2.0.5"><![CDATA[FreeBSD 2.0.5]]></key>
<key name="os_list_freebsd2.2.8"><![CDATA[FreeBSD 2.2.8]]></key>
<key name="os_list_freebsd2.2.9"><![CDATA[FreeBSD 2.2.9]]></key>
<key name="os_list_freebsd3.0"><![CDATA[FreeBSD 3.0]]></key>
<key name="os_list_freebsd3.2"><![CDATA[FreeBSD 3.2]]></key>
<key name="os_list_freebsd4.0"><![CDATA[FreeBSD 4.0]]></key>
<key name="os_list_freebsd4.1"><![CDATA[FreeBSD 4.1]]></key>
<key name="os_list_freebsd4.10"><![CDATA[FreeBSD 4.10]]></key>
<key name="os_list_freebsd4.11"><![CDATA[FreeBSD 4.11]]></key>
<key name="os_list_freebsd4.2"><![CDATA[FreeBSD 4.2]]></key>
<key name="os_list_freebsd4.3"><![CDATA[FreeBSD 4.3]]></key>
<key name="os_list_freebsd4.4"><![CDATA[FreeBSD 4.4]]></key>
<key name="os_list_freebsd4.5"><![CDATA[FreeBSD 4.5]]></key>
<key name="os_list_freebsd4.6"><![CDATA[FreeBSD 4.6]]></key>
<key name="os_list_freebsd4.7"><![CDATA[FreeBSD 4.7]]></key>
<key name="os_list_freebsd4.8"><![CDATA[FreeBSD 4.8]]></key>
<key name="os_list_freebsd4.9"><![CDATA[FreeBSD 4.9]]></key>
<key name="os_list_freebsd5.0"><![CDATA[FreeBSD 5.0]]></key>
<key name="os_list_freebsd5.1"><![CDATA[FreeBSD 5.1]]></key>
<key name="os_list_freebsd5.2"><![CDATA[FreeBSD 5.2]]></key>
<key name="os_list_freebsd5.2.1"><![CDATA[FreeBSD 5.2.1]]></key>
<key name="os_list_freebsd5.3"><![CDATA[FreeBSD 5.3]]></key>
<key name="os_list_freebsd5.4"><![CDATA[FreeBSD 5.4]]></key>
<key name="os_list_freebsd5.5"><![CDATA[FreeBSD 5.5]]></key>
<key name="os_list_freebsd6.0"><![CDATA[FreeBSD 6.0]]></key>
<key name="os_list_freebsd6.1"><![CDATA[FreeBSD 6.1]]></key>
<key name="os_list_freebsd6.2"><![CDATA[FreeBSD 6.2]]></key>
<key name="os_list_freebsd6.3"><![CDATA[FreeBSD 6.3]]></key>
<key name="os_list_freebsd6.4"><![CDATA[FreeBSD 6.4]]></key>
<key name="os_list_freebsd7.0"><![CDATA[FreeBSD 7.0]]></key>
<key name="os_list_freebsd7.1"><![CDATA[FreeBSD 7.1]]></key>
<key name="os_list_freebsd7.2"><![CDATA[FreeBSD 7.2]]></key>
<key name="os_list_freebsd7.3"><![CDATA[FreeBSD 7.3]]></key>
<key name="os_list_freebsd7.4"><![CDATA[FreeBSD 7.4]]></key>
<key name="os_list_freebsd8.0"><![CDATA[FreeBSD 8.0]]></key>
<key name="os_list_freebsd8.1"><![CDATA[FreeBSD 8.1]]></key>
<key name="os_list_freebsd8.2"><![CDATA[FreeBSD 8.2]]></key>
<key name="os_list_freebsd8.3"><![CDATA[FreeBSD 8.3]]></key>
<key name="os_list_freebsd8.4"><![CDATA[FreeBSD 8.4]]></key>
<key name="os_list_freebsd9.0"><![CDATA[FreeBSD 9.0]]></key>
<key name="os_list_freebsd9.1"><![CDATA[FreeBSD 9.1]]></key>
<key name="os_list_freebsd9.2"><![CDATA[FreeBSD 9.2]]></key>
<key name="os_list_freebsd9.3"><![CDATA[FreeBSD 9.3]]></key>
<key name="os_list_freedos1.2"><![CDATA[FreeDOS 1.2]]></key>
<key name="os_list_gentoo"><![CDATA[Gentoo Linux]]></key>
<key name="os_list_gnome-continuous-3.10"><![CDATA[GNOME 3.10]]></key>
<key name="os_list_gnome-continuous-3.12"><![CDATA[GNOME 3.12]]></key>
<key name="os_list_gnome-continuous-3.14"><![CDATA[GNOME 3.14]]></key>
<key name="os_list_gnome3.6"><![CDATA[GNOME 3.6]]></key>
<key name="os_list_gnome3.8"><![CDATA[GNOME 3.8]]></key>
<key name="os_list_haikunightly"><![CDATA[Haiku Nightly]]></key>
<key name="os_list_haikur1alpha1"><![CDATA[Haiku R1/Alpha1]]></key>
<key name="os_list_haikur1alpha2"><![CDATA[Haiku R1/Alpha2]]></key>
<key name="os_list_haikur1alpha3"><![CDATA[Haiku R1/Alpha3]]></key>
<key name="os_list_haikur1alpha4.1"><![CDATA[Haiku R1/Alpha4.1]]></key>
<key name="os_list_haikur1beta1"><![CDATA[Haiku R1/Beta1]]></key>
<key name="os_list_macosx10.0"><![CDATA[MacOS X Cheetah]]></key>
<key name="os_list_macosx10.1"><![CDATA[MacOS X Puma]]></key>
<key name="os_list_macosx10.2"><![CDATA[MacOS X Jaguar]]></key>
<key name="os_list_macosx10.3"><![CDATA[MacOS X Panther]]></key>
<key name="os_list_macosx10.4"><![CDATA[MacOS X Tiger]]></key>
<key name="os_list_macosx10.5"><![CDATA[MacOS X Leopard]]></key>
<key name="os_list_macosx10.6"><![CDATA[MacOS X Snow Leopard]]></key>
<key name="os_list_macosx10.7"><![CDATA[MacOS X Lion]]></key>
<key name="os_list_mageia1"><![CDATA[Mageia 1]]></key>
<key name="os_list_mageia2"><![CDATA[Mageia 2]]></key>
<key name="os_list_mageia3"><![CDATA[Mageia 3]]></key>
<key name="os_list_mageia4"><![CDATA[Mageia 4]]></key>
<key name="os_list_mageia5"><![CDATA[Mageia 5]]></key>
<key name="os_list_mageia6"><![CDATA[Mageia 6]]></key>
<key name="os_list_mageia7"><![CDATA[Mageia 7]]></key>
<key name="os_list_mandrake10.0"><![CDATA[Mandrake Linux 10.0]]></key>
<key name="os_list_mandrake10.1"><![CDATA[Mandrake Linux 10.1]]></key>
<key name="os_list_mandrake10.2"><![CDATA[Mandrake Linux 10.2]]></key>
<key name="os_list_mandrake5.1"><![CDATA[Mandrake Linux 5.1]]></key>
<key name="os_list_mandrake5.2"><![CDATA[Mandrake Linux 5.2]]></key>
<key name="os_list_mandrake5.3"><![CDATA[Mandrake Linux 5.3]]></key>
<key name="os_list_mandrake6.0"><![CDATA[Mandrake Linux 6.0]]></key>
<key name="os_list_mandrake6.1"><![CDATA[Mandrake Linux 6.1]]></key>
<key name="os_list_mandrake7.0"><![CDATA[Mandrake Linux 7.0]]></key>
<key name="os_list_mandrake7.1"><![CDATA[Mandrake Linux 7.1]]></key>
<key name="os_list_mandrake7.2"><![CDATA[Mandrake Linux 7.2]]></key>
<key name="os_list_mandrake8.0"><![CDATA[Mandrake Linux 8.0]]></key>
<key name="os_list_mandrake8.1"><![CDATA[Mandrake Linux 8.1]]></key>
<key name="os_list_mandrake8.2"><![CDATA[Mandrake Linux 8.2]]></key>
<key name="os_list_mandrake9.0"><![CDATA[Mandrake Linux 9.0]]></key>
<key name="os_list_mandrake9.1"><![CDATA[Mandrake Linux 9.1]]></key>
<key name="os_list_mandrake9.2"><![CDATA[Mandrake Linux 9.2]]></key>
<key name="os_list_mandriva2006.0"><![CDATA[Mandriva Linux 2006.0]]></key>
<key name="os_list_mandriva2007"><![CDATA[Mandriva Linux 2007]]></key>
<key name="os_list_mandriva2007.1"><![CDATA[Mandriva Linux 2007 Spring]]></key>
<key name="os_list_mandriva2008.0"><![CDATA[Mandriva Linux 2008]]></key>
<key name="os_list_mandriva2008.1"><![CDATA[Mandriva Linux 2008 Spring]]></key>
<key name="os_list_mandriva2009.0"><![CDATA[Mandriva Linux 2009]]></key>
<key name="os_list_mandriva2009.1"><![CDATA[Mandriva Linux 2009 Spring]]></key>
<key name="os_list_mandriva2010.0"><![CDATA[Mandriva Linux 2010]]></key>
<key name="os_list_mandriva2010.1"><![CDATA[Mandriva Linux 2010 Spring]]></key>
<key name="os_list_mandriva2010.2"><![CDATA[Mandriva Linux 2010.2]]></key>
<key name="os_list_mandriva2011"><![CDATA[Mandriva Linux 2011]]></key>
<key name="os_list_manjaro"><![CDATA[Manjaro]]></key>
<key name="os_list_mbs1.0"><![CDATA[Mandriva Business Server 1.0]]></key>
<key name="os_list_mes5"><![CDATA[Mandriva Enterprise Server 5.0]]></key>
<key name="os_list_mes5.1"><![CDATA[Mandriva Enterprise Server 5.1]]></key>
<key name="os_list_msdos6.22"><![CDATA[Microsoft MS-DOS 6.22]]></key>
<key name="os_list_netbsd0.8"><![CDATA[NetBSD 0.8]]></key>
<key name="os_list_netbsd0.9"><![CDATA[NetBSD 0.9]]></key>
<key name="os_list_netbsd1.0"><![CDATA[NetBSD 1.0]]></key>
<key name="os_list_netbsd1.1"><![CDATA[NetBSD 1.1]]></key>
<key name="os_list_netbsd1.2"><![CDATA[NetBSD 1.2]]></key>
<key name="os_list_netbsd1.3"><![CDATA[NetBSD 1.3]]></key>
<key name="os_list_netbsd1.4"><![CDATA[NetBSD 1.4]]></key>
<key name="os_list_netbsd1.5"><![CDATA[NetBSD 1.5]]></key>
<key name="os_list_netbsd1.6"><![CDATA[NetBSD 1.6]]></key>
<key name="os_list_netbsd2.0"><![CDATA[NetBSD 2.0]]></key>
<key name="os_list_netbsd3.0"><![CDATA[NetBSD 3.0]]></key>
<key name="os_list_netbsd4.0"><![CDATA[NetBSD 4.0]]></key>
<key name="os_list_netbsd5.0"><![CDATA[NetBSD 5.0]]></key>
<key name="os_list_netbsd5.1"><![CDATA[NetBSD 5.1]]></key>
<key name="os_list_netbsd6.0"><![CDATA[NetBSD 6.0]]></key>
<key name="os_list_netbsd6.1"><![CDATA[NetBSD 6.1]]></key>
<key name="os_list_netbsd7.0"><![CDATA[NetBSD 7.0]]></key>
<key name="os_list_netbsd7.1"><![CDATA[NetBSD 7.1]]></key>
<key name="os_list_netbsd7.1.1"><![CDATA[NetBSD 7.1.1]]></key>
<key name="os_list_netbsd7.1.2"><![CDATA[NetBSD 7.1.2]]></key>
<key name="os_list_netbsd7.2"><![CDATA[NetBSD 7.2]]></key>
<key name="os_list_netbsd8.0"><![CDATA[NetBSD 8.0]]></key>
<key name="os_list_netbsd8.1"><![CDATA[NetBSD 8.1]]></key>
<key name="os_list_netbsd8.2"><![CDATA[NetBSD 8.2]]></key>
<key name="os_list_netbsd9.0"><![CDATA[NetBSD 9.0]]></key>
<key name="os_list_netware4"><![CDATA[Novell Netware 4]]></key>
<key name="os_list_netware5"><![CDATA[Novell Netware 5]]></key>
<key name="os_list_netware6"><![CDATA[Novell Netware 6]]></key>
<key name="os_list_nixos-20.03"><![CDATA[NixOS 20.03]]></key>
<key name="os_list_nixos-unknown"><![CDATA[NixOS]]></key>
<key name="os_list_nixos-unstable"><![CDATA[NixOS Unstable]]></key>
<key name="os_list_oel4.4"><![CDATA[Oracle Enterprise Linux 4.4]]></key>
<key name="os_list_oel4.5"><![CDATA[Oracle Enterprise Linux 4.5]]></key>
<key name="os_list_oel4.6"><![CDATA[Oracle Enterprise Linux 4.6]]></key>
<key name="os_list_oel4.7"><![CDATA[Oracle Enterprise Linux 4.7]]></key>
<key name="os_list_oel4.8"><![CDATA[Oracle Enterprise Linux 4.8]]></key>
<key name="os_list_oel4.9"><![CDATA[Oracle Enterprise Linux 4.9]]></key>
<key name="os_list_oel5.0"><![CDATA[Oracle Enterprise Linux 5.0]]></key>
<key name="os_list_oel5.1"><![CDATA[Oracle Enterprise Linux 5.1]]></key>
<key name="os_list_oel5.2"><![CDATA[Oracle Enterprise Linux 5.2]]></key>
<key name="os_list_oel5.3"><![CDATA[Oracle Enterprise Linux 5.3]]></key>
<key name="os_list_oel5.4"><![CDATA[Oracle Enterprise Linux 5.4]]></key>
<key name="os_list_ol5.10"><![CDATA[Oracle Linux 5.10]]></key>
<key name="os_list_ol5.11"><![CDATA[Oracle Linux 5.11]]></key>
<key name="os_list_ol5.5"><![CDATA[Oracle Linux 5.5]]></key>
<key name="os_list_ol5.6"><![CDATA[Oracle Linux 5.6]]></key>
<key name="os_list_ol5.7"><![CDATA[Oracle Linux 5.7]]></key>
<key name="os_list_ol5.8"><![CDATA[Oracle Linux 5.8]]></key>
<key name="os_list_ol5.9"><![CDATA[Oracle Linux 5.9]]></key>
<key name="os_list_ol6.0"><![CDATA[Oracle Linux 6.0]]></key>
<key name="os_list_ol6.1"><![CDATA[Oracle Linux 6.1]]></key>
<key name="os_list_ol6.10"><![CDATA[Oracle Linux 6.10]]></key>
<key name="os_list_ol6.2"><![CDATA[Oracle Linux 6.2]]></key>
<key name="os_list_ol6.3"><![CDATA[Oracle Linux 6.3]]></key>
<key name="os_list_ol6.4"><![CDATA[Oracle Linux 6.4]]></key>
<key name="os_list_ol6.5"><![CDATA[Oracle Linux 6.5]]></key>
<key name="os_list_ol6.6"><![CDATA[Oracle Linux 6.6]]></key>
<key name="os_list_ol6.7"><![CDATA[Oracle Linux 6.7]]></key>
<key name="os_list_ol6.8"><![CDATA[Oracle Linux 6.8]]></key>
<key name="os_list_ol6.9"><![CDATA[Oracle Linux 6.9]]></key>
<key name="os_list_ol7.0"><![CDATA[Oracle Linux 7.0]]></key>
<key name="os_list_ol7.1"><![CDATA[Oracle Linux 7.1]]></key>
<key name="os_list_ol7.2"><![CDATA[Oracle Linux 7.2]]></key>
<key name="os_list_ol7.3"><![CDATA[Oracle Linux 7.3]]></key>
<key name="os_list_ol7.4"><![CDATA[Oracle Linux 7.4]]></key>
<key name="os_list_ol7.5"><![CDATA[Oracle Linux 7.5]]></key>
<key name="os_list_ol7.6"><![CDATA[Oracle Linux 7.6]]></key>
<key name="os_list_ol7.7"><![CDATA[Oracle Linux 7.7]]></key>
<key name="os_list_ol7.8"><![CDATA[Oracle Linux 7.8]]></key>
<key name="os_list_ol8.0"><![CDATA[Oracle Linux 8.0]]></key>
<key name="os_list_ol8.1"><![CDATA[Oracle Linux 8.1]]></key>
<key name="os_list_ol8.2"><![CDATA[Oracle Linux 8.2]]></key>
<key name="os_list_openbsd4.2"><![CDATA[OpenBSD 4.2]]></key>
<key name="os_list_openbsd4.3"><![CDATA[OpenBSD 4.3]]></key>
<key name="os_list_openbsd4.4"><![CDATA[OpenBSD 4.4]]></key>
<key name="os_list_openbsd4.5"><![CDATA[OpenBSD 4.5]]></key>
<key name="os_list_openbsd4.8"><![CDATA[OpenBSD 4.8]]></key>
<key name="os_list_openbsd4.9"><![CDATA[OpenBSD 4.9]]></key>
<key name="os_list_openbsd5.0"><![CDATA[OpenBSD 5.0]]></key>
<key name="os_list_openbsd5.1"><![CDATA[OpenBSD 5.1]]></key>
<key name="os_list_openbsd5.2"><![CDATA[OpenBSD 5.2]]></key>
<key name="os_list_openbsd5.3"><![CDATA[OpenBSD 5.3]]></key>
<key name="os_list_openbsd5.4"><![CDATA[OpenBSD 5.4]]></key>
<key name="os_list_openbsd5.5"><![CDATA[OpenBSD 5.5]]></key>
<key name="os_list_openbsd5.6"><![CDATA[OpenBSD 5.6]]></key>
<key name="os_list_openbsd5.7"><![CDATA[OpenBSD 5.7]]></key>
<key name="os_list_openbsd5.8"><![CDATA[OpenBSD 5.8]]></key>
<key name="os_list_openbsd5.9"><![CDATA[OpenBSD 5.9]]></key>
<key name="os_list_openbsd6.0"><![CDATA[OpenBSD 6.0]]></key>
<key name="os_list_openbsd6.1"><![CDATA[OpenBSD 6.1]]></key>
<key name="os_list_openbsd6.2"><![CDATA[OpenBSD 6.2]]></key>
<key name="os_list_openbsd6.3"><![CDATA[OpenBSD 6.3]]></key>
<key name="os_list_openbsd6.4"><![CDATA[OpenBSD 6.4]]></key>
<key name="os_list_openbsd6.5"><![CDATA[OpenBSD 6.5]]></key>
<key name="os_list_openbsd6.6"><![CDATA[OpenBSD 6.6]]></key>
<key name="os_list_openbsd6.7"><![CDATA[OpenBSD 6.7]]></key>
<key name="os_list_opensolaris2009.06"><![CDATA[OpenSolaris 2009.06]]></key>
<key name="os_list_opensuse-factory"><![CDATA[openSUSE]]></key>
<key name="os_list_opensuse-unknown"><![CDATA[openSUSE]]></key>
<key name="os_list_opensuse10.2"><![CDATA[openSUSE 10.2]]></key>
<key name="os_list_opensuse10.3"><![CDATA[openSUSE 10.3]]></key>
<key name="os_list_opensuse11.0"><![CDATA[openSUSE 11.0]]></key>
<key name="os_list_opensuse11.1"><![CDATA[openSUSE 11.1]]></key>
<key name="os_list_opensuse11.2"><![CDATA[openSUSE 11.2]]></key>
<key name="os_list_opensuse11.3"><![CDATA[openSUSE 11.3]]></key>
<key name="os_list_opensuse11.4"><![CDATA[openSUSE 11.4]]></key>
<key name="os_list_opensuse12.1"><![CDATA[openSUSE 12.1]]></key>
<key name="os_list_opensuse12.2"><![CDATA[openSUSE 12.2]]></key>
<key name="os_list_opensuse12.3"><![CDATA[openSUSE 12.3]]></key>
<key name="os_list_opensuse13.1"><![CDATA[openSUSE 13.1]]></key>
<key name="os_list_opensuse13.2"><![CDATA[openSUSE 13.2]]></key>
<key name="os_list_opensuse15.0"><![CDATA[openSUSE Leap 15.0]]></key>
<key name="os_list_opensuse15.1"><![CDATA[openSUSE Leap 15.1]]></key>
<key name="os_list_opensuse15.2"><![CDATA[openSUSE Leap 15.2]]></key>
<key name="os_list_opensuse42.1"><![CDATA[openSUSE Leap 42.1]]></key>
<key name="os_list_opensuse42.2"><![CDATA[openSUSE Leap 42.2]]></key>
<key name="os_list_opensuse42.3"><![CDATA[openSUSE Leap 42.3]]></key>
<key name="os_list_opensusetumbleweed"><![CDATA[openSUSE Tumbleweed]]></key>
<key name="os_list_popos17.10"><![CDATA[Pop!_OS 17.10]]></key>
<key name="os_list_popos18.04"><![CDATA[Pop!_OS 18.04]]></key>
<key name="os_list_popos18.10"><![CDATA[Pop!_OS 18.10]]></key>
<key name="os_list_popos19.04"><![CDATA[Pop!_OS 19.04]]></key>
<key name="os_list_popos19.10"><![CDATA[Pop!_OS 19.10]]></key>
<key name="os_list_pureos8"><![CDATA[PureOS]]></key>
<key name="os_list_rhel-atomic-7.0"><![CDATA[Red Hat Enterprise Linux Atomic Host 7.0]]></key>
<key name="os_list_rhel-atomic-7.1"><![CDATA[Red Hat Enterprise Linux Atomic Host 7.1]]></key>
<key name="os_list_rhel-atomic-7.2"><![CDATA[Red Hat Enterprise Linux Atomic Host 7.2]]></key>
<key name="os_list_rhel-atomic-7.3"><![CDATA[Red Hat Enterprise Linux Atomic Host 7.3]]></key>
<key name="os_list_rhel-atomic-7.4"><![CDATA[Red Hat Enterprise Linux Atomic Host 7.4]]></key>
<key name="os_list_rhel-unknown"><![CDATA[Red Hat Enterprise Linux Unknown]]></key>
<key name="os_list_rhel2.1"><![CDATA[Red Hat Enterprise Linux 2.1]]></key>
<key name="os_list_rhel2.1.1"><![CDATA[Red Hat Enterprise Linux 2.1 Update 1]]></key>
<key name="os_list_rhel2.1.2"><![CDATA[Red Hat Enterprise Linux 2.1 Update 2]]></key>
<key name="os_list_rhel2.1.3"><![CDATA[Red Hat Enterprise Linux 2.1 Update 3]]></key>
<key name="os_list_rhel2.1.4"><![CDATA[Red Hat Enterprise Linux 2.1 Update 4]]></key>
<key name="os_list_rhel2.1.5"><![CDATA[Red Hat Enterprise Linux 2.1 Update 5]]></key>
<key name="os_list_rhel2.1.6"><![CDATA[Red Hat Enterprise Linux 2.1 Update 6]]></key>
<key name="os_list_rhel2.1.7"><![CDATA[Red Hat Enterprise Linux 2.1 Update 7]]></key>
<key name="os_list_rhel3"><![CDATA[Red Hat Enterprise Linux 3]]></key>
<key name="os_list_rhel3.1"><![CDATA[Red Hat Enterprise Linux 3 Update 1]]></key>
<key name="os_list_rhel3.2"><![CDATA[Red Hat Enterprise Linux 3 Update 2]]></key>
<key name="os_list_rhel3.3"><![CDATA[Red Hat Enterprise Linux 3 Update 3]]></key>
<key name="os_list_rhel3.4"><![CDATA[Red Hat Enterprise Linux 3 Update 4]]></key>
<key name="os_list_rhel3.5"><![CDATA[Red Hat Enterprise Linux 3 Update 5]]></key>
<key name="os_list_rhel3.6"><![CDATA[Red Hat Enterprise Linux 3 Update 6]]></key>
<key name="os_list_rhel3.7"><![CDATA[Red Hat Enterprise Linux 3 Update 7]]></key>
<key name="os_list_rhel3.8"><![CDATA[Red Hat Enterprise Linux 3 Update 8]]></key>
<key name="os_list_rhel3.9"><![CDATA[Red Hat Enterprise Linux 3 Update 9]]></key>
<key name="os_list_rhel4.0"><![CDATA[Red Hat Enterprise Linux 4.0]]></key>
<key name="os_list_rhel4.1"><![CDATA[Red Hat Enterprise Linux 4.1]]></key>
<key name="os_list_rhel4.2"><![CDATA[Red Hat Enterprise Linux 4.2]]></key>
<key name="os_list_rhel4.3"><![CDATA[Red Hat Enterprise Linux 4.3]]></key>
<key name="os_list_rhel4.4"><![CDATA[Red Hat Enterprise Linux 4.4]]></key>
<key name="os_list_rhel4.5"><![CDATA[Red Hat Enterprise Linux 4.5]]></key>
<key name="os_list_rhel4.6"><![CDATA[Red Hat Enterprise Linux 4.6]]></key>
<key name="os_list_rhel4.7"><![CDATA[Red Hat Enterprise Linux 4.7]]></key>
<key name="os_list_rhel4.8"><![CDATA[Red Hat Enterprise Linux 4.8]]></key>
<key name="os_list_rhel4.9"><![CDATA[Red Hat Enterprise Linux 4.9]]></key>
<key name="os_list_rhel5.0"><![CDATA[Red Hat Enterprise Linux 5.0]]></key>
<key name="os_list_rhel5.1"><![CDATA[Red Hat Enterprise Linux 5.1]]></key>
<key name="os_list_rhel5.10"><![CDATA[Red Hat Enterprise Linux 5.10]]></key>
<key name="os_list_rhel5.11"><![CDATA[Red Hat Enterprise Linux 5.11]]></key>
<key name="os_list_rhel5.2"><![CDATA[Red Hat Enterprise Linux 5.2]]></key>
<key name="os_list_rhel5.3"><![CDATA[Red Hat Enterprise Linux 5.3]]></key>
<key name="os_list_rhel5.4"><![CDATA[Red Hat Enterprise Linux 5.4]]></key>
<key name="os_list_rhel5.5"><![CDATA[Red Hat Enterprise Linux 5.5]]></key>
<key name="os_list_rhel5.6"><![CDATA[Red Hat Enterprise Linux 5.6]]></key>
<key name="os_list_rhel5.7"><![CDATA[Red Hat Enterprise Linux 5.7]]></key>
<key name="os_list_rhel5.8"><![CDATA[Red Hat Enterprise Linux 5.8]]></key>
<key name="os_list_rhel5.9"><![CDATA[Red Hat Enterprise Linux 5.9]]></key>
<key name="os_list_rhel6-unknown"><![CDATA[Red Hat Enterprise Linux 6 Unknown]]></key>
<key name="os_list_rhel6.0"><![CDATA[Red Hat Enterprise Linux 6.0]]></key>
<key name="os_list_rhel6.1"><![CDATA[Red Hat Enterprise Linux 6.1]]></key>
<key name="os_list_rhel6.10"><![CDATA[Red Hat Enterprise Linux 6.10]]></key>
<key name="os_list_rhel6.2"><![CDATA[Red Hat Enterprise Linux 6.2]]></key>
<key name="os_list_rhel6.3"><![CDATA[Red Hat Enterprise Linux 6.3]]></key>
<key name="os_list_rhel6.4"><![CDATA[Red Hat Enterprise Linux 6.4]]></key>
<key name="os_list_rhel6.5"><![CDATA[Red Hat Enterprise Linux 6.5]]></key>
<key name="os_list_rhel6.6"><![CDATA[Red Hat Enterprise Linux 6.6]]></key>
<key name="os_list_rhel6.7"><![CDATA[Red Hat Enterprise Linux 6.7]]></key>
<key name="os_list_rhel6.8"><![CDATA[Red Hat Enterprise Linux 6.8]]></key>
<key name="os_list_rhel6.9"><![CDATA[Red Hat Enterprise Linux 6.9]]></key>
<key name="os_list_rhel7-unknown"><![CDATA[Red Hat Enterprise Linux 7 Unknown]]></key>
<key name="os_list_rhel7.0"><![CDATA[Red Hat Enterprise Linux 7.0]]></key>
<key name="os_list_rhel7.1"><![CDATA[Red Hat Enterprise Linux 7.1]]></key>
<key name="os_list_rhel7.2"><![CDATA[Red Hat Enterprise Linux 7.2]]></key>
<key name="os_list_rhel7.3"><![CDATA[Red Hat Enterprise Linux 7.3]]></key>
<key name="os_list_rhel7.4"><![CDATA[Red Hat Enterprise Linux 7.4]]></key>
<key name="os_list_rhel7.5"><![CDATA[Red Hat Enterprise Linux 7.5]]></key>
<key name="os_list_rhel7.6"><![CDATA[Red Hat Enterprise Linux 7.6]]></key>
<key name="os_list_rhel7.7"><![CDATA[Red Hat Enterprise Linux 7.7]]></key>
<key name="os_list_rhel7.8"><![CDATA[Red Hat Enterprise Linux 7.8]]></key>
<key name="os_list_rhel7.9"><![CDATA[Red Hat Enterprise Linux 7.9]]></key>
<key name="os_list_rhel8-unknown"><![CDATA[Red Hat Enterprise Linux 8 Unknown]]></key>
<key name="os_list_rhel8.0"><![CDATA[Red Hat Enterprise Linux 8.0]]></key>
<key name="os_list_rhel8.1"><![CDATA[Red Hat Enterprise Linux 8.1]]></key>
<key name="os_list_rhel8.2"><![CDATA[Red Hat Enterprise Linux 8.2]]></key>
<key name="os_list_rhel8.3"><![CDATA[Red Hat Enterprise Linux 8.3]]></key>
<key name="os_list_rhl1.0"><![CDATA[Red Hat Linux 1.0]]></key>
<key name="os_list_rhl1.1"><![CDATA[Red Hat Linux 1.1]]></key>
<key name="os_list_rhl2.0"><![CDATA[Red Hat Linux 2.0]]></key>
<key name="os_list_rhl2.1"><![CDATA[Red Hat Linux 2.1]]></key>
<key name="os_list_rhl3.0.3"><![CDATA[Red Hat Linux 3.0.3]]></key>
<key name="os_list_rhl4.0"><![CDATA[Red Hat Linux 4.0]]></key>
<key name="os_list_rhl4.1"><![CDATA[Red Hat Linux 4.1]]></key>
<key name="os_list_rhl4.2"><![CDATA[Red Hat Linux 4.2]]></key>
<key name="os_list_rhl5.0"><![CDATA[Red Hat Linux 5.0]]></key>
<key name="os_list_rhl5.1"><![CDATA[Red Hat Linux 5.1]]></key>
<key name="os_list_rhl5.2"><![CDATA[Red Hat Linux 5.2]]></key>
<key name="os_list_rhl6.0"><![CDATA[Red Hat Linux 6.0]]></key>
<key name="os_list_rhl6.1"><![CDATA[Red Hat Linux 6.1]]></key>
<key name="os_list_rhl6.2"><![CDATA[Red Hat Linux 6.2]]></key>
<key name="os_list_rhl7"><![CDATA[Red Hat Linux 7]]></key>
<key name="os_list_rhl7.1"><![CDATA[Red Hat Linux 7.1]]></key>
<key name="os_list_rhl7.2"><![CDATA[Red Hat Linux 7.2]]></key>
<key name="os_list_rhl7.3"><![CDATA[Red Hat Linux 7.3]]></key>
<key name="os_list_rhl8.0"><![CDATA[Red Hat Linux 8.0]]></key>
<key name="os_list_rhl9"><![CDATA[Red Hat Linux 9]]></key>
<key name="os_list_scientificlinux5.0"><![CDATA[Scientific Linux 5.0]]></key>
<key name="os_list_scientificlinux5.1"><![CDATA[Scientific Linux 5.1]]></key>
<key name="os_list_scientificlinux5.10"><![CDATA[Scientific Linux 5.10]]></key>
<key name="os_list_scientificlinux5.11"><![CDATA[Scientific Linux 5.11]]></key>
<key name="os_list_scientificlinux5.2"><![CDATA[Scientific Linux 5.2]]></key>
<key name="os_list_scientificlinux5.3"><![CDATA[Scientific Linux 5.3]]></key>
<key name="os_list_scientificlinux5.4"><![CDATA[Scientific Linux 5.4]]></key>
<key name="os_list_scientificlinux5.5"><![CDATA[Scientific Linux 5.5]]></key>
<key name="os_list_scientificlinux5.6"><![CDATA[Scientific Linux 5.6]]></key>
<key name="os_list_scientificlinux5.7"><![CDATA[Scientific Linux 5.7]]></key>
<key name="os_list_scientificlinux5.8"><![CDATA[Scientific Linux 5.8]]></key>
<key name="os_list_scientificlinux5.9"><![CDATA[Scientific Linux 5.9]]></key>
<key name="os_list_scientificlinux6.0"><![CDATA[Scientific Linux 6.0]]></key>
<key name="os_list_scientificlinux6.1"><![CDATA[Scientific Linux 6.1]]></key>
<key name="os_list_scientificlinux6.10"><![CDATA[Scientific Linux 6.10]]></key>
<key name="os_list_scientificlinux6.2"><![CDATA[Scientific Linux 6.2]]></key>
<key name="os_list_scientificlinux6.3"><![CDATA[Scientific Linux 6.3]]></key>
<key name="os_list_scientificlinux6.4"><![CDATA[Scientific Linux 6.4]]></key>
<key name="os_list_scientificlinux6.5"><![CDATA[Scientific Linux 6.5]]></key>
<key name="os_list_scientificlinux6.6"><![CDATA[Scientific Linux 6.6]]></key>
<key name="os_list_scientificlinux6.7"><![CDATA[Scientific Linux 6.7]]></key>
<key name="os_list_scientificlinux6.8"><![CDATA[Scientific Linux 6.8]]></key>
<key name="os_list_scientificlinux6.9"><![CDATA[Scientific Linux 6.9]]></key>
<key name="os_list_scientificlinux7-unknown"><![CDATA[Scientific Linux 7 Unknown]]></key>
<key name="os_list_scientificlinux7.0"><![CDATA[Scientific Linux 7.0]]></key>
<key name="os_list_scientificlinux7.1"><![CDATA[Scientific Linux 7.1]]></key>
<key name="os_list_scientificlinux7.2"><![CDATA[Scientific Linux 7.2]]></key>
<key name="os_list_scientificlinux7.3"><![CDATA[Scientific Linux 7.3]]></key>
<key name="os_list_scientificlinux7.4"><![CDATA[Scientific Linux 7.4]]></key>
<key name="os_list_scientificlinux7.5"><![CDATA[Scientific Linux 7.5]]></key>
<key name="os_list_scientificlinux7.6"><![CDATA[Scientific Linux 7.6]]></key>
<key name="os_list_silverblue28"><![CDATA[Fedora Silverblue 28]]></key>
<key name="os_list_silverblue29"><![CDATA[Fedora Silverblue 29]]></key>
<key name="os_list_silverblue30"><![CDATA[Fedora Silverblue 30]]></key>
<key name="os_list_silverblue31"><![CDATA[Fedora Silverblue 31]]></key>
<key name="os_list_silverblue32"><![CDATA[Fedora Silverblue 32]]></key>
<key name="os_list_sle-unknown"><![CDATA[SUSE Linux Enterprise Unknown]]></key>
<key name="os_list_sle15"><![CDATA[SUSE Linux Enterprise 15]]></key>
<key name="os_list_sle15-unknown"><![CDATA[SUSE Linux Enterprise 15 Unknown]]></key>
<key name="os_list_sle15sp1"><![CDATA[SUSE Linux Enterprise 15 SP1]]></key>
<key name="os_list_sle15sp2"><![CDATA[SUSE Linux Enterprise 15 SP2]]></key>
<key name="os_list_sled10"><![CDATA[SUSE Linux Enterprise Desktop 10]]></key>
<key name="os_list_sled10sp1"><![CDATA[SUSE Linux Enterprise Desktop 10 SP1]]></key>
<key name="os_list_sled10sp2"><![CDATA[SUSE Linux Enterprise Desktop 10 SP2]]></key>
<key name="os_list_sled10sp3"><![CDATA[SUSE Linux Enterprise Desktop 10 SP3]]></key>
<key name="os_list_sled10sp4"><![CDATA[SUSE Linux Enterprise Desktop 10 SP4]]></key>
<key name="os_list_sled11"><![CDATA[SUSE Linux Enterprise Desktop 11]]></key>
<key name="os_list_sled11sp1"><![CDATA[SUSE Linux Enterprise Desktop 11 SP1]]></key>
<key name="os_list_sled11sp2"><![CDATA[SUSE Linux Enterprise Desktop 11 SP2]]></key>
<key name="os_list_sled11sp3"><![CDATA[SUSE Linux Enterprise Desktop 11 SP3]]></key>
<key name="os_list_sled11sp4"><![CDATA[SUSE Linux Enterprise Desktop 11 SP4]]></key>
<key name="os_list_sled12"><![CDATA[SUSE Linux Enterprise Desktop 12]]></key>
<key name="os_list_sled12-unknown"><![CDATA[SUSE Linux Enterprise Desktop 12 Unknown]]></key>
<key name="os_list_sled12sp1"><![CDATA[SUSE Linux Enterprise Desktop 12 SP1]]></key>
<key name="os_list_sled12sp2"><![CDATA[SUSE Linux Enterprise Desktop 12 SP2]]></key>
<key name="os_list_sled12sp3"><![CDATA[SUSE Linux Enterprise Desktop 12 SP3]]></key>
<key name="os_list_sled12sp4"><![CDATA[SUSE Linux Enterprise Desktop 12 SP4]]></key>
<key name="os_list_sled12sp5"><![CDATA[SUSE Linux Enterprise Desktop 12 SP5]]></key>
<key name="os_list_sled9"><![CDATA[SUSE Linux Enterprise Desktop 9]]></key>
<key name="os_list_sles10"><![CDATA[SUSE Linux Enterprise Server 10]]></key>
<key name="os_list_sles10sp1"><![CDATA[SUSE Linux Enterprise Server 10 SP1]]></key>
<key name="os_list_sles10sp2"><![CDATA[SUSE Linux Enterprise Server 10 SP2]]></key>
<key name="os_list_sles10sp3"><![CDATA[SUSE Linux Enterprise Server 10 SP3]]></key>
<key name="os_list_sles10sp4"><![CDATA[SUSE Linux Enterprise Server 10 SP4]]></key>
<key name="os_list_sles11"><![CDATA[SUSE Linux Enterprise Server 11]]></key>
<key name="os_list_sles11sp1"><![CDATA[SUSE Linux Enterprise Server 11 SP1]]></key>
<key name="os_list_sles11sp2"><![CDATA[SUSE Linux Enterprise Server 11 SP2]]></key>
<key name="os_list_sles11sp3"><![CDATA[SUSE Linux Enterprise Server 11 SP3]]></key>
<key name="os_list_sles11sp4"><![CDATA[SUSE Linux Enterprise Server 11 SP4]]></key>
<key name="os_list_sles12"><![CDATA[SUSE Linux Enterprise Server 12]]></key>
<key name="os_list_sles12-unknown"><![CDATA[SUSE Linux Enterprise Server 12 Unknown]]></key>
<key name="os_list_sles12sp1"><![CDATA[SUSE Linux Enterprise Server 12 SP1]]></key>
<key name="os_list_sles12sp2"><![CDATA[SUSE Linux Enterprise Server 12 SP2]]></key>
<key name="os_list_sles12sp3"><![CDATA[SUSE Linux Enterprise Server 12 SP3]]></key>
<key name="os_list_sles12sp4"><![CDATA[SUSE Linux Enterprise Server 12 SP4]]></key>
<key name="os_list_sles12sp5"><![CDATA[SUSE Linux Enterprise Server 12 SP5]]></key>
<key name="os_list_sles9"><![CDATA[SUSE Linux Enterprise Server 9]]></key>
<key name="os_list_solaris10"><![CDATA[Solaris 10]]></key>
<key name="os_list_solaris11"><![CDATA[Oracle Solaris 11]]></key>
<key name="os_list_solaris9"><![CDATA[Solaris 9]]></key>
<key name="os_list_ubuntu10.04"><![CDATA[Ubuntu 10.04 LTS]]></key>
<key name="os_list_ubuntu10.10"><![CDATA[Ubuntu 10.10]]></key>
<key name="os_list_ubuntu11.04"><![CDATA[Ubuntu 11.04]]></key>
<key name="os_list_ubuntu11.10"><![CDATA[Ubuntu 11.10]]></key>
<key name="os_list_ubuntu12.04"><![CDATA[Ubuntu 12.04 LTS]]></key>
<key name="os_list_ubuntu12.10"><![CDATA[Ubuntu 12.10]]></key>
<key name="os_list_ubuntu13.04"><![CDATA[Ubuntu 13.04]]></key>
<key name="os_list_ubuntu13.10"><![CDATA[Ubuntu 13.10]]></key>
<key name="os_list_ubuntu14.04"><![CDATA[Ubuntu 14.04 LTS]]></key>
<key name="os_list_ubuntu14.10"><![CDATA[Ubuntu 14.10]]></key>
<key name="os_list_ubuntu15.04"><![CDATA[Ubuntu 15.04]]></key>
<key name="os_list_ubuntu15.10"><![CDATA[Ubuntu 15.10]]></key>
<key name="os_list_ubuntu16.04"><![CDATA[Ubuntu 16.04]]></key>
<key name="os_list_ubuntu16.10"><![CDATA[Ubuntu 16.10]]></key>
<key name="os_list_ubuntu17.04"><![CDATA[Ubuntu 17.04]]></key>
<key name="os_list_ubuntu17.10"><![CDATA[Ubuntu 17.10]]></key>
<key name="os_list_ubuntu18.04"><![CDATA[Ubuntu 18.04 LTS]]></key>
<key name="os_list_ubuntu18.10"><![CDATA[Ubuntu 18.10]]></key>
<key name="os_list_ubuntu19.04"><![CDATA[Ubuntu 19.04]]></key>
<key name="os_list_ubuntu19.10"><![CDATA[Ubuntu 19.10]]></key>
<key name="os_list_ubuntu20.04"><![CDATA[Ubuntu 20.04]]></key>
<key name="os_list_ubuntu4.10"><![CDATA[Ubuntu 4.10]]></key>
<key name="os_list_ubuntu5.04"><![CDATA[Ubuntu 5.04]]></key>
<key name="os_list_ubuntu5.10"><![CDATA[Ubuntu 5.10]]></key>
<key name="os_list_ubuntu6.06"><![CDATA[Ubuntu 6.06 LTS]]></key>
<key name="os_list_ubuntu6.10"><![CDATA[Ubuntu 6.10]]></key>
<key name="os_list_ubuntu7.04"><![CDATA[Ubuntu 7.04]]></key>
<key name="os_list_ubuntu7.10"><![CDATA[Ubuntu 7.10]]></key>
<key name="os_list_ubuntu8.04"><![CDATA[Ubuntu 8.04 LTS]]></key>
<key name="os_list_ubuntu8.10"><![CDATA[Ubuntu 8.10]]></key>
<key name="os_list_ubuntu9.04"><![CDATA[Ubuntu 9.04]]></key>
<key name="os_list_ubuntu9.10"><![CDATA[Ubuntu 9.10]]></key>
<key name="os_list_voidlinux"><![CDATA[Void Linux]]></key>
<key name="os_list_win1.0"><![CDATA[Microsoft Windows 1.0]]></key>
<key name="os_list_win10"><![CDATA[Microsoft Windows 10]]></key>
<key name="os_list_win2.0"><![CDATA[Microsoft Windows 2.0]]></key>
<key name="os_list_win2.1"><![CDATA[Microsoft Windows 2.1]]></key>
<key name="os_list_win2k"><![CDATA[Microsoft Windows 2000]]></key>
<key name="os_list_win2k12"><![CDATA[Microsoft Windows Server 2012]]></key>
<key name="os_list_win2k12r2"><![CDATA[Microsoft Windows Server 2012 R2]]></key>
<key name="os_list_win2k16"><![CDATA[Microsoft Windows Server 2016]]></key>
<key name="os_list_win2k19"><![CDATA[Microsoft Windows Server 2019]]></key>
<key name="os_list_win2k3"><![CDATA[Microsoft Windows Server 2003]]></key>
<key name="os_list_win2k3r2"><![CDATA[Microsoft Windows Server 2003 R2]]></key>
<key name="os_list_win2k8"><![CDATA[Microsoft Windows Server 2008]]></key>
<key name="os_list_win2k8r2"><![CDATA[Microsoft Windows Server 2008 R2]]></key>
<key name="os_list_win3.1"><![CDATA[Microsoft Windows 3.1]]></key>
<key name="os_list_win7"><![CDATA[Microsoft Windows 7]]></key>
<key name="os_list_win8"><![CDATA[Microsoft Windows 8]]></key>
<key name="os_list_win8.1"><![CDATA[Microsoft Windows 8.1]]></key>
<key name="os_list_win95"><![CDATA[Microsoft Windows 95]]></key>
<key name="os_list_win98"><![CDATA[Microsoft Windows 98]]></key>
<key name="os_list_winme"><![CDATA[Microsoft Windows Millennium Edition]]></key>
<key name="os_list_winnt3.1"><![CDATA[Microsoft Windows NT Server 3.1]]></key>
<key name="os_list_winnt3.5"><![CDATA[Microsoft Windows NT Server 3.5]]></key>
<key name="os_list_winnt3.51"><![CDATA[Microsoft Windows NT Server 3.51]]></key>
<key name="os_list_winnt4.0"><![CDATA[Microsoft Windows NT Server 4.0]]></key>
<key name="os_list_winvista"><![CDATA[Microsoft Windows Vista]]></key>
<key name="os_list_winxp"><![CDATA[Microsoft Windows XP]]></key>
</language>
<!-- 日本語 -->

@ -31,6 +31,7 @@ $anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 2, secure =
# Read switches (target ([user@]host[:port]) and the file with the target's password. If the password is
# passed directly, it will be used. Otherwise, the password will be read from the database.
$anvil->data->{switches}{'anvil-uuid'} = "";
$anvil->data->{switches}{os} = "";
$anvil->data->{switches}{cpu} = "";
$anvil->data->{switches}{'job-uuid'} = "";
$anvil->data->{switches}{name} = "";
@ -40,6 +41,7 @@ $anvil->data->{switches}{'storage-size'} = "";
$anvil->Get->switches;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => {
'switches::anvil-uuid' => $anvil->data->{switches}{'anvil-uuid'},
'switches::os' => $anvil->data->{switches}{os},
'switches::cpu' => $anvil->data->{switches}{cpu},
'switches::job-uuid' => $anvil->data->{switches}{'job-uuid'},
'switches::name' => $anvil->data->{switches}{name},
@ -253,11 +255,22 @@ sub run_jobs
startup_resource($anvil);
# If we're here, we can finally craft the 'virt-install' call!.
provision_server($anvil);
return(0);
}
# This creates the virt-install call and creates the VM.
sub provision_server
{
my ($anvil) = @_;
my $shell_call = "";
return(0);
}
# This starts up the DRBD resource, if needed.
sub startup_resource
{
@ -296,6 +309,11 @@ sub startup_resource
else
{
# Bring the drbd resource up.
$anvil->Job->update_progress({
progress => 52,
message => "job_0192",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 2, key => "job_0192"});
$anvil->DRBD->manage_resource({
debug => 2,
resource => $anvil->data->{job}{server_name},
@ -329,6 +347,15 @@ sub startup_resource
{
$all_ready = 0;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { all_ready => $all_ready }});
$anvil->Job->update_progress({
progress => 54,
message => "job_0193,!!volume!".$volume."!!,!!disk_state!".$disk_state."!!",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 2, key => "job_0193", variables => {
volume => $volume,
disk_state => $disk_state,
}});
}
# If we're not initializing DRBD, we'll wait until we're uptodate.
@ -349,7 +376,13 @@ sub startup_resource
{
# Log why we're waiting.
$all_ready = 0;
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "log_0578", variables => { resource => $anvil->data->{job}{server_name} }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { all_ready => $all_ready }});
$anvil->Job->update_progress({
progress => 56,
message => "job_0194,!!resource!".$anvil->data->{job}{server_name}."!!",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "job_0194", variables => { resource => $anvil->data->{job}{server_name} }});
}
}
@ -358,6 +391,12 @@ sub startup_resource
{
### NOTE: '<server> 1' is the resource followed by the peer ID number (1).
# To force to primary, we first need to temporarily disable fencing.
$anvil->Job->update_progress({
progress => 58,
message => "job_0195",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "job_0195"});
my $shell_call = $anvil->data->{path}{exe}{drbdsetup}." net-options ".$anvil->data->{job}{server_name}." 1 --set-defaults --_name=".$anvil->data->{job}{peer_short_name}." --protocol=C --fencing=dont-care";
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { shell_call => $shell_call }});
@ -440,11 +479,17 @@ sub startup_resource
if ($waiting)
{
sleep 1;
sleep 10;
}
}
}
$anvil->Job->update_progress({
progress => 60,
message => "job_0192,!!resource!".$anvil->data->{job}{server_name}."!!",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 2, key => "job_0192", variables => { resource => $anvil->data->{job}{server_name} }});
return(0);
}
@ -482,6 +527,12 @@ sub create_md
}
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "log_0579", variables => { resource => $anvil->data->{job}{server_name} }});
$anvil->Job->update_progress({
progress => 50,
message => "job_0191,!!resource!".$anvil->data->{job}{server_name}."!!",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 2, key => "job_0191", variables => { resource => $anvil->data->{job}{server_name} }});
return(0);
}
@ -589,6 +640,12 @@ sub create_resource_file
$anvil->nice_exit({exit_code => 1});
}
$anvil->Job->update_progress({
progress => 40,
message => "job_0190,!!resource!".$anvil->data->{job}{server_name}."!!",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 2, key => "job_0190", variables => { resource => $anvil->data->{job}{server_name} }});
return(0);
}
@ -606,7 +663,7 @@ sub create_lv
# Tell the user this might be an issue.
$anvil->Job->update_progress({
progress => 40,
progress => 30,
message => "job_0187,!!lv_path!".$lv_path."!!",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "job_0187", variables => { lv_path => $lv_path }});
@ -673,7 +730,7 @@ sub create_lv
# Report
$anvil->Job->update_progress({
progress => 35,
progress => 30,
message => "job_0189,!!lv_path!".$lv_path."!!",
});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "job_0189", variables => { lv_path => $lv_path }});
@ -1044,6 +1101,7 @@ sub interactive_question
interactive_ask_server_storage_size($anvil, $terminal);
interactive_ask_server_install_media($anvil, $terminal);
interactive_ask_server_driver_disc($anvil, $terminal);
interactive_ask_server_os($anvil, $terminal);
interactive_ask_server_confirm($anvil, $terminal);
return(0);
@ -1407,6 +1465,7 @@ sub interactive_ask_server_storage_group
}});
# I need a list of Storage groups,
my $say_ram = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}});
my $storage_groups = [""];
my $show_list = "";
my $position = 0;
@ -1454,7 +1513,7 @@ sub interactive_ask_server_storage_group
print $anvil->Words->string({key => "job_0151", variables => { anvil_name => $anvil->data->{new_server}{anvil_name} }})."\n";
print $anvil->Words->string({key => "job_0157", variables => { server_name => $anvil->data->{new_server}{name} }})."\n";
print $anvil->Words->string({key => "job_0158", variables => { cpu_cores => $anvil->data->{new_server}{cpu} }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}}) }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $say_ram }})."\n";
print $anvil->Words->string({key => "job_0170", variables => { storage_group => $default_storage_group }})."\n\n\n";
if ($retry)
@ -1524,13 +1583,14 @@ sub interactive_ask_server_storage_size
}
}
my $say_ram = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}});
my $say_storage_group = $anvil->data->{storage_groups}{anvil_uuid}{$anvil_uuid}{storage_group_uuid}{$storage_group_uuid}{group_name};
print $terminal->Tputs('cl');
print $anvil->Words->string({key => "job_0150"})."\n";
print $anvil->Words->string({key => "job_0151", variables => { anvil_name => $anvil->data->{new_server}{anvil_name} }})."\n";
print $anvil->Words->string({key => "job_0157", variables => { server_name => $anvil->data->{new_server}{name} }})."\n";
print $anvil->Words->string({key => "job_0158", variables => { cpu_cores => $anvil->data->{new_server}{cpu} }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}}) }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $say_ram }})."\n";
print $anvil->Words->string({key => "job_0170", variables => { storage_group => $say_storage_group }})."\n";
print $anvil->Words->string({key => "job_0173", variables => { storage_size => $default_storage_size }})."\n\n\n";
@ -1635,6 +1695,7 @@ sub interactive_ask_server_install_media
$iso_list .= " - ".$position.") ".$file_name." (".$anvil->Convert->bytes_to_human_readable({"bytes" => $file_size}).")\n";
}
my $say_ram = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}});
my $storage_group_uuid = $anvil->data->{new_server}{storage_group};
my $say_storage_group = $anvil->data->{storage_groups}{anvil_uuid}{$anvil_uuid}{storage_group_uuid}{$storage_group_uuid}{group_name};
my $say_storage_size = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{storage_size}});
@ -1644,7 +1705,7 @@ sub interactive_ask_server_install_media
print $anvil->Words->string({key => "job_0151", variables => { anvil_name => $anvil->data->{new_server}{anvil_name} }})."\n";
print $anvil->Words->string({key => "job_0157", variables => { server_name => $anvil->data->{new_server}{name} }})."\n";
print $anvil->Words->string({key => "job_0158", variables => { cpu_cores => $anvil->data->{new_server}{cpu} }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}}) }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $say_ram }})."\n";
print $anvil->Words->string({key => "job_0170", variables => { storage_group => $say_storage_group }})."\n";
print $anvil->Words->string({key => "job_0173", variables => { storage_size => $say_storage_size }})."\n";
print $anvil->Words->string({key => "job_0176", variables => { install_media => "" }})."\n\n\n";
@ -1694,6 +1755,7 @@ sub interactive_ask_server_driver_disc
$anvil->Database->get_file_locations();
my $anvil_uuid = $anvil->data->{new_server}{anvil_uuid};
my $say_ram = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}});
my $storage_group_uuid = $anvil->data->{new_server}{storage_group};
my $say_storage_group = $anvil->data->{storage_groups}{anvil_uuid}{$anvil_uuid}{storage_group_uuid}{$storage_group_uuid}{group_name};
my $say_storage_size = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{storage_size}});
@ -1739,7 +1801,7 @@ sub interactive_ask_server_driver_disc
print $anvil->Words->string({key => "job_0151", variables => { anvil_name => $anvil->data->{new_server}{anvil_name} }})."\n";
print $anvil->Words->string({key => "job_0157", variables => { server_name => $anvil->data->{new_server}{name} }})."\n";
print $anvil->Words->string({key => "job_0158", variables => { cpu_cores => $anvil->data->{new_server}{cpu} }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}}) }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $say_ram }})."\n";
print $anvil->Words->string({key => "job_0170", variables => { storage_group => $say_storage_group }})."\n";
print $anvil->Words->string({key => "job_0173", variables => { storage_size => $say_storage_size }})."\n";
print $anvil->Words->string({key => "job_0176", variables => { install_media => $say_install_media }})."\n";
@ -1781,6 +1843,104 @@ sub interactive_ask_server_driver_disc
return(0);
}
sub interactive_ask_server_os
{
my ($anvil, $terminal) = @_;
### TODO: Left off here, use the short list 'sys::servers::os_short_list'
my $words_file = $anvil->data->{path}{words}{'words.xml'};
my $language = $anvil->Words->language;
my $os_list = "";
my $default_os = $anvil->data->{switches}{os} ? $anvil->data->{switches}{os} : "";
foreach my $os_code (split/,/, $anvil->data->{sys}{servers}{os_short_list})
{
$os_code =~ s/ //g;
my $os_key = "os_list_".$os_code;
my $os_name = $anvil->Words->string({key => $os_key});
if ($os_name =~ /#!not_found/)
{
# Skip it.
}
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => {
's1:os_code' => $os_code,
's2:os_key' => $os_key,
's2:os_name' => $os_name,
}});
# Still here?
$os_list .= " - [".sprintf("%-10s", $os_code)."] - ".$os_name."\n";
}
my $retry = 0;
while(1)
{
my $anvil_uuid = $anvil->data->{new_server}{anvil_uuid};
my $storage_group_uuid = $anvil->data->{new_server}{storage_group};
my $say_ram = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}});
my $say_storage_group = $anvil->data->{storage_groups}{anvil_uuid}{$anvil_uuid}{storage_group_uuid}{$storage_group_uuid}{group_name};
my $say_storage_size = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{storage_size}});
my $install_media_file_uuid = $anvil->data->{new_server}{install_media};
my $say_install_media = $anvil->data->{files}{file_uuid}{$install_media_file_uuid}{file_name};
my $driver_disc_file_uuid = $anvil->data->{new_server}{driver_disc};
my $say_driver_disc = $driver_disc_file_uuid eq "none" ? "#!string!unit_0005!#" : $anvil->data->{files}{file_uuid}{$driver_disc_file_uuid}{file_name};
print $terminal->Tputs('cl');
print $anvil->Words->string({key => "job_0150"})."\n";
print $anvil->Words->string({key => "job_0151", variables => { anvil_name => $anvil->data->{new_server}{anvil_name} }})."\n";
print $anvil->Words->string({key => "job_0157", variables => { server_name => $anvil->data->{new_server}{name} }})."\n";
print $anvil->Words->string({key => "job_0158", variables => { cpu_cores => $anvil->data->{new_server}{cpu} }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $say_ram }})."\n";
print $anvil->Words->string({key => "job_0170", variables => { storage_group => $say_storage_group }})."\n";
print $anvil->Words->string({key => "job_0173", variables => { storage_size => $say_storage_size }})."\n";
print $anvil->Words->string({key => "job_0176", variables => { install_media => $say_install_media }})."\n";
print $anvil->Words->string({key => "job_0180", variables => { driver_disc => $say_driver_disc }})."\n";
print $anvil->Words->string({key => "job_0198", variables => { os => $default_os }})."\n\n\n";
if ($retry)
{
print $anvil->Words->string({key => "job_0197"})."\n\n";
}
print $anvil->Words->string({key => "job_0196"})."\n";
print $os_list."\n";
print $terminal->Tgoto('cm', 0, 10)."? ";
my $os_name = "";
my $answer = <STDIN>;
chomp $answer;
if ((not $answer) && ($default_os))
{
$answer = $default_os;
}
if ($answer)
{
# Is this valid?
my $os_key = "os_list_".$answer;
$os_name = $anvil->Words->string({key => $os_key});
}
if ((not $answer) or ($os_name =~ /#!not_found/))
{
# invalid.
$retry = 1;
}
else
{
$anvil->data->{new_server}{os} = $answer;
$anvil->data->{new_server}{say_os} = $os_name;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => {
"new_server::os" => $anvil->data->{new_server}{os},
"new_server::say_os" => $anvil->data->{new_server}{say_os},
}});
last;
}
}
return(0);
}
sub interactive_ask_server_confirm
{
my ($anvil, $terminal) = @_;
@ -1792,6 +1952,7 @@ sub interactive_ask_server_confirm
my $node1_host_uuid = $anvil->data->{anvils}{anvil_uuid}{$anvil_uuid}{anvil_node1_host_uuid};
my $storage_group_uuid = $anvil->data->{new_server}{storage_group};
my $say_ram = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}});
my $say_storage_group = $anvil->data->{storage_groups}{anvil_uuid}{$anvil_uuid}{storage_group_uuid}{$storage_group_uuid}{group_name};
my $say_storage_size = $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{storage_size}});
my $install_media_file_uuid = $anvil->data->{new_server}{install_media};
@ -1804,11 +1965,12 @@ sub interactive_ask_server_confirm
print $anvil->Words->string({key => "job_0151", variables => { anvil_name => $anvil->data->{new_server}{anvil_name} }})."\n";
print $anvil->Words->string({key => "job_0157", variables => { server_name => $anvil->data->{new_server}{name} }})."\n";
print $anvil->Words->string({key => "job_0158", variables => { cpu_cores => $anvil->data->{new_server}{cpu} }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $anvil->Convert->bytes_to_human_readable({"bytes" => $anvil->data->{new_server}{ram}}) }})."\n";
print $anvil->Words->string({key => "job_0165", variables => { ram => $say_ram }})."\n";
print $anvil->Words->string({key => "job_0170", variables => { storage_group => $say_storage_group }})."\n";
print $anvil->Words->string({key => "job_0173", variables => { storage_size => $say_storage_size }})."\n";
print $anvil->Words->string({key => "job_0176", variables => { install_media => $say_install_media }})."\n";
print $anvil->Words->string({key => "job_0180", variables => { driver_disc => $say_driver_disc }})."\n";
print $anvil->Words->string({key => "job_0198", variables => { os => $anvil->data->{new_server}{say_os} }})."\n\n";
print $anvil->Words->string({key => "message_0206"})." ";
my $answer = <STDIN>;
chomp $answer;
@ -1819,13 +1981,14 @@ sub interactive_ask_server_confirm
{
# Valid.
my $job_data = "server_name=".$anvil->data->{new_server}{name}."
os=".$anvil->data->{new_server}{os}."
cpu_cores=".$anvil->data->{new_server}{cpu}."
ram=".$anvil->data->{new_server}{ram}."
storage_group_uuid=".$anvil->data->{new_server}{storage_group}."
storage_size=".$anvil->data->{new_server}{storage_size}."
install_iso=".$anvil->data->{new_server}{install_media}."
driver_iso=".$anvil->data->{new_server}{driver_disc};
print $anvil->Words->string({key => "job_0183", variables => { job_data => $job_data }})."\n";
print "\n".$anvil->Words->string({key => "job_0183", variables => { job_data => $job_data }})."\n";
# Register the job with the primary node on the Anvil! (or node 1, if neither node is primary).
my $target_host_uuid = $anvil->Cluster->get_primary_host_uuid({debug => 2, anvil_uuid => $anvil_uuid});

@ -0,0 +1,60 @@
#!/usr/bin/perl
#
# This calls 'osinfo-query os' and parses the list of OSes reported by it, formatting them into words.xml
# entries. Any entries found not already in words.xml are printed to STDOUT.
#
use strict;
use warnings;
use Anvil::Tools;
use Data::Dumper;
my $THIS_FILE = ($0 =~ /^.*\/(.*)$/)[0];
my $running_directory = ($0 =~ /^(.*?)\/$THIS_FILE$/)[0];
if (($running_directory =~ /^\./) && ($ENV{PWD}))
{
$running_directory =~ s/^\./$ENV{PWD}/;
}
# Turn off buffering so that the pinwheel will display while waiting for the SSH call(s) to complete.
$| = 1;
my $anvil = Anvil::Tools->new();
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 2, key => "log_0115", variables => { program => $THIS_FILE }});
# Read switches (target ([user@]host[:port]) and the file with the target's password.
$anvil->Get->switches;
my $words_file = $anvil->data->{path}{words}{'words.xml'};
my $language = $anvil->Words->language;
my $shell_call = $anvil->data->{path}{exe}{'osinfo-query'}." os";
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { shell_call => $shell_call }});
my ($output, $return_code) = $anvil->System->call({shell_call => $shell_call});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => {
output => $output,
return_code => $return_code,
}});
foreach my $line (split/\n/, $output)
{
$line = $anvil->Words->clean_spaces({string => $line});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { line => $line }});
next if $line =~ /Short ID/;
next if $line =~ /----------------------/;
my ($os_code, $os_name) = ($line =~ /^(.*?) \| (.*?) \|/);
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => {
's1:os_code' => $os_code,
's2:os_name' => $os_name,
}});
my $os_key = "os_list_".$os_code;
if ((not exists $anvil->data->{words}{$words_file}{language}{$language}{key}{$os_key}) or (not $anvil->data->{words}{$words_file}{language}{$language}{key}{$os_key}{content}))
{
# Print already known.
print "\t\t<key name=\"".$os_key."\"><![CDATA[".$os_name."]]></key>\n";
}
}
$anvil->nice_exit({exit_code => 0});
Loading…
Cancel
Save