diff options
Diffstat (limited to 'moonv4/moon_utilities')
-rw-r--r-- | moonv4/moon_utilities/Changelog | 4 | ||||
-rw-r--r-- | moonv4/moon_utilities/build.sh | 12 | ||||
-rw-r--r-- | moonv4/moon_utilities/moon_utilities/__init__.py | 2 | ||||
-rw-r--r-- | moonv4/moon_utilities/moon_utilities/security_functions.py | 23 |
4 files changed, 30 insertions, 11 deletions
diff --git a/moonv4/moon_utilities/Changelog b/moonv4/moon_utilities/Changelog index ca67cbd4..81b7c46d 100644 --- a/moonv4/moon_utilities/Changelog +++ b/moonv4/moon_utilities/Changelog @@ -55,3 +55,7 @@ CHANGES ----- - Fix a bug on the connection between interface and authz +1.4.0 +----- +- Add a waiting loop when the Keystone server is not currently available + diff --git a/moonv4/moon_utilities/build.sh b/moonv4/moon_utilities/build.sh index b327e49d..3068b651 100644 --- a/moonv4/moon_utilities/build.sh +++ b/moonv4/moon_utilities/build.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERSION=moon_utilities-1.3.4 +VERSION=moon_utilities-1.4.0 python3 setup.py sdist bdist_wheel @@ -12,17 +12,27 @@ gpg --detach-sign -u "A0A96E75" -a dist/${VERSION}.tar.gz if [ "$1" = "upload" ]; then twine upload dist/${VERSION}-py3-none-any.whl dist/${VERSION}-py3-none-any.whl.asc twine upload dist/${VERSION}.tar.gz dist/${VERSION}.tar.gz.asc + rm -f ../moon_orchestrator/dist/moon_utilities* + rm -f ../moon_interface/dist/moon_utilities* + rm -f ../moon_manager/dist/moon_utilities* + rm -f ../moon_authz/dist/moon_utilities* + rm -f ../moon_wrapper/dist/moon_utilities* fi if [ "$1" = "copy" ]; then mkdir -p ../moon_orchestrator/dist/ 2>/dev/null + rm -f ../moon_orchestrator/dist/moon_utilities* cp -v dist/${VERSION}-py3-none-any.whl ../moon_orchestrator/dist/ mkdir -p ../moon_interface/dist/ 2>/dev/null + rm -f ../moon_interface/dist/moon_utilities* cp -v dist/${VERSION}-py3-none-any.whl ../moon_interface/dist/ mkdir -p ../moon_manager/dist/ 2>/dev/null + rm -f ../moon_manager/dist/moon_utilities* cp -v dist/${VERSION}-py3-none-any.whl ../moon_manager/dist/ mkdir -p ../moon_authz/dist/ 2>/dev/null + rm -f ../moon_authz/dist/moon_utilities* cp -v dist/${VERSION}-py3-none-any.whl ../moon_authz/dist/ mkdir -p ../moon_wrapper/dist/ 2>/dev/null + rm -f ../moon_wrapper/dist/moon_utilities* cp -v dist/${VERSION}-py3-none-any.whl ../moon_wrapper/dist/ fi diff --git a/moonv4/moon_utilities/moon_utilities/__init__.py b/moonv4/moon_utilities/moon_utilities/__init__.py index 3e59b6a0..8b353f9f 100644 --- a/moonv4/moon_utilities/moon_utilities/__init__.py +++ b/moonv4/moon_utilities/moon_utilities/__init__.py @@ -3,4 +3,4 @@ # license which can be found in the file 'LICENSE' in this package distribution # or at 'http://www.apache.org/licenses/LICENSE-2.0'. -__version__ = "1.3.4" +__version__ = "1.4.0" diff --git a/moonv4/moon_utilities/moon_utilities/security_functions.py b/moonv4/moon_utilities/moon_utilities/security_functions.py index fc90d305..f55620b6 100644 --- a/moonv4/moon_utilities/moon_utilities/security_functions.py +++ b/moonv4/moon_utilities/moon_utilities/security_functions.py @@ -98,6 +98,7 @@ def enforce(action_names, object_name, **extra): def login(user=None, password=None, domain=None, project=None, url=None): + start_time = time.time() if not user: user = keystone_config['user'] if not password: @@ -138,15 +139,19 @@ def login(user=None, password=None, domain=None, project=None, url=None): } } - req = requests.post("{}/auth/tokens".format(url), - json=data_auth, headers=headers, - verify=keystone_config['certificate']) - - if req.status_code in (200, 201, 204): - headers['X-Auth-Token'] = req.headers['X-Subject-Token'] - return headers - LOG.error(req.text) - raise exceptions.KeystoneError + while True: + req = requests.post("{}/auth/tokens".format(url), + json=data_auth, headers=headers, + verify=keystone_config['certificate']) + + if req.status_code in (200, 201, 204): + headers['X-Auth-Token'] = req.headers['X-Subject-Token'] + return headers + LOG.warning("Waiting for Keystone...") + if time.time() - start_time == 100: + LOG.error(req.text) + raise exceptions.KeystoneError + time.sleep(5) def logout(headers, url=None): |