Merge pull request #467 from ClusterLabs/manage-storage

Manage storage ready for web-ui
main
Digimer 1 year ago committed by GitHub
commit 59c96f59ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      Anvil/Tools.pm
  2. 2
      Anvil/Tools/Database.pm
  3. 2
      man/anvil-change-password.8
  4. 72
      man/anvil-manage-server-storage.8
  5. 230
      share/words.xml
  6. 1606
      tools/anvil-manage-server-storage

@ -1154,6 +1154,7 @@ sub _set_paths
'anvil-manage-files' => "/usr/sbin/anvil-manage-files",
'anvil-manage-firewall' => "/usr/sbin/anvil-manage-firewall",
'anvil-manage-keys' => "/usr/sbin/anvil-manage-keys",
'anvil-manage-server-storage' => "/usr/sbin/anvil-manage-server-storage",
'anvil-manage-power' => "/usr/sbin/anvil-manage-power",
'anvil-manage-vnc-pipe' => "/usr/sbin/anvil-manage-vnc-pipe",
'anvil-migrate-server' => "/usr/sbin/anvil-migrate-server",

@ -3655,7 +3655,7 @@ Parameters;
=head3 include_deleted (optional, default '0')
Normalling, files with C<< file_type >> set to C<< DELETED >> are ignored. Setting this to C<< 1 >> will include them.
Normally, files with C<< file_type >> set to C<< DELETED >> are ignored. Setting this to C<< 1 >> will include them.
=cut
sub get_files

@ -4,7 +4,7 @@
.SH NAME
anvil-change-password \- Tool used to change / reset the main Anvil! password.
.SH SYNOPSIS
.B alteeve-repo-setup
.B anvil-change-password
\fI\,<command> \/\fR[\fI\,options\/\fR]
.SH DESCRIPTION
anvil-change-password \- This is used to change / reset the password on a Striker dashboard. Alternatively, if '--anvil' is used, to change / reset the password on an Anvil! node pair.

@ -0,0 +1,72 @@
.\" Manpage for the Anvil! server storage manager
.\" Contact mkelly@alteeve.com to report issues, concerns or suggestions.
.TH anvil-manage-server-storage "8" "August 30 2023" "Anvil! Intelligent Availability™ Platform"
.SH NAME
anvil-manage-server-storage \- Tool used to manage the storage of a hosted server.
.SH SYNOPSIS
.B anvil-manage-server-storage
\fI\,<command> \/\fR[\fI\,options\/\fR]
.SH DESCRIPTION
anvil-manage-server-storage \- This tool is used to add a disk, grow an existing disk, change the ISO (optical disk) in a virtual optical drive, and change boot devices.
.TP
When called without switches, the list of servers than can be worked on will be displayed.
.TP
.SH OPTIONS
.TP
\-?, \-h, \fB\-\-help\fR
Show this man page.
.TP
\fB\-\-log-secure\fR
When logging, record sensitive data, like passwords.
.TP
\-v, \-vv, \-vvv
Set the log level to 1, 2 or 3 respectively. Be aware that level 3 generates a significant amount of log data.
.SS "Commands:"
.TP
\fB\-\-add\fR <size or percent>
This is used to add a new disk to a server. Specifically, it adds a second volume to the replicated storage under the server, which appears as a second disk inside the server. Writes to this and existing disks are ordered during replication, including during short or long throw DR.
.TP
The size can be in percent, ie: '50%' or '100%', a number in bytes, or a human-readable size. Human readable sizes must NOT have a space between the number and letter suffix.
.TP
Also, base2 vs base10 notation! Ie: '1GiB' = 1,073,741,824 bytes', '1GB' = '1,000,000,000 bytes'. A single letter used to denote size will be interpreted as base2. ie: '1G' is the same as '1GiB'.
.TP
\fB\-\-anvil\fR <name|uuid>
This is the Anvil! node name or UUID to be used. If not specified, the Anvil! the command or job runs on will be used.
.TP
\fB\-\-confirm\fR
Using this prevents the prompts to confirm given actions. When using \fB\-\-job\-uuid\fR, this is ignored as all commands are considered confirmed.
.TP
\fB\-\-disk\fR <device, ie: sda, vdb>
This is the disk being worked on. For optical disks, it's the drive that an optical disc (ISO) is being inserted into or ejected from. For disks, it's the disk being added, grown or deleted.
.TP
When not specified, if only one disk exists, it will be chosen automatically.
.TP
\fB\-\-eject\fR
This ejects the optical disc (ISO) in the drive specified by \fB\-\-disk\fR.
.TP
\fB\-\-job\-uuid\fR
This is the jobs -> job_uuid to execute. Generally this is only used by other programs.
.TP
\fB\-\-grow\fR <size or percent>
This is used to grow an existing disk by the specified amount. The drive to grow is specified using \fB\-\-disk\fR.
.TP
The size can be in percent, ie: '50%' or '100%', a number in bytes, or a human-readable size. Human readable sizes must NOT have a space between the number and letter suffix.
.TP
Also, base2 vs base10 notation! Ie: '1GiB' = 1,073,741,824 bytes', '1GB' = '1,000,000,000 bytes'. A single letter used to denote size will be interpreted as base2. ie: '1G' is the same as '1GiB'.
.TP
\fB\-\-insert\fR </path/to/file.iso>
This inserts the optical disc (ISO) into the drive specified by \fB\-\-optical\fR.
.TP
\fB\-\-optical\fR <device>
This is the device, ie: 'sda', to insert the optical disc (ISO file) into or to eject a disc from.
.TP
\fB\-\-server\fR <name or uuid>
This is the server being worked on. If this switch is used alone, then the current state of the storage of the server is displayed, as well as the details of the Storage Groups the server is or can use.
.TP
\fB\-\-storage\-group\fR <name or uuid>
If there are two or more Storage Groups exist, and you're adding a disk, this allows you to specify which storage group to use for the new disk.
.IP
.SH AUTHOR
Written by Madison Kelly, Alteeve staff and the Anvil! project contributors.
.SH "REPORTING BUGS"
Report bugs to users@clusterlabs.org

