summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Normalize cloud config before osc-lib call"1.23.0Jenkins2016-11-111-1/+2
|\
| * Normalize cloud config before osc-lib callGhe Rivero2016-10-211-1/+2
| | | | | | | | | | | | | | | | Cloud config was passed to osc-lib before being normalized, causing exceptions when some api versions were stil an int where osc-lib expects a str Change-Id: I7326114d86a4208f1489c302e8bb838dd5b8c5d6
* | Merge "Remove validate_auth_ksc"Jenkins2016-11-114-76/+45
|\ \
| * | Remove validate_auth_kscMonty Taylor2016-11-114-76/+45
| | | | | | | | | | | | | | | | | | | | | | | | This was a workaround for python-openstackclient back when it was still dependent on keystoneclient. OSC has its own workaround now, so this should no longer be needed. Change-Id: Ib1877b7978b7b016b394232235e887360b6bdf85
* | | Add fuga.io to vendorsMonty Taylor2016-11-052-0/+29
| | | | | | | | | | | | Change-Id: I1704b6e26a3c56b519544ad8ee6d3fd80a2a752a
* | | Support token_endpoint as an auth_typeMonty Taylor2016-10-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For backwards compat with what operators have been trained to do, map token_endpoint to admin_token for them. This has shown up a few times in the wild. Most recently: https://github.com/ansible/ansible-modules-core/issues/5250 Change-Id: Ie083381e7fda19e016b6425939bd3c2dc260fa9b
* | | Merge "Fix a bunch of tests"Jenkins2016-10-213-3/+38
|\ \ \ | |/ /
| * | Fix a bunch of testsMonty Taylor2016-10-203-3/+38
| |/ | | | | | | | | | | | | There is a bug in validate_auth that gets hidden by validate_auth_ksc. These tests are the test fixes for it. Change-Id: I80d558a1c794725ba2a87fbd87bf8fbdf6633bee
* | Merge "Add support for volumev3 service type"Jenkins2016-10-212-3/+11
|\ \
| * | Add support for volumev3 service typeMonty Taylor2016-10-212-3/+11
| |/ | | | | | | | | | | | | | | | | | | | | | | | | Words cannot begin to adequately express the disappointment and rage I felt upon learning that the cinder team had unleashed 'volumev3' upon the world. Woe betide us, the mere users, for wanting to use a 'volume' endpoint and have that choice mean something. Perhaps if we beat ourselves with leather straps while crawling for days across the country we can remove more joy from our lives. In the meantime, until we can fully appreciate the existential crisis of being, let's continue to work around it in os-client-config. Change-Id: I171e3b01497b3e3a06c3a73577f0f67e0c1e6f73
* | Clarify how to set SSL settingsCedric Brandily2016-10-201-0/+13
|/ | | | | | | This change adds an example in order to clarif how to SSL settings in configuration files. Change-Id: Id047f21d0a51752f46b16e3f4efbfec62cfbd5fb
* Update ECS image_api_version to 1Monty Taylor2016-10-192-0/+2
| | | | | | Turns out they don't run v2. Change-Id: Icd503f2b035400fbb39903b3fe2542ec14b86e93
* Merge "cloud_config:get_session_endpoint: catch Keystone EndpointNotFound"1.22.0Jenkins2016-10-122-5/+22
|\
| * cloud_config:get_session_endpoint: catch Keystone EndpointNotFoundJordan Pittier2016-10-062-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The docstring of the `get_session_endpoint` says ":returns: Endpoint for the service, or None if not found" but apparently the `None` part was forgotten. This leads to this kind of spectacular traceback where the exception bubles up (even through Shade): Traceback (most recent call last): File ".tox/run/bin/ospurge", line 11, in <module> load_entry_point('ospurge', 'console_scripts', 'ospurge')() File "/path/ospurge/main.py", line 154, in main for resource in resource_manager.list(): File "/path/ospurge/resources/swift.py", line 15, in list for container in self.cloud.list_containers(): File "/path/pkg/shade/openstackcloud.py", line 4909, in list_containers full_listing=full_listing)) File "/path/pkg/shade/task_manager.py", line 244, in submit_task return task.wait(raw) File "/path/pkg/shade/task_manager.py", line 121, in wait super(Task, self).wait() File "/path/pkg/shade/task_manager.py", line 96, in wait self._traceback) File "/path/pkg/six.py", line 686, in reraise raise value File "/path/pkg/shade/task_manager.py", line 105, in run self.done(self.main(client)) File "/path/pkg/shade/_tasks.py", line 549, in main return client.swift_client.get_account(**self.args)[1] File "/path/pkg/shade/openstackcloud.py", line 849, in swift_client 'object-store', swiftclient.client.Connection) File "/path/pkg/shade/openstackcloud.py", line 343, in _get_client **kwargs) File "/path/pkg/os_client_config/cloud_config.py", line 301, in get_legacy_client return self._get_swift_client(client_class=client_class, **kwargs) File "/path/pkg/os_client_config/cloud_config.py", line 369, in _get_swift_client endpoint = self.get_session_endpoint(service_key='object-store') File "/path/pkg/os_client_config/cloud_config.py", line 253, in get_session_endpoint region_name=self.region) File "/path/pkg/keystoneauth1/session.py", line 765, in get_endpoint return auth.get_endpoint(self, **kwargs) File "/path/pkg/keystoneauth1/identity/base.py", line 216, in get_endpoint service_name=service_name) File "/path/pkg/positional/__init__.py", line 101, in inner return wrapped(*args, **kwargs) File "/path/pkg/keystoneauth1/access/service_catalog.py", line 228, in url_for raise exceptions.EndpointNotFound(msg) keystoneauth1.exceptions.catalog.EndpointNotFound: public endpoint for object-store service in RegionOne region not found Change-Id: Idbf5081117bb0a13d04a1a5cb9fd7682baaf04e5
* | Merge "Don't create envvars cloud if cloud or region are set"Jenkins2016-10-121-6/+5
|\ \
| * | Don't create envvars cloud if cloud or region are setMonty Taylor2016-09-151-6/+5
| | | | | | | | | | | | | | | | | | | | | OS_CLOUD and OS_REGION_NAME are both selectors. If they are the only values, we should not be creating an envvars cloud. Change-Id: I1b7c8d7e3b6c300bd2c85ab482a22411370e4d5f
* | | Merge "modify the home-page info with the developer documentation"Jenkins2016-10-120-0/+0
|\ \ \
| * | | modify the home-page info with the developer documentationavnish2016-09-201-1/+1
| |/ / | | | | | | | | | Change-Id: I72a16e15e61c8e6511b96114cc74e3feb7dc6fd3
* | | Merge "Add setter for session constructor"Jenkins2016-10-121-0/+4
|\ \ \
| * | | Add setter for session constructorMonty Taylor2016-10-071-0/+4
| | |/ | |/| | | | | | | | | | | | | | | | shade needs to be able to attach an adapter wrapper to an already constructed CloudConfig object, so add a setter. Change-Id: I640859b5d78d17e3c99e8ec11f1418f275e4dea2
* | | Merge "Revert "Split auth plugin loading into its own method""Jenkins2016-10-121-19/+15
|\ \ \
| * | | Revert "Split auth plugin loading into its own method"Monty Taylor2016-10-121-19/+15
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8b7859e21e64027d20f158737bbf70bbe409b847. python-openstackclient has a subclass that defines this method with a different signature. Change-Id: Ie44f8efb6b93dc0d4754fb316ddb9087ce181275
* | | Enable release notes translationAndreas Jaeger2016-10-061-0/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | Releasenote translation publishing is being prepared. 'locale_dirs' needs to be defined in conf.py to generate translated version of the release notes. Note that this repository might not get translated release notes - or no translations at all - but we add the entry here nevertheless to prepare for it. Change-Id: Ic34d4d11adf4aacd91a7fd682a6d15597004ff49
* | Merge "Fix AttributeError in `get_config`"Jenkins2016-10-013-2/+38
|\ \
| * | Fix AttributeError in `get_config`Jordan Pittier2016-09-263-2/+38
| |/ | | | | | | | | Change-Id: I52bdc44800da6c1393a69c4faf96375235ef98bb Closes-Bug: #1627690
* | Merge "List py35 in the default tox env list"Jenkins2016-09-301-1/+1
|\ \
| * | List py35 in the default tox env listJordan Pittier2016-09-261-1/+1
| |/ | | | | | | | | | | | | | | | | | | We really should run py35 tests when we run "tox" without any arguments. I2a4a6ca01d7cca83f594008960c878a18ca08e8e is going to make the py35 job voting. Change-Id: Ibd77e39c53f00357344be8acc2949e1bc1adcc84
* | Merge "Using assertIsNone() instead of assertEqual(None, ...)"Jenkins2016-09-301-5/+5
|\ \
| * | Using assertIsNone() instead of assertEqual(None, ...)Cao Xuan Hoang2016-09-281-5/+5
| |/ | | | | | | | | | | | | | | | | | | | | Following OpenStack Style Guidelines[1]: [H203] Unit test assertions tend to give better messages for more specific assertions. As a result, assertIsNone(...) is preferred over assertEqual(None, ...) and assertIs(None, ...) [1] http://docs.openstack.org/developer/hacking/#unit-tests-and-assertraises Change-Id: I4ce1745a90b043ea342fb157683b01f862c1bc3d
* | Update homepage with developer documentation pageTony Xu2016-09-261-1/+1
|/ | | | Change-Id: Id7df70e3cfaa29218c2e2badefcbc8a296d86f8d
* Merge "Split auth plugin loading into its own method"Jenkins2016-09-131-15/+19
|\
| * Split auth plugin loading into its own methodMonty Taylor2016-09-011-15/+19
| | | | | | | | | | | | | | | | In case someone wants to do validate=False at get_one_cloud time, but still would like to get an auth plugin, having this block be its own method is handy. Change-Id: I26137391e67d60d8737473d3d4c6ed15dad53af1
* | Merge "Add ability to configure Session constructor"Jenkins2016-09-082-4/+7
|\ \
| * | Add ability to configure Session constructorMonty Taylor2016-09-012-4/+7
| |/ | | | | | | | | | | | | | | | | | | | | | | Sometimes it's useful to wrapp the keystoneauth.Session object. OSC has a KeystoneSession object that injects timing data. shade is considering one that wraps external calls in shade's TaskManager. Allow for passing in a callable that will return a Session. Almost no people will want to use this - it's a super advanced kind of thing. Change-Id: Ib64260916695e9fbea437862cd669a4fb85ec9e4
* | Merge "Update reno for stable/newton"Jenkins2016-09-022-0/+7
|\ \
| * | Update reno for stable/newtonDoug Hellmann2016-09-022-0/+7
| |/ | | | | | | Change-Id: I829a65b2104ec3c039859dce2594b701981b1fa3
* | Don't build releasenotes in normal docs buildMonty Taylor2016-09-021-1/+2
|/ | | | | | | | The release notes system exists in parallel and publishes to http://docs.openstack.org/releasenotes/os-client-config/. When we build them in the normal doc build, it causes problems for distro packagers. Change-Id: I6b084a1ad6836beac991d03c5f134203512150ac
* Go ahead and handle YAML list in region_name1.21.1Monty Taylor2016-08-291-1/+4
| | | | | | | | The right thing is to use "regions" as a yaml list. However, it's even more right to be friendly to people - we emit a warning about region_name as a list anyway. Change-Id: Ia0b27ef8d1d52c655c2736a97bd5e59a4a2fe9d8
* Add prompting for KSA options1.21.0Dean Troyer2016-08-292-1/+59
| | | | | | | | | | | | | | | | Teach OpenStackConfig to prompt the user for KSA plugin options that have no value but have a prompt string defined. * Add pw_func argument to __init__() to be used as the callback for prompting the user. The default is None which skips the prompt step. * Add option_prompt() method to perform the checks for prompting, call the callback and save the returned value. This is public to handle cases where simply passing in a callback is insufficient for the prompt mechanism. Related-Bug: #1617384 Change-Id: I5faa86e94d6f71282ac270e2acfbd3016638c780
* Clean up vendor support listMonty Taylor2016-08-251-55/+29
| | | | | | | | | | | | The IBM Cloud isn't really a thing at that address yet (jumped the gun) OSIC probably shouldn't have been added either (turns out there are like 8 OSIC clouds currently, and they're test clouds. Also, update the location on the RegionOne clouds, and rename "Human Name" to "Location" - which is the useful information in that column anyway. Change-Id: I04451836330aacc3e2b91cfbe7d7d9bba7a47346
* Merge "Precedence final solution"1.20.1Jenkins2016-08-222-56/+200
|\
| * Precedence final solutionDean Troyer2016-08-202-56/+200
| | | | | | | | | | | | | | | | | | | | * Revert most of 'fixed_argparse change' from 1.19.1 * Create a new _validate_auth_correctly() method that contains the logic from 1.19.0 * Create a new get_one_cloud_osc() method for use by OSC to get the correct argument precedence without disrupting anyone else Change-Id: Iae86cc4e267f23dbe8d010688a288db5514f329d
* | Add support for configuring split-stack networks1.20.0Monty Taylor2016-08-185-4/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some clouds, like OSIC and v1 of DreamCompute, have a split stack network. This means that a single Neutron Network has both an IPv4 and an IPv6 subnet, but that the IPv4 subnet is a private/RFC-1918 and the IPv6 subnet is a Global network. As any inferrance information is attached to the Network, it's impossible to properly categorize IP addresses that are on the Server in such a scenario. Add support for ipv4 and ipv6 versions of the current routes_externally config value, with each of them defaulting to the value of the un-specialized routes_externally. Change-Id: I1e87a1423d20eac31175f44f5f7b38dfcf3a11cb
* | Pop domain-id from the config if we infer valuesMonty Taylor2016-08-112-0/+3
|/ | | | | | | | | | | | | | | | | | | | | | | | If the user specifies a project_{name,id}, then we currently infer that a domain_{name,id} is meant to be shorthand for user_domain_{name,id} and project_domain_{name,id}. However, in other contexts, domain_id is a perfectly valid value to pass to the auth plugins - such as when doing domain-scoped activities. The problem that was uncovered by the correction of argument precedence is that we didn't pop the domain-id out of the root config dict, so if a user set OS_DOMAIN_ID in the environment, we were happily setting the user and project versions, but then leaving domain_id set as well. This then meant that when we do the pass to pull valid arguments from the root dict to the auth dict, we also pulled in domain_id - which led to the error: AuthorizationFailure: Authentication cannot be scoped to multiple targets. Pick one of: project, domain, trust or unscoped Popping the value from the root dict causes the things to work as documented. Change-Id: I6d208e5ec4115d2e72d30b2fedc90a81ea754d5a
* Update Internap informationMathieu Gagné2016-08-052-3/+5
| | | | | | | * Add sin01 and sjc01 regions * Add support for Glance v2 Change-Id: Iaf4ad7c807a28c24040b928f65f4aadc1a234d6e
* Merge "Add test for precedence rules"1.19.1Jenkins2016-08-051-0/+53
|\
| * Add test for precedence rulesMonty Taylor2016-08-051-0/+53
| | | | | | | | | | | | This should cover both the OSC and the ansible incoming use cases. Change-Id: I3fdc83837692d31c5579d91892a387a5d1023785
* | Merge "Pass the argparse data into to validate_auth"Jenkins2016-08-051-13/+47
|\ \ | |/
| * Pass the argparse data into to validate_authMonty Taylor2016-08-041-13/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have two contradictory precedence needs that are impossible to satisfy because we're losing knowledge of the source of data as we build the ultimate dict of data. If we carry the argparse data along in a separate bucket for longer, we can check to see if it's there so that it can win, but so that in situations where kwargs is complex and contains both a top-level and an auth dict we don't assume that the values that are not in the auth dict came from argparse. By doing this, we can establish that precedence for auth args is: - argparse - auth dict - top level kwargs Change-Id: I9eca5937077f5873f7896b6745951fb8d8c4747c
* | Merge "Revert "Fix precedence for pass-in options""Jenkins2016-08-051-5/+5
|\ \ | |/