52 Commits

Author SHA1 Message Date
Steve Martinelli
0ef8535036 translate all command help strings
Leverage the new cliff command class attribute (_description)
to get the help of a command, this allows us to mark strings
for translation. We could not do this before since the help
was grabbed from the docstring.

This also depends on a new release of cliff and a bump to the
minimum level in osc's requirements.

Closes-Bug: 1636209
Depends-On: Id915f6aa7d95a0ff3dc6e2ceaac5decb3f3bf0da
Change-Id: I8673080bb5625e8e3c499feaefd42dfc7121e96f
2016-11-17 02:33:42 +00:00
Rajasi Kulkarni
28b66459db Add translation markers for object commands
None of the help messages for the object commands
are marked for translation. This patch adds the
necessary support.

Co-Authored-By: Steve Martinelli <s.martinelli@gmail.com>
Change-Id: Ibf472d8f7d5ab6c876f60cddcab8833b28f042e0
2016-09-26 22:52:14 -04:00
Rajasi Kulkarni
78312ca9af Add option "--name" to command "openstack object create"
Option "--name" can be used to set as the object name of
the file to be uploaded in the container. Similar to option
"--object-name" in command "swift upload". Added unit test case
to ensure an exception is raised when using option "--name" for
uploading multiple objects.

Change-Id: Ied7827841f6ca1cf9d4b48e304cbe5d62eda38ab
Closes-Bug: #1607972
2016-09-26 22:42:10 -04:00
zheng yin
9912fdd7ff Add default limit for container/object
Default container name length less than or equal to 256 in link[1],
as the same time,default object name length less than or equal to 1024
in link[2]. Thereforce, I check the length of container and object in take_action.
and if it's greater than 256/1024 I warn the user.

[1] https://github.com/openstack/swift/blob/master/swift/common/constraints.py#L39
[2] https://github.com/openstack/swift/blob/master/swift/common/constraints.py#L35

Change-Id: I304b77cbc464eaba041321654cc29248cbe4b9a6
2016-09-26 20:42:26 +08:00
Dean Troyer
6a15f90dae osc-lib: shell
Convert to using ClientManager and OpenStackShell from osc-lib.
* Change all internal uses of ClientManager private attributes that are
  now public in osc-lib's ClientManager.  Leave back-compat copies in
  place in OSC's clientManager so we don't break plugins.
* Put some work-arounds in place for changes in osc-lib that we need until
  a new release makes it through the g-r and u-c change process.
* Add a test for Unicode decoding of argv in shell.main() to parallel
  the one in osc-lib.

Change-Id: I85289740d4ca081f2aca8c9b40ec422ad25d302c
2016-08-05 13:48:55 -05:00
shizhihui
f996138a0d Standardize import format
According to the rule in
http://docs.openstack.org/developer/hacking/#imports
I modify some irregular import format.

Change-Id: Ibf29ccaf3ddec4a956334cc3368ebee7a66e282c
2016-07-22 19:24:02 +08:00
Dean Troyer
9e2b8e6730 osc-lib: command
Leave command.py and test_command.py as a sanity check during the
deprecation period.

Change-Id: I24e1b755cbfbcbcaeb5273ec0c9706b82384fc85
2016-06-13 11:00:22 -05:00
Dean Troyer
be192676bd osc-lib: parseractions
Leave parseractions.py and test_parseractions.py as a sanity check during the
deprecation period.

Change-Id: I1a7469b6d872284e0276502a1a287bc0b87f8f83
2016-06-13 10:55:44 -05:00
Dean Troyer
e5e29a8fef osc-lib: utils
Use osc-lib directly for utils.

Leave openstackclient.common.utils for deprecation period.

Change-Id: I5bd9579abc4e07f45219ccd0565626e6667472f7
2016-06-13 10:50:44 -05:00
TerryHowe
514a168656 Add recursive object delete for containers
Change-Id: Ib291e79864c218464e842a08efd3742193ba5ff0
2016-02-05 11:18:46 -07:00
Akihiro Motoki
258c1102cc log take_action parameters in a single place
Previously each command logs take_action parameters explicitly
by using @utils.log_method decorator or log.debug().
Some commands have no logging.

