From 31c8c93355f763a82caf6d49ab6870a4eaf953d3 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Wed, 15 Nov 2023 16:23:45 -0500 Subject: [PATCH 01/15] Fix Bug and Add Settrs/Gettrs Fix bug on general resource extract of auditing rules. Add Settrs and Gettrs to fine-tune general resource profile auditing rules. Signed-off-by: Elijah Swift --- pyracf/common/security_admin.py | 60 ++-- pyracf/resource/resource_admin.py | 304 +++++++++++++++++- .../alter_resource_error.log | 5 +- .../alter_resource_success.log | 5 +- .../extract_resource_base_success.log | 5 +- .../extract_resource_result_base_success.json | 1 + .../extract_resource_result_base_success.xml | 2 +- 7 files changed, 354 insertions(+), 28 deletions(-) diff --git a/pyracf/common/security_admin.py b/pyracf/common/security_admin.py index 6a87e5d8..4ad7c086 100644 --- a/pyracf/common/security_admin.py +++ b/pyracf/common/security_admin.py @@ -465,27 +465,9 @@ def __format_data_set_generic_profile_data( and messages[i + 1] is not None and ("-" in messages[i + 1]) ): - field = " ".join( - [ - txt.lower().strip() - for txt in list(filter(None, messages[i].split(" "))) - ] + self.__format_tabular_data( + messages, profile, current_segment, i, list_fields ) - field = self._profile_field_to_camel_case(current_segment, field) - value = messages[i + 2] - if "(" in value: - value_tokens = value.split("(") - subfield = self._profile_field_to_camel_case( - current_segment, value_tokens[0].lower() - ) - profile[current_segment][field] = { - subfield: self._clean_and_separate(value_tokens[-1].rstrip(")")) - } - elif field in list_fields: - profile[current_segment][field] = [] - profile[current_segment][field].append(self._clean_and_separate(value)) - else: - profile[current_segment][field] = self._clean_and_separate(value) i += 1 elif "NO INSTALLATION DATA" in messages[i]: profile[current_segment]["installationData"] = None @@ -668,6 +650,44 @@ def __format_semi_tabular_data( messages[i + 2][indexes[j] : ind_e1] ) + def __format_tabular_data( + self, + messages: List[str], + profile: dict, + current_segment: str, + i: int, + list_fields: List[str] = ["volumes"], + ) -> None: + field = " ".join( + [txt.lower().strip() for txt in list(filter(None, messages[i].split(" ")))] + ) + field = self._profile_field_to_camel_case(current_segment, field) + values = ( + [messages[i + 2]] + if "," not in messages[i + 2] + else messages[i + 2].split(",") + ) + for value in values: + if "(" in value: + value_tokens = value.split("(") + subfield = self._profile_field_to_camel_case( + current_segment, value_tokens[0].lower() + ) + if field not in profile[current_segment]: + profile[current_segment][field] = { + subfield: self._clean_and_separate(value_tokens[-1].rstrip(")")) + } + else: + profile[current_segment][field][ + subfield + ] = self._clean_and_separate(value_tokens[-1].rstrip(")")) + elif field in list_fields: + profile[current_segment][field] = [] + profile[current_segment][field].append(self._clean_and_separate(value)) + else: + profile[current_segment][field] = self._clean_and_separate(value) + return + def __add_key_value_pairs_to_segment( self, segment_name: str, diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index 2b2318cf..49ff1b11 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -25,7 +25,7 @@ def __init__( self._valid_segment_traits = { "base": { "base:application_data": "racf:appldata", - "base:audit_alter:": "racf:audaltr", + "base:audit_alter": "racf:audaltr", "base:audit_control": "racf:audcntl", "base:audit_none": "racf:audnone", "base:audit_read": "racf:audread", @@ -285,6 +285,308 @@ def get_user_access( self.set_running_userid(original_userid) return self._get_field(profile, "base", "yourAccess") + # ============================================================================ + # Auditing Rules + # ============================================================================ + def get_audit_rules( + self, resource: str, class_name: str + ) -> Union[dict, bytes, None]: + """Get the auditing rules associated with this general resource profile.""" + profile = self.extract(resource, class_name, profile_only=True) + return self._get_field(profile, "base", "auditing") + + def clear_audit_failures( + self, resource: str, class_name: str + ) -> Union[dict, bytes]: + """ + Clears the auditing rules for failures for this general resource profile while + preserving other rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + if "failures" not in audit_rules: + return self._to_steps(result[0]) + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def clear_audit_successes( + self, resource: str, class_name: str + ) -> Union[dict, bytes]: + """ + Clears the auditing rules for successes for this general resource profile while + preserving other rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + if "success" not in audit_rules: + return self._to_steps(result[0]) + traits = {} + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def clear_audit_both_failures_and_successes( + self, resource: str, class_name: str + ) -> Union[dict, bytes]: + """ + Clears the auditing rules for both failures and successes for this + general resource profile while preserving individual rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + if "all" not in audit_rules: + return self._to_steps(result[0]) + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def clear_all_audit_rules( + self, resource: str, class_name: str + ) -> Union[dict, bytes]: + """Clears the auditing rules completely.""" + result = self.alter(resource, class_name, {"base:audit_none": True}) + return self._to_steps(result) + + def overwrite_audit_by_successes( + self, resource: str, class_name: str, audit_success: str + ) -> Union[dict, bytes]: + """ + Overwrites the auditing rules for this general resource profile with a new + rule to audit successes. + """ + traits = {f"base:audit_{audit_success}": "SUCCESS"} + result = self.alter(resource, class_name, traits=traits) + return self._to_steps(result) + + def overwrite_audit_by_failures( + self, resource: str, class_name: str, audit_failures: str + ) -> Union[dict, bytes]: + """ + Overwrites the auditing rules for this general resource profile with a new + rule to audit failures. + """ + traits = {f"base:audit_{audit_failures}": "FAILURE"} + result = self.alter(resource, class_name, traits=traits) + return self._to_steps(result) + + def overwrite_audit_by_both_successes_and_failures( + self, resource: str, class_name: str, audit_both: str + ) -> Union[dict, bytes]: + """ + Overwrites the auditing rules for this general resource profile with a new + rule to audit both successes and failures. + """ + traits = {f"base:audit_{audit_both}": "ALL"} + result = self.alter(resource, class_name, traits=traits) + return self._to_steps(result) + + def alter_audit_by_successes( + self, resource: str, class_name: str, audit_success: str + ) -> Union[dict, bytes]: + """ + Alters the auditing rules for this general resource profile with a new + rule to audit successes, preserving existing non-conflicting rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits[f"base:audit_{audit_success}"] = "SUCCESS" + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def alter_audit_by_failures( + self, resource: str, class_name: str, audit_failures: str + ) -> Union[dict, bytes]: + """ + Alters the auditing rules for this general resource profile with a new + rule to audit failures, preserving existing non-conflicting rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits[f"base:audit_{audit_failures}"] = "FAILURE" + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def alter_audit_by_both_successes_and_failures( + self, resource: str, class_name: str, audit_both: str + ) -> Union[dict, bytes]: + """ + Alters the auditing rules for this general resource profile with a new + rule to audit both successes and failures, preserving existing + non-conflicting rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits[f"base:audit_{audit_both}"] = "ALL" + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def overwrite_audit_by_audit_alter_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Overwrites the auditing rules for this general resource profile with a new + rule to audit alter access. + """ + traits = {"base:audit_alter": access_attempt} + result = self.alter(resource, class_name, traits=traits) + return self._to_steps(result) + + def overwrite_audit_by_audit_control_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Overwrites the auditing rules for this general resource profile with a new + rule to audit control access. + """ + traits = {"base:audit_control": access_attempt} + result = self.alter(resource, class_name, traits=traits) + return self._to_steps(result) + + def overwrite_audit_by_audit_read_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Overwrites the auditing rules for this general resource profile with a new + rule to audit read access. + """ + traits = {"base:audit_read": access_attempt} + result = self.alter(resource, class_name, traits=traits) + return self._to_steps(result) + + def overwrite_audit_by_audit_update_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Overwrites the auditing rules for this general resource profile with a new + rule to audit update access. + """ + traits = {"base:audit_update": access_attempt} + result = self.alter(resource, class_name, traits=traits) + return self._to_steps(result) + + def alter_audit_by_audit_alter_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Alters the auditing rules for this general resource profile with a new + rule to audit alter access, preserving existing non-conflicting rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits["base:audit_alter"] = access_attempt + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def alter_audit_by_audit_control_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Alters the auditing rules for this general resource profile with a new + rule to audit control access, preserving existing non-conflicting rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits["base:audit_control"] = access_attempt + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def alter_audit_by_audit_read_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Alters the auditing rules for this general resource profile with a new + rule to audit read access, preserving existing non-conflicting rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits["base:audit_read"] = access_attempt + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + + def alter_audit_by_audit_update_access( + self, resource: str, class_name: str, access_attempt: str + ) -> Union[dict, bytes]: + """ + Alters the auditing rules for this general resource profile with a new + rule to audit update access, preserving existing non-conflicting rules. + """ + result = [self.extract(resource, class_name)] + profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + audit_rules = self._get_field(profile, "base", "auditing") + traits = {} + if "success" in audit_rules: + traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + if "failures" in audit_rules: + traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + if "all" in audit_rules: + traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits["base:audit_update"] = access_attempt + result.append(self.alter(resource, class_name, traits=traits)) + return self._to_steps(result) + # ============================================================================ # Class Administration # ============================================================================ diff --git a/tests/resource/resource_log_samples/alter_resource_error.log b/tests/resource/resource_log_samples/alter_resource_error.log index cb8b9b79..3f9851ed 100644 --- a/tests/resource/resource_log_samples/alter_resource_error.log +++ b/tests/resource/resource_log_samples/alter_resource_error.log @@ -48,7 +48,7 @@ AUDITING -------- - FAILURES(READ) + SUCCESS(UPDATE),FAILURES(READ) NOTIFY ------ @@ -97,7 +97,7 @@ " ", "AUDITING", "--------", - "FAILURES(READ)", + "SUCCESS(UPDATE),FAILURES(READ)", " ", "NOTIFY", "------", @@ -144,6 +144,7 @@ "installationData": null, "applicationData": null, "auditing": { + "success": "update", "failures": "read" }, "notify": null, diff --git a/tests/resource/resource_log_samples/alter_resource_success.log b/tests/resource/resource_log_samples/alter_resource_success.log index 9a960990..a7996b5b 100644 --- a/tests/resource/resource_log_samples/alter_resource_success.log +++ b/tests/resource/resource_log_samples/alter_resource_success.log @@ -48,7 +48,7 @@ AUDITING -------- - FAILURES(READ) + SUCCESS(UPDATE),FAILURES(READ) NOTIFY ------ @@ -97,7 +97,7 @@ " ", "AUDITING", "--------", - "FAILURES(READ)", + "SUCCESS(UPDATE),FAILURES(READ)", " ", "NOTIFY", "------", @@ -144,6 +144,7 @@ "installationData": null, "applicationData": null, "auditing": { + "success": "update", "failures": "read" }, "notify": null, diff --git a/tests/resource/resource_log_samples/extract_resource_base_success.log b/tests/resource/resource_log_samples/extract_resource_base_success.log index b521d899..dff9502e 100644 --- a/tests/resource/resource_log_samples/extract_resource_base_success.log +++ b/tests/resource/resource_log_samples/extract_resource_base_success.log @@ -48,7 +48,7 @@ AUDITING -------- - FAILURES(READ) + SUCCESS(UPDATE),FAILURES(READ) NOTIFY ------ @@ -97,7 +97,7 @@ " ", "AUDITING", "--------", - "FAILURES(READ)", + "SUCCESS(UPDATE),FAILURES(READ)", " ", "NOTIFY", "------", @@ -144,6 +144,7 @@ "installationData": null, "applicationData": null, "auditing": { + "success": "update", "failures": "read" }, "notify": null, diff --git a/tests/resource/resource_result_samples/extract_resource_result_base_success.json b/tests/resource/resource_result_samples/extract_resource_result_base_success.json index 0a07ed06..15afc457 100644 --- a/tests/resource/resource_result_samples/extract_resource_result_base_success.json +++ b/tests/resource/resource_result_samples/extract_resource_result_base_success.json @@ -24,6 +24,7 @@ "installationData": null, "applicationData": null, "auditing": { + "success": "update", "failures": "read" }, "notify": null, diff --git a/tests/resource/resource_result_samples/extract_resource_result_base_success.xml b/tests/resource/resource_result_samples/extract_resource_result_base_success.xml index 92f4559f..58c17dfc 100644 --- a/tests/resource/resource_result_samples/extract_resource_result_base_success.xml +++ b/tests/resource/resource_result_samples/extract_resource_result_base_success.xml @@ -24,7 +24,7 @@ AUDITING -------- - FAILURES(READ) + SUCCESS(UPDATE),FAILURES(READ) NOTIFY ------ From f34f7779b7e246acf585ab05d7704bba47d3df30 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Mon, 20 Nov 2023 17:16:05 -0500 Subject: [PATCH 02/15] Add Unit Testing for New Getters and Setters -Added unit testing for 19 new Getter and Setter functions -Includes new category "compound" setters for multi-operation -Added logging of steps dictionary to debug logging Signed-off-by: Elijah Swift --- pyracf/common/security_admin.py | 4 + pyracf/resource/resource_admin.py | 4 +- ...lter_audit_by_audit_alter_access_error.log | 69 +++ ...er_audit_by_audit_alter_access_success.log | 492 ++++++++++++++++++ ...er_audit_by_audit_control_access_error.log | 69 +++ ..._audit_by_audit_control_access_success.log | 492 ++++++++++++++++++ ...alter_audit_by_audit_read_access_error.log | 69 +++ ...ter_audit_by_audit_read_access_success.log | 487 +++++++++++++++++ ...ter_audit_by_audit_update_access_error.log | 69 +++ ...r_audit_by_audit_update_access_success.log | 487 +++++++++++++++++ ...t_by_both_successes_and_failures_error.log | 69 +++ ...by_both_successes_and_failures_success.log | 492 ++++++++++++++++++ ...resource_alter_audit_by_failures_error.log | 69 +++ ...source_alter_audit_by_failures_success.log | 492 ++++++++++++++++++ ...esource_alter_audit_by_successes_error.log | 69 +++ ...ource_alter_audit_by_successes_success.log | 492 ++++++++++++++++++ ...udit_both_successes_and_failures_error.log | 69 +++ ...it_both_successes_and_failures_success.log | 482 +++++++++++++++++ ...er_resource_clear_audit_failures_error.log | 69 +++ ..._resource_clear_audit_failures_success.log | 482 +++++++++++++++++ ...r_resource_clear_audit_successes_error.log | 69 +++ ...resource_clear_audit_successes_success.log | 482 +++++++++++++++++ .../resource_clear_all_audit_rules.xml | 7 + ..._overwrite_audit_by_audit_alter_access.xml | 7 + ...verwrite_audit_by_audit_control_access.xml | 7 + ...e_overwrite_audit_by_audit_read_access.xml | 7 + ...overwrite_audit_by_audit_update_access.xml | 7 + ...e_audit_by_both_successes_and_failures.xml | 7 + .../resource_overwrite_audit_by_failures.xml | 7 + .../resource_overwrite_audit_by_successes.xml | 7 + ...sult_alter_audit_by_audit_alter_access.xml | 15 + ...lt_alter_audit_by_audit_control_access.xml | 15 + ...esult_alter_audit_by_audit_read_access.xml | 15 + ...ult_alter_audit_by_audit_update_access.xml | 15 + ...r_audit_by_both_successes_and_failures.xml | 15 + ...esource_result_alter_audit_by_failures.xml | 15 + ...source_result_alter_audit_by_successes.xml | 15 + ...lear_audit_both_successes_and_failures.xml | 15 + ...r_resource_result_clear_audit_failures.xml | 15 + ..._resource_result_clear_audit_successes.xml | 15 + .../test_resource_compound_setters.py | 481 +++++++++++++++++ tests/resource/test_resource_constants.py | 120 +++++ tests/resource/test_resource_getters.py | 29 ++ tests/resource/test_resource_setters.py | 75 +++ tests/test_runner.py | 2 + 45 files changed, 6489 insertions(+), 2 deletions(-) create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log create mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log create mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log create mode 100644 tests/resource/resource_request_samples/resource_clear_all_audit_rules.xml create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_alter_access.xml create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_control_access.xml create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_read_access.xml create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_update_access.xml create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_both_successes_and_failures.xml create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml create mode 100644 tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml create mode 100644 tests/resource/test_resource_compound_setters.py diff --git a/pyracf/common/security_admin.py b/pyracf/common/security_admin.py index 4ad7c086..a4b2792e 100644 --- a/pyracf/common/security_admin.py +++ b/pyracf/common/security_admin.py @@ -270,6 +270,10 @@ def _to_steps(self, results: Union[List[dict], dict, bytes]) -> Union[dict, byte steps_dictionary = {} for step, result_dictionary in enumerate(pre_processed_results): steps_dictionary[f"step{step+1}"] = result_dictionary + self.__logger.log_dictionary( + "Steps Dictionary", + steps_dictionary, + ) return steps_dictionary # ============================================================================ diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index 49ff1b11..b43c1765 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -335,11 +335,11 @@ def clear_audit_successes( result.append(self.alter(resource, class_name, traits=traits)) return self._to_steps(result) - def clear_audit_both_failures_and_successes( + def clear_audit_both_successes_and_failures( self, resource: str, class_name: str ) -> Union[dict, bytes]: """ - Clears the auditing rules for both failures and successes for this + Clears the auditing rules for both successes and failures for this general resource profile while preserving individual rules. """ result = [self.extract(resource, class_name)] diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log new file mode 100644 index 00000000..b33fb0d4 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log new file mode 100644 index 00000000..1bb4d967 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log @@ -0,0 +1,492 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "base": { + "base:audit_update": { + "value": "SUCCESS", + "operation": null + }, + "base:audit_read": { + "value": "FAILURE", + "operation": null + }, + "base:audit_alter": { + "value": "success", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + SUCCESS + FAILURE + success + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_alter_access() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.alter_audit_by_audit_alter_access() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log new file mode 100644 index 00000000..89cdd21a --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log new file mode 100644 index 00000000..176a3e45 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log @@ -0,0 +1,492 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "base": { + "base:audit_update": { + "value": "SUCCESS", + "operation": null + }, + "base:audit_read": { + "value": "FAILURE", + "operation": null + }, + "base:audit_control": { + "value": "success", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + SUCCESS + FAILURE + success + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_control_access() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.alter_audit_by_audit_control_access() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log new file mode 100644 index 00000000..c26b6bfe --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log new file mode 100644 index 00000000..62e50bc4 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log @@ -0,0 +1,487 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "base": { + "base:audit_update": { + "value": "SUCCESS", + "operation": null + }, + "base:audit_read": { + "value": "success", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + SUCCESS + success + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_read_access() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.alter_audit_by_audit_read_access() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log new file mode 100644 index 00000000..7b131b4c --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log new file mode 100644 index 00000000..d7afcc4f --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log @@ -0,0 +1,487 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "base": { + "base:audit_update": { + "value": "failure", + "operation": null + }, + "base:audit_read": { + "value": "FAILURE", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + failure + FAILURE + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_audit_update_access() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.alter_audit_by_audit_update_access() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log new file mode 100644 index 00000000..672ea828 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log new file mode 100644 index 00000000..65c378d9 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log @@ -0,0 +1,492 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + ALL(READ),SUCCESS(CONTROL) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "ALL(READ),SUCCESS(CONTROL)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "all": "read", + "success": "control" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + ALL(READ),SUCCESS(CONTROL) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "ALL(READ),SUCCESS(CONTROL)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "all": "read", + "success": "control" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "base": { + "base:audit_control": { + "value": "SUCCESS", + "operation": null + }, + "base:audit_read": { + "value": "ALL", + "operation": null + }, + "base:audit_update": { + "value": "ALL", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + SUCCESS + ALL + ALL + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.alter_audit_by_both_successes_and_failures() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "all": "read", + "success": "control" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log new file mode 100644 index 00000000..8bff6914 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_failures() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log new file mode 100644 index 00000000..292b2b1c --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log @@ -0,0 +1,492 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{ + "base": { + "base:audit_update": { + "value": "SUCCESS", + "operation": null + }, + "base:audit_read": { + "value": "FAILURE", + "operation": null + }, + "base:audit_control": { + "value": "FAILURE", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_failures() + + + + + + SUCCESS + FAILURE + FAILURE + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_failures() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.alter_audit_by_failures() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log new file mode 100644 index 00000000..57808952 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_successes() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_successes() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log new file mode 100644 index 00000000..bcf463ae --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log @@ -0,0 +1,492 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_successes() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_successes() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_successes() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_successes() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.alter_audit_by_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{ + "base": { + "base:audit_update": { + "value": "SUCCESS", + "operation": null + }, + "base:audit_read": { + "value": "FAILURE", + "operation": null + }, + "base:audit_control": { + "value": "SUCCESS", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.alter_audit_by_successes() + + + + + + SUCCESS + FAILURE + SUCCESS + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.alter_audit_by_successes() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.alter_audit_by_successes() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log new file mode 100644 index 00000000..80a81d48 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log new file mode 100644 index 00000000..125feb86 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log @@ -0,0 +1,482 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + ALL(READ),SUCCESS(CONTROL) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "ALL(READ),SUCCESS(CONTROL)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "all": "read", + "success": "control" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + ALL(READ),SUCCESS(CONTROL) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "ALL(READ),SUCCESS(CONTROL)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "all": "read", + "success": "control" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "base": { + "base:audit_control": { + "value": "SUCCESS", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + SUCCESS + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_both_successes_and_failures() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.clear_audit_both_successes_and_failures() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "all": "read", + "success": "control" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log new file mode 100644 index 00000000..c59723c6 --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_failures() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log new file mode 100644 index 00000000..f098944c --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log @@ -0,0 +1,482 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.clear_audit_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_failures() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_failures() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_failures() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.clear_audit_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_failures() + + +{ + "base": { + "base:audit_update": { + "value": "SUCCESS", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_failures() + + + + + + SUCCESS + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_failures() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_failures() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.clear_audit_failures() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log new file mode 100644 index 00000000..a631277f --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log @@ -0,0 +1,69 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_successes() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_successes() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_successes() + + + + + + + 8 + 16 + 4 + RLIST ELIJTEST (TESTING) + ICH13003I TESTING NOT FOUND + + + 4 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 8, + "returnCode": 16, + "reasonCode": 4, + "image": "RLIST ELIJTEST (TESTING)", + "messages": [ + "ICH13003I TESTING NOT FOUND" + ] + } + ] + }, + "returnCode": 4, + "reasonCode": 0 + } +} + diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log new file mode 100644 index 00000000..59b2917f --- /dev/null +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log @@ -0,0 +1,482 @@ + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_successes() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_successes() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_successes() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.clear_audit_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_successes() + + +{} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_successes() + + + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_successes() + + + + + + + 0 + 0 + 0 + RLIST ELIJTEST (TESTING) + CLASS NAME + ----- ---- + ELIJTEST TESTING + + LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING + ----- -------- ---------------- ----------- ------- + 00 ESWIFT READ READ NO + + INSTALLATION DATA + ----------------- + NONE + + APPLICATION DATA + ---------------- + NONE + + AUDITING + -------- + SUCCESS(UPDATE),FAILURES(READ) + + NOTIFY + ------ + NO USER TO BE NOTIFIED + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "messages": [ + "CLASS NAME", + "----- ----", + "ELIJTEST TESTING", + " ", + "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", + "----- -------- ---------------- ----------- -------", + " 00 ESWIFT READ READ NO", + " ", + "INSTALLATION DATA", + "-----------------", + "NONE", + " ", + "APPLICATION DATA", + "----------------", + "NONE", + " ", + "AUDITING", + "--------", + "SUCCESS(UPDATE),FAILURES(READ)", + " ", + "NOTIFY", + "------", + "NO USER TO BE NOTIFIED" + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Result Dictionary (Formatted Profile) + ResourceAdmin.clear_audit_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Request Dictionary + ResourceAdmin.clear_audit_successes() + + +{ + "base": { + "base:audit_read": { + "value": "FAILURE", + "operation": null + } + } +} + + + [pyRACF:Debug] + Request XML + ResourceAdmin.clear_audit_successes() + + + + + + FAILURE + + + + + + [pyRACF:Debug] + Result XML + ResourceAdmin.clear_audit_successes() + + + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + + + + [pyRACF:Debug] + Result Dictionary + ResourceAdmin.clear_audit_successes() + + +{ + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } +} + + + [pyRACF:Debug] + Steps Dictionary + ResourceAdmin.clear_audit_successes() + + +{ + "step1": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "listdata", + "requestId": "ResourceRequest", + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RLIST ELIJTEST (TESTING) ", + "profiles": [ + { + "base": { + "class": "elijtest", + "name": "testing", + "level": 0, + "owner": "eswift", + "universalAccess": "read", + "yourAccess": "read", + "warning": null, + "installationData": null, + "applicationData": null, + "auditing": { + "success": "update", + "failures": "read" + }, + "notify": null, + "generic": false + } + } + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + }, + "step2": { + "securityResult": { + "resource": { + "name": "TESTING", + "class": "ELIJTEST", + "operation": "set", + "requestId": "ResourceRequest", + "info": [ + "Definition exists. Add command skipped due to precheck option" + ], + "commands": [ + { + "safReturnCode": 0, + "returnCode": 0, + "reasonCode": 0, + "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ))", + "messages": [ + "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." + ] + } + ] + }, + "returnCode": 0, + "reasonCode": 0 + } + } +} + diff --git a/tests/resource/resource_request_samples/resource_clear_all_audit_rules.xml b/tests/resource/resource_request_samples/resource_clear_all_audit_rules.xml new file mode 100644 index 00000000..8aaac822 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_clear_all_audit_rules.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_alter_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_alter_access.xml new file mode 100644 index 00000000..5ec43705 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_alter_access.xml @@ -0,0 +1,7 @@ + + + + SUCCESS + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_control_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_control_access.xml new file mode 100644 index 00000000..574bbf9f --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_control_access.xml @@ -0,0 +1,7 @@ + + + + FAILURE + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_read_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_read_access.xml new file mode 100644 index 00000000..efb89474 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_read_access.xml @@ -0,0 +1,7 @@ + + + + SUCCESS + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_update_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_update_access.xml new file mode 100644 index 00000000..20a2ab00 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_update_access.xml @@ -0,0 +1,7 @@ + + + + ALL + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_both_successes_and_failures.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_both_successes_and_failures.xml new file mode 100644 index 00000000..20a2ab00 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_both_successes_and_failures.xml @@ -0,0 +1,7 @@ + + + + ALL + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml new file mode 100644 index 00000000..574bbf9f --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml @@ -0,0 +1,7 @@ + + + + FAILURE + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml new file mode 100644 index 00000000..5ec43705 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml @@ -0,0 +1,7 @@ + + + + SUCCESS + + + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml new file mode 100644 index 00000000..f828687f --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml new file mode 100644 index 00000000..4e783350 --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml new file mode 100644 index 00000000..c3b1a06d --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml new file mode 100644 index 00000000..fd1cc4d3 --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml new file mode 100644 index 00000000..d203c5b9 --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml new file mode 100644 index 00000000..5803763e --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml new file mode 100644 index 00000000..568cb541 --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml new file mode 100644 index 00000000..b865c868 --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml new file mode 100644 index 00000000..2892ab04 --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml new file mode 100644 index 00000000..26d937af --- /dev/null +++ b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml @@ -0,0 +1,15 @@ + + + + Definition exists. Add command skipped due to precheck option + + 0 + 0 + 0 + RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ )) + ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. + + + 0 + 0 + \ No newline at end of file diff --git a/tests/resource/test_resource_compound_setters.py b/tests/resource/test_resource_compound_setters.py new file mode 100644 index 00000000..fcf0b836 --- /dev/null +++ b/tests/resource/test_resource_compound_setters.py @@ -0,0 +1,481 @@ +"""Test general resource profile compound setter functions.""" + +import contextlib +import io +import re +import unittest +from unittest.mock import Mock, patch + +import __init__ + +import tests.resource.test_resource_constants as TestResourceConstants +from pyracf import ResourceAdmin, SecurityRequestError +from pyracf.common.irrsmo00 import IRRSMO00 + +# Resolves F401 +__init__ + + +@patch("pyracf.common.irrsmo00.IRRSMO00.call_racf") +class TestResourceCompoundSetters(unittest.TestCase): + maxDiff = None + IRRSMO00.__init__ = Mock(return_value=None) + resource_admin = ResourceAdmin(debug=True) + ansi_escape = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])") + + # ============================================================================ + # Auditing Rules + # ============================================================================ + def test_resource_admin_clear_audit_failures_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.clear_audit_failures("TESTING", "ELIJTEST") + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_clear_audit_failures_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.clear_audit_failures("TESTING", "ELIJTEST") + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_ERROR_LOG, + ) + + def test_resource_admin_clear_audit_successes_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.clear_audit_successes("TESTING", "ELIJTEST") + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_clear_audit_successes_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.clear_audit_successes("TESTING", "ELIJTEST") + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_ERROR_LOG, + ) + + def test_resource_admin_clear_audit_both_successes_and_failures_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + resource_extract_audit_all_read_success_control = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML + ) + resource_extract_audit_all_read_success_control = ( + resource_extract_audit_all_read_success_control.replace( + "SUCCESS(UPDATE),FAILURES(READ)", + "ALL(READ),SUCCESS(CONTROL)", + ) + ) + call_racf_mock.side_effect = [ + resource_extract_audit_all_read_success_control, + resource_extract_audit_all_read_success_control, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.clear_audit_both_successes_and_failures( + "TESTING", "ELIJTEST" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_clear_audit_both_successes_and_failures_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.clear_audit_both_successes_and_failures( + "TESTING", "ELIJTEST" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_ERROR_LOG, + ) + + def test_resource_admin_alter_audit_by_failures_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.alter_audit_by_failures( + "TESTING", "ELIJTEST", "control" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_alter_audit_by_failures_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.alter_audit_by_failures( + "TESTING", "ELIJTEST", "control" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_ERROR_LOG, + ) + + def test_resource_admin_alter_audit_by_successes_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.alter_audit_by_successes( + "TESTING", "ELIJTEST", "control" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_alter_audit_by_successes_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.alter_audit_by_successes( + "TESTING", "ELIJTEST", "control" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_ERROR_LOG, + ) + + def test_resource_admin_alter_audit_by_both_successes_and_failures_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + resource_extract_audit_all_read_success_control = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML + ) + resource_extract_audit_all_read_success_control = ( + resource_extract_audit_all_read_success_control.replace( + "SUCCESS(UPDATE),FAILURES(READ)", + "ALL(READ),SUCCESS(CONTROL)", + ) + ) + call_racf_mock.side_effect = [ + resource_extract_audit_all_read_success_control, + resource_extract_audit_all_read_success_control, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.alter_audit_by_both_successes_and_failures( + "TESTING", "ELIJTEST", "update" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_alter_audit_by_both_successes_and_failures_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML, + ] + with self.assertRaises(SecurityRequestError): + self.resource_admin.clear_audit_both_successes_and_failures( + "TESTING", "ELIJTEST" + ) + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.alter_audit_by_both_successes_and_failures( + "TESTING", "ELIJTEST", "update" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_ERROR_LOG, + ) + + def test_resource_admin_alter_audit_by_audit_alter_access_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.alter_audit_by_audit_alter_access( + "TESTING", "ELIJTEST", "success" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_alter_audit_by_audit_alter_access_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.alter_audit_by_audit_alter_access( + "TESTING", "ELIJTEST", "success" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_ERROR_LOG, + ) + + def test_resource_admin_alter_audit_by_audit_control_access_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.alter_audit_by_audit_control_access( + "TESTING", "ELIJTEST", "success" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_alter_audit_by_audit_control_access_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.alter_audit_by_audit_control_access( + "TESTING", "ELIJTEST", "success" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_ERROR_LOG, + ) + + def test_resource_admin_alter_audit_by_audit_read_access_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.alter_audit_by_audit_read_access( + "TESTING", "ELIJTEST", "success" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_alter_audit_by_audit_read_access_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.alter_audit_by_audit_read_access( + "TESTING", "ELIJTEST", "success" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_ERROR_LOG, + ) + + def test_resource_admin_alter_audit_by_audit_update_access_logs_correctly_on_success( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.resource_admin.alter_audit_by_audit_update_access( + "TESTING", "ELIJTEST", "failure" + ) + success_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + success_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_SUCCESS_LOG, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_alter_audit_by_audit_update_access_logs_correctly_on_error( + self, + call_racf_mock: Mock, + ): + call_racf_mock.side_effect = [ + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML, + ] + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + try: + self.resource_admin.alter_audit_by_audit_update_access( + "TESTING", "ELIJTEST", "success" + ) + except SecurityRequestError: + pass + error_log = self.ansi_escape.sub("", stdout.getvalue()) + self.assertEqual( + error_log, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_ERROR_LOG, + ) diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index fe0026ba..248732c6 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -111,6 +111,126 @@ def get_sample(sample_file: str) -> Union[str, bytes]: # ============================================================================ TEST_RESOURCE_SET_UNIVERSAL_ACCESS_XML = get_sample("resource_set_universal_access.xml") +TEST_RESOURCE_CLEAR_ALL_AUDIT_RULES_XML = get_sample( + "resource_clear_all_audit_rules.xml" +) +TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_ALTER_ACCESS_XML = get_sample( + "resource_overwrite_audit_by_audit_alter_access.xml" +) +TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML = get_sample( + "resource_overwrite_audit_by_audit_control_access.xml" +) +TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML = get_sample( + "resource_overwrite_audit_by_audit_update_access.xml" +) +TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_READ_ACCESS_XML = get_sample( + "resource_overwrite_audit_by_audit_read_access.xml" +) +TEST_RESOURCE_OVERWRITE_AUDIT_BY_SUCCESSES_XML = get_sample( + "resource_overwrite_audit_by_successes.xml" +) +TEST_RESOURCE_OVERWRITE_AUDIT_BY_FAILURES_XML = get_sample( + "resource_overwrite_audit_by_failures.xml" +) +TEST_RESOURCE_OVERWRITE_AUDIT_BY_BOTH_SUCCESSES_AND_FAILURES_XML = get_sample( + "resource_overwrite_audit_by_both_successes_and_failures.xml" +) +TEST_RESOURCE_CLEAR_AUDIT_FAILURES_XML = get_sample( + "alter_resource_result_clear_audit_failures.xml" +) +TEST_RESOURCE_CLEAR_AUDIT_FAILURES_SUCCESS_LOG = get_sample( + "alter_resource_clear_audit_failures_success.log" +) +TEST_RESOURCE_CLEAR_AUDIT_FAILURES_ERROR_LOG = get_sample( + "alter_resource_clear_audit_failures_error.log" +) +TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_XML = get_sample( + "alter_resource_result_clear_audit_successes.xml" +) +TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_SUCCESS_LOG = get_sample( + "alter_resource_clear_audit_successes_success.log" +) +TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_ERROR_LOG = get_sample( + "alter_resource_clear_audit_successes_error.log" +) +TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_XML = get_sample( + "alter_resource_result_clear_audit_both_successes_and_failures.xml" +) +TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_SUCCESS_LOG = get_sample( + "alter_resource_clear_audit_both_successes_and_failures_success.log" +) +TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_ERROR_LOG = get_sample( + "alter_resource_clear_audit_both_successes_and_failures_error.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_XML = get_sample( + "alter_resource_result_alter_audit_by_failures.xml" +) +TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_SUCCESS_LOG = get_sample( + "alter_resource_alter_audit_by_failures_success.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_ERROR_LOG = get_sample( + "alter_resource_alter_audit_by_failures_error.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_XML = get_sample( + "alter_resource_result_alter_audit_by_successes.xml" +) +TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_SUCCESS_LOG = get_sample( + "alter_resource_alter_audit_by_successes_success.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_ERROR_LOG = get_sample( + "alter_resource_alter_audit_by_successes_error.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML = get_sample( + "alter_resource_result_alter_audit_by_both_successes_and_failures.xml" +) +TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_SUCCESS_LOG = get_sample( + "alter_resource_alter_audit_by_both_successes_and_failures_success.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_ERROR_LOG = get_sample( + "alter_resource_alter_audit_by_both_successes_and_failures_error.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_XML = get_sample( + "alter_resource_result_alter_audit_by_audit_alter_access.xml" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_SUCCESS_LOG = get_sample( + "alter_resource_alter_audit_by_audit_alter_access_success.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_ERROR_LOG = get_sample( + "alter_resource_alter_audit_by_audit_alter_access_error.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML = get_sample( + "alter_resource_result_alter_audit_by_audit_control_access.xml" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_SUCCESS_LOG = get_sample( + "alter_resource_alter_audit_by_audit_control_access_success.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_ERROR_LOG = get_sample( + "alter_resource_alter_audit_by_audit_control_access_error.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_XML = get_sample( + "alter_resource_result_alter_audit_by_audit_read_access.xml" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_SUCCESS_LOG = get_sample( + "alter_resource_alter_audit_by_audit_read_access_success.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_ERROR_LOG = get_sample( + "alter_resource_alter_audit_by_audit_read_access_error.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML = get_sample( + "alter_resource_result_alter_audit_by_audit_update_access.xml" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_SUCCESS_LOG = get_sample( + "alter_resource_alter_audit_by_audit_update_access_success.log" +) +TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_ERROR_LOG = get_sample( + "alter_resource_alter_audit_by_audit_update_access_error.log" +) + +# ============================================================================ +# Resource Administration Getters Result Data +# ============================================================================ + +TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES = {"success": "update", "failures": "read"} # ============================================================================ # Debug Logging diff --git a/tests/resource/test_resource_getters.py b/tests/resource/test_resource_getters.py index 4f321ed1..e134c677 100644 --- a/tests/resource/test_resource_getters.py +++ b/tests/resource/test_resource_getters.py @@ -60,6 +60,9 @@ def test_resource_admin_get_universal_access_raises_an_exception_when_extract_fa with self.assertRaises(SecurityRequestError): self.resource_admin.get_universal_access("TESTING", "ELIJTEST") + # ============================================================================ + # My Access + # ============================================================================ def test_resource_admin_get_my_access_returns_valid_when_read( self, call_racf_mock: Mock, @@ -95,3 +98,29 @@ def test_resource_admin_get_my_access_raises_an_exception_when_extract_fails( ) with self.assertRaises(SecurityRequestError): self.resource_admin.get_my_access("TESTING", "ELIJTEST") + + # ============================================================================ + # Auditing Rules + # ============================================================================ + def test_resource_admin_get_audit_rules_returns_valid( + self, + call_racf_mock: Mock, + ): + call_racf_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML + ) + self.assertEqual( + self.resource_admin.get_audit_rules("TESTING", "ELIJTEST"), + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES, + ) + + # Error in environment, TESTING already deleted/not added + def test_resource_admin_get_audit_rules_raises_an_exception_when_extract_fails( + self, + call_racf_mock: Mock, + ): + call_racf_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML + ) + with self.assertRaises(SecurityRequestError): + self.resource_admin.get_audit_rules("TESTING", "ELIJTEST") diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index 3c9ae235..edd90339 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -18,6 +18,9 @@ class TestResourceSetters(unittest.TestCase): IRRSMO00.__init__ = Mock(return_value=None) resource_admin = ResourceAdmin(generate_requests_only=True) + # ============================================================================ + # Universal Access + # ============================================================================ def test_resource_admin_build_set_universal_access_request(self): result = self.resource_admin.set_universal_access( "TESTING", "ELIJTEST", "ALTER" @@ -25,3 +28,75 @@ def test_resource_admin_build_set_universal_access_request(self): self.assertEqual( result, TestResourceConstants.TEST_RESOURCE_SET_UNIVERSAL_ACCESS_XML ) + + # ============================================================================ + # Auditing Rules + # ============================================================================ + def test_resource_admin_build_clear_all_audit_rules_request(self): + result = self.resource_admin.clear_all_audit_rules("TESTING", "ELIJTEST") + self.assertEqual( + result, TestResourceConstants.TEST_RESOURCE_CLEAR_ALL_AUDIT_RULES_XML + ) + + def test_resource_admin_build_overwrite_audit_by_audit_alter_access_request(self): + result = self.resource_admin.overwrite_audit_by_audit_alter_access( + "TESTING", "ELIJTEST", "SUCCESS" + ) + self.assertEqual( + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_ALTER_ACCESS_XML, + ) + + def test_resource_admin_build_overwrite_audit_by_audit_control_access_request(self): + result = self.resource_admin.overwrite_audit_by_audit_control_access( + "TESTING", "ELIJTEST", "FAILURE" + ) + self.assertEqual( + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML, + ) + + def test_resource_admin_build_overwrite_audit_by_audit_read_access_request(self): + result = self.resource_admin.overwrite_audit_by_audit_read_access( + "TESTING", "ELIJTEST", "SUCCESS" + ) + self.assertEqual( + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_READ_ACCESS_XML, + ) + + def test_resource_admin_build_overwrite_audit_by_audit_update_access_request(self): + result = self.resource_admin.overwrite_audit_by_audit_update_access( + "TESTING", "ELIJTEST", "ALL" + ) + self.assertEqual( + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML, + ) + + def test_resource_admin_build_overwrite_audit_by_successes_request(self): + result = self.resource_admin.overwrite_audit_by_successes( + "TESTING", "ELIJTEST", "alter" + ) + self.assertEqual( + result, TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_SUCCESSES_XML + ) + + def test_resource_admin_build_overwrite_audit_by_failures_request(self): + result = self.resource_admin.overwrite_audit_by_failures( + "TESTING", "ELIJTEST", "control" + ) + self.assertEqual( + result, TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_FAILURES_XML + ) + + def test_resource_admin_build_overwrite_audit_by_both_successes_and_failures_request( + self, + ): + result = self.resource_admin.overwrite_audit_by_both_successes_and_failures( + "TESTING", "ELIJTEST", "update" + ) + self.assertEqual( + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_BOTH_SUCCESSES_AND_FAILURES_XML, + ) diff --git a/tests/test_runner.py b/tests/test_runner.py index 214e1a6c..0a3b7309 100644 --- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -31,6 +31,7 @@ from tests.group.test_group_request_builder import TestGroupRequestBuilder from tests.group.test_group_result_parser import TestGroupResultParser from tests.group.test_group_setters import TestGroupSetters +from tests.resource.test_resource_compound_setters import TestResourceCompoundSetters from tests.resource.test_resource_debug_logging import TestResourceDebugLogging from tests.resource.test_resource_getters import TestResourceGetters from tests.resource.test_resource_request_builder import TestResourceRequestBuilder @@ -84,6 +85,7 @@ def __test_suite() -> unittest.TestSuite: TestResourceRequestBuilder, TestResourceGetters, TestResourceSetters, + TestResourceCompoundSetters, TestResourceDebugLogging, TestResourceSubfunctionRequests, TestResourceSubfunctionExtracts, From 233488f86e1c771445591803fc40f068d51c050c Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Wed, 6 Dec 2023 10:50:48 -0500 Subject: [PATCH 03/15] Restructure Audit Rules Gettrs/Setters -Draft of restructuring audit rules getters and settrs -needs some new unit tests for "new" functionality (clear by access level) -needs documentation changes -first we need to see if this is fixed Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 318 ++++++------------ ...lter_audit_by_audit_alter_access_error.log | 8 +- ...er_audit_by_audit_alter_access_success.log | 30 +- ...er_audit_by_audit_control_access_error.log | 8 +- ..._audit_by_audit_control_access_success.log | 30 +- ...alter_audit_by_audit_read_access_error.log | 8 +- ...ter_audit_by_audit_read_access_success.log | 30 +- ...ter_audit_by_audit_update_access_error.log | 8 +- ...r_audit_by_audit_update_access_success.log | 30 +- ...t_by_both_successes_and_failures_error.log | 8 +- ...by_both_successes_and_failures_success.log | 30 +- ...resource_alter_audit_by_failures_error.log | 8 +- ...source_alter_audit_by_failures_success.log | 30 +- ...esource_alter_audit_by_successes_error.log | 8 +- ...ource_alter_audit_by_successes_success.log | 30 +- ...udit_both_successes_and_failures_error.log | 8 +- ...it_both_successes_and_failures_success.log | 30 +- ...er_resource_clear_audit_failures_error.log | 8 +- ..._resource_clear_audit_failures_success.log | 30 +- ...r_resource_clear_audit_successes_error.log | 8 +- ...resource_clear_audit_successes_success.log | 30 +- .../test_resource_compound_setters.py | 82 ++--- tests/resource/test_resource_setters.py | 28 +- 23 files changed, 342 insertions(+), 466 deletions(-) diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index b43c1765..c54ffadd 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -295,112 +295,62 @@ def get_audit_rules( profile = self.extract(resource, class_name, profile_only=True) return self._get_field(profile, "base", "auditing") - def clear_audit_failures( - self, resource: str, class_name: str - ) -> Union[dict, bytes]: - """ - Clears the auditing rules for failures for this general resource profile while - preserving other rules. - """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") - if "failures" not in audit_rules: - return self._to_steps(result[0]) - traits = {} - if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" - if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" - result.append(self.alter(resource, class_name, traits=traits)) - return self._to_steps(result) - - def clear_audit_successes( - self, resource: str, class_name: str - ) -> Union[dict, bytes]: - """ - Clears the auditing rules for successes for this general resource profile while - preserving other rules. - """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") - if "success" not in audit_rules: - return self._to_steps(result[0]) - traits = {} - if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" - if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" - result.append(self.alter(resource, class_name, traits=traits)) - return self._to_steps(result) - - def clear_audit_both_successes_and_failures( - self, resource: str, class_name: str + def clear_audit_by_attempt( + self, resource: str, class_name: str, attempt_type: str ) -> Union[dict, bytes]: """ - Clears the auditing rules for both successes and failures for this - general resource profile while preserving individual rules. + Clears the auditing rules for specific attempts for this general resource profile + while preserving other rules. """ + attempt_types = ["failures", "success", "all"] result = [self.extract(resource, class_name)] profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] audit_rules = self._get_field(profile, "base", "auditing") - if "all" not in audit_rules: + if attempt_type not in audit_rules: return self._to_steps(result[0]) traits = {} - if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" - if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + attempt_types.remove(attempt_type) + for attempt in attempt_types: + if attempt in audit_rules: + value = ( + "FAILURE" if (attempt.upper() == "FAILURES") else attempt.upper() + ) + traits[f"base:audit_{audit_rules[attempt]}"] = value result.append(self.alter(resource, class_name, traits=traits)) return self._to_steps(result) - def clear_all_audit_rules( - self, resource: str, class_name: str - ) -> Union[dict, bytes]: - """Clears the auditing rules completely.""" - result = self.alter(resource, class_name, {"base:audit_none": True}) - return self._to_steps(result) - - def overwrite_audit_by_successes( - self, resource: str, class_name: str, audit_success: str - ) -> Union[dict, bytes]: - """ - Overwrites the auditing rules for this general resource profile with a new - rule to audit successes. - """ - traits = {f"base:audit_{audit_success}": "SUCCESS"} - result = self.alter(resource, class_name, traits=traits) - return self._to_steps(result) - - def overwrite_audit_by_failures( - self, resource: str, class_name: str, audit_failures: str - ) -> Union[dict, bytes]: - """ - Overwrites the auditing rules for this general resource profile with a new - rule to audit failures. - """ - traits = {f"base:audit_{audit_failures}": "FAILURE"} - result = self.alter(resource, class_name, traits=traits) - return self._to_steps(result) - - def overwrite_audit_by_both_successes_and_failures( - self, resource: str, class_name: str, audit_both: str + def overwrite_audit_by_attempt( + self, + resource: str, + class_name: str, + success: Union[str, None] = None, + failure: Union[str, None] = None, + all: Union[str, None] = None, ) -> Union[dict, bytes]: """ - Overwrites the auditing rules for this general resource profile with a new - rule to audit both successes and failures. + Overwrites the auditing rules for this general resource profile with new + rules to audit based on specified access attempts. """ - traits = {f"base:audit_{audit_both}": "ALL"} + if success is not None: + traits = {f"base:audit_{success}": "SUCCESS"} + if failure is not None: + traits = {f"base:audit_{failure}": "FAILURE"} + if all is not None: + traits = {f"base:audit_{all}": "ALL"} result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) - def alter_audit_by_successes( - self, resource: str, class_name: str, audit_success: str + def alter_audit_by_attempt( + self, + resource: str, + class_name: str, + success: Union[str, None] = None, + failure: Union[str, None] = None, + all: Union[str, None] = None, ) -> Union[dict, bytes]: """ - Alters the auditing rules for this general resource profile with a new - rule to audit successes, preserving existing non-conflicting rules. + Alters the auditing rules for this general resource profile with new rules + to audit by access level, preserving existing non-conflicting rules. """ result = [self.extract(resource, class_name)] profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] @@ -412,99 +362,74 @@ def alter_audit_by_successes( traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" if "all" in audit_rules: traits[f"base:audit_{audit_rules['all']}"] = "ALL" - traits[f"base:audit_{audit_success}"] = "SUCCESS" + if success is not None: + traits[f"base:audit_{success}"] = "SUCCESS" + if failure is not None: + traits[f"base:audit_{failure}"] = "FAILURE" + if all is not None: + traits[f"base:audit_{all}"] = "ALL" result.append(self.alter(resource, class_name, traits=traits)) return self._to_steps(result) - def alter_audit_by_failures( - self, resource: str, class_name: str, audit_failures: str + def clear_audit_by_access_level( + self, + resource: str, + class_name: str, + access_level: str, ) -> Union[dict, bytes]: """ - Alters the auditing rules for this general resource profile with a new - rule to audit failures, preserving existing non-conflicting rules. + Clears the auditing rules for a specific access level for this general + resource profile while preserving other rules. """ + attempt_types = ["failures", "success", "all"] result = [self.extract(resource, class_name)] profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] audit_rules = self._get_field(profile, "base", "auditing") + if access_level not in audit_rules.values(): + return self._to_steps(result[0]) traits = {} - if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" - if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" - if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" - traits[f"base:audit_{audit_failures}"] = "FAILURE" + for attempt in attempt_types: + if attempt in audit_rules and not (audit_rules[attempt] == access_level): + value = ( + "FAILURE" if (attempt.upper() == "FAILURES") else attempt.upper() + ) + traits[f"base:audit_{audit_rules[attempt]}"] = value result.append(self.alter(resource, class_name, traits=traits)) return self._to_steps(result) - def alter_audit_by_both_successes_and_failures( - self, resource: str, class_name: str, audit_both: str + def overwrite_audit_by_access_level( + self, + resource: str, + class_name: str, + alter: Union[str, None] = None, + control: Union[str, None] = None, + read: Union[str, None] = None, + update: Union[str, None] = None, ) -> Union[dict, bytes]: """ - Alters the auditing rules for this general resource profile with a new - rule to audit both successes and failures, preserving existing - non-conflicting rules. + Overwrites the auditing rules for this general resource profile with new + rules to audit based on specified access levels. """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") traits = {} - if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" - if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" - if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" - traits[f"base:audit_{audit_both}"] = "ALL" - result.append(self.alter(resource, class_name, traits=traits)) - return self._to_steps(result) - - def overwrite_audit_by_audit_alter_access( - self, resource: str, class_name: str, access_attempt: str - ) -> Union[dict, bytes]: - """ - Overwrites the auditing rules for this general resource profile with a new - rule to audit alter access. - """ - traits = {"base:audit_alter": access_attempt} - result = self.alter(resource, class_name, traits=traits) - return self._to_steps(result) - - def overwrite_audit_by_audit_control_access( - self, resource: str, class_name: str, access_attempt: str - ) -> Union[dict, bytes]: - """ - Overwrites the auditing rules for this general resource profile with a new - rule to audit control access. - """ - traits = {"base:audit_control": access_attempt} - result = self.alter(resource, class_name, traits=traits) - return self._to_steps(result) - - def overwrite_audit_by_audit_read_access( - self, resource: str, class_name: str, access_attempt: str - ) -> Union[dict, bytes]: - """ - Overwrites the auditing rules for this general resource profile with a new - rule to audit read access. - """ - traits = {"base:audit_read": access_attempt} + if alter is not None: + traits["base:audit_alter"] = alter + if control is not None: + traits["base:audit_control"] = control + if read is not None: + traits["base:audit_read"] = read + if update is not None: + traits["base:audit_update"] = update result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) - def overwrite_audit_by_audit_update_access( - self, resource: str, class_name: str, access_attempt: str - ) -> Union[dict, bytes]: - """ - Overwrites the auditing rules for this general resource profile with a new - rule to audit update access. - """ - traits = {"base:audit_update": access_attempt} - result = self.alter(resource, class_name, traits=traits) - return self._to_steps(result) - - def alter_audit_by_audit_alter_access( - self, resource: str, class_name: str, access_attempt: str + def alter_audit_by_access_level( + self, + resource: str, + class_name: str, + alter: Union[str, None] = None, + control: Union[str, None] = None, + read: Union[str, None] = None, + update: Union[str, None] = None, ) -> Union[dict, bytes]: """ Alters the auditing rules for this general resource profile with a new @@ -520,71 +445,22 @@ def alter_audit_by_audit_alter_access( traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" if "all" in audit_rules: traits[f"base:audit_{audit_rules['all']}"] = "ALL" - traits["base:audit_alter"] = access_attempt - result.append(self.alter(resource, class_name, traits=traits)) - return self._to_steps(result) - - def alter_audit_by_audit_control_access( - self, resource: str, class_name: str, access_attempt: str - ) -> Union[dict, bytes]: - """ - Alters the auditing rules for this general resource profile with a new - rule to audit control access, preserving existing non-conflicting rules. - """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") - traits = {} - if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" - if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" - if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" - traits["base:audit_control"] = access_attempt - result.append(self.alter(resource, class_name, traits=traits)) - return self._to_steps(result) - - def alter_audit_by_audit_read_access( - self, resource: str, class_name: str, access_attempt: str - ) -> Union[dict, bytes]: - """ - Alters the auditing rules for this general resource profile with a new - rule to audit read access, preserving existing non-conflicting rules. - """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") - traits = {} - if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" - if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" - if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" - traits["base:audit_read"] = access_attempt + if alter is not None: + traits["base:audit_alter"] = alter + if control is not None: + traits["base:audit_control"] = control + if read is not None: + traits["base:audit_read"] = read + if update is not None: + traits["base:audit_update"] = update result.append(self.alter(resource, class_name, traits=traits)) return self._to_steps(result) - def alter_audit_by_audit_update_access( - self, resource: str, class_name: str, access_attempt: str + def clear_all_audit_rules( + self, resource: str, class_name: str ) -> Union[dict, bytes]: - """ - Alters the auditing rules for this general resource profile with a new - rule to audit update access, preserving existing non-conflicting rules. - """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") - traits = {} - if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" - if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" - if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" - traits["base:audit_update"] = access_attempt - result.append(self.alter(resource, class_name, traits=traits)) + """Clears the auditing rules completely.""" + result = self.alter(resource, class_name, {"base:audit_none": True}) return self._to_steps(result) # ============================================================================ diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log index b33fb0d4..e4e07985 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log index 1bb4d967..be5f8533 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -346,7 +346,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -362,7 +362,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() @@ -384,7 +384,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -417,7 +417,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.alter_audit_by_audit_alter_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log index 89cdd21a..e4e07985 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log index 176a3e45..0536def3 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -346,7 +346,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -362,7 +362,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() @@ -384,7 +384,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -417,7 +417,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.alter_audit_by_audit_control_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log index c26b6bfe..e4e07985 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log index 62e50bc4..c6e81013 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -342,7 +342,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -357,7 +357,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() @@ -379,7 +379,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -412,7 +412,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.alter_audit_by_audit_read_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log index 7b131b4c..e4e07985 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log index d7afcc4f..4ae8f6cf 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -342,7 +342,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -357,7 +357,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() @@ -379,7 +379,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { @@ -412,7 +412,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.alter_audit_by_audit_update_access() + ResourceAdmin.alter_audit_by_access_level() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log index 672ea828..4a4e1edd 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log index 65c378d9..d5379958 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -346,7 +346,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -362,7 +362,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -384,7 +384,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -417,7 +417,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.alter_audit_by_both_successes_and_failures() + ResourceAdmin.alter_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log index 8bff6914..4a4e1edd 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log index 292b2b1c..87793971 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -346,7 +346,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -362,7 +362,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() @@ -384,7 +384,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { @@ -417,7 +417,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.alter_audit_by_failures() + ResourceAdmin.alter_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log index 57808952..4a4e1edd 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log index bcf463ae..ce87dcee 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { @@ -346,7 +346,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -362,7 +362,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() @@ -384,7 +384,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { @@ -417,7 +417,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.alter_audit_by_successes() + ResourceAdmin.alter_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log index 80a81d48..5a140f86 100644 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log index 125feb86..2e254a28 100644 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -338,7 +338,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -352,7 +352,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -374,7 +374,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -407,7 +407,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.clear_audit_both_successes_and_failures() + ResourceAdmin.clear_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log index c59723c6..5a140f86 100644 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log index f098944c..ae3f6fbc 100644 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -338,7 +338,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -352,7 +352,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() @@ -374,7 +374,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { @@ -407,7 +407,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.clear_audit_failures() + ResourceAdmin.clear_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log index a631277f..5a140f86 100644 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -40,7 +40,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log index 59b2917f..1e9fa6eb 100644 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log +++ b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log @@ -1,7 +1,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() {} @@ -9,7 +9,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -19,7 +19,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -62,7 +62,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { @@ -114,7 +114,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { @@ -162,7 +162,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() {} @@ -170,7 +170,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -180,7 +180,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -223,7 +223,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { @@ -275,7 +275,7 @@ [pyRACF:Debug] Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { @@ -323,7 +323,7 @@ [pyRACF:Debug] Request Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { @@ -338,7 +338,7 @@ [pyRACF:Debug] Request XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -352,7 +352,7 @@ [pyRACF:Debug] Result XML - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() @@ -374,7 +374,7 @@ [pyRACF:Debug] Result Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { @@ -407,7 +407,7 @@ [pyRACF:Debug] Steps Dictionary - ResourceAdmin.clear_audit_successes() + ResourceAdmin.clear_audit_by_attempt() { diff --git a/tests/resource/test_resource_compound_setters.py b/tests/resource/test_resource_compound_setters.py index fcf0b836..79463d5a 100644 --- a/tests/resource/test_resource_compound_setters.py +++ b/tests/resource/test_resource_compound_setters.py @@ -37,7 +37,9 @@ def test_resource_admin_clear_audit_failures_logs_correctly_on_success( ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.clear_audit_failures("TESTING", "ELIJTEST") + self.resource_admin.clear_audit_by_attempt( + "TESTING", "ELIJTEST", "failures" + ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( success_log, @@ -57,7 +59,9 @@ def test_resource_admin_clear_audit_failures_logs_correctly_on_error( stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.clear_audit_failures("TESTING", "ELIJTEST") + self.resource_admin.clear_audit_by_attempt( + "TESTING", "ELIJTEST", "failures" + ) except SecurityRequestError: pass error_log = self.ansi_escape.sub("", stdout.getvalue()) @@ -77,7 +81,7 @@ def test_resource_admin_clear_audit_successes_logs_correctly_on_success( ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.clear_audit_successes("TESTING", "ELIJTEST") + self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "success") success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( success_log, @@ -97,7 +101,9 @@ def test_resource_admin_clear_audit_successes_logs_correctly_on_error( stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.clear_audit_successes("TESTING", "ELIJTEST") + self.resource_admin.clear_audit_by_attempt( + "TESTING", "ELIJTEST", "success" + ) except SecurityRequestError: pass error_log = self.ansi_escape.sub("", stdout.getvalue()) @@ -126,9 +132,7 @@ def test_resource_admin_clear_audit_both_successes_and_failures_logs_correctly_o ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.clear_audit_both_successes_and_failures( - "TESTING", "ELIJTEST" - ) + self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "all") success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( success_log, @@ -148,9 +152,7 @@ def test_resource_admin_clear_audit_both_successes_and_failures_logs_correctly_o stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.clear_audit_both_successes_and_failures( - "TESTING", "ELIJTEST" - ) + self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "all") except SecurityRequestError: pass error_log = self.ansi_escape.sub("", stdout.getvalue()) @@ -170,8 +172,8 @@ def test_resource_admin_alter_audit_by_failures_logs_correctly_on_success( ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_failures( - "TESTING", "ELIJTEST", "control" + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", failure="control" ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( @@ -192,8 +194,8 @@ def test_resource_admin_alter_audit_by_failures_logs_correctly_on_error( stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.alter_audit_by_failures( - "TESTING", "ELIJTEST", "control" + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", failure="control" ) except SecurityRequestError: pass @@ -214,8 +216,8 @@ def test_resource_admin_alter_audit_by_successes_logs_correctly_on_success( ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_successes( - "TESTING", "ELIJTEST", "control" + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", success="control" ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( @@ -236,8 +238,8 @@ def test_resource_admin_alter_audit_by_successes_logs_correctly_on_error( stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.alter_audit_by_successes( - "TESTING", "ELIJTEST", "control" + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", success="control" ) except SecurityRequestError: pass @@ -267,8 +269,8 @@ def test_resource_admin_alter_audit_by_both_successes_and_failures_logs_correctl ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_both_successes_and_failures( - "TESTING", "ELIJTEST", "update" + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", all="update" ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( @@ -287,14 +289,12 @@ def test_resource_admin_alter_audit_by_both_successes_and_failures_logs_correctl TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML, ] with self.assertRaises(SecurityRequestError): - self.resource_admin.clear_audit_both_successes_and_failures( - "TESTING", "ELIJTEST" - ) + self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "all") stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.alter_audit_by_both_successes_and_failures( - "TESTING", "ELIJTEST", "update" + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", all="update" ) except SecurityRequestError: pass @@ -315,8 +315,8 @@ def test_resource_admin_alter_audit_by_audit_alter_access_logs_correctly_on_succ ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_audit_alter_access( - "TESTING", "ELIJTEST", "success" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", alter="success" ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( @@ -337,8 +337,8 @@ def test_resource_admin_alter_audit_by_audit_alter_access_logs_correctly_on_erro stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.alter_audit_by_audit_alter_access( - "TESTING", "ELIJTEST", "success" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", alter="success" ) except SecurityRequestError: pass @@ -359,8 +359,8 @@ def test_resource_admin_alter_audit_by_audit_control_access_logs_correctly_on_su ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_audit_control_access( - "TESTING", "ELIJTEST", "success" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", control="success" ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( @@ -381,8 +381,8 @@ def test_resource_admin_alter_audit_by_audit_control_access_logs_correctly_on_er stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.alter_audit_by_audit_control_access( - "TESTING", "ELIJTEST", "success" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", control="success" ) except SecurityRequestError: pass @@ -403,8 +403,8 @@ def test_resource_admin_alter_audit_by_audit_read_access_logs_correctly_on_succe ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_audit_read_access( - "TESTING", "ELIJTEST", "success" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", read="success" ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( @@ -425,8 +425,8 @@ def test_resource_admin_alter_audit_by_audit_read_access_logs_correctly_on_error stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.alter_audit_by_audit_read_access( - "TESTING", "ELIJTEST", "success" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", read="success" ) except SecurityRequestError: pass @@ -447,8 +447,8 @@ def test_resource_admin_alter_audit_by_audit_update_access_logs_correctly_on_suc ] stdout = io.StringIO() with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_audit_update_access( - "TESTING", "ELIJTEST", "failure" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", update="failure" ) success_log = self.ansi_escape.sub("", stdout.getvalue()) self.assertEqual( @@ -469,8 +469,8 @@ def test_resource_admin_alter_audit_by_audit_update_access_logs_correctly_on_err stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: - self.resource_admin.alter_audit_by_audit_update_access( - "TESTING", "ELIJTEST", "success" + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", update="success" ) except SecurityRequestError: pass diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index edd90339..460bc814 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -39,8 +39,8 @@ def test_resource_admin_build_clear_all_audit_rules_request(self): ) def test_resource_admin_build_overwrite_audit_by_audit_alter_access_request(self): - result = self.resource_admin.overwrite_audit_by_audit_alter_access( - "TESTING", "ELIJTEST", "SUCCESS" + result = self.resource_admin.overwrite_audit_by_access_level( + "TESTING", "ELIJTEST", alter="SUCCESS" ) self.assertEqual( result, @@ -48,8 +48,8 @@ def test_resource_admin_build_overwrite_audit_by_audit_alter_access_request(self ) def test_resource_admin_build_overwrite_audit_by_audit_control_access_request(self): - result = self.resource_admin.overwrite_audit_by_audit_control_access( - "TESTING", "ELIJTEST", "FAILURE" + result = self.resource_admin.overwrite_audit_by_access_level( + "TESTING", "ELIJTEST", control="FAILURE" ) self.assertEqual( result, @@ -57,8 +57,8 @@ def test_resource_admin_build_overwrite_audit_by_audit_control_access_request(se ) def test_resource_admin_build_overwrite_audit_by_audit_read_access_request(self): - result = self.resource_admin.overwrite_audit_by_audit_read_access( - "TESTING", "ELIJTEST", "SUCCESS" + result = self.resource_admin.overwrite_audit_by_access_level( + "TESTING", "ELIJTEST", read="SUCCESS" ) self.assertEqual( result, @@ -66,8 +66,8 @@ def test_resource_admin_build_overwrite_audit_by_audit_read_access_request(self) ) def test_resource_admin_build_overwrite_audit_by_audit_update_access_request(self): - result = self.resource_admin.overwrite_audit_by_audit_update_access( - "TESTING", "ELIJTEST", "ALL" + result = self.resource_admin.overwrite_audit_by_access_level( + "TESTING", "ELIJTEST", update="ALL" ) self.assertEqual( result, @@ -75,16 +75,16 @@ def test_resource_admin_build_overwrite_audit_by_audit_update_access_request(sel ) def test_resource_admin_build_overwrite_audit_by_successes_request(self): - result = self.resource_admin.overwrite_audit_by_successes( - "TESTING", "ELIJTEST", "alter" + result = self.resource_admin.overwrite_audit_by_attempt( + "TESTING", "ELIJTEST", success="alter" ) self.assertEqual( result, TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_SUCCESSES_XML ) def test_resource_admin_build_overwrite_audit_by_failures_request(self): - result = self.resource_admin.overwrite_audit_by_failures( - "TESTING", "ELIJTEST", "control" + result = self.resource_admin.overwrite_audit_by_attempt( + "TESTING", "ELIJTEST", failure="control" ) self.assertEqual( result, TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_FAILURES_XML @@ -93,8 +93,8 @@ def test_resource_admin_build_overwrite_audit_by_failures_request(self): def test_resource_admin_build_overwrite_audit_by_both_successes_and_failures_request( self, ): - result = self.resource_admin.overwrite_audit_by_both_successes_and_failures( - "TESTING", "ELIJTEST", "update" + result = self.resource_admin.overwrite_audit_by_attempt( + "TESTING", "ELIJTEST", all="update" ) self.assertEqual( result, From 7112321f1be8aeb5891ff35cfb6d06f178b86a1a Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Mon, 8 Jan 2024 13:44:38 -0500 Subject: [PATCH 04/15] Remove clear_audit_by functions -remove clear_audit_by x functions -remove steps dictionary from debug logging -remove instances of extracts within the steps dictionaries Signed-off-by: Elijah Swift --- pyracf/common/security_admin.py | 4 - pyracf/resource/resource_admin.py | 54 +- ...er_audit_by_audit_alter_access_success.log | 76 --- ..._audit_by_audit_control_access_success.log | 76 --- ...ter_audit_by_audit_read_access_success.log | 76 --- ...r_audit_by_audit_update_access_success.log | 76 --- ...by_both_successes_and_failures_success.log | 76 --- ...source_alter_audit_by_failures_success.log | 76 --- ...ource_alter_audit_by_successes_success.log | 76 --- ...udit_both_successes_and_failures_error.log | 69 --- ...it_both_successes_and_failures_success.log | 482 ------------------ ...er_resource_clear_audit_failures_error.log | 69 --- ..._resource_clear_audit_failures_success.log | 482 ------------------ ...r_resource_clear_audit_successes_error.log | 69 --- ...resource_clear_audit_successes_success.log | 482 ------------------ .../test_resource_compound_setters.py | 137 ----- tests/resource/test_resource_constants.py | 27 - 17 files changed, 2 insertions(+), 2405 deletions(-) delete mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log diff --git a/pyracf/common/security_admin.py b/pyracf/common/security_admin.py index a4b2792e..4ad7c086 100644 --- a/pyracf/common/security_admin.py +++ b/pyracf/common/security_admin.py @@ -270,10 +270,6 @@ def _to_steps(self, results: Union[List[dict], dict, bytes]) -> Union[dict, byte steps_dictionary = {} for step, result_dictionary in enumerate(pre_processed_results): steps_dictionary[f"step{step+1}"] = result_dictionary - self.__logger.log_dictionary( - "Steps Dictionary", - steps_dictionary, - ) return steps_dictionary # ============================================================================ diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index c54ffadd..273e3786 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -295,30 +295,6 @@ def get_audit_rules( profile = self.extract(resource, class_name, profile_only=True) return self._get_field(profile, "base", "auditing") - def clear_audit_by_attempt( - self, resource: str, class_name: str, attempt_type: str - ) -> Union[dict, bytes]: - """ - Clears the auditing rules for specific attempts for this general resource profile - while preserving other rules. - """ - attempt_types = ["failures", "success", "all"] - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") - if attempt_type not in audit_rules: - return self._to_steps(result[0]) - traits = {} - attempt_types.remove(attempt_type) - for attempt in attempt_types: - if attempt in audit_rules: - value = ( - "FAILURE" if (attempt.upper() == "FAILURES") else attempt.upper() - ) - traits[f"base:audit_{audit_rules[attempt]}"] = value - result.append(self.alter(resource, class_name, traits=traits)) - return self._to_steps(result) - def overwrite_audit_by_attempt( self, resource: str, @@ -368,33 +344,7 @@ def alter_audit_by_attempt( traits[f"base:audit_{failure}"] = "FAILURE" if all is not None: traits[f"base:audit_{all}"] = "ALL" - result.append(self.alter(resource, class_name, traits=traits)) - return self._to_steps(result) - - def clear_audit_by_access_level( - self, - resource: str, - class_name: str, - access_level: str, - ) -> Union[dict, bytes]: - """ - Clears the auditing rules for a specific access level for this general - resource profile while preserving other rules. - """ - attempt_types = ["failures", "success", "all"] - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] - audit_rules = self._get_field(profile, "base", "auditing") - if access_level not in audit_rules.values(): - return self._to_steps(result[0]) - traits = {} - for attempt in attempt_types: - if attempt in audit_rules and not (audit_rules[attempt] == access_level): - value = ( - "FAILURE" if (attempt.upper() == "FAILURES") else attempt.upper() - ) - traits[f"base:audit_{audit_rules[attempt]}"] = value - result.append(self.alter(resource, class_name, traits=traits)) + result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) def overwrite_audit_by_access_level( @@ -453,7 +403,7 @@ def alter_audit_by_access_level( traits["base:audit_read"] = read if update is not None: traits["base:audit_update"] = update - result.append(self.alter(resource, class_name, traits=traits)) + result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) def clear_all_audit_rules( diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log index be5f8533..dbdca886 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log @@ -414,79 +414,3 @@ } } - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log index 0536def3..c2ab45ee 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log @@ -414,79 +414,3 @@ } } - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log index c6e81013..e7804bc8 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log @@ -409,79 +409,3 @@ } } - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log index 4ae8f6cf..29af9295 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log @@ -409,79 +409,3 @@ } } - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log index d5379958..369741f7 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log @@ -414,79 +414,3 @@ } } - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "all": "read", - "success": "control" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log index 87793971..81d3ebb4 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log @@ -414,79 +414,3 @@ } } - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log index ce87dcee..a3690203 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log @@ -414,79 +414,3 @@ } } - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log deleted file mode 100644 index 5a140f86..00000000 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_error.log +++ /dev/null @@ -1,69 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0 - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log deleted file mode 100644 index 2e254a28..00000000 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_both_successes_and_failures_success.log +++ /dev/null @@ -1,482 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - ALL(READ),SUCCESS(CONTROL) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "ALL(READ),SUCCESS(CONTROL)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "all": "read", - "success": "control" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - ALL(READ),SUCCESS(CONTROL) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "ALL(READ),SUCCESS(CONTROL)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "all": "read", - "success": "control" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "base": { - "base:audit_control": { - "value": "SUCCESS", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - SUCCESS - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "all": "read", - "success": "control" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log deleted file mode 100644 index 5a140f86..00000000 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_error.log +++ /dev/null @@ -1,69 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0 - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log deleted file mode 100644 index ae3f6fbc..00000000 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_failures_success.log +++ /dev/null @@ -1,482 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "base": { - "base:audit_update": { - "value": "SUCCESS", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - SUCCESS - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log deleted file mode 100644 index 5a140f86..00000000 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_error.log +++ /dev/null @@ -1,69 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0 - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log b/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log deleted file mode 100644 index 1e9fa6eb..00000000 --- a/tests/resource/resource_log_samples/alter_resource_clear_audit_successes_success.log +++ /dev/null @@ -1,482 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "base": { - "base:audit_read": { - "value": "FAILURE", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - FAILURE - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.clear_audit_by_attempt() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } -} - - - [pyRACF:Debug] - Steps Dictionary - ResourceAdmin.clear_audit_by_attempt() - - -{ - "step1": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - }, - "step2": { - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0 - } - } -} - diff --git a/tests/resource/test_resource_compound_setters.py b/tests/resource/test_resource_compound_setters.py index 79463d5a..088bb954 100644 --- a/tests/resource/test_resource_compound_setters.py +++ b/tests/resource/test_resource_compound_setters.py @@ -26,141 +26,6 @@ class TestResourceCompoundSetters(unittest.TestCase): # ============================================================================ # Auditing Rules # ============================================================================ - def test_resource_admin_clear_audit_failures_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.clear_audit_by_attempt( - "TESTING", "ELIJTEST", "failures" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_clear_audit_failures_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.clear_audit_by_attempt( - "TESTING", "ELIJTEST", "failures" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_FAILURES_ERROR_LOG, - ) - - def test_resource_admin_clear_audit_successes_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "success") - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_clear_audit_successes_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.clear_audit_by_attempt( - "TESTING", "ELIJTEST", "success" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_ERROR_LOG, - ) - - def test_resource_admin_clear_audit_both_successes_and_failures_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - resource_extract_audit_all_read_success_control = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML - ) - resource_extract_audit_all_read_success_control = ( - resource_extract_audit_all_read_success_control.replace( - "SUCCESS(UPDATE),FAILURES(READ)", - "ALL(READ),SUCCESS(CONTROL)", - ) - ) - call_racf_mock.side_effect = [ - resource_extract_audit_all_read_success_control, - resource_extract_audit_all_read_success_control, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "all") - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_clear_audit_both_successes_and_failures_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "all") - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_ERROR_LOG, - ) - def test_resource_admin_alter_audit_by_failures_logs_correctly_on_success( self, call_racf_mock: Mock, @@ -288,8 +153,6 @@ def test_resource_admin_alter_audit_by_both_successes_and_failures_logs_correctl TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML, ] - with self.assertRaises(SecurityRequestError): - self.resource_admin.clear_audit_by_attempt("TESTING", "ELIJTEST", "all") stdout = io.StringIO() with contextlib.redirect_stdout(stdout): try: diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index 248732c6..1b05a06e 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -135,33 +135,6 @@ def get_sample(sample_file: str) -> Union[str, bytes]: TEST_RESOURCE_OVERWRITE_AUDIT_BY_BOTH_SUCCESSES_AND_FAILURES_XML = get_sample( "resource_overwrite_audit_by_both_successes_and_failures.xml" ) -TEST_RESOURCE_CLEAR_AUDIT_FAILURES_XML = get_sample( - "alter_resource_result_clear_audit_failures.xml" -) -TEST_RESOURCE_CLEAR_AUDIT_FAILURES_SUCCESS_LOG = get_sample( - "alter_resource_clear_audit_failures_success.log" -) -TEST_RESOURCE_CLEAR_AUDIT_FAILURES_ERROR_LOG = get_sample( - "alter_resource_clear_audit_failures_error.log" -) -TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_XML = get_sample( - "alter_resource_result_clear_audit_successes.xml" -) -TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_SUCCESS_LOG = get_sample( - "alter_resource_clear_audit_successes_success.log" -) -TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_ERROR_LOG = get_sample( - "alter_resource_clear_audit_successes_error.log" -) -TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_XML = get_sample( - "alter_resource_result_clear_audit_both_successes_and_failures.xml" -) -TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_SUCCESS_LOG = get_sample( - "alter_resource_clear_audit_both_successes_and_failures_success.log" -) -TEST_RESOURCE_CLEAR_AUDIT_SUCCESSES_AND_FAILURES_ERROR_LOG = get_sample( - "alter_resource_clear_audit_both_successes_and_failures_error.log" -) TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_XML = get_sample( "alter_resource_result_alter_audit_by_failures.xml" ) From 2c7df94f5dae98d4b17166ea227c32d24b8e4eca Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Mon, 8 Jan 2024 13:58:37 -0500 Subject: [PATCH 05/15] Pull Down changes from Main -Update branch from main -add "testuser" to tests Signed-off-by: Elijah Swift --- ...ce_alter_audit_by_audit_alter_access_error.log | 3 ++- ..._alter_audit_by_audit_alter_access_success.log | 15 ++++++++++----- ..._alter_audit_by_audit_control_access_error.log | 3 ++- ...lter_audit_by_audit_control_access_success.log | 15 ++++++++++----- ...rce_alter_audit_by_audit_read_access_error.log | 3 ++- ...e_alter_audit_by_audit_read_access_success.log | 15 ++++++++++----- ...e_alter_audit_by_audit_update_access_error.log | 3 ++- ...alter_audit_by_audit_update_access_success.log | 15 ++++++++++----- ...audit_by_both_successes_and_failures_error.log | 3 ++- ...dit_by_both_successes_and_failures_success.log | 15 ++++++++++----- ...ter_resource_alter_audit_by_failures_error.log | 3 ++- ...r_resource_alter_audit_by_failures_success.log | 15 ++++++++++----- ...er_resource_alter_audit_by_successes_error.log | 3 ++- ..._resource_alter_audit_by_successes_success.log | 15 ++++++++++----- 14 files changed, 84 insertions(+), 42 deletions(-) diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log index e4e07985..6250eae4 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log @@ -63,7 +63,8 @@ ] }, "returnCode": 4, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log index dbdca886..1b0624f0 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log @@ -107,7 +107,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -155,7 +156,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -268,7 +270,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -316,7 +319,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -410,7 +414,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log index e4e07985..6250eae4 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log @@ -63,7 +63,8 @@ ] }, "returnCode": 4, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log index c2ab45ee..17642268 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log @@ -107,7 +107,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -155,7 +156,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -268,7 +270,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -316,7 +319,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -410,7 +414,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log index e4e07985..6250eae4 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log @@ -63,7 +63,8 @@ ] }, "returnCode": 4, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log index e7804bc8..d85e738c 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log @@ -107,7 +107,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -155,7 +156,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -268,7 +270,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -316,7 +319,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -405,7 +409,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log index e4e07985..6250eae4 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log @@ -63,7 +63,8 @@ ] }, "returnCode": 4, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log index 29af9295..0b298012 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log @@ -107,7 +107,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -155,7 +156,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -268,7 +270,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -316,7 +319,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -405,7 +409,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log index 4a4e1edd..91ba8a24 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log @@ -63,7 +63,8 @@ ] }, "returnCode": 4, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log index 369741f7..9b6c229f 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log @@ -107,7 +107,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -155,7 +156,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -268,7 +270,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -316,7 +319,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -410,7 +414,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log index 4a4e1edd..91ba8a24 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log @@ -63,7 +63,8 @@ ] }, "returnCode": 4, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log index 81d3ebb4..a963fecc 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log @@ -107,7 +107,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -155,7 +156,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -268,7 +270,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -316,7 +319,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -410,7 +414,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log index 4a4e1edd..91ba8a24 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log @@ -63,7 +63,8 @@ ] }, "returnCode": 4, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log index a3690203..071b3622 100644 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log +++ b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log @@ -107,7 +107,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -155,7 +156,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -268,7 +270,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -316,7 +319,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } @@ -410,7 +414,8 @@ ] }, "returnCode": 0, - "reasonCode": 0 + "reasonCode": 0, + "runningUserid": "testuser" } } From 94af7ebeb8d09cb7a66e653c4808d79d2aaf8e41 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Wed, 10 Jan 2024 17:10:06 -0500 Subject: [PATCH 06/15] Refactor Audit Rules Testing -Redesign test architecture of RACF audit rules "compound settrs" for new code format -Each function is tested for one arg, multiple args, all args and no args to hit all code paths -Change clear all audit rules to remove all audit rules -change test names -move compound settr test into settrs tests -remove logging dependency for "compound" settrs testing by mocking extract calls Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 33 +- .../resource_alter_audit_by_access_level.xml | 9 + ...source_alter_audit_by_access_level_all.xml | 10 + ...e_alter_audit_by_access_level_multiple.xml | 10 + ...ource_alter_audit_by_access_level_none.xml | 8 + .../resource_alter_audit_by_attempt.xml | 9 + .../resource_alter_audit_by_attempt_all.xml | 10 + ...source_alter_audit_by_attempt_multiple.xml | 9 + .../resource_alter_audit_by_attempt_none.xml | 8 + ...ource_overwrite_audit_by_access_level.xml} | 2 +- ...ce_overwrite_audit_by_access_level_all.xml | 10 + ...rwrite_audit_by_access_level_multiple.xml} | 3 +- ..._overwrite_audit_by_access_level_none.xml} | 6 +- ...> resource_overwrite_audit_by_attempt.xml} | 2 +- ...esource_overwrite_audit_by_attempt_all.xml | 9 + ...e_overwrite_audit_by_attempt_multiple.xml} | 3 +- ...source_overwrite_audit_by_attempt_none.xml | 3 + .../resource_overwrite_audit_by_failures.xml | 7 - .../resource_overwrite_audit_by_successes.xml | 7 - ...ml => resource_remove_all_audit_rules.xml} | 0 ...sult_alter_audit_by_audit_alter_access.xml | 15 - ...lt_alter_audit_by_audit_control_access.xml | 15 - ...esult_alter_audit_by_audit_read_access.xml | 15 - ...ult_alter_audit_by_audit_update_access.xml | 15 - ...r_audit_by_both_successes_and_failures.xml | 15 - ...esource_result_alter_audit_by_failures.xml | 15 - ...source_result_alter_audit_by_successes.xml | 15 - ...lear_audit_both_successes_and_failures.xml | 15 - ...r_resource_result_clear_audit_failures.xml | 15 - ..._resource_result_clear_audit_successes.xml | 15 - .../test_resource_compound_setters.py | 344 ------------------ tests/resource/test_resource_constants.py | 105 ++---- tests/resource/test_resource_getters.py | 6 +- tests/resource/test_resource_setters.py | 190 ++++++++-- tests/test_runner.py | 2 - 35 files changed, 319 insertions(+), 636 deletions(-) create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_access_level.xml create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_access_level_all.xml create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_access_level_multiple.xml create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_attempt.xml create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_attempt_all.xml create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_attempt_multiple.xml create mode 100644 tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_audit_alter_access.xml => resource_overwrite_audit_by_access_level.xml} (81%) create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_all.xml rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_audit_read_access.xml => resource_overwrite_audit_by_access_level_multiple.xml} (69%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_both_successes_and_failures.xml => resource_overwrite_audit_by_access_level_none.xml} (62%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_audit_control_access.xml => resource_overwrite_audit_by_attempt.xml} (81%) create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_all.xml rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_audit_update_access.xml => resource_overwrite_audit_by_attempt_multiple.xml} (69%) create mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_none.xml delete mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml delete mode 100644 tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml rename tests/resource/resource_request_samples/{resource_clear_all_audit_rules.xml => resource_remove_all_audit_rules.xml} (100%) delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml delete mode 100644 tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml delete mode 100644 tests/resource/test_resource_compound_setters.py diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index 273e3786..c9788e5a 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -307,12 +307,13 @@ def overwrite_audit_by_attempt( Overwrites the auditing rules for this general resource profile with new rules to audit based on specified access attempts. """ + traits = {} if success is not None: - traits = {f"base:audit_{success}": "SUCCESS"} + traits[f"base:audit_{success}"] = "success" if failure is not None: - traits = {f"base:audit_{failure}": "FAILURE"} + traits[f"base:audit_{failure}"] = "failure" if all is not None: - traits = {f"base:audit_{all}": "ALL"} + traits[f"base:audit_{all}"] = "all" result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) @@ -328,22 +329,21 @@ def alter_audit_by_attempt( Alters the auditing rules for this general resource profile with new rules to audit by access level, preserving existing non-conflicting rules. """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + profile = self.extract(resource, class_name, profile_only=True) audit_rules = self._get_field(profile, "base", "auditing") traits = {} if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + traits[f"base:audit_{audit_rules['success']}"] = "success" if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + traits[f"base:audit_{audit_rules['failures']}"] = "failure" if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits[f"base:audit_{audit_rules['all']}"] = "all" if success is not None: - traits[f"base:audit_{success}"] = "SUCCESS" + traits[f"base:audit_{success}"] = "success" if failure is not None: - traits[f"base:audit_{failure}"] = "FAILURE" + traits[f"base:audit_{failure}"] = "failure" if all is not None: - traits[f"base:audit_{all}"] = "ALL" + traits[f"base:audit_{all}"] = "all" result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) @@ -385,16 +385,15 @@ def alter_audit_by_access_level( Alters the auditing rules for this general resource profile with a new rule to audit alter access, preserving existing non-conflicting rules. """ - result = [self.extract(resource, class_name)] - profile = result[0]["securityResult"]["resource"]["commands"][0]["profiles"][0] + profile = self.extract(resource, class_name, profile_only=True) audit_rules = self._get_field(profile, "base", "auditing") traits = {} if "success" in audit_rules: - traits[f"base:audit_{audit_rules['success']}"] = "SUCCESS" + traits[f"base:audit_{audit_rules['success']}"] = "success" if "failures" in audit_rules: - traits[f"base:audit_{audit_rules['failures']}"] = "FAILURE" + traits[f"base:audit_{audit_rules['failures']}"] = "failure" if "all" in audit_rules: - traits[f"base:audit_{audit_rules['all']}"] = "ALL" + traits[f"base:audit_{audit_rules['all']}"] = "all" if alter is not None: traits["base:audit_alter"] = alter if control is not None: @@ -406,7 +405,7 @@ def alter_audit_by_access_level( result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) - def clear_all_audit_rules( + def remove_all_audit_rules( self, resource: str, class_name: str ) -> Union[dict, bytes]: """Clears the auditing rules completely.""" diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level.xml new file mode 100644 index 00000000..f6d266a6 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level.xml @@ -0,0 +1,9 @@ + + + + success + failure + success + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_all.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_all.xml new file mode 100644 index 00000000..b0384301 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_all.xml @@ -0,0 +1,10 @@ + + + + all + all + success + failure + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_multiple.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_multiple.xml new file mode 100644 index 00000000..f985b460 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_multiple.xml @@ -0,0 +1,10 @@ + + + + success + failure + success + failure + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml new file mode 100644 index 00000000..aab4a3a2 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml @@ -0,0 +1,8 @@ + + + + success + failure + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt.xml new file mode 100644 index 00000000..c9ecc085 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt.xml @@ -0,0 +1,9 @@ + + + + success + failure + failure + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_all.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_all.xml new file mode 100644 index 00000000..d2deb5b1 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_all.xml @@ -0,0 +1,10 @@ + + + + success + all + success + failure + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_multiple.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_multiple.xml new file mode 100644 index 00000000..205f817d --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_multiple.xml @@ -0,0 +1,9 @@ + + + + success + all + failure + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml new file mode 100644 index 00000000..aab4a3a2 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml @@ -0,0 +1,8 @@ + + + + success + failure + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_alter_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level.xml similarity index 81% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_alter_access.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level.xml index 5ec43705..a7aaa608 100644 --- a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_alter_access.xml +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level.xml @@ -1,7 +1,7 @@ - SUCCESS + success \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_all.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_all.xml new file mode 100644 index 00000000..a7cd9040 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_all.xml @@ -0,0 +1,10 @@ + + + + success + all + failure + success + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_read_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_multiple.xml similarity index 69% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_read_access.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_multiple.xml index efb89474..0e26b296 100644 --- a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_read_access.xml +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_multiple.xml @@ -1,7 +1,8 @@ - SUCCESS + success + all \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_both_successes_and_failures.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_none.xml similarity index 62% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_both_successes_and_failures.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_none.xml index 20a2ab00..ae369316 100644 --- a/tests/resource/resource_request_samples/resource_overwrite_audit_by_both_successes_and_failures.xml +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_none.xml @@ -1,7 +1,3 @@ - - - ALL - - + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_control_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt.xml similarity index 81% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_control_access.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt.xml index 574bbf9f..6d5fd2f8 100644 --- a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_control_access.xml +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt.xml @@ -1,7 +1,7 @@ - FAILURE + failure \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_all.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_all.xml new file mode 100644 index 00000000..ee7d1047 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_all.xml @@ -0,0 +1,9 @@ + + + + success + failure + all + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_update_access.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_multiple.xml similarity index 69% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_update_access.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_multiple.xml index 20a2ab00..e6933d07 100644 --- a/tests/resource/resource_request_samples/resource_overwrite_audit_by_audit_update_access.xml +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_multiple.xml @@ -1,7 +1,8 @@ - ALL + success + all \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_none.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_none.xml new file mode 100644 index 00000000..ae369316 --- /dev/null +++ b/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_none.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml deleted file mode 100644 index 574bbf9f..00000000 --- a/tests/resource/resource_request_samples/resource_overwrite_audit_by_failures.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - FAILURE - - - \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml deleted file mode 100644 index 5ec43705..00000000 --- a/tests/resource/resource_request_samples/resource_overwrite_audit_by_successes.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - SUCCESS - - - \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_clear_all_audit_rules.xml b/tests/resource/resource_request_samples/resource_remove_all_audit_rules.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_clear_all_audit_rules.xml rename to tests/resource/resource_request_samples/resource_remove_all_audit_rules.xml diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml deleted file mode 100644 index f828687f..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_alter_access.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml deleted file mode 100644 index 4e783350..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_control_access.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml deleted file mode 100644 index c3b1a06d..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_read_access.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml deleted file mode 100644 index fd1cc4d3..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_audit_update_access.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml deleted file mode 100644 index d203c5b9..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_both_successes_and_failures.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml deleted file mode 100644 index 5803763e..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_failures.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml b/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml deleted file mode 100644 index 568cb541..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_alter_audit_by_successes.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml deleted file mode 100644 index b865c868..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_both_successes_and_failures.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml deleted file mode 100644 index 2892ab04..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_failures.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml b/tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml deleted file mode 100644 index 26d937af..00000000 --- a/tests/resource/resource_result_samples/alter_resource_result_clear_audit_successes.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - \ No newline at end of file diff --git a/tests/resource/test_resource_compound_setters.py b/tests/resource/test_resource_compound_setters.py deleted file mode 100644 index 088bb954..00000000 --- a/tests/resource/test_resource_compound_setters.py +++ /dev/null @@ -1,344 +0,0 @@ -"""Test general resource profile compound setter functions.""" - -import contextlib -import io -import re -import unittest -from unittest.mock import Mock, patch - -import __init__ - -import tests.resource.test_resource_constants as TestResourceConstants -from pyracf import ResourceAdmin, SecurityRequestError -from pyracf.common.irrsmo00 import IRRSMO00 - -# Resolves F401 -__init__ - - -@patch("pyracf.common.irrsmo00.IRRSMO00.call_racf") -class TestResourceCompoundSetters(unittest.TestCase): - maxDiff = None - IRRSMO00.__init__ = Mock(return_value=None) - resource_admin = ResourceAdmin(debug=True) - ansi_escape = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])") - - # ============================================================================ - # Auditing Rules - # ============================================================================ - def test_resource_admin_alter_audit_by_failures_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_attempt( - "TESTING", "ELIJTEST", failure="control" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_alter_audit_by_failures_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.alter_audit_by_attempt( - "TESTING", "ELIJTEST", failure="control" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_ERROR_LOG, - ) - - def test_resource_admin_alter_audit_by_successes_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_attempt( - "TESTING", "ELIJTEST", success="control" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_alter_audit_by_successes_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.alter_audit_by_attempt( - "TESTING", "ELIJTEST", success="control" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_ERROR_LOG, - ) - - def test_resource_admin_alter_audit_by_both_successes_and_failures_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - resource_extract_audit_all_read_success_control = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML - ) - resource_extract_audit_all_read_success_control = ( - resource_extract_audit_all_read_success_control.replace( - "SUCCESS(UPDATE),FAILURES(READ)", - "ALL(READ),SUCCESS(CONTROL)", - ) - ) - call_racf_mock.side_effect = [ - resource_extract_audit_all_read_success_control, - resource_extract_audit_all_read_success_control, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_attempt( - "TESTING", "ELIJTEST", all="update" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_alter_audit_by_both_successes_and_failures_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.alter_audit_by_attempt( - "TESTING", "ELIJTEST", all="update" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_ERROR_LOG, - ) - - def test_resource_admin_alter_audit_by_audit_alter_access_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", alter="success" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_alter_audit_by_audit_alter_access_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", alter="success" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_ERROR_LOG, - ) - - def test_resource_admin_alter_audit_by_audit_control_access_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", control="success" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_alter_audit_by_audit_control_access_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", control="success" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_ERROR_LOG, - ) - - def test_resource_admin_alter_audit_by_audit_read_access_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", read="success" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_alter_audit_by_audit_read_access_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", read="success" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_ERROR_LOG, - ) - - def test_resource_admin_alter_audit_by_audit_update_access_logs_correctly_on_success( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", update="failure" - ) - success_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - success_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_SUCCESS_LOG, - ) - - # Error in environment, TESTING already deleted/not added - def test_resource_admin_alter_audit_by_audit_update_access_logs_correctly_on_error( - self, - call_racf_mock: Mock, - ): - call_racf_mock.side_effect = [ - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_ERROR_XML, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML, - ] - stdout = io.StringIO() - with contextlib.redirect_stdout(stdout): - try: - self.resource_admin.alter_audit_by_access_level( - "TESTING", "ELIJTEST", update="success" - ) - except SecurityRequestError: - pass - error_log = self.ansi_escape.sub("", stdout.getvalue()) - self.assertEqual( - error_log, - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_ERROR_LOG, - ) diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index 1b05a06e..2225e65e 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -111,92 +111,57 @@ def get_sample(sample_file: str) -> Union[str, bytes]: # ============================================================================ TEST_RESOURCE_SET_UNIVERSAL_ACCESS_XML = get_sample("resource_set_universal_access.xml") -TEST_RESOURCE_CLEAR_ALL_AUDIT_RULES_XML = get_sample( - "resource_clear_all_audit_rules.xml" +# Audit Rules Request Samples +TEST_RESOURCE_REMOVE_ALL_AUDIT_RULES_REQUEST_XML = get_sample( + "resource_remove_all_audit_rules.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_ALTER_ACCESS_XML = get_sample( - "resource_overwrite_audit_by_audit_alter_access.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_access_level.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML = get_sample( - "resource_overwrite_audit_by_audit_control_access.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_access_level_multiple.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML = get_sample( - "resource_overwrite_audit_by_audit_update_access.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_access_level_all.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_READ_ACCESS_XML = get_sample( - "resource_overwrite_audit_by_audit_read_access.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_access_level_none.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_SUCCESSES_XML = get_sample( - "resource_overwrite_audit_by_successes.xml" +TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( + "resource_alter_audit_by_access_level.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_FAILURES_XML = get_sample( - "resource_overwrite_audit_by_failures.xml" +TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( + "resource_alter_audit_by_access_level_multiple.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_BOTH_SUCCESSES_AND_FAILURES_XML = get_sample( - "resource_overwrite_audit_by_both_successes_and_failures.xml" +TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( + "resource_alter_audit_by_access_level_all.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_XML = get_sample( - "alter_resource_result_alter_audit_by_failures.xml" +TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( + "resource_alter_audit_by_access_level_none.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_SUCCESS_LOG = get_sample( - "alter_resource_alter_audit_by_failures_success.log" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_attempt.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_FAILURES_ERROR_LOG = get_sample( - "alter_resource_alter_audit_by_failures_error.log" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_attempt_multiple.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_XML = get_sample( - "alter_resource_result_alter_audit_by_successes.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_attempt_all.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_SUCCESS_LOG = get_sample( - "alter_resource_alter_audit_by_successes_success.log" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( + "resource_overwrite_audit_by_attempt_none.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_ERROR_LOG = get_sample( - "alter_resource_alter_audit_by_successes_error.log" +TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_REQUEST_XML = get_sample( + "resource_alter_audit_by_attempt.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_XML = get_sample( - "alter_resource_result_alter_audit_by_both_successes_and_failures.xml" +TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( + "resource_alter_audit_by_attempt_multiple.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_SUCCESS_LOG = get_sample( - "alter_resource_alter_audit_by_both_successes_and_failures_success.log" +TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( + "resource_alter_audit_by_attempt_all.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_SUCCESSES_AND_FAILURES_ERROR_LOG = get_sample( - "alter_resource_alter_audit_by_both_successes_and_failures_error.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_XML = get_sample( - "alter_resource_result_alter_audit_by_audit_alter_access.xml" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_SUCCESS_LOG = get_sample( - "alter_resource_alter_audit_by_audit_alter_access_success.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_ALTER_ACCESS_ERROR_LOG = get_sample( - "alter_resource_alter_audit_by_audit_alter_access_error.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML = get_sample( - "alter_resource_result_alter_audit_by_audit_control_access.xml" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_SUCCESS_LOG = get_sample( - "alter_resource_alter_audit_by_audit_control_access_success.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_CONTROL_ACCESS_ERROR_LOG = get_sample( - "alter_resource_alter_audit_by_audit_control_access_error.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_XML = get_sample( - "alter_resource_result_alter_audit_by_audit_read_access.xml" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_SUCCESS_LOG = get_sample( - "alter_resource_alter_audit_by_audit_read_access_success.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_READ_ACCESS_ERROR_LOG = get_sample( - "alter_resource_alter_audit_by_audit_read_access_error.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML = get_sample( - "alter_resource_result_alter_audit_by_audit_update_access.xml" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_SUCCESS_LOG = get_sample( - "alter_resource_alter_audit_by_audit_update_access_success.log" -) -TEST_RESOURCE_ALTER_AUDIT_BY_AUDIT_UPDATE_ACCESS_ERROR_LOG = get_sample( - "alter_resource_alter_audit_by_audit_update_access_error.log" +TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( + "resource_alter_audit_by_attempt_none.xml" ) # ============================================================================ diff --git a/tests/resource/test_resource_getters.py b/tests/resource/test_resource_getters.py index e134c677..ccddca4e 100644 --- a/tests/resource/test_resource_getters.py +++ b/tests/resource/test_resource_getters.py @@ -63,7 +63,7 @@ def test_resource_admin_get_universal_access_raises_an_exception_when_extract_fa # ============================================================================ # My Access # ============================================================================ - def test_resource_admin_get_my_access_returns_valid_when_read( + def test_resource_admin_get_my_access_read( self, call_racf_mock: Mock, ): @@ -74,7 +74,7 @@ def test_resource_admin_get_my_access_returns_valid_when_read( self.resource_admin.get_my_access("TESTING", "ELIJTEST"), "read" ) - def test_resource_admin_get_my_access_returns_valid_when_none( + def test_resource_admin_get_my_access_none( self, call_racf_mock: Mock, ): @@ -102,7 +102,7 @@ def test_resource_admin_get_my_access_raises_an_exception_when_extract_fails( # ============================================================================ # Auditing Rules # ============================================================================ - def test_resource_admin_get_audit_rules_returns_valid( + def test_resource_admin_get_audit_rules( self, call_racf_mock: Mock, ): diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index 460bc814..63555d7b 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -1,7 +1,7 @@ """Test general resource profile setter functions.""" import unittest -from unittest.mock import Mock +from unittest.mock import Mock, patch import __init__ @@ -32,71 +32,207 @@ def test_resource_admin_build_set_universal_access_request(self): # ============================================================================ # Auditing Rules # ============================================================================ - def test_resource_admin_build_clear_all_audit_rules_request(self): - result = self.resource_admin.clear_all_audit_rules("TESTING", "ELIJTEST") + def test_resource_admin_build_remove_all_audit_rules_request(self): + result = self.resource_admin.remove_all_audit_rules("TESTING", "ELIJTEST") self.assertEqual( - result, TestResourceConstants.TEST_RESOURCE_CLEAR_ALL_AUDIT_RULES_XML + result, + TestResourceConstants.TEST_RESOURCE_REMOVE_ALL_AUDIT_RULES_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_audit_alter_access_request(self): + def test_resource_admin_build_overwrite_audit_by_access_level_request(self): result = self.resource_admin.overwrite_audit_by_access_level( - "TESTING", "ELIJTEST", alter="SUCCESS" + "TESTING", "ELIJTEST", alter="success" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_ALTER_ACCESS_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_audit_control_access_request(self): + def test_resource_admin_build_overwrite_audit_by_access_level_none_request(self): result = self.resource_admin.overwrite_audit_by_access_level( - "TESTING", "ELIJTEST", control="FAILURE" + "TESTING", "ELIJTEST" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_CONTROL_ACCESS_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_audit_read_access_request(self): + def test_resource_admin_build_overwrite_audit_by_access_level_multiple_request( + self, + ): result = self.resource_admin.overwrite_audit_by_access_level( - "TESTING", "ELIJTEST", read="SUCCESS" + "TESTING", "ELIJTEST", alter="success", control="all" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_READ_ACCESS_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_audit_update_access_request(self): + def test_resource_admin_build_overwrite_audit_by_access_level_all_request(self): result = self.resource_admin.overwrite_audit_by_access_level( - "TESTING", "ELIJTEST", update="ALL" + "TESTING", + "ELIJTEST", + alter="success", + control="all", + update="success", + read="failure", ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_AUDIT_UPDATE_ACCESS_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_successes_request(self): + def test_resource_admin_build_overwrite_audit_by_attempt_request(self): result = self.resource_admin.overwrite_audit_by_attempt( - "TESTING", "ELIJTEST", success="alter" + "TESTING", "ELIJTEST", failure="control" ) self.assertEqual( - result, TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_SUCCESSES_XML + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_REQUEST_XML, + ) + + def test_resource_admin_build_overwrite_audit_by_attempt_none_request(self): + result = self.resource_admin.overwrite_audit_by_attempt("TESTING", "ELIJTEST") + self.assertEqual( + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_failures_request(self): + def test_resource_admin_build_overwrite_audit_by_attempt_multiple_request(self): result = self.resource_admin.overwrite_audit_by_attempt( - "TESTING", "ELIJTEST", failure="control" + "TESTING", "ELIJTEST", success="alter", all="read" ) self.assertEqual( - result, TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_FAILURES_XML + result, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_both_successes_and_failures_request( - self, - ): + def test_resource_admin_build_overwrite_audit_by_attempt_all_request(self): result = self.resource_admin.overwrite_audit_by_attempt( - "TESTING", "ELIJTEST", all="update" + "TESTING", "ELIJTEST", success="alter", all="read", failure="update" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_BOTH_SUCCESSES_AND_FAILURES_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_access_level_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", alter="success" + ), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_access_level_none_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_access_level("TESTING", "ELIJTEST"), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_access_level_multiple_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_access_level( + "TESTING", "ELIJTEST", alter="success", control="failure" + ), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_access_level_all_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_access_level( + "TESTING", + "ELIJTEST", + alter="success", + control="failure", + update="all", + read="all", + ), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_attempt_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", failure="control" + ), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_attempt_none_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_attempt("TESTING", "ELIJTEST"), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_attempt_multiple_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", failure="control", all="read" + ), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML, + ) + + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + def test_resource_admin_build_alter_audit_by_attempt_all_request( + self, + resource_admin_extract_mock: Mock, + ): + resource_admin_extract_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + ) + self.assertEqual( + self.resource_admin.alter_audit_by_attempt( + "TESTING", "ELIJTEST", failure="control", success="alter", all="read" + ), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML, ) diff --git a/tests/test_runner.py b/tests/test_runner.py index 0a3b7309..214e1a6c 100644 --- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -31,7 +31,6 @@ from tests.group.test_group_request_builder import TestGroupRequestBuilder from tests.group.test_group_result_parser import TestGroupResultParser from tests.group.test_group_setters import TestGroupSetters -from tests.resource.test_resource_compound_setters import TestResourceCompoundSetters from tests.resource.test_resource_debug_logging import TestResourceDebugLogging from tests.resource.test_resource_getters import TestResourceGetters from tests.resource.test_resource_request_builder import TestResourceRequestBuilder @@ -85,7 +84,6 @@ def __test_suite() -> unittest.TestSuite: TestResourceRequestBuilder, TestResourceGetters, TestResourceSetters, - TestResourceCompoundSetters, TestResourceDebugLogging, TestResourceSubfunctionRequests, TestResourceSubfunctionExtracts, From 60d98d9c14f40ec8b22fb9197d4f9a2fd98006f9 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Wed, 17 Jan 2024 14:32:05 -0500 Subject: [PATCH 07/15] Updates -Remove old log files used for testing "compound operations" -Added ValueError to enforce proper use of audit rules by_attempt functions -Added Unit testing for new ValueError functions Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 42 ++ ...lter_audit_by_audit_alter_access_error.log | 70 --- ...er_audit_by_audit_alter_access_success.log | 421 ------------------ ...er_audit_by_audit_control_access_error.log | 70 --- ..._audit_by_audit_control_access_success.log | 421 ------------------ ...alter_audit_by_audit_read_access_error.log | 70 --- ...ter_audit_by_audit_read_access_success.log | 416 ----------------- ...ter_audit_by_audit_update_access_error.log | 70 --- ...r_audit_by_audit_update_access_success.log | 416 ----------------- ...t_by_both_successes_and_failures_error.log | 70 --- ...by_both_successes_and_failures_success.log | 421 ------------------ ...resource_alter_audit_by_failures_error.log | 70 --- ...source_alter_audit_by_failures_success.log | 421 ------------------ ...esource_alter_audit_by_successes_error.log | 70 --- ...ource_alter_audit_by_successes_success.log | 421 ------------------ tests/resource/test_resource_setters.py | 37 ++ 16 files changed, 79 insertions(+), 3427 deletions(-) delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log delete mode 100644 tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index c9788e5a..c4dd98ea 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -307,6 +307,7 @@ def overwrite_audit_by_attempt( Overwrites the auditing rules for this general resource profile with new rules to audit based on specified access attempts. """ + self.__validate_access_level(success, failure, all) traits = {} if success is not None: traits[f"base:audit_{success}"] = "success" @@ -329,6 +330,7 @@ def alter_audit_by_attempt( Alters the auditing rules for this general resource profile with new rules to audit by access level, preserving existing non-conflicting rules. """ + self.__validate_access_level(success, failure, all) profile = self.extract(resource, class_name, profile_only=True) audit_rules = self._get_field(profile, "base", "auditing") traits = {} @@ -716,3 +718,43 @@ def _format_profile(self, result: dict) -> None: del result["securityResult"]["resource"]["commands"][0]["messages"] result["securityResult"]["resource"]["commands"][0]["profiles"] = profiles + + def __validate_access_level( + self, + success: Union[str, None] = None, + failure: Union[str, None] = None, + all: Union[str, None] = None, + ): + access_levels = ["alter", "control", "read", "update"] + value_error_text = ( + "Please specify 'alter', 'control', 'read', or 'update' access " + + "for your target attempt." + ) + bad_values = [] + if success is not None: + if success.lower() not in access_levels: + bad_values.append(success) + if failure is not None: + if failure.lower() not in access_levels: + bad_values.append(failure) + if all is not None: + if all.lower() not in access_levels: + bad_values.append(all) + if len(bad_values) == 0: + return + elif len(bad_values) == 1: + value_error_text = ( + f"'{bad_values[0]}' is not a proper value. " + value_error_text + ) + elif len(bad_values) == 2: + value_error_text = ( + f"'{bad_values[0]}' and '{bad_values[1]}' are not proper values. " + + value_error_text + ) + else: + value_error_text = ( + f"'{bad_values[0]}', '{bad_values[1]}', and '{bad_values[2]}' " + + "are not proper values. " + + value_error_text + ) + raise ValueError(value_error_text) diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log deleted file mode 100644 index 6250eae4..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_error.log +++ /dev/null @@ -1,70 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log deleted file mode 100644 index 1b0624f0..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_alter_access_success.log +++ /dev/null @@ -1,421 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "base": { - "base:audit_update": { - "value": "SUCCESS", - "operation": null - }, - "base:audit_read": { - "value": "FAILURE", - "operation": null - }, - "base:audit_alter": { - "value": "success", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - SUCCESS - FAILURE - success - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (ALTER ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log deleted file mode 100644 index 6250eae4..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_error.log +++ /dev/null @@ -1,70 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log deleted file mode 100644 index 17642268..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_control_access_success.log +++ /dev/null @@ -1,421 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "base": { - "base:audit_update": { - "value": "SUCCESS", - "operation": null - }, - "base:audit_read": { - "value": "FAILURE", - "operation": null - }, - "base:audit_control": { - "value": "success", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - SUCCESS - FAILURE - success - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) success (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log deleted file mode 100644 index 6250eae4..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_error.log +++ /dev/null @@ -1,70 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log deleted file mode 100644 index d85e738c..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_read_access_success.log +++ /dev/null @@ -1,416 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "base": { - "base:audit_update": { - "value": "SUCCESS", - "operation": null - }, - "base:audit_read": { - "value": "success", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - SUCCESS - success - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) success (READ ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log deleted file mode 100644 index 6250eae4..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_error.log +++ /dev/null @@ -1,70 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log deleted file mode 100644 index 0b298012..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_audit_update_access_success.log +++ /dev/null @@ -1,416 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "base": { - "base:audit_update": { - "value": "failure", - "operation": null - }, - "base:audit_read": { - "value": "FAILURE", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - failure - FAILURE - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_access_level() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_access_level() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( FAILURE (READ ) failure (UPDATE ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log deleted file mode 100644 index 91ba8a24..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_error.log +++ /dev/null @@ -1,70 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log deleted file mode 100644 index 9b6c229f..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_both_successes_and_failures_success.log +++ /dev/null @@ -1,421 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - ALL(READ),SUCCESS(CONTROL) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "ALL(READ),SUCCESS(CONTROL)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "all": "read", - "success": "control" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - ALL(READ),SUCCESS(CONTROL) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "ALL(READ),SUCCESS(CONTROL)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "all": "read", - "success": "control" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "base": { - "base:audit_control": { - "value": "SUCCESS", - "operation": null - }, - "base:audit_read": { - "value": "ALL", - "operation": null - }, - "base:audit_update": { - "value": "ALL", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - SUCCESS - ALL - ALL - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (CONTROL ) ALL (READ ) ALL (UPDATE ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log deleted file mode 100644 index 91ba8a24..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_error.log +++ /dev/null @@ -1,70 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log deleted file mode 100644 index a963fecc..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_failures_success.log +++ /dev/null @@ -1,421 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "base": { - "base:audit_update": { - "value": "SUCCESS", - "operation": null - }, - "base:audit_read": { - "value": "FAILURE", - "operation": null - }, - "base:audit_control": { - "value": "FAILURE", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - SUCCESS - FAILURE - FAILURE - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) FAILURE (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log deleted file mode 100644 index 91ba8a24..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_error.log +++ /dev/null @@ -1,70 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 8 - 16 - 4 - RLIST ELIJTEST (TESTING) - ICH13003I TESTING NOT FOUND - - - 4 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 8, - "returnCode": 16, - "reasonCode": 4, - "image": "RLIST ELIJTEST (TESTING)", - "messages": [ - "ICH13003I TESTING NOT FOUND" - ] - } - ] - }, - "returnCode": 4, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log b/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log deleted file mode 100644 index 071b3622..00000000 --- a/tests/resource/resource_log_samples/alter_resource_alter_audit_by_successes_success.log +++ /dev/null @@ -1,421 +0,0 @@ - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - - 0 - 0 - 0 - RLIST ELIJTEST (TESTING) - CLASS NAME - ----- ---- - ELIJTEST TESTING - - LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING - ----- -------- ---------------- ----------- ------- - 00 ESWIFT READ READ NO - - INSTALLATION DATA - ----------------- - NONE - - APPLICATION DATA - ---------------- - NONE - - AUDITING - -------- - SUCCESS(UPDATE),FAILURES(READ) - - NOTIFY - ------ - NO USER TO BE NOTIFIED - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "messages": [ - "CLASS NAME", - "----- ----", - "ELIJTEST TESTING", - " ", - "LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING", - "----- -------- ---------------- ----------- -------", - " 00 ESWIFT READ READ NO", - " ", - "INSTALLATION DATA", - "-----------------", - "NONE", - " ", - "APPLICATION DATA", - "----------------", - "NONE", - " ", - "AUDITING", - "--------", - "SUCCESS(UPDATE),FAILURES(READ)", - " ", - "NOTIFY", - "------", - "NO USER TO BE NOTIFIED" - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Result Dictionary (Formatted Profile) - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "listdata", - "requestId": "ResourceRequest", - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RLIST ELIJTEST (TESTING) ", - "profiles": [ - { - "base": { - "class": "elijtest", - "name": "testing", - "level": 0, - "owner": "eswift", - "universalAccess": "read", - "yourAccess": "read", - "warning": null, - "installationData": null, - "applicationData": null, - "auditing": { - "success": "update", - "failures": "read" - }, - "notify": null, - "generic": false - } - } - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - - - [pyRACF:Debug] - Request Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "base": { - "base:audit_update": { - "value": "SUCCESS", - "operation": null - }, - "base:audit_read": { - "value": "FAILURE", - "operation": null - }, - "base:audit_control": { - "value": "SUCCESS", - "operation": null - } - } -} - - - [pyRACF:Debug] - Request XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - SUCCESS - FAILURE - SUCCESS - - - - - - [pyRACF:Debug] - Result XML - ResourceAdmin.alter_audit_by_attempt() - - - - - - Definition exists. Add command skipped due to precheck option - - 0 - 0 - 0 - RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL )) - ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED. - - - 0 - 0 - - - - [pyRACF:Debug] - Result Dictionary - ResourceAdmin.alter_audit_by_attempt() - - -{ - "securityResult": { - "resource": { - "name": "TESTING", - "class": "ELIJTEST", - "operation": "set", - "requestId": "ResourceRequest", - "info": [ - "Definition exists. Add command skipped due to precheck option" - ], - "commands": [ - { - "safReturnCode": 0, - "returnCode": 0, - "reasonCode": 0, - "image": "RALTER ELIJTEST (TESTING) AUDIT( SUCCESS (UPDATE ) FAILURE (READ ) SUCCESS (CONTROL ))", - "messages": [ - "ICH11009I RACLISTED PROFILES FOR ELIJTEST WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED." - ] - } - ] - }, - "returnCode": 0, - "reasonCode": 0, - "runningUserid": "testuser" - } -} - diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index 63555d7b..fb41352b 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -116,6 +116,22 @@ def test_resource_admin_build_overwrite_audit_by_attempt_all_request(self): TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML, ) + def test_resource_admin_build_overwrite_audit_by_attempt_value_error(self): + bad_val = "problem" + with self.assertRaises(ValueError) as exception: + self.resource_admin.overwrite_audit_by_attempt( + "TESTING", "ELIJTEST", success=bad_val + ) + print(exception.exception, str(exception.exception).encode("utf-8")) + error_string = ( + f"'{bad_val}' is not a proper value. Please specify 'alter', " + + "'control', 'read', or 'update' access for your target attempt." + ) + self.assertEqual( + str(exception.exception), + error_string, + ) + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") def test_resource_admin_build_alter_audit_by_access_level_request( self, @@ -236,3 +252,24 @@ def test_resource_admin_build_alter_audit_by_attempt_all_request( ), TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML, ) + + def test_resource_admin_build_alter_audit_by_attempt_value_error(self): + bad_success = "problem" + bad_failure = "improper" + bad_all = "bad" + with self.assertRaises(ValueError) as exception: + self.resource_admin.overwrite_audit_by_attempt( + "TESTING", + "ELIJTEST", + success=bad_success, + failure=bad_failure, + all=bad_all, + ) + error_string = ( + f"'{bad_success}', '{bad_failure}', and '{bad_all}' are not proper values. Please " + + "specify 'alter', 'control', 'read', or 'update' access for your target attempt." + ) + self.assertEqual( + str(exception.exception), + error_string, + ) From 03202a030ab51c0733a3cf286e10ffa908e80f0e Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Thu, 18 Jan 2024 15:25:58 -0500 Subject: [PATCH 08/15] Value_Error Code refactoring various naming changes and refactoring for code to trigger value error in `by_attempt` functions Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 70 +++++++++++++------------ tests/resource/test_resource_setters.py | 10 ++-- 2 files changed, 42 insertions(+), 38 deletions(-) diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index c4dd98ea..5f7cf438 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -307,7 +307,7 @@ def overwrite_audit_by_attempt( Overwrites the auditing rules for this general resource profile with new rules to audit based on specified access attempts. """ - self.__validate_access_level(success, failure, all) + self.__validate_access_levels(success, failure, all) traits = {} if success is not None: traits[f"base:audit_{success}"] = "success" @@ -330,7 +330,7 @@ def alter_audit_by_attempt( Alters the auditing rules for this general resource profile with new rules to audit by access level, preserving existing non-conflicting rules. """ - self.__validate_access_level(success, failure, all) + self.__validate_access_levels(success, failure, all) profile = self.extract(resource, class_name, profile_only=True) audit_rules = self._get_field(profile, "base", "auditing") traits = {} @@ -719,42 +719,46 @@ def _format_profile(self, result: dict) -> None: del result["securityResult"]["resource"]["commands"][0]["messages"] result["securityResult"]["resource"]["commands"][0]["profiles"] = profiles - def __validate_access_level( + def __validate_access_levels( self, success: Union[str, None] = None, failure: Union[str, None] = None, all: Union[str, None] = None, ): - access_levels = ["alter", "control", "read", "update"] + valid_access_levels = ("alter", "control", "read", "update") value_error_text = ( - "Please specify 'alter', 'control', 'read', or 'update' access " - + "for your target attempt." + "Valid access levels include 'alter', 'control', 'read', and 'update'." ) - bad_values = [] - if success is not None: - if success.lower() not in access_levels: - bad_values.append(success) - if failure is not None: - if failure.lower() not in access_levels: - bad_values.append(failure) - if all is not None: - if all.lower() not in access_levels: - bad_values.append(all) - if len(bad_values) == 0: - return - elif len(bad_values) == 1: - value_error_text = ( - f"'{bad_values[0]}' is not a proper value. " + value_error_text - ) - elif len(bad_values) == 2: - value_error_text = ( - f"'{bad_values[0]}' and '{bad_values[1]}' are not proper values. " - + value_error_text - ) - else: - value_error_text = ( - f"'{bad_values[0]}', '{bad_values[1]}', and '{bad_values[2]}' " - + "are not proper values. " - + value_error_text - ) + bad_access_levels = [] + for attempt_argument in (success, failure, all): + if ( + attempt_argument is not None + and str(attempt_argument).lower() not in valid_access_levels + ): + bad_access_levels.append(attempt_argument) + match len(bad_access_levels): + case 0: + return + case 1: + value_error_text = ( + f"'{bad_access_levels[0]}' is not a proper value. " + + value_error_text + ) + case 2: + value_error_text = ( + f"'{bad_access_levels[0]}' and '{bad_access_levels[1]}' are not proper " + + "values. " + + value_error_text + ) + case _: + bad_access_levels = [ + f"'{bad_access_level}'" for bad_access_level in bad_access_levels + ] + bad_access_levels[-1] = "and " + bad_access_levels[-1] + " " + bad_access_levels_string = ", ".join(bad_access_levels) + value_error_text = ( + bad_access_levels_string + + "are not proper values. " + + value_error_text + ) raise ValueError(value_error_text) diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index fb41352b..1498b849 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -124,8 +124,8 @@ def test_resource_admin_build_overwrite_audit_by_attempt_value_error(self): ) print(exception.exception, str(exception.exception).encode("utf-8")) error_string = ( - f"'{bad_val}' is not a proper value. Please specify 'alter', " - + "'control', 'read', or 'update' access for your target attempt." + f"'{bad_val}' is not a proper value. Valid access levels include " + + "'alter', 'control', 'read', and 'update'." ) self.assertEqual( str(exception.exception), @@ -256,7 +256,7 @@ def test_resource_admin_build_alter_audit_by_attempt_all_request( def test_resource_admin_build_alter_audit_by_attempt_value_error(self): bad_success = "problem" bad_failure = "improper" - bad_all = "bad" + bad_all = 1234 with self.assertRaises(ValueError) as exception: self.resource_admin.overwrite_audit_by_attempt( "TESTING", @@ -266,8 +266,8 @@ def test_resource_admin_build_alter_audit_by_attempt_value_error(self): all=bad_all, ) error_string = ( - f"'{bad_success}', '{bad_failure}', and '{bad_all}' are not proper values. Please " - + "specify 'alter', 'control', 'read', or 'update' access for your target attempt." + f"'{bad_success}', '{bad_failure}', and '{bad_all}' are not proper values. Valid " + + "access levels include 'alter', 'control', 'read', and 'update'." ) self.assertEqual( str(exception.exception), From 42fb2398aff9094ab1c8b993ea434d4c2d0c1607 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Fri, 19 Jan 2024 15:41:23 -0500 Subject: [PATCH 09/15] Code refactoring and message changes Refactor code to validate the access levels specified in `by_attempt` audit functions. Change `ValueError` message text raised by these functions. Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 20 +++++++++--------- tests/resource/test_resource_setters.py | 28 +++++++++++++++++++++---- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index 5f7cf438..1135fa78 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -733,32 +733,32 @@ def __validate_access_levels( for attempt_argument in (success, failure, all): if ( attempt_argument is not None - and str(attempt_argument).lower() not in valid_access_levels + and isinstance(attempt_argument, str) + and attempt_argument.lower() not in valid_access_levels ): bad_access_levels.append(attempt_argument) + elif attempt_argument is not None and not isinstance(attempt_argument, str): + bad_access_levels.append("non-string argument") match len(bad_access_levels): case 0: return case 1: value_error_text = ( - f"'{bad_access_levels[0]}' is not a proper value. " + f"'{bad_access_levels[0]}' is not a valid access level. " + value_error_text ) case 2: value_error_text = ( - f"'{bad_access_levels[0]}' and '{bad_access_levels[1]}' are not proper " - + "values. " - + value_error_text + f"'{bad_access_levels[0]}' and '{bad_access_levels[1]}' are not valid " + + f"access levels. {value_error_text}" ) case _: bad_access_levels = [ f"'{bad_access_level}'" for bad_access_level in bad_access_levels ] - bad_access_levels[-1] = "and " + bad_access_levels[-1] + " " - bad_access_levels_string = ", ".join(bad_access_levels) + bad_access_levels[-1] = f"and {bad_access_levels[-1]} " value_error_text = ( - bad_access_levels_string - + "are not proper values. " - + value_error_text + f"{', '.join(bad_access_levels)}are not valid access levels. " + + f"{value_error_text}" ) raise ValueError(value_error_text) diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index 1498b849..3a248451 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -124,7 +124,7 @@ def test_resource_admin_build_overwrite_audit_by_attempt_value_error(self): ) print(exception.exception, str(exception.exception).encode("utf-8")) error_string = ( - f"'{bad_val}' is not a proper value. Valid access levels include " + f"'{bad_val}' is not a valid access level. Valid access levels include " + "'alter', 'control', 'read', and 'update'." ) self.assertEqual( @@ -255,7 +255,26 @@ def test_resource_admin_build_alter_audit_by_attempt_all_request( def test_resource_admin_build_alter_audit_by_attempt_value_error(self): bad_success = "problem" - bad_failure = "improper" + bad_all = "value" + with self.assertRaises(ValueError) as exception: + self.resource_admin.overwrite_audit_by_attempt( + "TESTING", + "ELIJTEST", + success=bad_success, + all=bad_all, + ) + error_string = ( + f"'{bad_success}' and '{bad_all}' are not valid access levels. Valid " + + "access levels include 'alter', 'control', 'read', and 'update'." + ) + self.assertEqual( + str(exception.exception), + error_string, + ) + + def test_resource_admin_build_alter_audit_by_attempt_value_error_all(self): + bad_success = "problem" + bad_failure = ["improper"] bad_all = 1234 with self.assertRaises(ValueError) as exception: self.resource_admin.overwrite_audit_by_attempt( @@ -266,8 +285,9 @@ def test_resource_admin_build_alter_audit_by_attempt_value_error(self): all=bad_all, ) error_string = ( - f"'{bad_success}', '{bad_failure}', and '{bad_all}' are not proper values. Valid " - + "access levels include 'alter', 'control', 'read', and 'update'." + f"'{bad_success}', 'non-string argument', and 'non-string argument' " + + "are not valid access levels. Valid access levels include 'alter', " + + "'control', 'read', and 'update'." ) self.assertEqual( str(exception.exception), From caefa890838ac7ff3271fee84d12379e53da900b Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Wed, 24 Jan 2024 10:38:36 -0500 Subject: [PATCH 10/15] Update Version Number and Wording Changes -Catch misc debug prints -Change to 1.0b4 -Add unit testing for get_audit_rules edge cases -refactor some audit rules code Signed-off-by: Elijah Swift --- pyproject.toml | 2 +- pyracf/resource/resource_admin.py | 7 ++---- tests/resource/test_resource_constants.py | 1 + tests/resource/test_resource_getters.py | 26 +++++++++++++++++++++++ tests/resource/test_resource_setters.py | 12 +++++------ tests/user/test_user_request_builder.py | 1 - 6 files changed, 35 insertions(+), 14 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 17bc8f0b..f8b4ab15 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ [tool.poetry] name="pyracf" - version="1.0b3" + version="1.0b4" description="Python interface to RACF using IRRSMO00 RACF Callable Service." license = "Apache-2.0" authors = [ diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index 1135fa78..58e9874e 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -733,19 +733,16 @@ def __validate_access_levels( for attempt_argument in (success, failure, all): if ( attempt_argument is not None - and isinstance(attempt_argument, str) - and attempt_argument.lower() not in valid_access_levels + and str(attempt_argument).lower() not in valid_access_levels ): bad_access_levels.append(attempt_argument) - elif attempt_argument is not None and not isinstance(attempt_argument, str): - bad_access_levels.append("non-string argument") match len(bad_access_levels): case 0: return case 1: value_error_text = ( f"'{bad_access_levels[0]}' is not a valid access level. " - + value_error_text + + f"{value_error_text}" ) case 2: value_error_text = ( diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index 2225e65e..8efc1350 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -169,6 +169,7 @@ def get_sample(sample_file: str) -> Union[str, bytes]: # ============================================================================ TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES = {"success": "update", "failures": "read"} +TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_SINGLE = {"failures": "read"} # ============================================================================ # Debug Logging diff --git a/tests/resource/test_resource_getters.py b/tests/resource/test_resource_getters.py index ccddca4e..63b33b0c 100644 --- a/tests/resource/test_resource_getters.py +++ b/tests/resource/test_resource_getters.py @@ -114,6 +114,32 @@ def test_resource_admin_get_audit_rules( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES, ) + def test_resource_admin_get_audit_rules_single( + self, + call_racf_mock: Mock, + ): + call_racf_mock.return_value = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_GENERIC_SUCCESS_XML + ) + self.assertEqual( + self.resource_admin.get_audit_rules("TEST*", "ELIJTEST"), + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_SINGLE, + ) + + def test_resource_admin_get_audit_rules_none( + self, + call_racf_mock: Mock, + ): + profile_with_none_auditing = ( + TestResourceConstants.TEST_EXTRACT_RESOURCE_RESULT_BASE_SUCCESS_XML + ) + profile_with_none_auditing = profile_with_none_auditing.replace( + "SUCCESS(UPDATE),FAILURES(READ)", + "NONE", + ) + call_racf_mock.return_value = profile_with_none_auditing + self.assertIsNone(self.resource_admin.get_audit_rules("TESTING", "ELIJTEST")) + # Error in environment, TESTING already deleted/not added def test_resource_admin_get_audit_rules_raises_an_exception_when_extract_fails( self, diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index 3a248451..ca6903a4 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -117,14 +117,13 @@ def test_resource_admin_build_overwrite_audit_by_attempt_all_request(self): ) def test_resource_admin_build_overwrite_audit_by_attempt_value_error(self): - bad_val = "problem" + bad_success = "problem" with self.assertRaises(ValueError) as exception: self.resource_admin.overwrite_audit_by_attempt( - "TESTING", "ELIJTEST", success=bad_val + "TESTING", "ELIJTEST", success=bad_success ) - print(exception.exception, str(exception.exception).encode("utf-8")) error_string = ( - f"'{bad_val}' is not a valid access level. Valid access levels include " + f"'{bad_success}' is not a valid access level. Valid access levels include " + "'alter', 'control', 'read', and 'update'." ) self.assertEqual( @@ -285,9 +284,8 @@ def test_resource_admin_build_alter_audit_by_attempt_value_error_all(self): all=bad_all, ) error_string = ( - f"'{bad_success}', 'non-string argument', and 'non-string argument' " - + "are not valid access levels. Valid access levels include 'alter', " - + "'control', 'read', and 'update'." + f"'{bad_success}', '{bad_failure}', and '{bad_all}' are not valid access levels. " + + "Valid access levels include 'alter', 'control', 'read', and 'update'." ) self.assertEqual( str(exception.exception), diff --git a/tests/user/test_user_request_builder.py b/tests/user/test_user_request_builder.py index 655ac77a..5c75edf5 100644 --- a/tests/user/test_user_request_builder.py +++ b/tests/user/test_user_request_builder.py @@ -34,7 +34,6 @@ def test_user_admin_build_add_user_base_omvs_tso_revoke_resume_request(self): "squidwrd", traits=TestUserConstants.TEST_ADD_USER_BASE_OMVS_TSO_REVOKE_RESUME_REQUEST_TRAITS, ) - print(result) self.assertEqual( result, TestUserConstants.TEST_ADD_USER_BASE_OMVS_TSO_REVOKE_RESUME_REQUEST_XML, From f3098d650d8be2232a25537d2c7a6faff0fc2d14 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Fri, 26 Jan 2024 16:27:00 -0500 Subject: [PATCH 11/15] Add Value Error For Duplicate Attempt Types -Add ValueError for duplicate attempt types -Change unit testing to add coverage Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 24 +++++++++++++++++++ ...ource_alter_audit_by_access_level_none.xml | 2 +- .../resource_alter_audit_by_attempt_none.xml | 2 +- tests/resource/test_resource_constants.py | 1 + tests/resource/test_resource_setters.py | 21 ++++++++++++++-- 5 files changed, 46 insertions(+), 4 deletions(-) diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index 58e9874e..b8435fc0 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -1,5 +1,6 @@ """General Resource Profile Administration.""" +from collections import Counter from typing import List, Union from pyracf.common.add_operation_error import AddOperationError @@ -738,6 +739,9 @@ def __validate_access_levels( bad_access_levels.append(attempt_argument) match len(bad_access_levels): case 0: + self.__check_for_duplicates( + [success, failure, all], "attempt types", "access level" + ) return case 1: value_error_text = ( @@ -759,3 +763,23 @@ def __validate_access_levels( + f"{value_error_text}" ) raise ValueError(value_error_text) + + def __check_for_duplicates( + self, input_list: list, argument: str, value: str + ) -> None: + duplicates = [ + key + for (key, value) in Counter(input_list).items() + if (value > 1 and not (key is None)) + ] + if duplicates == []: + return + value_error_text = [] + for duplicate in duplicates: + value_error_text.append( + f"You entered '{duplicate}' for multiple parameters which is not supported." + ) + value_error_text.append( + f"Please use multiple function calls to set multiple {argument} to the same {value}." + ) + raise ValueError("\n".join(value_error_text)) diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml index aab4a3a2..b0abbd6a 100644 --- a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml @@ -2,7 +2,7 @@ success - failure + all \ No newline at end of file diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml index aab4a3a2..b0abbd6a 100644 --- a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml +++ b/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml @@ -2,7 +2,7 @@ success - failure + all \ No newline at end of file diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index 8efc1350..c478b7ec 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -169,6 +169,7 @@ def get_sample(sample_file: str) -> Union[str, bytes]: # ============================================================================ TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES = {"success": "update", "failures": "read"} +TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL = {"success": "update", "all": "read"} TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_SINGLE = {"failures": "read"} # ============================================================================ diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index ca6903a4..cd41defc 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -131,6 +131,23 @@ def test_resource_admin_build_overwrite_audit_by_attempt_value_error(self): error_string, ) + def test_resource_admin_build_overwrite_audit_by_attempt_value_duplicates(self): + success = "alter" + failure = "alter" + with self.assertRaises(ValueError) as exception: + self.resource_admin.overwrite_audit_by_attempt( + "TESTING", "ELIJTEST", success=success, failure=failure + ) + error_string = ( + f"You entered '{success}' for multiple parameters which is not supported.\n" + + "Please use multiple function calls to set multiple attempt types to the " + + "same access level." + ) + self.assertEqual( + str(exception.exception), + error_string, + ) + @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") def test_resource_admin_build_alter_audit_by_access_level_request( self, @@ -152,7 +169,7 @@ def test_resource_admin_build_alter_audit_by_access_level_none_request( resource_admin_extract_mock: Mock, ): resource_admin_extract_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL ) self.assertEqual( self.resource_admin.alter_audit_by_access_level("TESTING", "ELIJTEST"), @@ -215,7 +232,7 @@ def test_resource_admin_build_alter_audit_by_attempt_none_request( resource_admin_extract_mock: Mock, ): resource_admin_extract_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL ) self.assertEqual( self.resource_admin.alter_audit_by_attempt("TESTING", "ELIJTEST"), From b25f41267183d43e8af6115fa14d15b1660c2e29 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Mon, 29 Jan 2024 18:03:02 -0500 Subject: [PATCH 12/15] Mostly refactor code Refactor code and change wording associated with ValueError for duplicate values in `by_attempt` function. Change `alter_audit_rules` functions to use `get_audit_rules` and mock `get_audit_rules` call rather than `extract` as `_get_field` doesn't work in `generate_requests_only` mode. Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 25 ++++------- tests/resource/test_resource_constants.py | 3 +- tests/resource/test_resource_setters.py | 53 +++++++++++------------ 3 files changed, 37 insertions(+), 44 deletions(-) diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index b8435fc0..df6f7e9a 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -294,6 +294,7 @@ def get_audit_rules( ) -> Union[dict, bytes, None]: """Get the auditing rules associated with this general resource profile.""" profile = self.extract(resource, class_name, profile_only=True) + print(profile) return self._get_field(profile, "base", "auditing") def overwrite_audit_by_attempt( @@ -332,8 +333,7 @@ def alter_audit_by_attempt( to audit by access level, preserving existing non-conflicting rules. """ self.__validate_access_levels(success, failure, all) - profile = self.extract(resource, class_name, profile_only=True) - audit_rules = self._get_field(profile, "base", "auditing") + audit_rules = self.get_audit_rules(resource, class_name) traits = {} if "success" in audit_rules: traits[f"base:audit_{audit_rules['success']}"] = "success" @@ -388,8 +388,7 @@ def alter_audit_by_access_level( Alters the auditing rules for this general resource profile with a new rule to audit alter access, preserving existing non-conflicting rules. """ - profile = self.extract(resource, class_name, profile_only=True) - audit_rules = self._get_field(profile, "base", "auditing") + audit_rules = self.get_audit_rules(resource, class_name) traits = {} if "success" in audit_rules: traits[f"base:audit_{audit_rules['success']}"] = "success" @@ -739,9 +738,7 @@ def __validate_access_levels( bad_access_levels.append(attempt_argument) match len(bad_access_levels): case 0: - self.__check_for_duplicates( - [success, failure, all], "attempt types", "access level" - ) + self.__check_for_duplicates([success, failure, all], "Access Level") return case 1: value_error_text = ( @@ -764,22 +761,18 @@ def __validate_access_levels( ) raise ValueError(value_error_text) - def __check_for_duplicates( - self, input_list: list, argument: str, value: str - ) -> None: + def __check_for_duplicates(self, argument_list: list, argument: str) -> None: duplicates = [ key - for (key, value) in Counter(input_list).items() - if (value > 1 and not (key is None)) + for (key, value) in Counter(argument_list).items() + if (value > 1 and key is not None) ] if duplicates == []: return value_error_text = [] for duplicate in duplicates: value_error_text.append( - f"You entered '{duplicate}' for multiple parameters which is not supported." + f"'{duplicate}' is provided as an '{argument}' multiple times, which is not " + + "allowed." ) - value_error_text.append( - f"Please use multiple function calls to set multiple {argument} to the same {value}." - ) raise ValueError("\n".join(value_error_text)) diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index c478b7ec..69ab0467 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -169,9 +169,10 @@ def get_sample(sample_file: str) -> Union[str, bytes]: # ============================================================================ TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES = {"success": "update", "failures": "read"} -TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL = {"success": "update", "all": "read"} TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_SINGLE = {"failures": "read"} +TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL = {"success": "update", "all": "read"} + # ============================================================================ # Debug Logging # ============================================================================ diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index cd41defc..00cbafa1 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -139,21 +139,20 @@ def test_resource_admin_build_overwrite_audit_by_attempt_value_duplicates(self): "TESTING", "ELIJTEST", success=success, failure=failure ) error_string = ( - f"You entered '{success}' for multiple parameters which is not supported.\n" - + "Please use multiple function calls to set multiple attempt types to the " - + "same access level." + f"'{success}' is provided as an 'Access Level' multiple times, which is not " + + "allowed." ) self.assertEqual( str(exception.exception), error_string, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_access_level_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES ) self.assertEqual( @@ -163,12 +162,12 @@ def test_resource_admin_build_alter_audit_by_access_level_request( TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_access_level_none_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL ) self.assertEqual( @@ -176,12 +175,12 @@ def test_resource_admin_build_alter_audit_by_access_level_none_request( TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_access_level_multiple_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES ) self.assertEqual( @@ -191,12 +190,12 @@ def test_resource_admin_build_alter_audit_by_access_level_multiple_request( TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_access_level_all_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES ) self.assertEqual( @@ -211,12 +210,12 @@ def test_resource_admin_build_alter_audit_by_access_level_all_request( TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_attempt_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES ) self.assertEqual( @@ -226,12 +225,12 @@ def test_resource_admin_build_alter_audit_by_attempt_request( TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_REQUEST_XML, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_attempt_none_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL ) self.assertEqual( @@ -239,12 +238,12 @@ def test_resource_admin_build_alter_audit_by_attempt_none_request( TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_attempt_multiple_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES ) self.assertEqual( @@ -254,12 +253,12 @@ def test_resource_admin_build_alter_audit_by_attempt_multiple_request( TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML, ) - @patch("pyracf.resource.resource_admin.ResourceAdmin.extract") + @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") def test_resource_admin_build_alter_audit_by_attempt_all_request( self, - resource_admin_extract_mock: Mock, + resource_admin_get_audit_rules_mock: Mock, ): - resource_admin_extract_mock.return_value = ( + resource_admin_get_audit_rules_mock.return_value = ( TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES ) self.assertEqual( From 1a228ef3faf9574f3e56df06ee7c05a3bf427e97 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Tue, 30 Jan 2024 08:24:13 -0500 Subject: [PATCH 13/15] Update resource_admin.py remove debug print Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index df6f7e9a..2ba19e7d 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -294,7 +294,6 @@ def get_audit_rules( ) -> Union[dict, bytes, None]: """Get the auditing rules associated with this general resource profile.""" profile = self.extract(resource, class_name, profile_only=True) - print(profile) return self._get_field(profile, "base", "auditing") def overwrite_audit_by_attempt( From df0793675cb77c395f3e700f63f2aa3e627e4029 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Tue, 30 Jan 2024 11:00:14 -0500 Subject: [PATCH 14/15] Change audit_by to audit_rules_by Change audit_by to audit_rules_by Remove EXTRACT_PROFILE from get_audit_rules testing Signed-off-by: Elijah Swift --- pyracf/resource/resource_admin.py | 8 +- ...rce_alter_audit_rules_by_access_level.xml} | 0 ...alter_audit_rules_by_access_level_all.xml} | 0 ..._audit_rules_by_access_level_multiple.xml} | 0 ...lter_audit_rules_by_access_level_none.xml} | 0 ...resource_alter_audit_rules_by_attempt.xml} | 0 ...urce_alter_audit_rules_by_attempt_all.xml} | 0 ...alter_audit_rules_by_attempt_multiple.xml} | 0 ...rce_alter_audit_rules_by_attempt_none.xml} | 0 ...overwrite_audit_rules_by_access_level.xml} | 0 ...write_audit_rules_by_access_level_all.xml} | 0 ..._audit_rules_by_access_level_multiple.xml} | 0 ...rite_audit_rules_by_access_level_none.xml} | 0 ...urce_overwrite_audit_rules_by_attempt.xml} | 0 ..._overwrite_audit_rules_by_attempt_all.xml} | 0 ...write_audit_rules_by_attempt_multiple.xml} | 0 ...overwrite_audit_rules_by_attempt_none.xml} | 0 tests/resource/test_resource_constants.py | 71 +++++---- tests/resource/test_resource_getters.py | 4 +- tests/resource/test_resource_setters.py | 140 ++++++++++-------- 20 files changed, 117 insertions(+), 106 deletions(-) rename tests/resource/resource_request_samples/{resource_alter_audit_by_access_level.xml => resource_alter_audit_rules_by_access_level.xml} (100%) rename tests/resource/resource_request_samples/{resource_alter_audit_by_access_level_all.xml => resource_alter_audit_rules_by_access_level_all.xml} (100%) rename tests/resource/resource_request_samples/{resource_alter_audit_by_access_level_multiple.xml => resource_alter_audit_rules_by_access_level_multiple.xml} (100%) rename tests/resource/resource_request_samples/{resource_alter_audit_by_access_level_none.xml => resource_alter_audit_rules_by_access_level_none.xml} (100%) rename tests/resource/resource_request_samples/{resource_alter_audit_by_attempt.xml => resource_alter_audit_rules_by_attempt.xml} (100%) rename tests/resource/resource_request_samples/{resource_alter_audit_by_attempt_all.xml => resource_alter_audit_rules_by_attempt_all.xml} (100%) rename tests/resource/resource_request_samples/{resource_alter_audit_by_attempt_multiple.xml => resource_alter_audit_rules_by_attempt_multiple.xml} (100%) rename tests/resource/resource_request_samples/{resource_alter_audit_by_attempt_none.xml => resource_alter_audit_rules_by_attempt_none.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_access_level.xml => resource_overwrite_audit_rules_by_access_level.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_access_level_all.xml => resource_overwrite_audit_rules_by_access_level_all.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_access_level_multiple.xml => resource_overwrite_audit_rules_by_access_level_multiple.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_access_level_none.xml => resource_overwrite_audit_rules_by_access_level_none.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_attempt.xml => resource_overwrite_audit_rules_by_attempt.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_attempt_all.xml => resource_overwrite_audit_rules_by_attempt_all.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_attempt_multiple.xml => resource_overwrite_audit_rules_by_attempt_multiple.xml} (100%) rename tests/resource/resource_request_samples/{resource_overwrite_audit_by_attempt_none.xml => resource_overwrite_audit_rules_by_attempt_none.xml} (100%) diff --git a/pyracf/resource/resource_admin.py b/pyracf/resource/resource_admin.py index 2ba19e7d..27219b92 100644 --- a/pyracf/resource/resource_admin.py +++ b/pyracf/resource/resource_admin.py @@ -296,7 +296,7 @@ def get_audit_rules( profile = self.extract(resource, class_name, profile_only=True) return self._get_field(profile, "base", "auditing") - def overwrite_audit_by_attempt( + def overwrite_audit_rules_by_attempt( self, resource: str, class_name: str, @@ -319,7 +319,7 @@ def overwrite_audit_by_attempt( result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) - def alter_audit_by_attempt( + def alter_audit_rules_by_attempt( self, resource: str, class_name: str, @@ -349,7 +349,7 @@ def alter_audit_by_attempt( result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) - def overwrite_audit_by_access_level( + def overwrite_audit_rules_by_access_level( self, resource: str, class_name: str, @@ -374,7 +374,7 @@ def overwrite_audit_by_access_level( result = self.alter(resource, class_name, traits=traits) return self._to_steps(result) - def alter_audit_by_access_level( + def alter_audit_rules_by_access_level( self, resource: str, class_name: str, diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_access_level.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level.xml diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_all.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level_all.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_access_level_all.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level_all.xml diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_multiple.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level_multiple.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_access_level_multiple.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level_multiple.xml diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level_none.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_access_level_none.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_access_level_none.xml diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_attempt.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt.xml diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_all.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt_all.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_attempt_all.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt_all.xml diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_multiple.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt_multiple.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_attempt_multiple.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt_multiple.xml diff --git a/tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml b/tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt_none.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_alter_audit_by_attempt_none.xml rename to tests/resource/resource_request_samples/resource_alter_audit_rules_by_attempt_none.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_all.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level_all.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_all.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level_all.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_multiple.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level_multiple.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_multiple.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level_multiple.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_none.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level_none.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_access_level_none.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_access_level_none.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_all.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt_all.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_all.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt_all.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_multiple.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt_multiple.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_multiple.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt_multiple.xml diff --git a/tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_none.xml b/tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt_none.xml similarity index 100% rename from tests/resource/resource_request_samples/resource_overwrite_audit_by_attempt_none.xml rename to tests/resource/resource_request_samples/resource_overwrite_audit_rules_by_attempt_none.xml diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index 69ab0467..db7cdd11 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -115,63 +115,62 @@ def get_sample(sample_file: str) -> Union[str, bytes]: TEST_RESOURCE_REMOVE_ALL_AUDIT_RULES_REQUEST_XML = get_sample( "resource_remove_all_audit_rules.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_access_level.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_access_level_multiple.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level_multiple.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_access_level_all.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level_all.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_access_level_none.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level_none.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( - "resource_alter_audit_by_access_level.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_access_level.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( - "resource_alter_audit_by_access_level_multiple.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_access_level_multiple.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( - "resource_alter_audit_by_access_level_all.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_access_level_all.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( - "resource_alter_audit_by_access_level_none.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_access_level_none.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_attempt.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_attempt.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_attempt_multiple.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_attempt_multiple.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_attempt_all.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_attempt_all.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( - "resource_overwrite_audit_by_attempt_none.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_attempt_none.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_REQUEST_XML = get_sample( - "resource_alter_audit_by_attempt.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( - "resource_alter_audit_by_attempt_multiple.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt_multiple.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( - "resource_alter_audit_by_attempt_all.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt_all.xml" ) -TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( - "resource_alter_audit_by_attempt_none.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt_none.xml" ) # ============================================================================ # Resource Administration Getters Result Data # ============================================================================ -TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES = {"success": "update", "failures": "read"} -TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_SINGLE = {"failures": "read"} - -TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL = {"success": "update", "all": "read"} +TEST_GET_AUDIT_RULES = {"success": "update", "failures": "read"} +TEST_GET_AUDIT_RULES_SINGLE = {"failures": "read"} +TEST_GET_AUDIT_RULES_WITH_ALL = {"success": "update", "all": "read"} # ============================================================================ # Debug Logging diff --git a/tests/resource/test_resource_getters.py b/tests/resource/test_resource_getters.py index 63b33b0c..e5fe54c9 100644 --- a/tests/resource/test_resource_getters.py +++ b/tests/resource/test_resource_getters.py @@ -111,7 +111,7 @@ def test_resource_admin_get_audit_rules( ) self.assertEqual( self.resource_admin.get_audit_rules("TESTING", "ELIJTEST"), - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES, + TestResourceConstants.TEST_GET_AUDIT_RULES, ) def test_resource_admin_get_audit_rules_single( @@ -123,7 +123,7 @@ def test_resource_admin_get_audit_rules_single( ) self.assertEqual( self.resource_admin.get_audit_rules("TEST*", "ELIJTEST"), - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_SINGLE, + TestResourceConstants.TEST_GET_AUDIT_RULES_SINGLE, ) def test_resource_admin_get_audit_rules_none( diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index 00cbafa1..df3a0418 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -39,37 +39,41 @@ def test_resource_admin_build_remove_all_audit_rules_request(self): TestResourceConstants.TEST_RESOURCE_REMOVE_ALL_AUDIT_RULES_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_access_level_request(self): - result = self.resource_admin.overwrite_audit_by_access_level( + def test_resource_admin_build_overwrite_audit_rules_by_access_level_request(self): + result = self.resource_admin.overwrite_audit_rules_by_access_level( "TESTING", "ELIJTEST", alter="success" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_access_level_none_request(self): - result = self.resource_admin.overwrite_audit_by_access_level( + def test_resource_admin_build_overwrite_audit_rules_by_access_level_none_request( + self, + ): + result = self.resource_admin.overwrite_audit_rules_by_access_level( "TESTING", "ELIJTEST" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_NONE_REQUEST_XML, # noqa: E501 ) - def test_resource_admin_build_overwrite_audit_by_access_level_multiple_request( + def test_resource_admin_build_overwrite_audit_rules_by_access_level_multiple_request( self, ): - result = self.resource_admin.overwrite_audit_by_access_level( + result = self.resource_admin.overwrite_audit_rules_by_access_level( "TESTING", "ELIJTEST", alter="success", control="all" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_MULT_REQUEST_XML, # noqa: E501 ) - def test_resource_admin_build_overwrite_audit_by_access_level_all_request(self): - result = self.resource_admin.overwrite_audit_by_access_level( + def test_resource_admin_build_overwrite_audit_rules_by_access_level_all_request( + self, + ): + result = self.resource_admin.overwrite_audit_rules_by_access_level( "TESTING", "ELIJTEST", alter="success", @@ -79,47 +83,51 @@ def test_resource_admin_build_overwrite_audit_by_access_level_all_request(self): ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_ALL_REQUEST_XML, # noqa: E501 ) - def test_resource_admin_build_overwrite_audit_by_attempt_request(self): - result = self.resource_admin.overwrite_audit_by_attempt( + def test_resource_admin_build_overwrite_audit_rules_by_attempt_request(self): + result = self.resource_admin.overwrite_audit_rules_by_attempt( "TESTING", "ELIJTEST", failure="control" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_attempt_none_request(self): - result = self.resource_admin.overwrite_audit_by_attempt("TESTING", "ELIJTEST") + def test_resource_admin_build_overwrite_audit_rules_by_attempt_none_request(self): + result = self.resource_admin.overwrite_audit_rules_by_attempt( + "TESTING", "ELIJTEST" + ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_NONE_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_attempt_multiple_request(self): - result = self.resource_admin.overwrite_audit_by_attempt( + def test_resource_admin_build_overwrite_audit_rules_by_attempt_multiple_request( + self, + ): + result = self.resource_admin.overwrite_audit_rules_by_attempt( "TESTING", "ELIJTEST", success="alter", all="read" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_MULT_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_attempt_all_request(self): - result = self.resource_admin.overwrite_audit_by_attempt( + def test_resource_admin_build_overwrite_audit_rules_by_attempt_all_request(self): + result = self.resource_admin.overwrite_audit_rules_by_attempt( "TESTING", "ELIJTEST", success="alter", all="read", failure="update" ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_ALL_REQUEST_XML, ) - def test_resource_admin_build_overwrite_audit_by_attempt_value_error(self): + def test_resource_admin_build_overwrite_audit_rules_by_attempt_value_error(self): bad_success = "problem" with self.assertRaises(ValueError) as exception: - self.resource_admin.overwrite_audit_by_attempt( + self.resource_admin.overwrite_audit_rules_by_attempt( "TESTING", "ELIJTEST", success=bad_success ) error_string = ( @@ -131,11 +139,13 @@ def test_resource_admin_build_overwrite_audit_by_attempt_value_error(self): error_string, ) - def test_resource_admin_build_overwrite_audit_by_attempt_value_duplicates(self): + def test_resource_admin_build_overwrite_audit_rules_by_attempt_value_duplicates( + self, + ): success = "alter" failure = "alter" with self.assertRaises(ValueError) as exception: - self.resource_admin.overwrite_audit_by_attempt( + self.resource_admin.overwrite_audit_rules_by_attempt( "TESTING", "ELIJTEST", success=success, failure=failure ) error_string = ( @@ -148,58 +158,60 @@ def test_resource_admin_build_overwrite_audit_by_attempt_value_duplicates(self): ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_access_level_request( + def test_resource_admin_build_alter_audit_rules_by_access_level_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_GET_AUDIT_RULES ) self.assertEqual( - self.resource_admin.alter_audit_by_access_level( + self.resource_admin.alter_audit_rules_by_access_level( "TESTING", "ELIJTEST", alter="success" ), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_REQUEST_XML, ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_access_level_none_request( + def test_resource_admin_build_alter_audit_rules_by_access_level_none_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL + TestResourceConstants.TEST_GET_AUDIT_RULES_WITH_ALL ) self.assertEqual( - self.resource_admin.alter_audit_by_access_level("TESTING", "ELIJTEST"), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML, + self.resource_admin.alter_audit_rules_by_access_level( + "TESTING", "ELIJTEST" + ), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_NONE_REQUEST_XML, ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_access_level_multiple_request( + def test_resource_admin_build_alter_audit_rules_by_access_level_multiple_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_GET_AUDIT_RULES ) self.assertEqual( - self.resource_admin.alter_audit_by_access_level( + self.resource_admin.alter_audit_rules_by_access_level( "TESTING", "ELIJTEST", alter="success", control="failure" ), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_MULT_REQUEST_XML, ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_access_level_all_request( + def test_resource_admin_build_alter_audit_rules_by_access_level_all_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_GET_AUDIT_RULES ) self.assertEqual( - self.resource_admin.alter_audit_by_access_level( + self.resource_admin.alter_audit_rules_by_access_level( "TESTING", "ELIJTEST", alter="success", @@ -207,72 +219,72 @@ def test_resource_admin_build_alter_audit_by_access_level_all_request( update="all", read="all", ), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_ALL_REQUEST_XML, ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_attempt_request( + def test_resource_admin_build_alter_audit_rules_by_attempt_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_GET_AUDIT_RULES ) self.assertEqual( - self.resource_admin.alter_audit_by_attempt( + self.resource_admin.alter_audit_rules_by_attempt( "TESTING", "ELIJTEST", failure="control" ), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_REQUEST_XML, ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_attempt_none_request( + def test_resource_admin_build_alter_audit_rules_by_attempt_none_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES_WITH_ALL + TestResourceConstants.TEST_GET_AUDIT_RULES_WITH_ALL ) self.assertEqual( - self.resource_admin.alter_audit_by_attempt("TESTING", "ELIJTEST"), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_NONE_REQUEST_XML, + self.resource_admin.alter_audit_rules_by_attempt("TESTING", "ELIJTEST"), + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_NONE_REQUEST_XML, ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_attempt_multiple_request( + def test_resource_admin_build_alter_audit_rules_by_attempt_multiple_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_GET_AUDIT_RULES ) self.assertEqual( - self.resource_admin.alter_audit_by_attempt( + self.resource_admin.alter_audit_rules_by_attempt( "TESTING", "ELIJTEST", failure="control", all="read" ), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_MULT_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_MULT_REQUEST_XML, ) @patch("pyracf.resource.resource_admin.ResourceAdmin.get_audit_rules") - def test_resource_admin_build_alter_audit_by_attempt_all_request( + def test_resource_admin_build_alter_audit_rules_by_attempt_all_request( self, resource_admin_get_audit_rules_mock: Mock, ): resource_admin_get_audit_rules_mock.return_value = ( - TestResourceConstants.TEST_EXTRACT_RESOURCE_GET_AUDIT_RULES + TestResourceConstants.TEST_GET_AUDIT_RULES ) self.assertEqual( - self.resource_admin.alter_audit_by_attempt( + self.resource_admin.alter_audit_rules_by_attempt( "TESTING", "ELIJTEST", failure="control", success="alter", all="read" ), - TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_BY_ATTEMPT_ALL_REQUEST_XML, + TestResourceConstants.TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_ALL_REQUEST_XML, ) - def test_resource_admin_build_alter_audit_by_attempt_value_error(self): + def test_resource_admin_build_alter_audit_rules_by_attempt_value_error(self): bad_success = "problem" bad_all = "value" with self.assertRaises(ValueError) as exception: - self.resource_admin.overwrite_audit_by_attempt( + self.resource_admin.overwrite_audit_rules_by_attempt( "TESTING", "ELIJTEST", success=bad_success, @@ -287,12 +299,12 @@ def test_resource_admin_build_alter_audit_by_attempt_value_error(self): error_string, ) - def test_resource_admin_build_alter_audit_by_attempt_value_error_all(self): + def test_resource_admin_build_alter_audit_rules_by_attempt_value_error_all(self): bad_success = "problem" bad_failure = ["improper"] bad_all = 1234 with self.assertRaises(ValueError) as exception: - self.resource_admin.overwrite_audit_by_attempt( + self.resource_admin.overwrite_audit_rules_by_attempt( "TESTING", "ELIJTEST", success=bad_success, From dc0f5f8cabee5ecead158a7fc0c16c02b954e001 Mon Sep 17 00:00:00 2001 From: Elijah Swift Date: Tue, 30 Jan 2024 11:58:22 -0500 Subject: [PATCH 15/15] Change test variables Change test variables to address E501 errors. Signed-off-by: Elijah Swift --- tests/resource/test_resource_constants.py | 33 ++++++++++++----------- tests/resource/test_resource_setters.py | 6 ++--- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/tests/resource/test_resource_constants.py b/tests/resource/test_resource_constants.py index db7cdd11..a1448ccd 100644 --- a/tests/resource/test_resource_constants.py +++ b/tests/resource/test_resource_constants.py @@ -115,17 +115,17 @@ def get_sample(sample_file: str) -> Union[str, bytes]: TEST_RESOURCE_REMOVE_ALL_AUDIT_RULES_REQUEST_XML = get_sample( "resource_remove_all_audit_rules.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( - "resource_overwrite_audit_rules_by_access_level.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( - "resource_overwrite_audit_rules_by_access_level_multiple.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt_multiple.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( - "resource_overwrite_audit_rules_by_access_level_all.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt_all.xml" ) -TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( - "resource_overwrite_audit_rules_by_access_level_none.xml" +TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( + "resource_alter_audit_rules_by_attempt_none.xml" ) TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( "resource_alter_audit_rules_by_access_level.xml" @@ -151,17 +151,18 @@ def get_sample(sample_file: str) -> Union[str, bytes]: TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( "resource_overwrite_audit_rules_by_attempt_none.xml" ) -TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_REQUEST_XML = get_sample( - "resource_alter_audit_rules_by_attempt.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level.xml" ) -TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_MULT_REQUEST_XML = get_sample( - "resource_alter_audit_rules_by_attempt_multiple.xml" +# The following Test variables break convention to avoid E501 length errors from Flake8 +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level_multiple.xml" ) -TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_ALL_REQUEST_XML = get_sample( - "resource_alter_audit_rules_by_attempt_all.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level_all.xml" ) -TEST_RESOURCE_ALTER_AUDIT_RULES_BY_ATTEMPT_NONE_REQUEST_XML = get_sample( - "resource_alter_audit_rules_by_attempt_none.xml" +TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML = get_sample( + "resource_overwrite_audit_rules_by_access_level_none.xml" ) # ============================================================================ diff --git a/tests/resource/test_resource_setters.py b/tests/resource/test_resource_setters.py index df3a0418..0bcbd0b9 100644 --- a/tests/resource/test_resource_setters.py +++ b/tests/resource/test_resource_setters.py @@ -56,7 +56,7 @@ def test_resource_admin_build_overwrite_audit_rules_by_access_level_none_request ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_NONE_REQUEST_XML, # noqa: E501 + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_NONE_REQUEST_XML, ) def test_resource_admin_build_overwrite_audit_rules_by_access_level_multiple_request( @@ -67,7 +67,7 @@ def test_resource_admin_build_overwrite_audit_rules_by_access_level_multiple_req ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_MULT_REQUEST_XML, # noqa: E501 + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_MULT_REQUEST_XML, ) def test_resource_admin_build_overwrite_audit_rules_by_access_level_all_request( @@ -83,7 +83,7 @@ def test_resource_admin_build_overwrite_audit_rules_by_access_level_all_request( ) self.assertEqual( result, - TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_RULES_BY_ACCESS_LEVEL_ALL_REQUEST_XML, # noqa: E501 + TestResourceConstants.TEST_RESOURCE_OVERWRITE_AUDIT_BY_ACCESS_LEVEL_ALL_REQUEST_XML, ) def test_resource_admin_build_overwrite_audit_rules_by_attempt_request(self):