Adjust help messages to configuration changes
Refs:#3934
Fix a PEP8 issue
Adjust all command specs to multicloud/singleauth
Refs: #3934
Make sure user and history commands work fine
Adjust config cli commands to serve remotes
config set remote.smth.option value inserts option=value in remote smthconfig get remote.smth lists the contents (key=val) of remote smthconfig delete remote.smth.option deletes this specific option from the remote smth...
Decide a cloud term, use it if no cloud.url
Implement remotes support in Config and cli init
In Config:
Simplify guess_version heuristics (check if the following exist: global.url/token, remote-defaults)Trasnlate files 'remote "name"' to 3-level dict and backImplement rescue_old_file to convert config files to v3.0...
Plan Config changes (rescue_old_file, translates)
rescue_old_file: mines info from old config file to use them in new filetranslates: remote "smth" --> 'remote': {'smth': ... global.{url, token} --> remote.default.{url, token} <command>.cli --> global.command_cli...
Implement Config.guess_version for config files
Implement the Config.guess_version method
A. Hardcode the new kamaki config file
Breaks compatibility, implements a remotes-based config file
Backwards compatibility for configuraiton file
Compatible with kamaki config files v2
user.url, file.url, compute.url and image.urlare now valid and of higher priority toastakos.url, pithos.url, cyclades.url, plankton.urlwhich are also valid
All these are ignored iff [global].auth_url is given
Fix typos in default and expected values
Handle url proccessing even if url is unicode
Also, fix typos and default values for service configurations
Fix typo in astakos client: version_id-->versionId
Adjust cached auth info reading to recent changes
Fix typos in user command flow
Apply servce.url options to cross-sercice calls
Refs: #3874
Let cross-service initializations to use explicit service endpoint urls ifthere is no single authentication url.- In Image commands, there are calls that use astakos and pithos clients- In pithos there are calls that use astakos client
Use explicitely set services urls if no auth_url
In current configuration, kamaki checks for auth_url. If that fails,it raises an error. If it is not set, it prints a warning and attemptsto read the <service>.url option from the configuration file....
Implement --cloud arg to switch between clouds
Refs: #3913
Config file can (optionaly) contain:
[remotes] example = https://www.example.org/astakos/identity/v2.0/ old_version = https://www.example.org/astakos/identity/v1.0/ ...
Now, user can explicitely request for a remote cloud authentication URI:...
Get endpoint urls for all CLI operations
Use kamaki.clients.astakos.AstakosClient as a cached astakos client to getuser information and, most importantly, endpoints. Allow users to authenticatemultiple tokens on the same session. In every session there must be at most...
Create config file version 3
Minimum config file:[global]token = <user token>
Changes:
- Only one field "cli" for user command specs, to map command groups to CLIs:
[cli] user = astakos file = pithos server = cyclades...
- Specify client services/apis and versions....
Enrich/rename astakos client calls with endpoints
Kamaki.clients.astakos.AstakosClient is now a high-level client lib thatoffers access to token-authenticated astakos-aquired cached information.Users who need an astakos client should use the snf-astakosclient instead....
Merge branch 'feature-expose-astakosclient' into develop
Merge branch 'feature-osv2-compatibility' into develop
Expose some basix astakosclient methods to cli
Methods exposed:
get_user_info as authenticateget_uuid[s] as uuidget_username[s] as usernameget_quotas as quotasservices_get_uuid[s]/username[s]/quotas as service uuid/username/quotas
Adjust astakos authenticate to snf-0.14 url sheme
Setup a snf-astakos command set
Update config file version tag
Fix typo in kamak.cli.logger import
Rename meta-->metadata and remove values @CLI
Refs: #3633
Rename meta-->metadata and remove values @lib
- Meta-->metadata in some cases, according to the expected cyclades API- remove values level from requests and responses @ cyclades lib
Fix expected "public" header params in tests
Add metadata management to image register
- validate image metadata format- read metadata from file- merge file-loaded metadata with runtimes- store metadata file on pithos, check existance, overwrite with f raise helpful error messages when there fail...
Use _format_image_headers: image_register,get_meta
- Ensure uniform image meta output- Easy to apply the correct meta format
Refs: #3797
Restore thread-wait for append
Fix typo (permition --> permission)
Merge branch 'feature-json-output' into develop
Conflicts: Changelog kamaki/cli/commands/image.py
Also, take care of pep8 issues
Fix typo in pithos upload output
Wait threads to finish in pithos append_object
Implement an optional json output 4 outputing cmds
Refs: #3732
Add json/optional output to astakos cmds
Add json/optional responses to flavor/network cmds
Add json/optional outputs to server commands
Do not unpublish by default @ pithos rest calls
Refs: #3780
Update and enrich error messages in image register
Parse ivalid property file and guide users to correct itGuide users to pass valid container:path parameters
Refs:#3769
Print full and nice response in image register
Do not recalculate #blocks in upload_from_string
Refs: #3608
Make sure registered properties are unique
Refs: #3769
Store image properties after image registration
Log of changes:- Properties are stored in a remote file on Pithos+- File name is <image-file>.meta- Feature can be switched off with --no-property-file-upload- If remote property file exists, registration is aborted...
Optionaly load images properties from file
Update documentation to reflect changes in output
Refs: #3756
Apply option outputs to image commands + renames
- Add image.add_member missing content-length header- Rename image-[add|del]member commands to members-[add|delete]- Remove update option from image-register- In image-compute split properties to properties-list and properties-get...
Apply optional output to kamaki file commands
Apply the feature wherever is applicableGeneralize the feature by moving the corresponding code to _command_init
Update file operations and their output
Refs: #3756 #3732
- Add optional output for file methods: mkdir, touch, create, move, create, copy, move, append, delete, purge, info, meta, upload - Transliterate permissions and metadata methods to apear as get/set/delete...
Add output to file copy/move
Also, kamaki.clients.pithos.copy/move_object returns response headers
Add output support to create methods
In kamaki.clients-------------------- storage.create_directory returns response headers- implement pithos.create_container
In kamaki.cli.pithos-------------------- add flag --with_output for optional output...
Add json formated output for file list
- Implement a print_json auxiliary method in kamaki.cli.utils- Add a (j, --json) flag to file list When -j or --json flag is on, only json is printed
Update changelog, unittests for upload_from_string
Functional test and debug for upload_from_string
Implement upload_from_string
Implemented with threads
Optimize download_to_string by using threads
Implement download_to_string in pithos client
The download_to_string method downloads a remote object from pithos into astring, which is then returned.
Also, implemented unit and functional tests. Changelog is updated
Allow copy of deleted objects by refering to older
Also disallow moving deleted objects by version The later was implemented byaccident, due to the symetry between move and copy
Refs: #3737
Fix typo dst_path instead of ds_path
Refs: 3737
Add enumeration as optional for all list cmds
Refs: #3739
Restore 2nd level command sysntax in shell
Refs: #3736
Cache container info request per upload session
Refs: #3735
Adjust pithos livetest to use container_info_cache
Refs: #3707
Update unitest to include container_info_cache
Refs: 3707
Add a container_infor_cache param to upload_object
Each upload involves a request that retrieves block size and hash information.In higher level applications, this request is redudant after the first upload.This feature allows higher level operations to cache retrieved container info...
Add a -l option to upload: list uploaded details
If the upload is successfull, if the -l or --details argument is present,kamaki lists all uploaded objects with all details returned by the server(e.g. object version, date of creation, etc)
Refs: #3730
Update livetest for upload return modification
Refs: #3656
Modify upload methods to return created obj info
Methods affected: upload_object upload_object_unchunked upload_object_by_manifestation
unittests modified accordingly
Implement purging a non-empty container
kamaki file purge <container> -F
will automatically empty a container before purging it
Refs: #3662
Implement livetest for image unregister
Refs: #3728
Expose image-unregister to cli and unittest it
Implement image unregister in kamaki.clients
Allow runtime args when invoking interactive shell
Refs: #3716
Behavior After This:kamaki -XXX -YY ... parses -XXX -YYIf not recognized: syntax errorIf recognized, group them into shell args (e.g. -h) and command args (e.g. -d)Whenever a command is run in this shell instance, apply the command args...
Raise a descriptive error for misconfigured cmds
Refs: #3663
A command group that is declared in the config file is not supportedby valid command specification code or the specification code is notpointed at by <command>.cli configure variable
Log initial call arguments in first log
Merge branch 'feature-logging' into develop
Move logger module to kamaki.cli
Make kamaki.clients unware of kamaki.logger
use logging for getting the loggers
Stop shell from destroying config instance
This caused warnings about preset variables
Update Changelog to reflect #3715 changes
Allow activation/deactivation of specific loggers
refs: #3715Logger settings are not aborted and will be restored at deactivation
Also, remove all logger creation functionality from kamaki.clientsA file or stream logger should be created an the kamaki.clients caller side...
Remove log redaduncy when logging in a file
Use < and > in stream logger for send/recv resp.
Globalize logger usage
Unsolved bug: redudant info in logfile
Wipe logger add_file_logger
Fix typo in _create_or_get_missing_hashes call
Honour if_(none_)match even if all blocks are up
Refs: bug #3708
Expand logger to support stream logging, simplify
Adjust expected values in fanctional client tests
Make containerlimit set/get aware of 0==unlimited
containerlimit set -h will tell users to use 0 for unlimitedcontainerlimit get will print "unlimited" if received a 0 value
Alow uploading to container with limit 0
Container limit 0 means "unlimited"
Move addproperty from image to image compute
Fix typo with --config and --property args (#3658)