This commit calls a logger in the base class and
drops all logging definition from individual commands.

Closes-Bug: #1532294
Change-Id: I43cd0290a4353c68c075bade9571c940733da1be
2016-02-02 09:58:32 +09:00
zhurong
b29947449a Delete the unused LOG configure code
Delete the unused LOG configure code and import code

Change-Id: I1fb0cacfe44b6a2fd4e4b3f504b6d1dec055c5c4
2016-01-05 02:47:12 -05:00
Steve Martinelli
1f8b814628 Fix up object-store show commands
1) Change metadata to appear under a common 'properties' key, and
use the utility to format them, this applied to object, account
and container.

2) Clean up container and object output, which were setting the
x-container-meta-owner property, but this is metadata only for
the container, so it's pointless to have, removed it.

3) Container show was showing read/write ACLs and sync stuff, but
these are not being returned by my swift by default, so I moved
these to be checks, so we don't clutter the output.

Change-Id: Ife7521fe9c2724035b06963c118bd6016ba2f5b5
2015-10-10 11:48:07 -04:00
Steve Martinelli
e48c7afee4 add set/unset support for objects in object store
add docs and command support to set and unset metadata of objects
that are stored in an object store (swift).

Closes-Bug: #1501945

Change-Id: If838a4b3343b6ddb97cd4bd1cb63f0ba1c1a00a1
2015-10-06 00:52:24 -04:00
Steve Martinelli
abaf711e24 add support for set/unset of container properties
include docs and commands to set and unset container properties

Partial-Bug: #1501945

Change-Id: I8d7e8cf356a2321a37ed940c4e10cae411b94dfd
2015-10-06 00:18:59 -04:00
Steve Martinelli
4733fd0d3c Add support for showing account details
add the command `openstack account show` that lists details
about the object store account that the user authenticated
against.

Partial-Bug: #1501943

Change-Id: I1246dafee812b63a41d43be4e3598224364a2c11
2015-10-02 01:20:06 +00:00
Steve Martinelli
a4483a0513 Add support for updating swift account properties
this patch adds support for creating/updating and removing
properties (nee: metadata) for object store accounts.

Partial-Bug: #1501943

Change-Id: I3ed70a5d8bd8920fedb79adc60cdc602261d5eef
2015-10-01 18:18:36 -07:00
Joshua Harlow
e3c46ece4a Use a common decorator to log 'take_action' activation
Instead of duplicating the same log statement throughout
the code, the same logic can be provided by a shared decorator
that abstracts away the logging capability and unifies it behind
a common function instead.

Change-Id: Icc63bced7347c8bbf0299a4c5821425a10892a79
2015-09-01 16:49:54 -07:00
Jenkins
55d9eba093 Merge "Do not set default versions in parsed args" 2015-07-24 19:51:30 +00:00
TerryHowe
643d1d90fe More minor docs fixes
Change-Id: Ia74b8e14bacb562d9bac29221f511acbab5296df
2015-07-19 07:03:57 -06:00
TerryHowe
b3335b3474 Do not set default versions in parsed args
Setting default versions in parsed args makes it so OCC
cannot tell if the argument was parsed, an environment
variable was set or it is just defaulted.  In order to
set api versions from OCC, it will have to be defaulted
after processing OCC.

Closes-Bug: #1453229
Change-Id: I4d065919397b783f3bdd4022c986c0234a7a16e6
2015-07-18 06:28:09 -06:00
TerryHowe
36391a81a3 Rename endpoint type to interface
Change-Id: I4e21d09bc747e8210f4f79a1d6c4c7ccf2f25d1c
Closes-Bug: #1454392
2015-07-15 10:11:59 -06:00
Roxana Gherle
5521e4c504 Add --os-endpoint-type cli optional argument
User should be able to specify the endpoint type through
a CLI optional argument/ENV variable setting. We will name this new
optional argument: --os-endpoint-type (Env: OS_ENDPOINT_TYPE) and
based on the value given, the service API will use that specific
endpoint type. Possible values: public, admin, internal.

