The commandline client is a commandline tool for using the reference clients.It currently supports the operations GetFile, GetFileIDs, GetChecksums, PutFile, DeleteFile and ReplaceFile.
Installation
Requires java 8 and perl is install to run on Linux and Mac.
Requires java8 to run on Windows.
Download the chosen version of the bitrepository-command-line-XXX-distributed.tar.gz from here (XXX refers to the version):
https://sbforge.org/nexus/content/repositories/releases/org/bitrepository/reference/bitrepository-client/. The latest devel client can be found here.
Unpack the file in any wanted location, eg.
tar -xvf bitrepository-command-line-XXX-distributed.tar.gz
It requires a 'conf' sub-directory to the installation which contain all the settings, etc. for the setup of the collection. This can be done in either of the two ways:
- Create the 'conf' directory and copy all the settings file into it.
- Make a symbolic link to the 'conf' directory for the webclient or the services in the collection (e.g. 'ln -s /my/bitrepository/services/conf).
Certificate
If secure communication is used for this bit repository, a client certificate needs to be define. In this case the client expects to find a certificate name client-certificate.pem
in the conf folder. Either name the certificate client-certificate.pem
directly or create a symlink to the certificate.
Execute
The different commands can be run with the bitmag.sh script (bitmag.cmd on windows). Eg.
./bitmag.sh get-checksums -c test1
Will fetch the checksums for the test1 collection.
get-file
Retrieves a file. It takes the following arguments:
[MANDATORY] The id of the file to.
[MANDATORY] -c The id for the collection to retrieve the file for.
[OPTIONAL] -p The id of the pillar where the file should be retrieved from. If no argument, then the file will be retrieved from the fastest pillars.
[OPTIONAL] -l The location where the file should be placed (either total path or directory). If no argument, then in the directory where the script is located.
get-file-ids
Get the list of files in a collection 'get-file-ids.sh' command. It takes the following arguments:
[MANDATORY] -c The id for the collection to retrieve the file for.
[OPTIONAL] -i The id of the file to retrieve. If no such argument, then the id of all files are retrieved.
- [OPTIONAL] -p The id of the pillar where the id should be retrieved.
get-checksums
Lists the checksum for the files in the indicated collection. It takes the following arguments:
[MANDATORY] -c The id for the collection to retrieve checksums from.
[OPTIONAL] -i The id of the file to retrieve the checksum from. If no such argument, then the checksums of all files are retrieved.
- [OPTIONAL] -p The id of the pillar to retrieve checksums from.
[OPTIONAL] -S The salt of checksum to request in the response. Requires the -R ChecksumType (algorithm) argument with a salt type algorithm.
[OPTIONAL] -R The algorithm of checksum to request in the response from the pillars. Allowed values are: MD5, SHA1, SHA256, SHA384, SHA512. If using a salt, prefix the listed types with HMAC_, eg. HMAC_MD5.
put-file
Puts a file into a collection. It takes the following arguments:
[MANDATORY] -c The id for the collection to place the the file in.
- -f The path to the file, which is wanted to be put.
- -u The URL where the file can be downloaded.
- [MANDATORY] Most have either -f or -u arguments, though never both.
- -C The checksum of the new file
- -C is required, if -u argument is used, and optional if -f is used.
- -i The id for the file to perform the operation on.
- -i is required, if -u argument is used, and optional if -f is used.
[OPTIONAL] -S The salt of checksum to request in the response. Requires the -R ChecksumType argument.
[OPTIONAL] -R The algorithm of checksum to request in the response from the pillars. Allowed values are: MD5, SHA1, SHA256, SHA384, SHA512. If using a salt, prefix the listed types with HMAC_, eg. HMAC_MD5.
- [OPTIONAL] -p The pillar to put the file at. If left out, then the file is put to all pillars.
- [OPTIONAL] -d For removing the file from the file-server after the put-file operation is completed.
delete
Deletes a file in the bitrepository. It takes the following arguments:
[MANDATORY] -p The id of the pillar where the file should be delete.
- [MANDATORY] -i The id for the file to perform the operation on
[MANDATORY] -c The id for the collection to place the the file in.
[MANDATORY] -C The checksum of the file to be delete (in the collection default checksum specificiation).
[OPTIONAL] -S The salt of checksum to request in the response. Requires the -R ChecksumType (algorithm) argument with a salt type algorithm.
[OPTIONAL] -R The algorithm of checksum to request in the response from the pillars. Allowed values are: MD5, SHA1, SHA256, SHA384, SHA512. If using a salt, prefix the listed types with HMAC_, eg. HMAC_MD5.
replace-file
Replaces a file in the bitrepository with the provided file. It takes the following arguments:
[MANDATORY] -c The id for the collection to perform the operation on
[MANDATORY] -C The checksum of the file to be replaced.
[MANDATORY] -p The id of the pillar where the should be performed.
- -f The path to the new file for the replacement.
- -u The URL where the replacement file can be downloaded.
- [MANDATORY] Most have either -f or -u arguments, though never both.
- -r The checksum of the new file
- -r is required, if -u argument is used, and optional if -f is used.
- -i The id for the file to perform the operation on.
- -i is required, if -u argument is used, and optional if -f is used.
- -R [OPTIONAL] The algorithm of checksum to request in the response from the pillars. Allowed values are: MD5, SHA1, SHA256, SHA384, SHA512. If using a salt, prefix the listed types with HMAC_, eg. HMAC_MD5.
- -S [OPTIONAL] The salt of checksum to request in the response. Requires the -R ChecksumType (algorithm) argument with a salt type algorithm.