summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keystone-moon/keystone/contrib/moon/core.py12
-rw-r--r--moonclient/moonclient/shell.py3
-rw-r--r--moonclient/moonclient/tests.py8
-rw-r--r--moonclient/moonclient/tests/tests_subjects.json10
4 files changed, 17 insertions, 16 deletions
diff --git a/keystone-moon/keystone/contrib/moon/core.py b/keystone-moon/keystone/contrib/moon/core.py
index a227174c..0560d464 100644
--- a/keystone-moon/keystone/contrib/moon/core.py
+++ b/keystone-moon/keystone/contrib/moon/core.py
@@ -1883,13 +1883,15 @@ class IntraExtensionAuthzManager(IntraExtensionManager):
super(IntraExtensionAuthzManager, self).del_subject(user_id, intra_extension_id, subject_id)
tenants_dict = self.tenant_api.get_tenants_dict(self.root_api.get_root_admin_id())
for tenant_id in tenants_dict:
- if tenants_dict[tenant_id]["intra_authz_extension_id"] == intra_extension_id:
+ if tenants_dict[tenant_id]["intra_authz_extension_id"] == intra_extension_id and \
+ tenants_dict[tenant_id]["intra_admin_extension_id"]:
subject_id = self.driver.get_uuid_from_name(tenants_dict[tenant_id]["intra_admin_extension_id"],
subject_name,
self.driver.SUBJECT)
self.driver.del_subject(tenants_dict[tenant_id]["intra_admin_extension_id"], subject_id)
break
- if tenants_dict[tenant_id]["intra_admin_extension_id"] == intra_extension_id:
+ if tenants_dict[tenant_id]["intra_admin_extension_id"] == intra_extension_id and \
+ tenants_dict[tenant_id]["intra_authz_extension_id"]:
subject_id = self.driver.get_uuid_from_name(tenants_dict[tenant_id]["intra_authz_extension_id"],
subject_name,
self.driver.SUBJECT)
@@ -2046,13 +2048,15 @@ class IntraExtensionAdminManager(IntraExtensionManager):
super(IntraExtensionAdminManager, self).del_subject(user_id, intra_extension_id, subject_id)
tenants_dict = self.tenant_api.get_tenants_dict(self.root_api.get_root_admin_id())
for tenant_id in tenants_dict:
- if tenants_dict[tenant_id]["intra_authz_extension_id"] == intra_extension_id:
+ if tenants_dict[tenant_id]["intra_authz_extension_id"] == intra_extension_id and \
+ tenants_dict[tenant_id]["intra_admin_extension_id"]:
subject_id = self.driver.get_uuid_from_name(tenants_dict[tenant_id]["intra_admin_extension_id"],
subject_name,
self.driver.SUBJECT)
self.driver.del_subject(tenants_dict[tenant_id]["intra_admin_extension_id"], subject_id)
break
- if tenants_dict[tenant_id]["intra_admin_extension_id"] == intra_extension_id:
+ if tenants_dict[tenant_id]["intra_admin_extension_id"] == intra_extension_id and \
+ tenants_dict[tenant_id]["intra_authz_extension_id"]:
subject_id = self.driver.get_uuid_from_name(tenants_dict[tenant_id]["intra_authz_extension_id"],
subject_name,
self.driver.SUBJECT)
diff --git a/moonclient/moonclient/shell.py b/moonclient/moonclient/shell.py
index 4073a227..8343d86e 100644
--- a/moonclient/moonclient/shell.py
+++ b/moonclient/moonclient/shell.py
@@ -165,6 +165,8 @@ class MoonClient(App):
pass
content = resp.read()
conn.close()
+ if len(content) == 0:
+ return {}
try:
content = json.loads(content)
if "error" in content:
@@ -180,7 +182,6 @@ class MoonClient(App):
return content
except ValueError:
raise Exception("Getting an error while requiring {} ({})".format(url, content))
- # return {"content": content}
def auth_keystone(self, username=None, password=None, host=None, port=None):
"""Send a new authentication request to Keystone
diff --git a/moonclient/moonclient/tests.py b/moonclient/moonclient/tests.py
index 6484009f..e85c276b 100644
--- a/moonclient/moonclient/tests.py
+++ b/moonclient/moonclient/tests.py
@@ -110,15 +110,11 @@ class TestsLaunch(Lister):
if "external_command" in test:
ext_command = test["external_command"]
else:
- ext_command = test["shell_command"]
+ continue
ext_command = self.__replace_var_in_str(ext_command)
self.logfile.write("-----> {}\n".format(ext_command))
self.log.info(" \\-executing external \"{}\"".format(ext_command))
- if "external_command" in test:
- pipe = subprocess.Popen(shlex.split(ext_command), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- else:
- # Note (asteroide): security hazard! Must reduce the possible commands here.
- pipe = subprocess.Popen(ext_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ pipe = subprocess.Popen(shlex.split(ext_command), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
com = pipe.communicate()
result_str = com[0]
error_str = com[1]
diff --git a/moonclient/moonclient/tests/tests_subjects.json b/moonclient/moonclient/tests/tests_subjects.json
index 7001e227..37d37f42 100644
--- a/moonclient/moonclient/tests/tests_subjects.json
+++ b/moonclient/moonclient/tests/tests_subjects.json
@@ -36,7 +36,7 @@
},
{
"name": "set_tenant_authz",
- "command": "tenant set --authz $uuid_authz alt_demo",
+ "command": "tenant set --authz $uuid_authz $uuid",
"result": "",
"description": "Connect the authz intra extension to the tenant alt_demo",
"command_options": ""
@@ -57,9 +57,9 @@
},
{
"name": "add_subject",
- "command": "subject add alt_demo",
+ "command": "subject add alt_demo --password nomoresecrete",
"result": "",
- "description": "Connect the authz intra extension to the tenant demo",
+ "description": "Add the alt_demo subject",
"command_options": ""
},
{
@@ -186,9 +186,9 @@
},
{
"name": "add_subject",
- "command": "subject add alt_demo",
+ "command": "subject add alt_demo --password nomoresecrete",
"result": "",
- "description": "Connect the authz intra extension to the tenant alt_demo",
+ "description": "Add the alt_demo subject",
"command_options": ""
},
{