@ -204,7 +204,10 @@ The error was:
<key name="error_0135">Failed to start the daemon: [#!variable!daemon!#] on [#!variable!host!#], unable to boot the server.</key>
<key name="error_0136">System->test_ipmi() was called with an invalid 'lanplus' parameter. It must be 'yes', 'no', 'yes-no' or 'no-yes'. Received: [#!variable!lanplus!#].</key>
<key name="error_0137">All attempts to change the IPMI user: [#!variable!user_name!#] (number: [#!variable!user_number!#] failed. The last try's output (if any) was: [#!variable!output!#] (return code: [#!variable!return code!#]).</key>
<key name="error_0138">The system call: [#!variable!shell_call!#] failed. The output (if any) was: [#!variable!output!#] (return code: [#!variable!return code!#]).</key>
<key name="error_0138">The system call: [#!variable!shell_call!#] failed with the return code: [#!variable!return code!#]. The output (if any) was;
====
#!variable!output!#
====</key>
<key name="error_0139">The DRBD global common config file: [#!data!path::configs::global-common.conf!#] doesn't exist, unable to update it.</key>
<key name="error_0140">
Failed to parse the JSON string:
@ -609,6 +612,119 @@ The error was:
========</key>
<key name="error_0421">Failed to enable dual-primary for the resource: [#!variable!resource!#]! The peer: [#!variable!peer_name!#]'s connection state is: [#!variable!connection_state!#] (must be 'connected').</key>
<key name="error_0422">Failed to enable dual-primary for the server: [#!variable!server!#]! The call to enable dual-primary, necessary for the live migration, returned a non-zero return code: [#!variable!return_code!#].</key>
<key name="error_0423">[ Error ] - Please specify the size you would like to grow this disk by. The maximum size is: [#!variable!free_space!#].</key>
<key name="error_0424">[ Error ] - The requested size: [#!variable!add_size!#] could not be interpreted.</key>
<key name="error_0425">[ Error ] - Failed to find a new target device name.</key>
<key name="error_0426">[ Error ] - Failed to find a new DRBD volume to use.</key>
<key name="error_0427">[ Error ] - Adding a new disk requires all peers to be online.</key>
<key name="error_0428"> - Peer: [#!variable!host_name!#] is: [#!variable!access!#].</key>
<key name="error_0429">[ Error ] - It would appear that we've lost access to a peer while waiting for the answer.</key>
<key name="error_0430"> Failed!
[ Error ] - The new DRBD resource config appears to be invalid, which is likely a program error. The new
[ Error ] - config was written to the test file: [#!variable!test_file!#].
[ Error ] - The test to confirm it was valid exited with the return code: [#!variable!return_code!#], expected '0'.
[ Error ] - The output, if anything, was:
====
#!variable!output!#
====
</key>
<key name="error_0431">
[ Error ] - There was a problem copying the new config file! Unable to proceed.
[ Error ] - Manual intervention to complete the update is required!
</key>
<key name="error_0432">Failed!
[ Error ] - The peers did not connect in the expected period of time.</key>
<key name="error_0433">Failed!
[ Error ] - There was a problem trying to force the new volume: [#!variable!drbd_resource!#/#!variable!next_drbd_volume!#] to Primary.
[ Error ] - Attempted this using the shell call: [#!variable!shell_call!#].
[ Error ] - Expected the return code '0' but got: [#!variable!return_code!#]. The output, if any, was:
==========
#!variable!output!#
==========
[ Error ] - Once corrected, please manually add the new volume to the server.
</key>
<key name="error_0434">
[ Error ] - The definition file read hear appears to be invalid after trying to attach the disk! It is unsafe
[ Error ] - to update the on disk and in DB definition. It's likely the attach has failed.
[ Error ] - Manual update to the server is likely required now.
</key>
<key name="error_0435">
[ Error ] - The definition file read from the remote host appears to be invalid after trying to attach the
[ Error ] - disk! It is unsafe to update the on disk and in DB definition. It's likely the attach has failed.
[ Error ] - Manual update to the server is likely required now.
</key>
<key name="error_0436">[ Error ] - Please specify the size you would like to grow this disk by. The maximum size is: [#!variable!max_free_space!#].</key>
<key name="error_0437">[ Error ] - The storage group: [#!variable!storage_group!#] was not found.</key>
<key name="error_0438">[ Error ] - The requested size: [#!variable!add_size!#] is too small, it's less than an single extent.</key>
<key name="error_0439">[ Error ] - The requested size: [#!variable!add_size!#] is too large. The available size is: [#!variable!max_free_space!#].</key>
<key name="error_0440">[ Error ] - Growing the storage requires all peers to be online.</key>
<key name="error_0441">[ Error ] - It would appear that we've lost access to a peer while waiting for the answer.</key>
<key name="error_0442"> Error!
[ Failed ] - When trying to grow the local logical volume: [#!variable!backing_disk!#]
[ Failed ] - using the command: [#!variable!shell_call!#]
[ Failed ] - The return code: [#!variable!return_code!#] was received, expected '0'. Output, if any:
==========
#!variable!output!#
==========
The extension of the resource is incomplete, manual intervention is required!
[ Warning ] - Do NOT re-run this command! The backing devices may not have mis-matched sized!</key>
<key name="error_0443"> Error!
[ Failed ] - When trying to grow the peer's logical volume: [#!variable!backing_disk!#]
[ Failed ] - using the command: [#!variable!shell_call!#]
[ Failed ] - The return code: [#!variable!return_code!#] was received, expected '0'. Output, if any:
==] STDOUT [========
#!variable!output!#
==] STDERR [========
#!variable!error!#
====================
The extension of the resource is incomplete, manual intervention is required!
[ Warning ] - Do NOT re-run this command! The backing devices may not have mis-matched sized!</key>
<key name="error_0444"> Error!
[ Failed ] - When trying to grow the DRBD device: [#!variable!drbd_resource!#/#!variable!drbd_volume!#]
[ Failed ] - using the command: [#!variable!shell_call!#]
[ Failed ] - The return code: [#!variable!return_code!#] was received, expected '0'. Output, if any:
==========
print $output!#
==========
The extension of the resource is incomplete, manual intervention is required!!
[ Note ] - All backing devices have been grown. Manually resolving the drbd grow
[ Note ] - error should complete the drive expansion!</key>
<key name="error_0445"><![CDATA[[ Error ] - Please indicate the optical drive to work with using '--optical <target_device>'.]]></key>
<key name="error_0446"><![CDATA[[ Error ] - Please specify the optical disk target you want to work on.]]></key>
<key name="error_0447"><![CDATA[[ Error ] - The optical device target: [#!variable!device_target!#] wasn't found.]]></key>
<key name="error_0448"><![CDATA[[ Error ] - The target: [#!variable!iso!#] doesn't exist, can't insert it into the optical drive.]]></key>
<key name="error_0449"><![CDATA[- Drive: [#!variable!device_target!#] has the disc image: [#!variable!device_path!#] inserted currently.
- Use '--eject' to eject the disc.
- Use '--insert /mnt/shared/files/<file>' to replace it with a different disc image.]]></key>
<key name="error_0450"><![CDATA[- Drive: [#!variable!device_target!#] currently has no disc image inserted.
- Use '--insert /mnt/shared/files/<file>' to insert a disc image.]]></key>
<key name="error_0451"><![CDATA[The server: [#!variable!server!#] was not found on the Anvil! node: [#!variable!anvil!#]. Valid servers are above.]]></key>
<key name="error_0452"><![CDATA[The server: [#!variable!server!#] was not found. Valid servers are above.]]></key>
<key name="error_0453"><![CDATA[The server: [#!variable!server!#] has been deleted.]]></key>
<key name="error_0454"><![CDATA[The server: [#!variable!server!#] appears to be running on: [#!variable!host_name!#], please run this on that host.]]></key>
<key name="error_0455"><![CDATA[[ Error ] - Failed to find an on disk or from virsh definition for the server: [#!variable!server!#]. Unable to proceed.]]></key>
<key name="error_0456"><![CDATA[Please specify which server you want to modify using '--server <name or uuid>'.]]></key>
<key name="error_0457"><![CDATA[[ Error ] - Please indicate the disk drive to work with using '--disk --drive <target_device>'.]]></key>
<key name="error_0458"><![CDATA[[ Error ] - Please specify the disk drive target you want to work on.]]></key>
<key name="error_0459"><![CDATA[[ Error ] - The disk drive target: [#!variable!device_target!#] wasn't found.]]></key>
<key name="error_0460"><![CDATA[ Error!
[ Failed ] - When trying to create the new local logical volume: [#!variable!backing_disk!#]
[ Failed ] - using the command: [#!variable!shell_call!#]
[ Failed ] - The return code: [#!variable!return_code!#] was received, expected '0'. Output, if any:
==========
#!variable!output!#
==========
The creation of the new replicatedd disk is incomplete, manual intervention is required!]]></key>
<key name="error_0461"><![CDATA[ Error!
[ Failed ] - When trying to create the peer: [#!variable!host_name!#]'s logical volume: [#!variable!backing_disk!#]
[ Failed ] - using the command: [#!variable!shell_call!#]
[ Failed ] - The return code: [#!variable!return_code!#] was received, expected '0'. Output, if any:
==] STDOUT [========
#!variable!output!#
==] STDERR [========
#!variable!error!#
====================
The creation of the new replicated disk is incomplete, manual intervention is required!]]></key>
<!-- Files templates -->
<!-- NOTE: Translating these files requires an understanding of which lines are translatable -->
@ -1565,6 +1681,9 @@ Note: This is a permanent action! If you protect this server again later, a full
<key name="job_0468">This uses 'dnf' to do an OS update on the host. If this is run on a node, 'anvil-safe-stop' will be called to withdraw the subnode from the node's cluster. If the peer subnode is also offline, hosted servers will be shut down.</key>
<key name="job_0469">Update beginning. Verifying all known machines are accessible...</key>
<key name="job_0470">This is a DR host, no migration possible.</key>
<key name="job_0471">Exiting.</key>
<key name="job_0472">Server Storage Management</key>
<key name="job_0473">This job manages the storage on a given hosted server. It can grow an existing disk, add a new disk, insert an ISO into an optical disc, or eject a disc.</key>
<!-- Log entries -->
<key name="log_0001">Starting: [#!variable!program!#].</key>
@ -2414,6 +2533,69 @@ The file: [#!variable!file!#] needs to be updated. The difference is:
<key name="log_0745">Adjusting the resource: [#!variable!resource!#] to ensure it's compatible with the peer's config prior to connection.</key>
<key name="log_0746">The local resource: [#!variable!resource!#] is StandAlone, attempting to connect.</key>
<key name="log_0747">Failed to connect to the host: [#!variable!host!#]! Unable to up the resource on it. The volume(s) backing this server are UpToDate locally, so booting should be fine.</key>
<key name="log_0748">- Creating the new local LV: [#!variable!backing_disk!#]...</key>
<key name="log_0749">- Target: [#!variable!device_target!#], boot: [#!variable!say_boot!#], path: [#!variable!device_path!#], Available space: [#!variable!max_free_space!#]</key>
<key name="log_0750">Done!</key>
<key name="log_0751">- Testing the updated DRBD resource config file to ensure the new volumes are cromulent...</key>
<key name="log_0752">Success!</key>
<key name="log_0753">- Copying the new resource file to out peers.</key>
<key name="log_0754"> - Copying: [#!variable!resource_file!#] to: [#!variable!host_name!#:#!variable!destination!#] via: [#!variable!use_ip!#].</key>
<key name="log_0755">- Creating the replicated storage metadata on the new backing devices now.</key>
<key name="log_0756"> - Creating the new LV on the peer: [#!variable!host_name!#:#!variable!backing_disk!#], via: [#!variable!use_ip!# (#!variable!use_network!#)]</key>
<key name="log_0757">- Writing out the updated DRBD config file.</key>
<key name="log_0758"> - Creating the meta-data on the new local volume: [#!variable!next_drbd_volume!#]...</key>
<key name="log_0759"> - Creating the meta-data on the peer: [#!variable!host_name!#:#!variable!drbd_resource!#/#!variable!next_drbd_volume!#], via: [#!variable!use_ip!# (#!variable!use_network!#)]</key>
<key name="log_0760">- Registered a job with job UUID: [#!variable!job_uuid!#] to reload the resource config on the host: [#!variable!host_name!#].</key>
<key name="log_0761">- Adjusting the local resource: [#!variable!drbd_resource!#] to pick up the new config.
[ NOTE ] - If this hangs, make sure 'anvil-daemon' is running on the peers.</key>
<key name="log_0762">- Waiting for all peers to connect the new volume...</key>
<key name="log_0763">- Peers are connected! Checking if the new volume requires initial sync.</key>
<key name="log_0764">- Initial sync required!</key>
<key name="log_0765">- Forcing primary locally...</key>
<key name="log_0766"> - The resource is primary on the peer: [#!variable!host_name!#], forcing primary there via: [#!variable!use_ip!# (#!variable!use_network!#)].</key>
<key name="log_0767">- Initial sync does not appear to be required.</key>
<key name="log_0768">- Ready to add the new disk. Checking if the server is running...</key>
<key name="log_0769">- The server is running on this host, we'll attach the disk here.</key>
<key name="log_0770">- The server is running on: [#!variable!server_host!#], we'll attach the disk there.</key>
<key name="log_0771">- The server isn't running anywhere, we'll attach the disk offline on this host.</key>
<key name="log_0772">- Defining the server: [#!variable!server_name!#] to prepare for 'virsh' modification of the server.</key>
<key name="log_0773">- Adding the drive to the definition now.</key>
<key name="log_0774">- Updating the stored definition and undefining the server now...</key>
<key name="log_0775">- Adding the drive to the server directly...</key>
<key name="log_0776">- Reading the updated server definition</key>
<key name="log_0777">- Validating the updated definition</key>
<key name="log_0778">- Updating the stored definition and undefining the server now...</key>
<key name="log_0779"> - Adding the drivve to the server using its host: [#!variable!server_host!#] via: [#!variable!use_ip!#]...</key>
<key name="log_0780">- Updating the stored definition and undefining the server now...</key>
<key name="log_0781"> - The peer: [#!variable!peer_name!#], is stuck 'Negotiating'; disconnecting... </key>
<key name="log_0782"> reconnecting... </key>
<key name="log_0783">- Waiting for the disk state to be updated:</key>
<key name="log_0784"> - Connected, checking volume: [#!variable!drbd_resource!#/#!variable!next_drbd_volume!#] disk state: </key>
<key name="log_0785">Not Connected yet.</key>
<key name="log_0786">Disk not ready yet.</key>
<key name="log_0787">Ready!
- Disk state is: [#!variable!peer_disk_state!#]</key>
<key name="log_0788">- Timed out waiting for the peer to connect.</key>
<key name="log_0789">[ Note ] - The size can be in percent, ie: '50%' or '100%', a number in bytes, or a human-readable size.
- Human readable sizes must NOT have a space between the number and letter suffix. Also, base2
- vs base10 notation! Ie: '1GiB' = 1,073,741,824 bytes', '1GB' == '1,000,000,000 bytes'. A single
- letter used to denote size will be interpreted as base2. ie: '1G == 1GiB'.</key>
<key name="log_0790">- Preparing to grow the storage by: [#!variable!size!#]...</key>
<key name="log_0791"> - Extending local LV: [#!variable!backing_disk!#]...</key>
<key name="log_0792"> - Extending peer: [#!variable!host_name!#:#!variable!backing_disk!#], via: [#!variable!use_ip!# (#!variable!use_network!#)]</key>
<key name="log_0793">- Extending backing devices complete. Now extending DRBD resource/volume... </key>
<key name="log_0794">- Calling scancore agents to ensure the database has the new storage config recorded.</key>
<key name="log_0795"> - Running scan agent: [#!variable!agent!#] locally...</key>
<key name="log_0796"> - Running scan agent: [#!variable!agent!#] on: [#!variable!host_name!#] via: [#!variable!use_ip!# (#!variable!use_network!#)]...</key>
<key name="log_0797">[ Success ] - Expansion is complete!
[ Note ] - Depending on your OS, you may need to power the server off, and then power it back on
[ Note ] - for the new space to be visible. Typically, powering off the server from the guest OS
[ Note ] - and waiting for the Anvil! to boot it back up will do the job nicely.</key>
<key name="log_0798">Defining the server: [#!variable!server_name!#] to prepare for 'virsh' modification of the server.</key>
<key name="log_0799">- Inserting: [#!variable!insert!#] into the drive: [#!variable!device_target!#].</key>
<key name="log_0800">- Ejecting: [#!variable!device_path!#] from: [#!variable!device_target!#].</key>
<key name="log_0801">Updating the stored definition and undefining the server now:</key>
<key name="log_0802">Working with the server: [#!variable!server_name!#], UUID: [#!variable!server_uuid!#]</key>
<!-- Messages for users (less technical than log entries), though sometimes used for logs, too. -->
<key name="message_0001">The host name: [#!variable!target!#] does not resolve to an IP address.</key>
@ -2933,6 +3115,33 @@ Proceed? [y/N]</key>
<key name="message_0327">[ Note ] - It looks like 'anvil-version-changes' (pid(s): [#!variable!pids!#]) is running, holding off on power action until it's done (in case the system is being updated now or kernel modules are being built).</key>
<key name="message_0328">[ Note ] - The DRBD (replicated storage) kernel module appears to not exist. This is normal after an OS update, will try building the kernel module now. Please be patient.</key>
<key name="message_0329">[ Note ] - Deleting the old drbd fenced attribute: [#!variable!attribute!#] for the node: [#!variable!node_name!#] (ID: [#!variable!node_id!#]) from the CIB.</key>
<key name="message_0330">[ Note ] - The size can be in percent, ie: '50%' or '100%', a number in bytes, or a human-readable size.
- Human readable sizes must NOT have a space between the number and letter suffix. Also, base2
- vs base10 notation! Ie: '1GiB' = 1,073,741,824 bytes', '1GB' == '1,000,000,000 bytes'. A single
- letter used to denote size will be interpreted as base2. ie: '1G == 1GiB'.
</key>
<key name="message_0331">up</key>
<key name="message_0332">down</key>
<key name="message_0333">- New drive target: [#!variable!new_device_target!#], size: [#!variable!hr_size!#], bus: [#!variable!disk_device_bus!#], cache: [#!variable!disk_cache!#], IO policy: [#!variable!disk_io_policy!#]
- Preparing to add a the drive: [#!variable!drbd_resource!#/#!variable!next_drbd_volume!#] using the storage group: [#!variable!storage_group_name!#]...</key>
<key name="message_0334">Disk Drives:</key>
<key name="message_0335">Optical Drives:</key>
<key name="message_0336">- Target: [#!variable!device_target!#], boot: [#!variable!say_boot!#], Replication Volume: [#!variable!drbd_resource!#/#!variable!drbd_volume!#]</key>
<key name="message_0337"> |- Resource / LV / Metadata sizes: [#!variable!resource_size!# / #!variable!lv_size!# / #!variable!metadata_size!#], free space: [#!variable!max_free_space!#]</key>
<key name="message_0338">- Target: [#!variable!device_target!#], boot: [#!variable!say_boot!#], ISO: [#!variable!device_path!#]</key>
<key name="message_0339">Sub-Nodes:</key>
<key name="message_0340">DR Hosts:</key>
<key name="message_0341"> |- Name: [#!variable!host_name!#], UUID: [#!ariable!host_uuid!#]</key>
<key name="message_0342"> |- Volume: [#!variable!volume_number!#], backing device: [#!variable!backing_disk!#], DRBD minor: [#!variable!device_minor!#], size: [#!variable!volume_size!#]
^- In storage group: [#!variable!storage_group_name!#], size: [#!variable!storage_group_size!#], free: [#!variable!storage_group_free_space!#]</key>
<key name="message_0343">Anvil! Node: [#!variable!anvil_name!#], UUID: [#!variable!anvil_uuid!#] - Description: [#!variable!anvil_description!#]</key>
<key name="message_0344">- No servers on this node yet</key>
<key name="message_0345">^- Server: [#!variable!server_name!#], UUID: [#!variable!server_uuid!#]</key>
<key name="message_0346">Available Disc Images (ISOs):</key>
<key name="message_0347">- #!variable!file_name!#, (#!variable!file_size!#, md5sum: #!variable!md5sum!#)</key>
<key name="message_0348">Available Storage Groups;</key>
<key name="message_0349">- #!variable!storage_group_name!#, free space: #!variable!free_space!#, UUID: #!variable!storage_group_uuid!#</key>
<key name="message_0350">Preparing to managing storage for a server.</key>
<!-- Translate names (protocols, etc) -->
<key name="name_0001">Normal Password</key> <!-- none in mail-server -->
@ -3671,6 +3880,25 @@ We will wait: [#!variable!waiting!#] seconds and then try again. We'll give up i
<key name="warning_0156">[ Warning ] - The file: [#!variable!file_path!#] needed to provision the server: [#!variable!server_name!#] was found, but it's not ready yet.</key>
<key name="warning_0157">[ Warning ] - Waiting for a bit, and then will check if files are ready.</key>
<key name="warning_0158">[ Warning ] - There is a duplicate storage group named: [#!variable!group_name!#]. Keeping the group with UUID: [#!variable!keep_uuid!#], and deleting the group with the UUID: [#!variable!delete_uuid!#]</key>
<key name="warning_0159">Please specify a storage group to use to add the new drive to.</key>
<key name="warning_0160"> Warning!
[ Warning ] - When trying to create the local meta-data on: [#!variable!drbd_resource!#/#!variable!next_drbd_volume!#]
[ Warning ] - using the command: [#!variable!shell_call!#]
[ Warning ] - The return code: [#!variable!return_code!#] was received, expected '0'. Output, if any:
==========
#!variable!output!#
==========
We will try to proceed anyway.</key>
<key name="warning_0161"> Warning!\n";
[ Warning ] - When trying to create the peer: [#!variable!host_name!#]'s meta-data on: [#!variable!drbd_resource!#/#!variable!next_drbd_volume!#]
[ Warning ] - using the command: [#!variable!shell_call!#]
[ Warning ] - The return code: [#!variable!return_code!#] was received, expected '0'. Output, if any:
==] STDOUT [========
#!variable!output!#
==] STDERR [========
#!variable!error!#
====================
We will try to proceed anyway.</key>
</language>
<!-- 日本語 -->

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save