|
152 | 152 | SPEC_S3_ENDPOINT,
|
153 | 153 | SPEC_S3_BUCKET,
|
154 | 154 | SPEC_S3_PATH,
|
| 155 | + SPEC_S3_BACKUP_NAME, |
| 156 | + SPEC_S3_RESTORE_NAME, |
155 | 157 | SPEC_BACKUP,
|
156 | 158 | SPEC_BACKUP_MANUAL,
|
157 | 159 | SPEC_BACKUP_TRIGGER_ID,
|
|
295 | 297 | BARMAN_BACKUP_END = "end_time"
|
296 | 298 | BARMAN_BACKUP_ID = "backup_id"
|
297 | 299 | BARMAN_BACKUP_SIZE = "size"
|
| 300 | +BARMAN_BACKUP_NAME = "BARMAN_BACKUPNAME" |
298 | 301 | BARMAN_STATUS_DEFAULT_NEED_FIELD = ["backup_id", "begin_time", "end_time", "begin_xlog", "end_xlog"]
|
299 | 302 | BARMAN_TIME_FORMAT = "%a %b %d %H:%M:%S %Y"
|
300 | 303 | ### end
|
@@ -1610,9 +1613,17 @@ def get_oldest_backupid(backup_info: TypedDict) -> str:
|
1610 | 1613 | return backupid
|
1611 | 1614 |
|
1612 | 1615 |
|
1613 |
| -def get_s3_env(s3: TypedDict) -> List: |
| 1616 | +def get_s3_env(meta: kopf.Meta, s3: TypedDict) -> List: |
1614 | 1617 | res = list()
|
1615 | 1618 |
|
| 1619 | + name = meta["name"] |
| 1620 | + if SPEC_S3_BACKUP_NAME in s3: |
| 1621 | + name = s3.pop(SPEC_S3_BACKUP_NAME) |
| 1622 | + if SPEC_S3_RESTORE_NAME in s3: |
| 1623 | + name = s3.pop(SPEC_S3_RESTORE_NAME) |
| 1624 | + res.append("-e") |
| 1625 | + res.append(BARMAN_BACKUP_NAME + '="' + name + '"') |
| 1626 | + |
1616 | 1627 | # use SPEC_S3 prefix replace S3 key (must use S3_ prefix)
|
1617 | 1628 | for k in list(s3.keys()):
|
1618 | 1629 | old = k
|
@@ -1668,7 +1679,8 @@ def restore_postgresql_froms3(
|
1668 | 1679 |
|
1669 | 1680 | # add s3 env by pgtools -e
|
1670 | 1681 | s3 = spec[SPEC_S3].copy()
|
1671 |
| - s3_info = get_s3_env(s3) |
| 1682 | + s3.pop(SPEC_S3_BACKUP_NAME, None) |
| 1683 | + s3_info = get_s3_env(meta, s3) |
1672 | 1684 |
|
1673 | 1685 | tmpconns: InstanceConnections = InstanceConnections()
|
1674 | 1686 | tmpconns.add(conn)
|
@@ -1901,7 +1913,8 @@ def backup_postgresql_to_s3(
|
1901 | 1913 |
|
1902 | 1914 | # add s3 env by pgtools
|
1903 | 1915 | s3 = spec[SPEC_S3].copy()
|
1904 |
| - s3_list = get_s3_env(s3) |
| 1916 | + s3.pop(SPEC_S3_RESTORE_NAME, None) |
| 1917 | + s3_list = get_s3_env(meta, s3) |
1905 | 1918 |
|
1906 | 1919 | backup_policy = spec.get(SPEC_BACKUP, {}).get(SPEC_BACKUP_POLICY, {})
|
1907 | 1920 | policy_list = get_policy_env(backup_policy)
|
@@ -3579,7 +3592,7 @@ def correct_s3_profile(
|
3579 | 3592 | ) -> None:
|
3580 | 3593 | if is_s3_manual_backup_mode(meta, spec, patch, status, logger) or is_s3_cron_backup_mode(meta, spec, patch, status, logger):
|
3581 | 3594 | s3 = spec[SPEC_S3].copy()
|
3582 |
| - s3_info = get_s3_env(s3) |
| 3595 | + s3_info = get_s3_env(meta, s3) |
3583 | 3596 | readwrite_conns = connections(spec, meta, patch,
|
3584 | 3597 | get_field(POSTGRESQL, READWRITEINSTANCE),
|
3585 | 3598 | False, None, logger, None, status, False)
|
|
0 commit comments