diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 789dfe6..0000000 --- a/.coveragerc +++ /dev/null @@ -1,7 +0,0 @@ -[run] -branch = True -source = keystoneclient_kerberos -omit = keystoneclient_kerberos/tests/*,keystoneclient_kerberos/openstack/* - -[report] -ignore_errors = True diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e6a97ec..0000000 --- a/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -*.py[cod] - -# C extensions -*.so - -# Packages -*.egg -*.egg-info -dist -build -eggs -parts -bin -var -sdist -develop-eggs -.installed.cfg -lib -lib64 - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox -nosetests.xml -.testrepository - -# Translations -*.mo - -# Mr Developer -.mr.developer.cfg -.project -.pydevproject - -# Complexity -output/*.html -output/*/index.html - -# Sphinx -doc/build - -# pbr generates these -AUTHORS -ChangeLog - -# Editors -*~ -.*.swp -.*sw? \ No newline at end of file diff --git a/.gitreview b/.gitreview deleted file mode 100644 index 5f389ab..0000000 --- a/.gitreview +++ /dev/null @@ -1,4 +0,0 @@ -[gerrit] -host=review.openstack.org -port=29418 -project=openstack/python-keystoneclient-kerberos.git \ No newline at end of file diff --git a/.mailmap b/.mailmap deleted file mode 100644 index cc92f17..0000000 --- a/.mailmap +++ /dev/null @@ -1,3 +0,0 @@ -# Format is: -# -# \ No newline at end of file diff --git a/.testr.conf b/.testr.conf deleted file mode 100644 index fb62267..0000000 --- a/.testr.conf +++ /dev/null @@ -1,7 +0,0 @@ -[DEFAULT] -test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ - OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ - OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ - ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION -test_id_option=--load-list $IDFILE -test_list_option=--list \ No newline at end of file diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index ae5de78..0000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,5 +0,0 @@ - -python-keystoneclient-kerberos is deprecated. Contribute to keystoneauth -instead: - - https://pypi.python.org/pypi/keystoneauth1/ \ No newline at end of file diff --git a/HACKING.rst b/HACKING.rst deleted file mode 100644 index e7c6dd3..0000000 --- a/HACKING.rst +++ /dev/null @@ -1,4 +0,0 @@ -python-keystoneclient-kerberos Style Commandments -=============================================== - -Read the OpenStack Style Commandments http://docs.openstack.org/developer/hacking/ \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 67db858..0000000 --- a/LICENSE +++ /dev/null @@ -1,175 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/README.rst b/README.rst index 4bd5001..35ec6e9 100644 --- a/README.rst +++ b/README.rst @@ -1,13 +1,12 @@ -=============================== -python-keystoneclient-kerberos -=============================== +This project is no longer maintained. -python-keystoneclient-kerberos was an authentication plugin for keystoneclient -that supported Kerberos. The contents have been moved into the keystoneauth1 -package at https://pypi.python.org/pypi/keystoneauth1/ , and -python-keystoneclient-kerberos will no longer be supported. +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". -* Free software: Apache license -* Documentation: http://docs.openstack.org/developer/python-keystoneclient-kerberos -* Source: http://git.openstack.org/cgit/openstack/python-keystoneclient-kerberos -* Bugs: http://bugs.launchpad.net/python-keystoneclient +For an alternative project, please see openstack/keystoneauth1. + +For any further questions, please email +openstack-dev@lists.openstack.org or join #openstack-dev on +Freenode. diff --git a/babel.cfg b/babel.cfg deleted file mode 100644 index efceab8..0000000 --- a/babel.cfg +++ /dev/null @@ -1 +0,0 @@ -[python: **.py] diff --git a/doc/source/conf.py b/doc/source/conf.py deleted file mode 100755 index 9811519..0000000 --- a/doc/source/conf.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import sys - -sys.path.insert(0, os.path.abspath('../..')) -# -- General configuration ---------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [ - 'sphinx.ext.autodoc', - #'sphinx.ext.intersphinx', - 'oslosphinx' -] - -# autodoc generation is a bit aggressive and a nuisance when doing heavy -# text edit cycles. -# execute "export SPHINX_DEBUG=1" in your terminal to disable - -# The suffix of source filenames. -source_suffix = '.rst' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'python-keystoneclient-kerberos' -copyright = u'2013, OpenStack Foundation' - -# If true, '()' will be appended to :func: etc. cross-reference text. -add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -add_module_names = True - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# -- Options for HTML output -------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. Major themes that come with -# Sphinx are currently 'default' and 'sphinxdoc'. -# html_theme_path = ["."] -# html_theme = '_theme' -# html_static_path = ['static'] - -# Output file base name for HTML help builder. -htmlhelp_basename = '%sdoc' % project - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass -# [howto/manual]). -latex_documents = [ - ('index', - '%s.tex' % project, - u'%s Documentation' % project, - u'OpenStack Foundation', 'manual'), -] - -# Example configuration for intersphinx: refer to the Python standard library. -#intersphinx_mapping = {'http://docs.python.org/': None} \ No newline at end of file diff --git a/doc/source/contributing.rst b/doc/source/contributing.rst deleted file mode 100644 index ed77c12..0000000 --- a/doc/source/contributing.rst +++ /dev/null @@ -1,4 +0,0 @@ -============ -Contributing -============ -.. include:: ../../CONTRIBUTING.rst \ No newline at end of file diff --git a/doc/source/index.rst b/doc/source/index.rst deleted file mode 100644 index a51598b..0000000 --- a/doc/source/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. python-keystoneclient-kerberos documentation master file, created by - sphinx-quickstart on Tue Jul 9 22:26:36 2013. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to python-keystoneclient-kerberos's documentation! -======================================================== - -Contents: - -.. toctree:: - :maxdepth: 2 - - readme - installation - usage - contributing - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/doc/source/installation.rst b/doc/source/installation.rst deleted file mode 100644 index b20eeef..0000000 --- a/doc/source/installation.rst +++ /dev/null @@ -1,12 +0,0 @@ -============ -Installation -============ - -At the command line:: - - $ pip install python-keystoneclient-kerberos - -Or, if you have virtualenvwrapper installed:: - - $ mkvirtualenv python-keystoneclient-kerberos - $ pip install python-keystoneclient-kerberos \ No newline at end of file diff --git a/doc/source/readme.rst b/doc/source/readme.rst deleted file mode 100644 index 38ba804..0000000 --- a/doc/source/readme.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../README.rst \ No newline at end of file diff --git a/doc/source/usage.rst b/doc/source/usage.rst deleted file mode 100644 index 655bea5..0000000 --- a/doc/source/usage.rst +++ /dev/null @@ -1,7 +0,0 @@ -======== -Usage -======== - -To use python-keystoneclient-kerberos in a project:: - - import keystoneclient_kerberos \ No newline at end of file diff --git a/keystoneclient_kerberos/__init__.py b/keystoneclient_kerberos/__init__.py deleted file mode 100644 index 53a4452..0000000 --- a/keystoneclient_kerberos/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- - -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import warnings - -import pbr.version - -from keystoneclient_kerberos import v3 - - -warnings.warn( - "The keystoneclient_kerberos package is deprecated in favor of " - "keystoneauth1 and will not be supported.", DeprecationWarning) - -__version__ = pbr.version.VersionInfo( - 'python-keystoneclient-kerberos').version_string() - -V3Kerberos = v3.Kerberos -V3FederatedKerberos = v3.FederatedKerberos - -__all__ = ('V3FederatedKerberos', - 'V3Kerberos') diff --git a/keystoneclient_kerberos/tests/__init__.py b/keystoneclient_kerberos/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/keystoneclient_kerberos/tests/base.py b/keystoneclient_kerberos/tests/base.py deleted file mode 100644 index 6ae56f2..0000000 --- a/keystoneclient_kerberos/tests/base.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright 2010-2011 OpenStack Foundation -# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from oslotest import base -from requests_mock.contrib import fixture as requests_fixture - -from keystoneclient_kerberos.tests import utils - - -REQUEST = {'auth': {'identity': {'methods': ['kerberos'], - 'kerberos': {}}}} - - -class TestCase(base.BaseTestCase): - - """Test case base class for all unit tests.""" - - TEST_ROOT_URL = utils.TEST_ROOT_URL - TEST_V3_URL = TEST_ROOT_URL + 'v3' - - def setUp(self): - super(TestCase, self).setUp() - - self.requests_mock = self.useFixture(requests_fixture.Fixture()) - - km = utils.KerberosMock(self.requests_mock) - self.kerberos_mock = self.useFixture(km) - - def assertRequestBody(self, body=None): - """Ensure the request body is the standard kerberos auth request. - - :param dict body: the body to compare. If not provided the last request - body will be used. - """ - if not body: - body = self.requests_mock.last_request.json() - - self.assertEqual(REQUEST, body) diff --git a/keystoneclient_kerberos/tests/test_federated.py b/keystoneclient_kerberos/tests/test_federated.py deleted file mode 100644 index 0ffca58..0000000 --- a/keystoneclient_kerberos/tests/test_federated.py +++ /dev/null @@ -1,72 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import uuid - -from keystoneauth1 import fixture as ks_fixture -from keystoneauth1 import session - -from keystoneclient_kerberos.tests import base -from keystoneclient_kerberos import v3 - - -class TestFederatedAuth(base.TestCase): - - def setUp(self): - super(TestFederatedAuth, self).setUp() - - self.protocol = uuid.uuid4().hex - self.identity_provider = uuid.uuid4().hex - - @property - def token_url(self): - return "%s/OS-FEDERATION/identity_providers/%s/protocols/%s/auth" % ( - self.TEST_V3_URL, - self.identity_provider, - self.protocol) - - def test_unscoped_federated_auth(self): - token_id, _ = self.kerberos_mock.mock_auth_success(url=self.token_url, - method='GET') - - plugin = v3.FederatedKerberos(auth_url=self.TEST_V3_URL, - protocol=self.protocol, - identity_provider=self.identity_provider) - - sess = session.Session() - tok = plugin.get_token(sess) - - self.assertEqual(token_id, tok) - - def test_project_scoped_federated_auth(self): - self.kerberos_mock.mock_auth_success(url=self.token_url, method='GET') - - scoped_id = uuid.uuid4().hex - scoped_body = ks_fixture.V3Token() - scoped_body.set_project_scope() - - self.requests_mock.post('%s/auth/tokens' % self.TEST_V3_URL, - json=scoped_body, - headers={'X-Subject-Token': scoped_id, - 'Content-Type': 'application/json'}) - - plugin = v3.FederatedKerberos(auth_url=self.TEST_V3_URL, - protocol=self.protocol, - identity_provider=self.identity_provider, - project_id=scoped_body.project_id) - - sess = session.Session() - tok = plugin.get_token(sess) - proj = plugin.get_project_id(sess) - - self.assertEqual(scoped_id, tok) - self.assertEqual(scoped_body.project_id, proj) diff --git a/keystoneclient_kerberos/tests/test_v3.py b/keystoneclient_kerberos/tests/test_v3.py deleted file mode 100644 index 8b23fd3..0000000 --- a/keystoneclient_kerberos/tests/test_v3.py +++ /dev/null @@ -1,33 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from keystoneauth1 import session - -from keystoneclient_kerberos.tests import base -from keystoneclient_kerberos import v3 - - -class TestKerberosAuth(base.TestCase): - - def test_authenticate_with_kerberos_domain_scoped(self): - token_id, token_body = self.kerberos_mock.mock_auth_success() - - a = v3.Kerberos(self.TEST_ROOT_URL + 'v3') - s = session.Session(a) - token = a.get_token(s) - - self.assertRequestBody() - self.assertEqual( - self.kerberos_mock.challenge_header, - self.requests_mock.last_request.headers['Authorization']) - self.assertEqual(token_id, a.auth_ref.auth_token) - self.assertEqual(token_id, token) diff --git a/keystoneclient_kerberos/tests/utils.py b/keystoneclient_kerberos/tests/utils.py deleted file mode 100644 index ebda6cf..0000000 --- a/keystoneclient_kerberos/tests/utils.py +++ /dev/null @@ -1,78 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import uuid - -import fixtures -from keystoneauth1 import fixture as ks_fixture -from oslotest import mockpatch -import requests_kerberos - - -# any old base url for test mocking -TEST_ROOT_URL = 'http://keystoneserver.test.com:5000/' - - -class KerberosMock(fixtures.Fixture): - - def __init__(self, requests_mock): - super(KerberosMock, self).__init__() - - self.challenge_header = 'Negotiate %s' % uuid.uuid4().hex - self.pass_header = 'Negotiate %s' % uuid.uuid4().hex - self.requests_mock = requests_mock - - def setUp(self): - super(KerberosMock, self).setUp() - - m = mockpatch.PatchObject(requests_kerberos.HTTPKerberosAuth, - 'generate_request_header', - self._generate_request_header) - - self.header_fixture = self.useFixture(m) - - m = mockpatch.PatchObject(requests_kerberos.HTTPKerberosAuth, - 'authenticate_server', - self._authenticate_server) - - self.authenticate_fixture = self.useFixture(m) - - def _generate_request_header(self, *args, **kwargs): - return self.challenge_header - - def _authenticate_server(self, response): - return response.headers.get('www-authenticate') == self.pass_header - - def mock_auth_success(self, - token_id=None, - token_body=None, - method='POST', - url=TEST_ROOT_URL + 'v3/auth/tokens'): - if not token_id: - token_id = uuid.uuid4().hex - if not token_body: - token_body = ks_fixture.V3Token() - - response_list = [{'text': 'Fail', - 'status_code': 401, - 'headers': {'WWW-Authenticate': 'Negotiate'}}, - {'headers': {'X-Subject-Token': token_id, - 'Content-Type': 'application/json', - 'WWW-Authenticate': self.pass_header}, - 'status_code': 200, - 'json': token_body}] - - self.requests_mock.register_uri(method, - url, - response_list=response_list) - - return token_id, token_body diff --git a/keystoneclient_kerberos/v3.py b/keystoneclient_kerberos/v3.py deleted file mode 100644 index 3fd2965..0000000 --- a/keystoneclient_kerberos/v3.py +++ /dev/null @@ -1,55 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from keystoneauth1 import access -from keystoneauth1.identity import v3 -import requests_kerberos - - -def _requests_auth(): - # NOTE(jamielennox): request_kerberos.OPTIONAL allows the plugin to accept - # unencrypted error messages where we can't verify the origin of the error - # because we aren't authenticated. - return requests_kerberos.HTTPKerberosAuth( - mutual_authentication=requests_kerberos.OPTIONAL) - - -class KerberosMethod(v3.AuthMethod): - - _method_parameters = [] - - def get_auth_data(self, session, auth, headers, request_kwargs, **kwargs): - # NOTE(jamielennox): request_kwargs is passed as a kwarg however it is - # required and always present when called from keystoneclient. - request_kwargs['requests_auth'] = _requests_auth() - return 'kerberos', {} - - -class Kerberos(v3.AuthConstructor): - _auth_method_class = KerberosMethod - - -class FederatedKerberos(v3.FederationBaseAuth): - """Authenticate using Kerberos via the keystone federation mechanisms. - - This is not technically federation. However, federation is the term which - keystone uses for all mapped authentication. This uses the OS-FEDERATION - extension to gain an unscoped token and then use the standard keystone auth - process to scope that to any given project. - """ - - def get_unscoped_auth_ref(self, session, **kwargs): - resp = session.get(self.federated_token_url, - requests_auth=_requests_auth(), - authenticated=False) - - return access.create(body=resp.json(), resp=resp) diff --git a/openstack-common.conf b/openstack-common.conf deleted file mode 100644 index 36e49da..0000000 --- a/openstack-common.conf +++ /dev/null @@ -1,6 +0,0 @@ -[DEFAULT] - -# The list of modules to copy from oslo-incubator.git - -# The base module to hold the copy of openstack.common -base=keystoneclient_kerberos \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 16ce7c0..0000000 --- a/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -pbr>=1.6 # Apache-2.0 -keystoneauth1[kerberos]>=2.10.0 # Apache-2.0 -requests-kerberos>=0.6;python_version=='2.7' or python_version=='2.6' # MIT diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 6eba956..0000000 --- a/setup.cfg +++ /dev/null @@ -1,29 +0,0 @@ -[metadata] -name = python-keystoneclient-kerberos -summary = Kerberos authentication for the OpenStack clients -description-file = - README.rst -author = OpenStack -author-email = openstack-dev@lists.openstack.org -home-page = http://www.openstack.org/ -classifier = - Environment :: OpenStack - Intended Audience :: Information Technology - Intended Audience :: System Administrators - License :: OSI Approved :: Apache Software License - Operating System :: POSIX :: Linux - Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 - -[files] -packages = - keystoneclient_kerberos - -[entry_points] -keystoneclient.auth.plugin = - v3kerberos = keystoneclient_kerberos.v3:Kerberos - v3fedkerb = keystoneclient_kerberos.v3:FederatedKerberos - -[wheel] -universal = 1 diff --git a/setup.py b/setup.py deleted file mode 100644 index 782bb21..0000000 --- a/setup.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT -import setuptools - -# In python < 2.7.4, a lazy loading of package `pbr` will break -# setuptools if some other modules registered functions in `atexit`. -# solution from: http://bugs.python.org/issue15881#msg170215 -try: - import multiprocessing # noqa -except ImportError: - pass - -setuptools.setup( - setup_requires=['pbr>=1.8'], - pbr=True) diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 100644 index 7ea9019..0000000 --- a/test-requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -hacking<0.11,>=0.10.0 - -coverage>=3.6 # Apache-2.0 -discover # BSD -python-subunit>=0.0.18 # Apache-2.0/BSD -requests-mock>=1.0 # Apache-2.0 -sphinx!=1.3b1,<1.3,>=1.2.1 # BSD -oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 -oslotest>=1.10.0 # Apache-2.0 -testrepository>=0.0.18 # Apache-2.0/BSD -testscenarios>=0.4 # Apache-2.0/BSD -testtools>=1.4.0 # MIT diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 481ea09..0000000 --- a/tox.ini +++ /dev/null @@ -1,30 +0,0 @@ -[tox] -minversion = 1.6 -envlist = py34,py27,pypy,pep8 -skipsdist = True - -[testenv] -usedevelop = True -install_command = pip install -U {opts} {packages} -setenv = - VIRTUAL_ENV={envdir} -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt -commands = python setup.py testr --slowest --testr-args='{posargs}' - -[testenv:pep8] -commands = flake8 - -[testenv:venv] -commands = {posargs} - -[testenv:cover] -commands = python setup.py testr --coverage --testr-args='{posargs}' - -[testenv:docs] -commands = python setup.py build_sphinx - -[flake8] -show-source = True -builtins = _ -exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build