DocImpact
Closes-Bug: #1454392
Change-Id: Ife3d4e46b44c0ddcd712b1130e27e362545a9a29
2015-07-02 10:10:46 -07:00
Steve Martinelli
019c155e9b Fine tune some of the helps commands
try and add some consistency with the show and delete commands.

replace 'show x' with 'display x'
change 'delete a y' with just 'delete y'

Change-Id: I47dfa8ee23ac5c41b355796415eb515155832f65
2015-01-13 00:58:57 -05:00
Dean Troyer
d5caa6a26b Command object docs: container, object
Change-Id: Ie3df543a28cbee0cc809310a05f431c97b2c7e70
2014-12-30 16:09:54 -05:00
Dean Troyer
2166d7d3af Remove ClientManager._service_catalog
Anything that needs a service catalog can get it directly from
auth_ref.service_catalog, no need to carry the extra attribute.

ClientManager.get_endpoint_for_service_type() reamins the proper
method to get an endpoint for clients that still need one directly.

Change-Id: I809091c9c71d08f29606d7fd8b500898ff2cb8ae
2014-10-18 00:01:52 -05:00
Steve Martinelli
388bbbac2c Fix issues with object related commands
1) Can't create instance of swiftclient. Since we now create
an API instance, creating a swiftclient instance won't work.
Trying to do any object related command fails.

2) Listing objects in a container fails, we depend on the
data returned in a specific way, during the API transition
this must have slipped through.

Needs regression/funcitonal tests to mame sure this doesn't
happen again.

Change-Id: I69079a0dc9f32b84e6f9307729d3dbbba549ac5e
2014-10-06 20:04:19 -04:00
Dean Troyer
31018bf7c2 Move object-store commands to low-level API
api.object_store.APIv1 now contains the formerly top-level functions
implementing the object-store REST client. This replaces the old-style
ObjectClientv1 that is no longer necessary.

Change-Id: I7d8fea326b214481e7d6b24119bd41777c6aa968
2014-10-01 13:50:13 -04:00
Jenkins
2306059c8e Merge "Multiple args for object and container commands" 2014-09-18 08:17:14 +00:00
Steve Martinelli
09a546891f Add support for 'file' format objects
Some objects can be saved as 'dirname/filename' which causes the
existing support to fail. The correct behaviour should be to
create the directories needed.

Change-Id: I71c61bc3b0f76a3e6d2703bd45508f9d6483546e
2014-09-15 01:58:00 +00:00
Steve Martinelli
505c784bad Add preliminary save container support
Save all objects from a container

implements bp: swift-client

Change-Id: I7f2437236574e212033e63d768929d813289ed05
2014-09-15 01:57:54 +00:00
Steve Martinelli
e47787e12f Add preliminary support for downloading objects
Added command and library to download a single object from swift

Change-Id: I3dc47b414ff37b526e6f633aa83ac3aa4b5be0ae
implements: bp swift-client
2014-09-15 01:57:50 +00:00
Dean Troyer
ae957b176e Use Keystone client session.Session
This replaces the restapi requests wrapper with the one from Keystone client so
we can take advantage of the auth plugins.

As a first step only the v2 and v3 token and password plugins are supported.
This maintainis no changes to the command options or environment variables.

The next steps will include reworking the other API client interfaces to
fully utilize the single auth session.

Blueprint: ksc-session-auth
Change-Id: I47ec63291e4c3cf36c8061299a4764f60b36ab89
2014-09-08 00:06:52 -05:00
Terry Howe
b725b5017a Multiple args for object and container commands
Have object and container create and delete handle multiple
arguments.

Change-Id: I389358c13ac2d99655ca26e784e3d299286c0af3
2014-09-06 16:23:55 -06:00
Dean Troyer
4bbd03210f Change app.restapi to app.client_manager.session
This is step 1 toward using Keystone client's session.Session as the
primary session/requests interface in OSC.

* Move the session create into ClientManager and rename 'restapi' attribute to 'session'
* Set up ClientManager and session loggers
* Fix container and object command references to restapi/api

