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:
8
Makefile
8
Makefile
@@ -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)/
|
||||
|
||||
867
bin/tape-admin
867
bin/tape-admin
File diff suppressed because it is too large
Load Diff
@@ -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" }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user