1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-14 10:13:05 +02:00
pgbackrest/lib/pgBackRest/LibCAuto.pm
David Steele f0ef73db70 pgBackRest is now pure C.
Remove embedded Perl from the distributed binary.  This includes code, configure, Makefile, and packages.  The distributed binary is now pure C.

Remove storagePathEnforceSet() from the C Storage object which allowed Perl to write outside of the storage base directory.  Update mock/all and real/all integration tests to use storageLocal() where they were violating this rule.

Remove "c" option that allowed the remote to tell if it was being called from C or Perl.

Code to convert options to JSON for passing to Perl (perl/config.c) has been moved to LibC since it is still required for Perl integration tests.

Update build and installation instructions in the user guide.

Remove all Perl unit tests.

Remove obsolete Perl code.  In particular this included all the Perl protocol code which required modifications to the Perl storage, manifest, and db objects that are still required for integration testing but only run locally.  Any remaining Perl code is required for testing, documentation, or code generation.

Rename perlReq to binReq in define.yaml to indicate that the binary is required for a test.  This had been the actual meaning for quite some time but the key was never renamed.
2019-12-13 17:55:41 -05:00

370 lines
13 KiB
Perl

####################################################################################################################################
# Automatically generated by Build.pm -- do not modify directly.
####################################################################################################################################
package pgBackRest::LibCAuto;
use strict;
use warnings;
# Configuration option value constants
sub libcAutoConstant
{
return
{
CFGOPTVAL_INFO_OUTPUT_TEXT => 'text',
CFGOPTVAL_INFO_OUTPUT_JSON => 'json',
CFGOPTVAL_LS_OUTPUT_TEXT => 'text',
CFGOPTVAL_LS_OUTPUT_JSON => 'json',
CFGOPTVAL_REPO_CIPHER_TYPE_NONE => 'none',
CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC => 'aes-256-cbc',
CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL => 'full',
CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF => 'diff',
CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR => 'incr',
CFGOPTVAL_REPO_TYPE_CIFS => 'cifs',
CFGOPTVAL_REPO_TYPE_POSIX => 'posix',
CFGOPTVAL_REPO_TYPE_S3 => 's3',
CFGOPTVAL_SORT_NONE => 'none',
CFGOPTVAL_SORT_ASC => 'asc',
CFGOPTVAL_SORT_DESC => 'desc',
CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE => 'pause',
CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE => 'promote',
CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN => 'shutdown',
CFGOPTVAL_BACKUP_TYPE_FULL => 'full',
CFGOPTVAL_BACKUP_TYPE_DIFF => 'diff',
CFGOPTVAL_BACKUP_TYPE_INCR => 'incr',
CFGOPTVAL_LOCAL_TYPE_DB => 'db',
CFGOPTVAL_LOCAL_TYPE_BACKUP => 'backup',
CFGOPTVAL_REMOTE_TYPE_DB => 'db',
CFGOPTVAL_REMOTE_TYPE_BACKUP => 'backup',
CFGOPTVAL_RESTORE_TYPE_NAME => 'name',
CFGOPTVAL_RESTORE_TYPE_TIME => 'time',
CFGOPTVAL_RESTORE_TYPE_XID => 'xid',
CFGOPTVAL_RESTORE_TYPE_PRESERVE => 'preserve',
CFGOPTVAL_RESTORE_TYPE_NONE => 'none',
CFGOPTVAL_RESTORE_TYPE_IMMEDIATE => 'immediate',
CFGOPTVAL_RESTORE_TYPE_DEFAULT => 'default',
CFGOPTVAL_RESTORE_TYPE_STANDBY => 'standby',
CFGDEF_TYPE_BOOLEAN => 0,
CFGDEF_TYPE_FLOAT => 1,
CFGDEF_TYPE_HASH => 2,
CFGDEF_TYPE_INTEGER => 3,
CFGDEF_TYPE_LIST => 4,
CFGDEF_TYPE_PATH => 5,
CFGDEF_TYPE_SIZE => 6,
CFGDEF_TYPE_STRING => 7,
ENCODE_TYPE_BASE64 => 0,
CIPHER_MODE_ENCRYPT => 0,
CIPHER_MODE_DECRYPT => 1,
}
}
# Export function and constants
sub libcAutoExportTag
{
return
{
checksum =>
[
'pageChecksum',
],
config =>
[
'CFGOPTVAL_INFO_OUTPUT_TEXT',
'CFGOPTVAL_INFO_OUTPUT_JSON',
'CFGOPTVAL_LS_OUTPUT_TEXT',
'CFGOPTVAL_LS_OUTPUT_JSON',
'CFGOPTVAL_REPO_CIPHER_TYPE_NONE',
'CFGOPTVAL_REPO_CIPHER_TYPE_AES_256_CBC',
'CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_FULL',
'CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_DIFF',
'CFGOPTVAL_REPO_RETENTION_ARCHIVE_TYPE_INCR',
'CFGOPTVAL_REPO_TYPE_CIFS',
'CFGOPTVAL_REPO_TYPE_POSIX',
'CFGOPTVAL_REPO_TYPE_S3',
'CFGOPTVAL_SORT_NONE',
'CFGOPTVAL_SORT_ASC',
'CFGOPTVAL_SORT_DESC',
'CFGOPTVAL_RESTORE_TARGET_ACTION_PAUSE',
'CFGOPTVAL_RESTORE_TARGET_ACTION_PROMOTE',
'CFGOPTVAL_RESTORE_TARGET_ACTION_SHUTDOWN',
'CFGOPTVAL_BACKUP_TYPE_FULL',
'CFGOPTVAL_BACKUP_TYPE_DIFF',
'CFGOPTVAL_BACKUP_TYPE_INCR',
'CFGOPTVAL_LOCAL_TYPE_DB',
'CFGOPTVAL_LOCAL_TYPE_BACKUP',
'CFGOPTVAL_REMOTE_TYPE_DB',
'CFGOPTVAL_REMOTE_TYPE_BACKUP',
'CFGOPTVAL_RESTORE_TYPE_NAME',
'CFGOPTVAL_RESTORE_TYPE_TIME',
'CFGOPTVAL_RESTORE_TYPE_XID',
'CFGOPTVAL_RESTORE_TYPE_PRESERVE',
'CFGOPTVAL_RESTORE_TYPE_NONE',
'CFGOPTVAL_RESTORE_TYPE_IMMEDIATE',
'CFGOPTVAL_RESTORE_TYPE_DEFAULT',
'CFGOPTVAL_RESTORE_TYPE_STANDBY',
'CFGCMD_ARCHIVE_GET',
'CFGCMD_ARCHIVE_GET_ASYNC',
'CFGCMD_ARCHIVE_PUSH',
'CFGCMD_ARCHIVE_PUSH_ASYNC',
'CFGCMD_BACKUP',
'CFGCMD_CHECK',
'CFGCMD_EXPIRE',
'CFGCMD_HELP',
'CFGCMD_INFO',
'CFGCMD_LOCAL',
'CFGCMD_LS',
'CFGCMD_REMOTE',
'CFGCMD_RESTORE',
'CFGCMD_STANZA_CREATE',
'CFGCMD_STANZA_DELETE',
'CFGCMD_STANZA_UPGRADE',
'CFGCMD_START',
'CFGCMD_STOP',
'CFGCMD_VERSION',
'CFGOPT_ARCHIVE_ASYNC',
'CFGOPT_ARCHIVE_CHECK',
'CFGOPT_ARCHIVE_COPY',
'CFGOPT_ARCHIVE_GET_QUEUE_MAX',
'CFGOPT_ARCHIVE_PUSH_QUEUE_MAX',
'CFGOPT_ARCHIVE_TIMEOUT',
'CFGOPT_BACKUP_STANDBY',
'CFGOPT_BUFFER_SIZE',
'CFGOPT_CHECKSUM_PAGE',
'CFGOPT_CMD_SSH',
'CFGOPT_COMMAND',
'CFGOPT_COMPRESS',
'CFGOPT_COMPRESS_LEVEL',
'CFGOPT_COMPRESS_LEVEL_NETWORK',
'CFGOPT_CONFIG',
'CFGOPT_CONFIG_INCLUDE_PATH',
'CFGOPT_CONFIG_PATH',
'CFGOPT_DB_INCLUDE',
'CFGOPT_DB_TIMEOUT',
'CFGOPT_DELTA',
'CFGOPT_EXCLUDE',
'CFGOPT_FILTER',
'CFGOPT_FORCE',
'CFGOPT_HOST_ID',
'CFGOPT_LINK_ALL',
'CFGOPT_LINK_MAP',
'CFGOPT_LOCK_PATH',
'CFGOPT_LOG_LEVEL_CONSOLE',
'CFGOPT_LOG_LEVEL_FILE',
'CFGOPT_LOG_LEVEL_STDERR',
'CFGOPT_LOG_PATH',
'CFGOPT_LOG_SUBPROCESS',
'CFGOPT_LOG_TIMESTAMP',
'CFGOPT_MANIFEST_SAVE_THRESHOLD',
'CFGOPT_NEUTRAL_UMASK',
'CFGOPT_ONLINE',
'CFGOPT_OUTPUT',
'CFGOPT_PG_HOST',
'CFGOPT_PG_HOST2',
'CFGOPT_PG_HOST3',
'CFGOPT_PG_HOST4',
'CFGOPT_PG_HOST5',
'CFGOPT_PG_HOST6',
'CFGOPT_PG_HOST7',
'CFGOPT_PG_HOST8',
'CFGOPT_PG_HOST_CMD',
'CFGOPT_PG_HOST_CMD2',
'CFGOPT_PG_HOST_CMD3',
'CFGOPT_PG_HOST_CMD4',
'CFGOPT_PG_HOST_CMD5',
'CFGOPT_PG_HOST_CMD6',
'CFGOPT_PG_HOST_CMD7',
'CFGOPT_PG_HOST_CMD8',
'CFGOPT_PG_HOST_CONFIG',
'CFGOPT_PG_HOST_CONFIG2',
'CFGOPT_PG_HOST_CONFIG3',
'CFGOPT_PG_HOST_CONFIG4',
'CFGOPT_PG_HOST_CONFIG5',
'CFGOPT_PG_HOST_CONFIG6',
'CFGOPT_PG_HOST_CONFIG7',
'CFGOPT_PG_HOST_CONFIG8',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH2',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH3',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH4',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH5',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH6',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH7',
'CFGOPT_PG_HOST_CONFIG_INCLUDE_PATH8',
'CFGOPT_PG_HOST_CONFIG_PATH',
'CFGOPT_PG_HOST_CONFIG_PATH2',
'CFGOPT_PG_HOST_CONFIG_PATH3',
'CFGOPT_PG_HOST_CONFIG_PATH4',
'CFGOPT_PG_HOST_CONFIG_PATH5',
'CFGOPT_PG_HOST_CONFIG_PATH6',
'CFGOPT_PG_HOST_CONFIG_PATH7',
'CFGOPT_PG_HOST_CONFIG_PATH8',
'CFGOPT_PG_HOST_PORT',
'CFGOPT_PG_HOST_PORT2',
'CFGOPT_PG_HOST_PORT3',
'CFGOPT_PG_HOST_PORT4',
'CFGOPT_PG_HOST_PORT5',
'CFGOPT_PG_HOST_PORT6',
'CFGOPT_PG_HOST_PORT7',
'CFGOPT_PG_HOST_PORT8',
'CFGOPT_PG_HOST_USER',
'CFGOPT_PG_HOST_USER2',
'CFGOPT_PG_HOST_USER3',
'CFGOPT_PG_HOST_USER4',
'CFGOPT_PG_HOST_USER5',
'CFGOPT_PG_HOST_USER6',
'CFGOPT_PG_HOST_USER7',
'CFGOPT_PG_HOST_USER8',
'CFGOPT_PG_PATH',
'CFGOPT_PG_PATH2',
'CFGOPT_PG_PATH3',
'CFGOPT_PG_PATH4',
'CFGOPT_PG_PATH5',
'CFGOPT_PG_PATH6',
'CFGOPT_PG_PATH7',
'CFGOPT_PG_PATH8',
'CFGOPT_PG_PORT',
'CFGOPT_PG_PORT2',
'CFGOPT_PG_PORT3',
'CFGOPT_PG_PORT4',
'CFGOPT_PG_PORT5',
'CFGOPT_PG_PORT6',
'CFGOPT_PG_PORT7',
'CFGOPT_PG_PORT8',
'CFGOPT_PG_SOCKET_PATH',
'CFGOPT_PG_SOCKET_PATH2',
'CFGOPT_PG_SOCKET_PATH3',
'CFGOPT_PG_SOCKET_PATH4',
'CFGOPT_PG_SOCKET_PATH5',
'CFGOPT_PG_SOCKET_PATH6',
'CFGOPT_PG_SOCKET_PATH7',
'CFGOPT_PG_SOCKET_PATH8',
'CFGOPT_PROCESS',
'CFGOPT_PROCESS_MAX',
'CFGOPT_PROTOCOL_TIMEOUT',
'CFGOPT_RECOVERY_OPTION',
'CFGOPT_RECURSE',
'CFGOPT_REPO_CIPHER_PASS',
'CFGOPT_REPO_CIPHER_TYPE',
'CFGOPT_REPO_HARDLINK',
'CFGOPT_REPO_HOST',
'CFGOPT_REPO_HOST_CMD',
'CFGOPT_REPO_HOST_CONFIG',
'CFGOPT_REPO_HOST_CONFIG_INCLUDE_PATH',
'CFGOPT_REPO_HOST_CONFIG_PATH',
'CFGOPT_REPO_HOST_PORT',
'CFGOPT_REPO_HOST_USER',
'CFGOPT_REPO_PATH',
'CFGOPT_REPO_RETENTION_ARCHIVE',
'CFGOPT_REPO_RETENTION_ARCHIVE_TYPE',
'CFGOPT_REPO_RETENTION_DIFF',
'CFGOPT_REPO_RETENTION_FULL',
'CFGOPT_REPO_S3_BUCKET',
'CFGOPT_REPO_S3_CA_FILE',
'CFGOPT_REPO_S3_CA_PATH',
'CFGOPT_REPO_S3_ENDPOINT',
'CFGOPT_REPO_S3_HOST',
'CFGOPT_REPO_S3_KEY',
'CFGOPT_REPO_S3_KEY_SECRET',
'CFGOPT_REPO_S3_PORT',
'CFGOPT_REPO_S3_REGION',
'CFGOPT_REPO_S3_TOKEN',
'CFGOPT_REPO_S3_VERIFY_TLS',
'CFGOPT_REPO_TYPE',
'CFGOPT_RESUME',
'CFGOPT_SET',
'CFGOPT_SORT',
'CFGOPT_SPOOL_PATH',
'CFGOPT_STANZA',
'CFGOPT_START_FAST',
'CFGOPT_STOP_AUTO',
'CFGOPT_TABLESPACE_MAP',
'CFGOPT_TABLESPACE_MAP_ALL',
'CFGOPT_TARGET',
'CFGOPT_TARGET_ACTION',
'CFGOPT_TARGET_EXCLUSIVE',
'CFGOPT_TARGET_TIMELINE',
'CFGOPT_TYPE',
'cfgCommandName',
'cfgOptionIndex',
'cfgOptionIndexTotal',
'cfgOptionName',
],
configDefine =>
[
'CFGDEF_TYPE_BOOLEAN',
'CFGDEF_TYPE_FLOAT',
'CFGDEF_TYPE_HASH',
'CFGDEF_TYPE_INTEGER',
'CFGDEF_TYPE_LIST',
'CFGDEF_TYPE_PATH',
'CFGDEF_TYPE_SIZE',
'CFGDEF_TYPE_STRING',
'cfgCommandId',
'cfgDefOptionDefault',
'cfgDefOptionPrefix',
'cfgDefOptionSecure',
'cfgDefOptionType',
'cfgDefOptionValid',
'cfgOptionId',
'cfgOptionTotal',
],
crypto =>
[
'CIPHER_MODE_ENCRYPT',
'CIPHER_MODE_DECRYPT',
'cryptoHashOne',
],
debug =>
[
'libcUvSize',
],
encode =>
[
'ENCODE_TYPE_BASE64',
'decodeToBin',
'encodeToStr',
],
lock =>
[
'lockAcquire',
'lockRelease',
],
random =>
[
'cryptoRandomBytes',
],
storage =>
[
'storageRepoFree',
],
test =>
[
'cfgParseTest',
],
}
}
1;