tape-admin: extended functionality

* check_prerequisites(): test for needed helper programs
* get_mediapool_names(): introduce new function
* get-lastwrite(): introduce new function
* get_poolmember_next(): handle selection of next tape
* mount(): handle ltfs and mtx calls in a correct order
* mount_tape(): check that mounted tape is member of selected mediapool
* ltfs_label(): use mkltfs to format and partitionin a given tape
* update_lastwrite()
* update_retensiondate()
* date_iso_to_seconds(): parse and format date-string
* date_seconds_to_iso(): parse and format date-string
* date_string_to_iso(): parse and format date-string
* typo cleanups
* update sample MediaPools.json file

Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
2018-08-27 11:38:56 +02:00
parent 3a33a8f83e
commit 86b3873651
3 changed files with 806 additions and 137 deletions

View File

@@ -32,6 +32,8 @@ DOC_DIR = $(DESTDIR)$(PREFIX)/share/doc/$(PKGNAME)
install:
@./find_snapper_config || sed -i 's@^SNAPPER_CONFIG=.*@SNAPPER_CONFIG='$(SNAPPER_CONFIG)'@g' bin/$(PKGNAME)
@install -Dm755 bin/* -t $(BIN_DIR)/
@install -Dm644 etc/* -t $(DESTDIR)/$(ETC_DIR)/
@install -Dm644 $(SNAPPER_TEMPLATES)/* -t $(DESTDIR)/$(SNAPPER_TEMPLATES)/
@install -Dm644 $(DSNAP_SYNC_EXAMPLES)/* -t $(DESTDIR)/$(DOC_DIR)/
@install -dm755 $(ETC_DIR)/dsnap-sync
@install -Dm644 etc/dsnap-sync/* -t $(ETC_DIR)/dsnap-sync/
@install -dm755 $(ETC_DIR)/snapper/config-templates
@install -Dm644 etc/snapper/config-templates/* -t $(ETC_DIR)/snapper/config-templates/
@install -Dm644 $(DSNAP_SYNC_EXAMPLES)/* -t $(DOC_DIR)/

File diff suppressed because it is too large Load Diff

View File

@@ -1,32 +1,38 @@
{
"MediaPools": "Daywalker-Pools",
"MediaPool": [
{
"_comment": "MediaPool append",
"Name": "Pool 1",
"Member":[
{ "VolumeName": "Tape-0001", "VolumeId": "000001", "MediaPolicy": "append" },
{ "VolumeName": "Tape-0002", "VolumeId": "000002", "MediaPolicy": "append" },
{ "VolumeName": "Tape-0003", "VolumeId": "000003", "MediaPolicy": "append" },
{ "VolumeName": "Tape-0004", "VolumeId": "000004", "MediaPolicy": "append" },
{ "VolumeName": "Tape-0005", "VolumeId": "000005", "MediaPolicy": "append" },
{ "VolumeName": "Tape-0006", "VolumeId": "000006", "MediaPolicy": "append" },
{ "VolumeName": "Tape-0007", "VolumeId": "000007", "MediaPolicy": "append" },
{ "VolumeName": "Tape-0008", "VolumeId": "000008", "MediaPolicy": "append" }
]
},
{
"_comment": "MediaPool overwrite",
"Name": "Pool 2",
"Member":[
{ "VolumeName": "Tape-0009", "VolumeId": "000001", "MediaPolicy": "overwrite", "RetensionDate": "20182324T000000", "LastWrite": "20182224T09000" },
{ "VolumeName": "Tape-0010", "VolumeId": "000002", "MediaPolicy": "overwrite", "RetensionDate": "20182324T000000", "LastWrite": "20182224T09000" },
{ "VolumeName": "Tape-0011", "VolumeId": "000003", "MediaPolicy": "overwrite", "RetensionDate": "20182324T000000", "LastWrite": "20182224T09000" },
{ "VolumeName": "Tape-0012", "VolumeId": "000004", "MediaPolicy": "overwrite", "RetensionDate": "20182324T000000", "LastWrite": "20182224T09000" },
{ "VolumeName": "Tape-0013", "VolumeId": "000005", "MediaPolicy": "overwrite", "RetensionDate": "20182324T000000", "LastWrite": "20182224T09000" },
{ "VolumeName": "Tape-0014", "VolumeId": "000006", "MediaPolicy": "overwrite", "RetensionDate": "20182324T000000", "LastWrite": "20182224T09000" },
{ "VolumeName": "Tape-0015", "VolumeId": "000007", "MediaPolicy": "overwrite", "RetensionDate": "20182324T000000", "LastWrite": "20182224T09000" }
]
}
]
{
"version": "0.0.4",
"_comment": "MediaPolicy: append, overwrite; Date values in UTC",
"MediaPools": "Media-Pools",
"MediaPool": [
{
"Name": "Pool-1",
"DefaultRetensionDays": "0",
"Tape-Type": "LTO7",
"_comment": "MediaPool append",
"Member": [
{ "VolumeName": "Tape-0001", "VolumeId": "000001", "Slot": "1", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0002", "VolumeId": "000002", "Slot": "2", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0003", "VolumeId": "000003", "Slot": "3", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0004", "VolumeId": "000004", "Slot": "4", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0005", "VolumeId": "000005", "Slot": "5", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0006", "VolumeId": "000006", "Slot": "6", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0007", "VolumeId": "000007", "Slot": "7", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0008", "VolumeId": "000008", "Slot": "8", "MediaPolicy": "append", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" }
]
},
{
"Name": "Pool-2",
"DefaultRetensionDays": "7",
"Tape-Type": "LTO7",
"_comment": "MediaPool overwrite",
"Member": [
{ "VolumeName": "Tape-0009", "VolumeId": "000009", "Slot": "9", "MediaPolicy": "overwrite", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0010", "VolumeId": "000010", "Slot": "10", "MediaPolicy": "overwrite", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0011", "VolumeId": "000011", "Slot": "11", "MediaPolicy": "overwrite", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0012", "VolumeId": "000012", "Slot": "12", "MediaPolicy": "overwrite", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0013", "VolumeId": "000013", "Slot": "13", "MediaPolicy": "overwrite", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0014", "VolumeId": "000014", "Slot": "14", "MediaPolicy": "overwrite", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" },
{ "VolumeName": "Tape-0015", "VolumeId": "000015", "Slot": "15", "MediaPolicy": "overwrite", "RetensionDate": "20180824000000", "LastWrite": "20180824000000" }
]
}
]
}