Change-Id: I013d81520b336c7a6422cd22c05d1d65655e64f8
2014-08-25 13:38:03 -05:00
Steve Martinelli
8af26a51c3 Add commands for object upload and delete
Add commands to upload an object to a container, and to delete
an object from a container.

Change-Id: I37c02315495bba5abe612733d1109a3d4ce256a1
implements: bp swift-client
2014-08-08 18:33:20 -04:00
Steve Martinelli
be83ae763f Add container create and delete support
Add basic container create and delete support to OSC.

Change-Id: Ia104db9d7e580d33097ea33a5690998f817995d1
implements: bp swift-client
2014-08-03 03:52:04 -04:00
Dean Troyer
b96d9d374c More make_client() logging cleanup
Change-Id: I5af4b9c52c69d6e31e6ca5f90d5880c097880a71
2014-07-26 12:22:50 -06:00
Jenkins
8c556e6943 Merge "Change object API_NAME to 'object_store'" 2014-07-24 03:55:49 +00:00
Dean Troyer
f3dbab4a6c Fix PEP8 E302 errors
Also add remaining skipped checks to HACKING

Change-Id: I0c4333ce29597e0a8a233af17c15bed2b4d0711f
2014-07-22 17:51:15 -06:00
Steve Martinelli
498ddf95c6 Change object API_NAME to 'object_store'
Previously the API_NAME was 'object-store' which caused all sorts
of failures when running swift commands

Change-Id: I448ca10f7d173024313722246e63cf23fd71117c
Closes-Bug: #1343658
2014-07-17 19:17:07 -04:00
Dean Troyer
21bd4619ae Clean up make_client() logging
Change-Id: I0b6760a6401b50e3dfb891af75424ae89df42ebc
2014-07-08 01:44:55 -05:00
Christian Berendt
3b485de6b0 replace string format arguments with function parameters
There are files containing string format arguments inside
logging messages. Using logging function parameters should
be preferred.

Change-Id: Ic749ac9eb55564ed631d57055a5a4dfc3aebd169
2014-05-20 13:49:56 +02:00
Jenkins
cb2fd0af83 Merge "Remove copyright from empty files" 2014-01-23 17:38:15 +00:00
Jenkins
9e9bbad120 Merge "Remove remaining print statements" 2014-01-23 04:09:53 +00:00
Dean Troyer
350718f3bb Remove remaining print statements
I think these are the last two stragglers, including debugging lines

Change-Id: Ic3dd98480211d0f7d3cc951bec5cd54f902a101f
2014-01-22 18:53:11 -06:00
Alexander Ignatov
ad4367839f Remove copyright from empty files
According to policy change in HACKING:
http://docs.openstack.org/developer/hacking/#openstack-licensing
empty files should no longer contain copyright notices.

Change-Id: Iba09a00f24dfbd1cd03c1c9f70ea216788e64d93
Closes-Bug: #1262424
2014-01-20 17:28:13 +04:00
Dean Troyer
f2dbe2e437 Bring RESTApi closer to ithe imminent keystoneclient.Session
Prepare to use the (soon to be) common Session from keystoneclient
* Rework RESTApi to eventually be a subclass of keystoneclient.Session

Change-Id: I68e610f8b19a3f6267a93f7bf3de54a228be68aa
2013-12-03 14:26:46 -06:00
Dean Troyer
935781fdf9 Restore Object API name 'object-store'
It's used in the service catalog, doh!

Change-Id: If8f6db49c84756fd8e58cc68910160da4cd99b5d
2013-11-25 14:46:57 -06:00
Dean Troyer
9062811d10 Expand support for command extensions
Allows client libraries to have complete access to the rest of the
OSC ClientManager.  In addition, extension libraries can define
global options (for API version options/env vars) and define
versioned API entry points similar to the in-repo commands.

The changes to ClientManager exposed some issues in the existing
object api tests that needed to be cleaned up.

Change-Id: Ic9662edf34c5dd130a2f1a69d2454adefc1f8a95
2013-11-21 01:27:10 -06:00