|
| 1 | +import io |
1 | 2 | import json |
2 | 3 | import logging |
3 | 4 | import os |
@@ -475,7 +476,8 @@ def create(self, namespace, **kwargs): |
475 | 476 | try: |
476 | 477 | self._get_secret(namespace, 'objectstorage-keyfile') |
477 | 478 | except KubeException: |
478 | | - self._create_objectstore_secret(namespace) |
| 479 | + secret = self._get_secret('deis', 'objectstorage-keyfile').json() |
| 480 | + self._create_secret(namespace, 'objectstorage-keyfile', secret['data']) |
479 | 481 |
|
480 | 482 | try: |
481 | 483 | self._get_service(namespace, namespace) |
@@ -1056,20 +1058,20 @@ def _healthcheck(self, controller, routable=False, path='/', port=5000, delay=30 |
1056 | 1058 |
|
1057 | 1059 | # SECRETS # |
1058 | 1060 | # http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_secret |
1059 | | - def _create_objectstore_secret(self, namespace): |
1060 | | - secret = self._get_secret('deis', 'objectstorage-keyfile').json() |
1061 | | - data = {} |
1062 | | - for key, value in secret['data'].items(): |
1063 | | - data[key] = base64.b64decode(value) |
1064 | | - self._create_secret(namespace, 'objectstorage-keyfile', data) |
1065 | | - |
1066 | 1061 | def _get_secret(self, namespace, name): |
1067 | 1062 | url = self._api("/namespaces/{}/secrets/{}", namespace, name) |
1068 | 1063 | response = self.session.get(url) |
1069 | 1064 | if unhealthy(response.status_code): |
1070 | 1065 | error(response, 'get Secret "{}" in Namespace "{}"', name, namespace) |
1071 | 1066 |
|
1072 | | - # FIXME decode data - can it be done without affecting the response object too much??? |
| 1067 | + # decode the base64 data |
| 1068 | + secrets = response.json() |
| 1069 | + for key, value in secrets['data'].items(): |
| 1070 | + secrets['data'][key] = base64.b64decode(value).decode(encoding='UTF-8') |
| 1071 | + |
| 1072 | + # tell python-requests it actually hasn't consumed the data |
| 1073 | + response._content_consumed = False |
| 1074 | + response.raw = io.StringIO(json.dumps(secrets)) |
1073 | 1075 |
|
1074 | 1076 | return response |
1075 | 1077 |
|
|
0 commit comments