mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-01-18 04:58:51 +02:00
Allow stanza-* commands to be run remotely.
The stanza-create, stanza-upgrade and stanza-delete were required to be run on the repository host. When there was only one repository allowed this was not a problem. However, with the introduction of multiple repository support, this becomes more of a burden to the user, therefore the stanza-create, stanza-upgrade and stanza-delete commands have been improved to allow for them to be run remotely.
This commit is contained in:
parent
c4a3dc4e46
commit
31c7824a4d
@ -1804,7 +1804,7 @@
|
|||||||
<command id="stanza-create" name="Stanza Create">
|
<command id="stanza-create" name="Stanza Create">
|
||||||
<summary>Create the required stanza data.</summary>
|
<summary>Create the required stanza data.</summary>
|
||||||
|
|
||||||
<text>The <cmd>stanza-create</cmd> command must be run on the host where the repository is located after the stanza has been configured in <file>pgbackrest.conf</file>. If there is more than one repository configured locally on the host, the stanza will be created on each.</text>
|
<text>The <cmd>stanza-create</cmd> command must be run after the stanza has been configured in <file>pgbackrest.conf</file>. If there is more than one repository configured, the stanza will be created on each.</text>
|
||||||
|
|
||||||
<option-list>
|
<option-list>
|
||||||
<!-- OPERATION - STANZA-CREATE COMMAND - FORCE OPTION -->
|
<!-- OPERATION - STANZA-CREATE COMMAND - FORCE OPTION -->
|
||||||
@ -1841,7 +1841,7 @@
|
|||||||
<command id="stanza-upgrade" name="Stanza Upgrade">
|
<command id="stanza-upgrade" name="Stanza Upgrade">
|
||||||
<summary>Upgrade a stanza.</summary>
|
<summary>Upgrade a stanza.</summary>
|
||||||
|
|
||||||
<text>Immediately after upgrading <postgres/> to a newer major version, the <br-option>pg-path</br-option> for all <backrest/> configurations must be set to the new database location and the <cmd>stanza-upgrade</cmd> run on the repository host. If there is more than one repository configured locally on the host, the stanza will be created on each. If the database is offline use the <br-option>--no-online</br-option> option.</text>
|
<text>Immediately after upgrading <postgres/> to a newer major version, the <br-option>pg-path</br-option> for all <backrest/> configurations must be set to the new database location and the <cmd>stanza-upgrade</cmd> command run. If there is more than one repository configured on the host, the stanza will be created on each. If the database is offline use the <br-option>--no-online</br-option> option.</text>
|
||||||
|
|
||||||
<option-list>
|
<option-list>
|
||||||
<!-- ======================================================================================================= -->
|
<!-- ======================================================================================================= -->
|
||||||
@ -1873,8 +1873,8 @@
|
|||||||
To delete a stanza:
|
To delete a stanza:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Shut down the <postgres/> cluster associated with the stanza (or use --force to override).</li>
|
<li>Shut down the <postgres/> cluster associated with the stanza (or use --force to override).</li>
|
||||||
<li>Run the <cmd>stop</cmd> command on the repository host.</li>
|
<li>Run the <cmd>stop</cmd> command on the host where the <cmd>stanza-delete</cmd> command will be run.</li>
|
||||||
<li>Run the <cmd>stanza-delete</cmd> command on the repository host.</li>
|
<li>Run the <cmd>stanza-delete</cmd> command.</li>
|
||||||
</ul>Once the command successfully completes, it is the responsibility of the user to remove the stanza from all <backrest/> configuration files and/or environment variables.
|
</ul>Once the command successfully completes, it is the responsibility of the user to remove the stanza from all <backrest/> configuration files and/or environment variables.
|
||||||
|
|
||||||
A stanza may only be deleted from one repository at a time. To delete the stanza from multiple repositories, repeat the <cmd>stanza-delete</cmd> command for each repository while specifying the <br-option>{[dash]}-repo</br-option> option.</text>
|
A stanza may only be deleted from one repository at a time. To delete the stanza from multiple repositories, repeat the <cmd>stanza-delete</cmd> command for each repository while specifying the <br-option>{[dash]}-repo</br-option> option.</text>
|
||||||
@ -1893,7 +1893,7 @@
|
|||||||
<command-example-list>
|
<command-example-list>
|
||||||
<command-example title="Delete a stanza">
|
<command-example title="Delete a stanza">
|
||||||
<text><code-block title="">
|
<text><code-block title="">
|
||||||
{[backrest-exe]} --stanza=db stanza-delete
|
{[backrest-exe]} --stanza=db stanza-delete --repo=1
|
||||||
</code-block>
|
</code-block>
|
||||||
|
|
||||||
Delete the <id>db</id> stanza repository.</text>
|
Delete the <id>db</id> stanza repository.</text>
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
<commit subject="Refactor archive-push command warnings to work like archive-get."/>
|
<commit subject="Refactor archive-push command warnings to work like archive-get."/>
|
||||||
<commit subject="Add write fault-tolerance to archive-push command."/>
|
<commit subject="Add write fault-tolerance to archive-push command."/>
|
||||||
<commit subject="Make --repo optional for remaining commands except stanza-delete."/>
|
<commit subject="Make --repo optional for remaining commands except stanza-delete."/>
|
||||||
|
<commit subject="Allow stanza-* commands to be run remotely."/>
|
||||||
|
|
||||||
<release-item-contributor-list>
|
<release-item-contributor-list>
|
||||||
<release-item-contributor id="cynthia.shang"/>
|
<release-item-contributor id="cynthia.shang"/>
|
||||||
|
@ -1159,7 +1159,7 @@
|
|||||||
<section id="create-stanza">
|
<section id="create-stanza">
|
||||||
<title>Create the Stanza</title>
|
<title>Create the Stanza</title>
|
||||||
|
|
||||||
<p>The <cmd>stanza-create</cmd> command must be run on the host where the repository is located to initialize the stanza. It is recommended that the <cmd>check</cmd> command be run after <cmd>stanza-create</cmd> to ensure archiving and backups are properly configured.</p>
|
<p>The <cmd>stanza-create</cmd> command must be run to initialize the stanza. It is recommended that the <cmd>check</cmd> command be run after <cmd>stanza-create</cmd> to ensure archiving and backups are properly configured.</p>
|
||||||
|
|
||||||
<execute-list host="{[host-pg1]}">
|
<execute-list host="{[host-pg1]}">
|
||||||
<title>Create the stanza and check the configuration</title>
|
<title>Create the stanza and check the configuration</title>
|
||||||
@ -3397,12 +3397,12 @@
|
|||||||
</execute>
|
</execute>
|
||||||
</execute-list>
|
</execute-list>
|
||||||
|
|
||||||
<p>Before starting the new cluster, the <cmd>stanza-upgrade</cmd> command must be run on the server where the <backrest/> repository is located.</p>
|
<p>Before starting the new cluster, the <cmd>stanza-upgrade</cmd> command must be run.</p>
|
||||||
|
|
||||||
<execute-list host="{[host-repo1]}">
|
<execute-list host="{[host-pg1]}">
|
||||||
<title>Upgrade the stanza</title>
|
<title>Upgrade the stanza</title>
|
||||||
|
|
||||||
<execute user="{[br-user]}" output="y">
|
<execute user="postgres" output="y">
|
||||||
<exe-cmd>{[project-exe]} {[dash]}-stanza={[postgres-cluster-demo]} {[dash]}-no-online
|
<exe-cmd>{[project-exe]} {[dash]}-stanza={[postgres-cluster-demo]} {[dash]}-no-online
|
||||||
{[dash]}-log-level-console=info stanza-upgrade</exe-cmd>
|
{[dash]}-log-level-console=info stanza-upgrade</exe-cmd>
|
||||||
<exe-highlight>completed successfully</exe-highlight>
|
<exe-highlight>completed successfully</exe-highlight>
|
||||||
|
@ -1419,12 +1419,15 @@ option:
|
|||||||
local: {}
|
local: {}
|
||||||
remote: {}
|
remote: {}
|
||||||
stanza-create:
|
stanza-create:
|
||||||
command-role: {}
|
command-role:
|
||||||
|
remote: {}
|
||||||
stanza-delete:
|
stanza-delete:
|
||||||
command-role:
|
command-role:
|
||||||
default: {}
|
default: {}
|
||||||
|
remote: {}
|
||||||
stanza-upgrade:
|
stanza-upgrade:
|
||||||
command-role: {}
|
command-role:
|
||||||
|
remote: {}
|
||||||
start:
|
start:
|
||||||
command-role: {}
|
command-role: {}
|
||||||
stop:
|
stop:
|
||||||
@ -1575,6 +1578,9 @@ option:
|
|||||||
repo-put: {}
|
repo-put: {}
|
||||||
repo-rm: {}
|
repo-rm: {}
|
||||||
restore: {}
|
restore: {}
|
||||||
|
stanza-create: {}
|
||||||
|
stanza-delete: {}
|
||||||
|
stanza-upgrade: {}
|
||||||
verify: {}
|
verify: {}
|
||||||
command-role:
|
command-role:
|
||||||
async: {}
|
async: {}
|
||||||
@ -1962,12 +1968,15 @@ option:
|
|||||||
stanza-create:
|
stanza-create:
|
||||||
command-role:
|
command-role:
|
||||||
default: {}
|
default: {}
|
||||||
|
remote: {}
|
||||||
stanza-delete:
|
stanza-delete:
|
||||||
command-role:
|
command-role:
|
||||||
default: {}
|
default: {}
|
||||||
|
remote: {}
|
||||||
stanza-upgrade:
|
stanza-upgrade:
|
||||||
command-role:
|
command-role:
|
||||||
default: {}
|
default: {}
|
||||||
|
remote: {}
|
||||||
start:
|
start:
|
||||||
command-role: {}
|
command-role: {}
|
||||||
stop:
|
stop:
|
||||||
|
@ -557,26 +557,22 @@ static const unsigned char helpDataPack[] =
|
|||||||
pckTypeStr << 4 | 0x09, 0x20, // Summary
|
pckTypeStr << 4 | 0x09, 0x20, // Summary
|
||||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20,
|
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20,
|
||||||
0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E,
|
0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E,
|
||||||
pckTypeStr << 4 | 0x08, 0xF3, 0x01, // Description
|
pckTypeStr << 4 | 0x08, 0xB3, 0x01, // Description
|
||||||
0x54, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6F,
|
0x54, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6F,
|
||||||
0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x6F, 0x6E,
|
0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x61, 0x66,
|
||||||
0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x6F, 0x73, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20,
|
0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62,
|
||||||
0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x65,
|
0x65, 0x65, 0x6E, 0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6E, 0x20, 0x70, 0x67,
|
||||||
0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x20, 0x68,
|
0x62, 0x61, 0x63, 0x6B, 0x72, 0x65, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6E, 0x66, 0x2E, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68,
|
||||||
0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6E, 0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x69,
|
0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6E, 0x20, 0x6F, 0x6E, 0x65,
|
||||||
0x6E, 0x20, 0x70, 0x67, 0x62, 0x61, 0x63, 0x6B, 0x72, 0x65, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6E, 0x66, 0x2E, 0x20, 0x49,
|
0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x75, 0x72,
|
||||||
0x66, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6E,
|
0x65, 0x64, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20,
|
||||||
0x20, 0x6F, 0x6E, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x63, 0x6F, 0x6E, 0x66,
|
0x62, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x65, 0x61, 0x63, 0x68, 0x2E,
|
||||||
0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68,
|
|
||||||
0x65, 0x20, 0x68, 0x6F, 0x73, 0x74, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x20, 0x77,
|
|
||||||
0x69, 0x6C, 0x6C, 0x20, 0x62, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x65, 0x61,
|
|
||||||
0x63, 0x68, 0x2E,
|
|
||||||
|
|
||||||
// stanza-delete command
|
// stanza-delete command
|
||||||
// -------------------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------------------
|
||||||
pckTypeStr << 4 | 0x09, 0x10, // Summary
|
pckTypeStr << 4 | 0x09, 0x10, // Summary
|
||||||
0x44, 0x65, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2E,
|
0x44, 0x65, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2E,
|
||||||
pckTypeStr << 4 | 0x08, 0xB4, 0x06, // Description
|
pckTypeStr << 4 | 0x08, 0xBE, 0x06, // Description
|
||||||
0x54, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x64, 0x65, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x63, 0x6F,
|
0x54, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x64, 0x65, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x63, 0x6F,
|
||||||
0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69,
|
0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69,
|
||||||
0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x61, 0x73, 0x73,
|
0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x61, 0x73, 0x73,
|
||||||
@ -598,11 +594,11 @@ static const unsigned char helpDataPack[] =
|
|||||||
0x61, 0x20, 0x28, 0x6F, 0x72, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2D, 0x2D, 0x66, 0x6F, 0x72, 0x63, 0x65, 0x20, 0x74, 0x6F,
|
0x61, 0x20, 0x28, 0x6F, 0x72, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2D, 0x2D, 0x66, 0x6F, 0x72, 0x63, 0x65, 0x20, 0x74, 0x6F,
|
||||||
0x20, 0x6F, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x29, 0x2E, 0x0A,
|
0x20, 0x6F, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x29, 0x2E, 0x0A,
|
||||||
0x2A, 0x20, 0x52, 0x75, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61,
|
0x2A, 0x20, 0x52, 0x75, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61,
|
||||||
0x6E, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79,
|
0x6E, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x6F, 0x73, 0x74, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65,
|
||||||
0x20, 0x68, 0x6F, 0x73, 0x74, 0x2E, 0x0A,
|
0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x64, 0x65, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x63,
|
||||||
|
0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x2E, 0x0A,
|
||||||
0x2A, 0x20, 0x52, 0x75, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x64, 0x65, 0x6C,
|
0x2A, 0x20, 0x52, 0x75, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x64, 0x65, 0x6C,
|
||||||
0x65, 0x74, 0x65, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72,
|
0x65, 0x74, 0x65, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x2E, 0x0A, 0x0A,
|
||||||
0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x68, 0x6F, 0x73, 0x74, 0x2E, 0x0A, 0x0A,
|
|
||||||
0x4F, 0x6E, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x73, 0x75, 0x63,
|
0x4F, 0x6E, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x73, 0x75, 0x63,
|
||||||
0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6C, 0x6C, 0x79, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74, 0x65, 0x73, 0x2C,
|
0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6C, 0x6C, 0x79, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74, 0x65, 0x73, 0x2C,
|
||||||
0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73, 0x69, 0x62,
|
0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73, 0x69, 0x62,
|
||||||
@ -627,7 +623,7 @@ static const unsigned char helpDataPack[] =
|
|||||||
// -------------------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------------------
|
||||||
pckTypeStr << 4 | 0x09, 0x11, // Summary
|
pckTypeStr << 4 | 0x09, 0x11, // Summary
|
||||||
0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2E,
|
0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2E,
|
||||||
pckTypeStr << 4 | 0x08, 0xEA, 0x02, // Description
|
pckTypeStr << 4 | 0x08, 0xD3, 0x02, // Description
|
||||||
0x49, 0x6D, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6C, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x75, 0x70,
|
0x49, 0x6D, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6C, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x75, 0x70,
|
||||||
0x67, 0x72, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x50, 0x6F, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4C, 0x20, 0x74,
|
0x67, 0x72, 0x61, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x50, 0x6F, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4C, 0x20, 0x74,
|
||||||
0x6F, 0x20, 0x61, 0x20, 0x6E, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6D, 0x61, 0x6A, 0x6F, 0x72, 0x20, 0x76, 0x65, 0x72, 0x73,
|
0x6F, 0x20, 0x61, 0x20, 0x6E, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6D, 0x61, 0x6A, 0x6F, 0x72, 0x20, 0x76, 0x65, 0x72, 0x73,
|
||||||
@ -636,17 +632,15 @@ static const unsigned char helpDataPack[] =
|
|||||||
0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73,
|
0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x73, 0x20, 0x6D, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73,
|
||||||
0x65, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6E, 0x65, 0x77, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
|
0x65, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6E, 0x65, 0x77, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
|
||||||
0x73, 0x65, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20,
|
0x73, 0x65, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20,
|
||||||
0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x6F,
|
0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x2D, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61,
|
||||||
0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x68, 0x6F, 0x73,
|
0x6E, 0x64, 0x20, 0x72, 0x75, 0x6E, 0x2E, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20,
|
||||||
0x74, 0x2E, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20,
|
0x6D, 0x6F, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6E, 0x20, 0x6F, 0x6E, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69,
|
||||||
0x74, 0x68, 0x61, 0x6E, 0x20, 0x6F, 0x6E, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x79, 0x20,
|
0x74, 0x6F, 0x72, 0x79, 0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74,
|
||||||
0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x6F,
|
0x68, 0x65, 0x20, 0x68, 0x6F, 0x73, 0x74, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x7A, 0x61, 0x20,
|
||||||
0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x6F, 0x73, 0x74, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6E,
|
0x77, 0x69, 0x6C, 0x6C, 0x20, 0x62, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x65,
|
||||||
0x7A, 0x61, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x62, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6F,
|
0x61, 0x63, 0x68, 0x2E, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
|
||||||
0x6E, 0x20, 0x65, 0x61, 0x63, 0x68, 0x2E, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62,
|
0x20, 0x69, 0x73, 0x20, 0x6F, 0x66, 0x66, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20,
|
||||||
0x61, 0x73, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6F, 0x66, 0x66, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74,
|
0x2D, 0x2D, 0x6E, 0x6F, 0x2D, 0x6F, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x6F, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x2E,
|
||||||
0x68, 0x65, 0x20, 0x2D, 0x2D, 0x6E, 0x6F, 0x2D, 0x6F, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x6F, 0x70, 0x74, 0x69, 0x6F,
|
|
||||||
0x6E, 0x2E,
|
|
||||||
|
|
||||||
// start command
|
// start command
|
||||||
// -------------------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -37,11 +37,6 @@ cmdStanzaCreate(void)
|
|||||||
if (cfgOptionBool(cfgOptForce))
|
if (cfgOptionBool(cfgOptForce))
|
||||||
LOG_WARN("option --force is no longer supported");
|
LOG_WARN("option --force is no longer supported");
|
||||||
|
|
||||||
// Verify all the repos are local (i.e. repo*-host is not set) - this is a simple way to confirm we are not executing
|
|
||||||
// stanza-create from a pg host as it will immediately error
|
|
||||||
for (unsigned int repoIdx = 0; repoIdx < cfgOptionGroupIdxTotal(cfgOptGrpRepo); repoIdx++)
|
|
||||||
repoIsLocalVerifyIdx(repoIdx);
|
|
||||||
|
|
||||||
// Get the version and system information - validating it if the database is online
|
// Get the version and system information - validating it if the database is online
|
||||||
PgControl pgControl = pgValidate();
|
PgControl pgControl = pgValidate();
|
||||||
|
|
||||||
@ -117,9 +112,10 @@ cmdStanzaCreate(void)
|
|||||||
sourceFile = archiveInfoFileExists ? INFO_ARCHIVE_PATH_FILE_STR : INFO_ARCHIVE_PATH_FILE_COPY_STR;
|
sourceFile = archiveInfoFileExists ? INFO_ARCHIVE_PATH_FILE_STR : INFO_ARCHIVE_PATH_FILE_COPY_STR;
|
||||||
destinationFile = !archiveInfoFileExists ? INFO_ARCHIVE_PATH_FILE_STR : INFO_ARCHIVE_PATH_FILE_COPY_STR;
|
destinationFile = !archiveInfoFileExists ? INFO_ARCHIVE_PATH_FILE_STR : INFO_ARCHIVE_PATH_FILE_COPY_STR;
|
||||||
|
|
||||||
storageCopyP(
|
// Using get and put instead of copy in case the storage is remote
|
||||||
storageNewReadP(storageRepoReadStanza, sourceFile),
|
storagePutP(
|
||||||
storageNewWriteP(storageRepoWriteStanza, destinationFile));
|
storageNewWriteP(storageRepoWriteStanza, destinationFile),
|
||||||
|
storageGetP(storageNewReadP(storageRepoReadStanza, sourceFile)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!backupInfoFileExists || !backupInfoFileCopyExists)
|
if (!backupInfoFileExists || !backupInfoFileCopyExists)
|
||||||
@ -127,9 +123,10 @@ cmdStanzaCreate(void)
|
|||||||
sourceFile = backupInfoFileExists ? INFO_BACKUP_PATH_FILE_STR : INFO_BACKUP_PATH_FILE_COPY_STR;
|
sourceFile = backupInfoFileExists ? INFO_BACKUP_PATH_FILE_STR : INFO_BACKUP_PATH_FILE_COPY_STR;
|
||||||
destinationFile = !backupInfoFileExists ? INFO_BACKUP_PATH_FILE_STR : INFO_BACKUP_PATH_FILE_COPY_STR;
|
destinationFile = !backupInfoFileExists ? INFO_BACKUP_PATH_FILE_STR : INFO_BACKUP_PATH_FILE_COPY_STR;
|
||||||
|
|
||||||
storageCopyP(
|
// Using get and put instead of copy in case the storage is remote
|
||||||
storageNewReadP(storageRepoReadStanza, sourceFile),
|
storagePutP(
|
||||||
storageNewWriteP(storageRepoWriteStanza, destinationFile));
|
storageNewWriteP(storageRepoWriteStanza, destinationFile),
|
||||||
|
storageGetP(storageNewReadP(storageRepoReadStanza, sourceFile)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// If no files copied, then the stanza was already valid
|
// If no files copied, then the stanza was already valid
|
||||||
|
@ -136,9 +136,6 @@ cmdStanzaDelete(void)
|
|||||||
{
|
{
|
||||||
FUNCTION_LOG_VOID(logLevelDebug);
|
FUNCTION_LOG_VOID(logLevelDebug);
|
||||||
|
|
||||||
// Verify the repo is local before proceeding
|
|
||||||
repoIsLocalVerify();
|
|
||||||
|
|
||||||
MEM_CONTEXT_TEMP_BEGIN()
|
MEM_CONTEXT_TEMP_BEGIN()
|
||||||
{
|
{
|
||||||
const Storage *storageRepoReadStanza = storageRepo();
|
const Storage *storageRepoReadStanza = storageRepo();
|
||||||
|
@ -37,11 +37,6 @@ cmdStanzaUpgrade(void)
|
|||||||
// Get the version and system information - validating it if the database is online
|
// Get the version and system information - validating it if the database is online
|
||||||
PgControl pgControl = pgValidate();
|
PgControl pgControl = pgValidate();
|
||||||
|
|
||||||
// Verify all the repos are local (i.e. repo*-host is not set) - this is a simple way to confirm we are not executing
|
|
||||||
// stanza-upgrade from a pg host as it will immediately error
|
|
||||||
for (unsigned int repoIdx = 0; repoIdx < cfgOptionGroupIdxTotal(cfgOptGrpRepo); repoIdx++)
|
|
||||||
repoIsLocalVerifyIdx(repoIdx);
|
|
||||||
|
|
||||||
// For each repository configured, upgrade the stanza
|
// For each repository configured, upgrade the stanza
|
||||||
for (unsigned int repoIdx = 0; repoIdx < cfgOptionGroupIdxTotal(cfgOptGrpRepo); repoIdx++)
|
for (unsigned int repoIdx = 0; repoIdx < cfgOptionGroupIdxTotal(cfgOptGrpRepo); repoIdx++)
|
||||||
{
|
{
|
||||||
|
@ -3012,6 +3012,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3079,6 +3082,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3149,6 +3155,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3220,6 +3229,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3293,6 +3305,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3363,6 +3378,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3442,6 +3460,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3512,6 +3533,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3584,6 +3608,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3650,6 +3677,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3718,6 +3748,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3784,6 +3817,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3903,6 +3939,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3948,6 +3987,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -3994,6 +4036,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4040,6 +4085,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4086,6 +4134,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4132,6 +4183,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4264,6 +4318,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4453,6 +4510,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4523,6 +4583,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4594,6 +4657,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4665,6 +4731,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4735,6 +4804,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4813,6 +4885,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4883,6 +4958,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -4954,6 +5032,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -5024,6 +5105,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -5102,6 +5186,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -5174,6 +5261,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -5246,6 +5336,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -5317,6 +5410,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -5391,6 +5487,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -5465,6 +5564,9 @@ static const ParseRuleOption parseRuleOption[CFG_OPTION_TOTAL] =
|
|||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoPut)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRepoRm)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdRestore)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaCreate)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaDelete)
|
||||||
|
PARSE_RULE_OPTION_COMMAND(cfgCmdStanzaUpgrade)
|
||||||
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
PARSE_RULE_OPTION_COMMAND(cfgCmdVerify)
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -12,6 +12,8 @@ Archive Info Handler
|
|||||||
#include "common/debug.h"
|
#include "common/debug.h"
|
||||||
#include "common/log.h"
|
#include "common/log.h"
|
||||||
#include "common/ini.h"
|
#include "common/ini.h"
|
||||||
|
#include "common/io/bufferWrite.h"
|
||||||
|
#include "common/io/io.h"
|
||||||
#include "common/memContext.h"
|
#include "common/memContext.h"
|
||||||
#include "common/type/object.h"
|
#include "common/type/object.h"
|
||||||
#include "info/infoArchive.h"
|
#include "info/infoArchive.h"
|
||||||
@ -356,13 +358,15 @@ infoArchiveSaveFile(
|
|||||||
|
|
||||||
MEM_CONTEXT_TEMP_BEGIN()
|
MEM_CONTEXT_TEMP_BEGIN()
|
||||||
{
|
{
|
||||||
// Save the file
|
// Write output into a buffer since it needs to be saved to storage twice
|
||||||
IoWrite *write = storageWriteIo(storageNewWriteP(storage, fileName));
|
Buffer *buffer = bufNew(ioBufferSize());
|
||||||
|
IoWrite *write = ioBufferWriteNew(buffer);
|
||||||
cipherBlockFilterGroupAdd(ioWriteFilterGroup(write), cipherType, cipherModeEncrypt, cipherPass);
|
cipherBlockFilterGroupAdd(ioWriteFilterGroup(write), cipherType, cipherModeEncrypt, cipherPass);
|
||||||
infoArchiveSave(infoArchive, write);
|
infoArchiveSave(infoArchive, write);
|
||||||
|
|
||||||
// Make a copy of the file
|
// Save the file and make a copy
|
||||||
storageCopy(storageNewReadP(storage, fileName), storageNewWriteP(storage, strNewFmt("%s" INFO_COPY_EXT, strZ(fileName))));
|
storagePutP(storageNewWriteP(storage, fileName), buffer);
|
||||||
|
storagePutP(storageNewWriteP(storage, strNewFmt("%s" INFO_COPY_EXT, strZ(fileName))), buffer);
|
||||||
}
|
}
|
||||||
MEM_CONTEXT_TEMP_END();
|
MEM_CONTEXT_TEMP_END();
|
||||||
|
|
||||||
|
@ -12,6 +12,8 @@ Backup Info Handler
|
|||||||
#include "common/crypto/cipherBlock.h"
|
#include "common/crypto/cipherBlock.h"
|
||||||
#include "common/debug.h"
|
#include "common/debug.h"
|
||||||
#include "common/ini.h"
|
#include "common/ini.h"
|
||||||
|
#include "common/io/bufferWrite.h"
|
||||||
|
#include "common/io/io.h"
|
||||||
#include "common/log.h"
|
#include "common/log.h"
|
||||||
#include "common/memContext.h"
|
#include "common/memContext.h"
|
||||||
#include "common/regExp.h"
|
#include "common/regExp.h"
|
||||||
@ -772,13 +774,15 @@ infoBackupSaveFile(
|
|||||||
|
|
||||||
MEM_CONTEXT_TEMP_BEGIN()
|
MEM_CONTEXT_TEMP_BEGIN()
|
||||||
{
|
{
|
||||||
// Save the file
|
// Write output into a buffer since it needs to be saved to storage twice
|
||||||
IoWrite *write = storageWriteIo(storageNewWriteP(storage, fileName));
|
Buffer *buffer = bufNew(ioBufferSize());
|
||||||
|
IoWrite *write = ioBufferWriteNew(buffer);
|
||||||
cipherBlockFilterGroupAdd(ioWriteFilterGroup(write), cipherType, cipherModeEncrypt, cipherPass);
|
cipherBlockFilterGroupAdd(ioWriteFilterGroup(write), cipherType, cipherModeEncrypt, cipherPass);
|
||||||
infoBackupSave(infoBackup, write);
|
infoBackupSave(infoBackup, write);
|
||||||
|
|
||||||
// Make a copy of the file
|
// Save the file and make a copy
|
||||||
storageCopy(storageNewReadP(storage, fileName), storageNewWriteP(storage, strNewFmt("%s" INFO_COPY_EXT, strZ(fileName))));
|
storagePutP(storageNewWriteP(storage, fileName), buffer);
|
||||||
|
storagePutP(storageNewWriteP(storage, strNewFmt("%s" INFO_COPY_EXT, strZ(fileName))), buffer);
|
||||||
}
|
}
|
||||||
MEM_CONTEXT_TEMP_END();
|
MEM_CONTEXT_TEMP_END();
|
||||||
|
|
||||||
|
@ -23,12 +23,11 @@ P00 ERROR: [055]: unable to load info file '/archive/db/archive.info' or '/arch
|
|||||||
P00 DETAIL: statistics: STATISTICS
|
P00 DETAIL: statistics: STATISTICS
|
||||||
P00 INFO: stanza-upgrade command end: aborted with exception [055]
|
P00 INFO: stanza-upgrade command end: aborted with exception [055]
|
||||||
|
|
||||||
stanza-create db - successfully create the stanza (backup host)
|
stanza-create db - successfully create the stanza (db-primary host)
|
||||||
> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --no-online stanza-create
|
> [CONTAINER-EXEC] db-primary [BACKREST-BIN] --config=[TEST_PATH]/db-primary/pgbackrest.conf --stanza=db --no-online stanza-create
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: stanza-create command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/backup/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log[] --no-log-timestamp --no-online --pg1-host=db-primary --pg1-host-cmd=[BACKREST-BIN] --pg1-host-config=[TEST_PATH]/db-primary/pgbackrest.conf --pg1-host-user=[USER-1] --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo1-azure-account=<redacted> --repo1-azure-container=azContainer --repo1-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-storage-host=azure --no-repo1-storage-verify-tls --repo1-type=azure --stanza=db
|
P00 INFO: stanza-create command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/db-primary/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log[] --no-log-timestamp --no-online --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo1-host=backup --repo1-host-cmd=[BACKREST-BIN] --repo1-host-config=[TEST_PATH]/backup/pgbackrest.conf --repo1-host-user=[USER-1] --stanza=db
|
||||||
P00 INFO: stanza-create for stanza 'db' on repo1
|
P00 INFO: stanza-create for stanza 'db' on repo1
|
||||||
P00 DETAIL: statistics: STATISTICS
|
|
||||||
P00 INFO: stanza-create command end: completed successfully
|
P00 INFO: stanza-create command end: completed successfully
|
||||||
|
|
||||||
+ supplemental file: /backup/db/backup.info
|
+ supplemental file: /backup/db/backup.info
|
||||||
@ -73,13 +72,12 @@ db-version="9.3"
|
|||||||
[backrest]
|
[backrest]
|
||||||
backrest-checksum="[CHECKSUM]"
|
backrest-checksum="[CHECKSUM]"
|
||||||
|
|
||||||
stanza-create db - do not fail on rerun of stanza-create - info files exist and DB section ok (backup host)
|
stanza-create db - do not fail on rerun of stanza-create - info files exist and DB section ok (db-primary host)
|
||||||
> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --no-online stanza-create
|
> [CONTAINER-EXEC] db-primary [BACKREST-BIN] --config=[TEST_PATH]/db-primary/pgbackrest.conf --stanza=db --no-online stanza-create
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: stanza-create command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/backup/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log[] --no-log-timestamp --no-online --pg1-host=db-primary --pg1-host-cmd=[BACKREST-BIN] --pg1-host-config=[TEST_PATH]/db-primary/pgbackrest.conf --pg1-host-user=[USER-1] --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo1-azure-account=<redacted> --repo1-azure-container=azContainer --repo1-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-storage-host=azure --no-repo1-storage-verify-tls --repo1-type=azure --stanza=db
|
P00 INFO: stanza-create command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/db-primary/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log[] --no-log-timestamp --no-online --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo1-host=backup --repo1-host-cmd=[BACKREST-BIN] --repo1-host-config=[TEST_PATH]/backup/pgbackrest.conf --repo1-host-user=[USER-1] --stanza=db
|
||||||
P00 INFO: stanza-create for stanza 'db' on repo1
|
P00 INFO: stanza-create for stanza 'db' on repo1
|
||||||
P00 INFO: stanza 'db' already exists on repo1 and is valid
|
P00 INFO: stanza 'db' already exists on repo1 and is valid
|
||||||
P00 DETAIL: statistics: STATISTICS
|
|
||||||
P00 INFO: stanza-create command end: completed successfully
|
P00 INFO: stanza-create command end: completed successfully
|
||||||
|
|
||||||
+ supplemental file: /backup/db/backup.info
|
+ supplemental file: /backup/db/backup.info
|
||||||
@ -389,12 +387,11 @@ repo1-type=azure
|
|||||||
archive-copy=y
|
archive-copy=y
|
||||||
start-fast=y
|
start-fast=y
|
||||||
|
|
||||||
stanza-upgrade db - successfully upgrade (backup host)
|
stanza-upgrade db - successfully upgrade (db-primary host)
|
||||||
> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --no-online stanza-upgrade
|
> [CONTAINER-EXEC] db-primary [BACKREST-BIN] --config=[TEST_PATH]/db-primary/pgbackrest.conf --stanza=db --no-online stanza-upgrade
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/backup/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log[] --no-log-timestamp --no-online --pg1-host=db-primary --pg1-host-cmd=[BACKREST-BIN] --pg1-host-config=[TEST_PATH]/db-primary/pgbackrest.conf --pg1-host-user=[USER-1] --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo1-azure-account=<redacted> --repo1-azure-container=azContainer --repo1-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-storage-host=azure --no-repo1-storage-verify-tls --repo1-type=azure --stanza=db
|
P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/db-primary/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log[] --no-log-timestamp --no-online --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo1-host=backup --repo1-host-cmd=[BACKREST-BIN] --repo1-host-config=[TEST_PATH]/backup/pgbackrest.conf --repo1-host-user=[USER-1] --stanza=db
|
||||||
P00 INFO: stanza-upgrade for stanza 'db' on repo1
|
P00 INFO: stanza-upgrade for stanza 'db' on repo1
|
||||||
P00 DETAIL: statistics: STATISTICS
|
|
||||||
P00 INFO: stanza-upgrade command end: completed successfully
|
P00 INFO: stanza-upgrade command end: completed successfully
|
||||||
|
|
||||||
+ supplemental file: /backup/db/backup.info
|
+ supplemental file: /backup/db/backup.info
|
||||||
@ -592,13 +589,12 @@ repo1-type=azure
|
|||||||
archive-copy=y
|
archive-copy=y
|
||||||
start-fast=y
|
start-fast=y
|
||||||
|
|
||||||
stanza-delete db - fail on missing stop file (backup host)
|
stanza-delete db - fail on missing stop file (db-primary host)
|
||||||
> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --repo=1 --stanza=db stanza-delete
|
> [CONTAINER-EXEC] db-primary [BACKREST-BIN] --config=[TEST_PATH]/db-primary/pgbackrest.conf --repo=1 --stanza=db stanza-delete
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: stanza-delete command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/backup/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log[] --no-log-timestamp --pg1-host=db-primary --pg1-host-cmd=[BACKREST-BIN] --pg1-host-config=[TEST_PATH]/db-primary/pgbackrest.conf --pg1-host-user=[USER-1] --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo=1 --repo1-azure-account=<redacted> --repo1-azure-container=azContainer --repo1-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-storage-host=azure --no-repo1-storage-verify-tls --repo1-type=azure --stanza=db
|
P00 INFO: stanza-delete command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/db-primary/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log[] --no-log-timestamp --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo=1 --repo1-host=backup --repo1-host-cmd=[BACKREST-BIN] --repo1-host-config=[TEST_PATH]/backup/pgbackrest.conf --repo1-host-user=[USER-1] --stanza=db
|
||||||
P00 ERROR: [055]: stop file does not exist for stanza 'db'
|
P00 ERROR: [055]: stop file does not exist for stanza 'db'
|
||||||
HINT: has the pgbackrest stop command been run on this server for this stanza?
|
HINT: has the pgbackrest stop command been run on this server for this stanza?
|
||||||
P00 DETAIL: statistics: STATISTICS
|
|
||||||
P00 INFO: stanza-delete command end: aborted with exception [055]
|
P00 INFO: stanza-delete command end: aborted with exception [055]
|
||||||
|
|
||||||
db must not exist for successful delete
|
db must not exist for successful delete
|
||||||
@ -611,17 +607,16 @@ db must not exist for successful delete
|
|||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
db
|
db
|
||||||
|
|
||||||
stop db stanza (backup host)
|
stop db stanza (db-primary host)
|
||||||
> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db stop
|
> [CONTAINER-EXEC] db-primary [BACKREST-BIN] --config=[TEST_PATH]/db-primary/pgbackrest.conf --stanza=db stop
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-log-timestamp --stanza=db
|
P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --stanza=db
|
||||||
P00 INFO: stop command end: completed successfully
|
P00 INFO: stop command end: completed successfully
|
||||||
|
|
||||||
stanza-delete db - successfully delete the stanza (backup host)
|
stanza-delete db - successfully delete the stanza (db-primary host)
|
||||||
> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --repo=1 --stanza=db stanza-delete
|
> [CONTAINER-EXEC] db-primary [BACKREST-BIN] --config=[TEST_PATH]/db-primary/pgbackrest.conf --repo=1 --stanza=db stanza-delete
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
P00 INFO: stanza-delete command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/backup/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log[] --no-log-timestamp --pg1-host=db-primary --pg1-host-cmd=[BACKREST-BIN] --pg1-host-config=[TEST_PATH]/db-primary/pgbackrest.conf --pg1-host-user=[USER-1] --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo=1 --repo1-azure-account=<redacted> --repo1-azure-container=azContainer --repo1-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-storage-host=azure --no-repo1-storage-verify-tls --repo1-type=azure --stanza=db
|
P00 INFO: stanza-delete command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --compress-level-network=1 --config=[TEST_PATH]/db-primary/pgbackrest.conf --db-timeout=45 --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log[] --no-log-timestamp --pg1-path=[TEST_PATH]/db-primary/db/base --protocol-timeout=60 --repo=1 --repo1-host=backup --repo1-host-cmd=[BACKREST-BIN] --repo1-host-config=[TEST_PATH]/backup/pgbackrest.conf --repo1-host-user=[USER-1] --stanza=db
|
||||||
P00 DETAIL: statistics: STATISTICS
|
|
||||||
P00 INFO: stanza-delete command end: completed successfully
|
P00 INFO: stanza-delete command end: completed successfully
|
||||||
|
|
||||||
db must not exist for successful delete
|
db must not exist for successful delete
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
run 001 - bkp 1, sby 1, dst backup, cmp none, storage posix, enc 0
|
run 001 - bkp 1, sby 1, dst backup, cmp none, storage posix, enc 0
|
||||||
==================================================================
|
==================================================================
|
||||||
|
|
||||||
stanza-create db - main create stanza info files (backup host)
|
stanza-create db - main create stanza info files (db-primary host)
|
||||||
> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db stanza-create
|
> [CONTAINER-EXEC] db-primary [BACKREST-BIN] --config=[TEST_PATH]/db-primary/pgbackrest.conf --stanza=db stanza-create
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
check db - verify check command runs successfully (db-primary host)
|
check db - verify check command runs successfully (db-primary host)
|
||||||
|
@ -90,13 +90,13 @@ sub run
|
|||||||
$oHostBackup->stanzaUpgrade('fail on stanza not initialized since archive.info is missing',
|
$oHostBackup->stanzaUpgrade('fail on stanza not initialized since archive.info is missing',
|
||||||
{iExpectedExitStatus => ERROR_FILE_MISSING, strOptionalParam => '--no-online'});
|
{iExpectedExitStatus => ERROR_FILE_MISSING, strOptionalParam => '--no-online'});
|
||||||
|
|
||||||
# Create the stanza successfully without force
|
# Create the stanza successfully without force - run from the db server to ensure ability to run remotely
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
$oHostBackup->stanzaCreate('successfully create the stanza', {strOptionalParam => '--no-online'});
|
$oHostDbPrimary->stanzaCreate('successfully create the stanza', {strOptionalParam => '--no-online'});
|
||||||
|
|
||||||
# Rerun stanza-create and confirm it does not fail
|
# Rerun stanza-create and confirm it does not fail
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
$oHostBackup->stanzaCreate(
|
$oHostDbPrimary->stanzaCreate(
|
||||||
'do not fail on rerun of stanza-create - info files exist and DB section ok',
|
'do not fail on rerun of stanza-create - info files exist and DB section ok',
|
||||||
{strOptionalParam => '--no-online'});
|
{strOptionalParam => '--no-online'});
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ sub run
|
|||||||
|
|
||||||
# Perform a successful stanza upgrade noting additional history lines in info files for new version of the database
|
# Perform a successful stanza upgrade noting additional history lines in info files for new version of the database
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
# Save a pre-upgrade copy of archive info fo testing db-id mismatch
|
# Save a pre-upgrade copy of archive info for testing db-id mismatch
|
||||||
forceStorageMove(storageRepo(), $strArchiveInfoCopyFile, $strArchiveInfoCopyOldFile, {bRecurse => false});
|
forceStorageMove(storageRepo(), $strArchiveInfoCopyFile, $strArchiveInfoCopyOldFile, {bRecurse => false});
|
||||||
|
|
||||||
$oHostBackup->stanzaUpgrade('successful upgrade creates additional history', {strOptionalParam => '--no-online'});
|
$oHostBackup->stanzaUpgrade('successful upgrade creates additional history', {strOptionalParam => '--no-online'});
|
||||||
@ -204,7 +204,8 @@ sub run
|
|||||||
$self->controlGenerate($oHostDbPrimary->dbBasePath(), PG_VERSION_95);
|
$self->controlGenerate($oHostDbPrimary->dbBasePath(), PG_VERSION_95);
|
||||||
forceStorageMode(storageTest(), $oHostDbPrimary->dbBasePath() . '/' . DB_FILE_PGCONTROL, '600');
|
forceStorageMode(storageTest(), $oHostDbPrimary->dbBasePath() . '/' . DB_FILE_PGCONTROL, '600');
|
||||||
|
|
||||||
$oHostBackup->stanzaUpgrade('successfully upgrade', {strOptionalParam => '--no-online'});
|
# Run from the db server to ensure ability to run remotely
|
||||||
|
$oHostDbPrimary->stanzaUpgrade('successfully upgrade', {strOptionalParam => '--no-online'});
|
||||||
|
|
||||||
# Copy archive.info and restore really old version
|
# Copy archive.info and restore really old version
|
||||||
forceStorageMove(storageRepo(), $strArchiveInfoFile, $strArchiveInfoOldFile, {bRecurse => false});
|
forceStorageMove(storageRepo(), $strArchiveInfoFile, $strArchiveInfoOldFile, {bRecurse => false});
|
||||||
@ -237,10 +238,10 @@ sub run
|
|||||||
|
|
||||||
# Delete the stanza
|
# Delete the stanza
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
$oHostBackup->stanzaDelete('fail on missing stop file', {iExpectedExitStatus => ERROR_FILE_MISSING});
|
$oHostDbPrimary->stanzaDelete('fail on missing stop file', {iExpectedExitStatus => ERROR_FILE_MISSING});
|
||||||
|
|
||||||
$oHostBackup->stop({strStanza => $self->stanza()});
|
$oHostDbPrimary->stop({strStanza => $self->stanza()});
|
||||||
$oHostBackup->stanzaDelete('successfully delete the stanza');
|
$oHostDbPrimary->stanzaDelete('successfully delete the stanza');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ sub run
|
|||||||
$oHostDbPrimary->clusterCreate();
|
$oHostDbPrimary->clusterCreate();
|
||||||
|
|
||||||
# Create the stanza
|
# Create the stanza
|
||||||
$oHostBackup->stanzaCreate('main create stanza info files');
|
$oHostDbPrimary->stanzaCreate('main create stanza info files');
|
||||||
|
|
||||||
# Get passphrase to access the Manifest file from backup.info - returns undefined if repo not encrypted
|
# Get passphrase to access the Manifest file from backup.info - returns undefined if repo not encrypted
|
||||||
my $strCipherPass =
|
my $strCipherPass =
|
||||||
|
@ -37,17 +37,9 @@ testRun(void)
|
|||||||
{
|
{
|
||||||
// Load Parameters
|
// Load Parameters
|
||||||
StringList *argList = strLstDup(argListBase);
|
StringList *argList = strLstDup(argListBase);
|
||||||
strLstAddZ(argList, "--repo1-host=/repo");
|
|
||||||
strLstAddZ(argList, "--repo2-host=/repo/not/local");
|
|
||||||
harnessCfgLoad(cfgCmdStanzaCreate, argList);
|
|
||||||
|
|
||||||
TEST_ERROR_FMT(
|
|
||||||
cmdStanzaCreate(), HostInvalidError, "stanza-create command must be run on the repository host");
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------------
|
|
||||||
argList = strLstDup(argListBase);
|
|
||||||
hrnCfgArgKeyRawFmt(argList, cfgOptRepoPath, 2, "%s/repo2", testPath());
|
hrnCfgArgKeyRawFmt(argList, cfgOptRepoPath, 2, "%s/repo2", testPath());
|
||||||
hrnCfgArgRawZ(argList, cfgOptRepo, "2");
|
hrnCfgArgRawZ(argList, cfgOptRepo, "2");
|
||||||
|
|
||||||
TEST_ERROR_FMT(
|
TEST_ERROR_FMT(
|
||||||
harnessCfgLoad(cfgCmdStanzaCreate, argList), OptionInvalidError, "option 'repo' not valid for command 'stanza-create'");
|
harnessCfgLoad(cfgCmdStanzaCreate, argList), OptionInvalidError, "option 'repo' not valid for command 'stanza-create'");
|
||||||
|
|
||||||
@ -678,16 +670,9 @@ testRun(void)
|
|||||||
|
|
||||||
// Load Parameters
|
// Load Parameters
|
||||||
StringList *argList = strLstDup(argListBase);
|
StringList *argList = strLstDup(argListBase);
|
||||||
strLstAddZ(argList, "--repo1-host=/repo/not/local");
|
|
||||||
harnessCfgLoad(cfgCmdStanzaUpgrade, argList);
|
|
||||||
|
|
||||||
TEST_ERROR_FMT(
|
|
||||||
cmdStanzaUpgrade(), HostInvalidError, "stanza-upgrade command must be run on the repository host");
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------------
|
|
||||||
argList = strLstDup(argListBase);
|
|
||||||
hrnCfgArgKeyRawFmt(argList, cfgOptRepoPath, 2, "%s/repo2", testPath());
|
hrnCfgArgKeyRawFmt(argList, cfgOptRepoPath, 2, "%s/repo2", testPath());
|
||||||
hrnCfgArgRawZ(argList, cfgOptRepo, "2");
|
hrnCfgArgRawZ(argList, cfgOptRepo, "2");
|
||||||
|
|
||||||
TEST_ERROR_FMT(
|
TEST_ERROR_FMT(
|
||||||
harnessCfgLoad(cfgCmdStanzaUpgrade, argList), OptionInvalidError,
|
harnessCfgLoad(cfgCmdStanzaUpgrade, argList), OptionInvalidError,
|
||||||
"option 'repo' not valid for command 'stanza-upgrade'");
|
"option 'repo' not valid for command 'stanza-upgrade'");
|
||||||
@ -1001,20 +986,11 @@ testRun(void)
|
|||||||
StringList *argListCmd = strLstNew();
|
StringList *argListCmd = strLstNew();
|
||||||
strLstAdd(argListCmd, strNewFmt("--repo1-path=%s/repo", testPath()));
|
strLstAdd(argListCmd, strNewFmt("--repo1-path=%s/repo", testPath()));
|
||||||
|
|
||||||
StringList *argList = strLstDup(argListCmd);
|
|
||||||
strLstAddZ(argList, "--repo1-host=/repo/not/local");
|
|
||||||
strLstAdd(argList, strNewFmt("--stanza=%s", strZ(stanza)));
|
|
||||||
strLstAdd(argList,strNewFmt("--pg1-path=%s/%s", testPath(), strZ(stanza)));
|
|
||||||
harnessCfgLoad(cfgCmdStanzaDelete, argList);
|
|
||||||
|
|
||||||
TEST_ERROR_FMT(
|
|
||||||
cmdStanzaDelete(), HostInvalidError, "stanza-delete command must be run on the repository host");
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------------
|
||||||
String *stanzaOther = strNew("otherstanza");
|
String *stanzaOther = strNew("otherstanza");
|
||||||
|
|
||||||
// Load Parameters
|
// Load Parameters
|
||||||
argList = strLstDup(argListCmd);
|
StringList *argList = strLstDup(argListCmd);
|
||||||
strLstAdd(argList, strNewFmt("--stanza=%s", strZ(stanzaOther)));
|
strLstAdd(argList, strNewFmt("--stanza=%s", strZ(stanzaOther)));
|
||||||
strLstAdd(argList,strNewFmt("--pg1-path=%s/%s", testPath(), strZ(stanzaOther)));
|
strLstAdd(argList,strNewFmt("--pg1-path=%s/%s", testPath(), strZ(stanzaOther)));
|
||||||
strLstAddZ(argList, "--no-online");
|
strLstAddZ(argList, "--no-online");
|
||||||
@ -1155,13 +1131,21 @@ testRun(void)
|
|||||||
"To delete stanza 'db' on repo2, shut down " PG_NAME " for stanza 'db' and try again, or use --force.");
|
"To delete stanza 'db' on repo2, shut down " PG_NAME " for stanza 'db' and try again, or use --force.");
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------------
|
||||||
TEST_TITLE("force delete when pg appears to be running");
|
TEST_TITLE("force delete when pg appears to be running, multi-repo");
|
||||||
|
|
||||||
|
argList = strLstDup(argListCmd);
|
||||||
|
hrnCfgArgRaw(argList, cfgOptStanza, stanza);
|
||||||
|
hrnCfgArgKeyRawFmt(argList, cfgOptPgPath, 1, "%s/%s", testPath(), strZ(stanza));
|
||||||
|
hrnCfgArgKeyRawFmt(argList, cfgOptRepoPath, 2, "%s/repo2", testPath());
|
||||||
|
hrnCfgArgRawZ(argList, cfgOptRepo, "1");
|
||||||
strLstAddZ(argList,"--force");
|
strLstAddZ(argList,"--force");
|
||||||
harnessCfgLoad(cfgCmdStanzaDelete, argList);
|
harnessCfgLoad(cfgCmdStanzaDelete, argList);
|
||||||
|
|
||||||
TEST_RESULT_VOID(cmdStanzaDelete(), "stanza delete --force");
|
TEST_RESULT_VOID(cmdStanzaDelete(), "stanza delete --force");
|
||||||
TEST_RESULT_BOOL(
|
TEST_RESULT_BOOL(
|
||||||
storagePathExistsP(storageTest, strNewFmt("repo/backup/%s", strZ(stanza))), false, " stanza deleted");
|
storagePathExistsP(storageTest, strNewFmt("repo/backup/%s", strZ(stanza))), false, "repo1: stanza deleted");
|
||||||
|
TEST_RESULT_BOOL(
|
||||||
|
storagePathExistsP(storageTest, strNewFmt("repo2/backup/%s", strZ(stanza))), true, "repo2: stanza not deleted");
|
||||||
|
|
||||||
// Ensure other stanza never deleted
|
// Ensure other stanza never deleted
|
||||||
//--------------------------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user