Skip to content

Commit

Permalink
chore: removes markdown creation from create_new_with_filter (complyt…
Browse files Browse the repository at this point in the history
…ime#159)

Removing unused portions of this function. The SSP filter
funtionality is meant for reporting purposes only and not
for editing.

Signed-off-by: Jennifer Power <barnabei.jennifer@gmail.com>
  • Loading branch information
jpower432 authored Jan 31, 2024
1 parent 3cd1c69 commit 982ba32
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 54 deletions.
33 changes: 4 additions & 29 deletions tests/trestlebot/tasks/authored/test_ssp.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,35 +234,10 @@ def test_create_new_with_filter(tmp_trestle_dir: str) -> None:
_ = testutils.setup_for_profile(trestle_root, test_prof_filter, test_prof_filter)

ssp_name = "new_ssp"
new_md_path = os.path.join(markdown_dir, ssp_name)
input_ssp = test_ssp_output

# Call create_new_with_filter with new profile
authored_ssp.create_new_with_filter(
ssp_name, input_ssp, markdown_path=new_md_path, profile_name=test_prof_filter
)

ssp_index.reload()

assert ssp_index.get_profile_by_ssp(ssp_name) == test_prof_filter
assert test_comp in ssp_index.get_comps_by_ssp(ssp_name)
model_path = ModelUtils.get_model_path_for_name_and_class(
trestle_root, ssp_name, ossp.SystemSecurityPlan, FileContentType.JSON
)
assert model_path.exists()

ssp_name = "new_ssp_2"
new_md_path = os.path.join(markdown_dir, ssp_name)

# Call create_new_with_filter with a single compdef
authored_ssp.create_new_with_filter(
ssp_name, input_ssp, markdown_path=new_md_path, compdefs=[test_comp_2]
)

ssp_index.reload()
assert ssp_index.get_profile_by_ssp(ssp_name) == test_prof
assert test_comp not in ssp_index.get_comps_by_ssp(ssp_name)
assert test_comp_2 in ssp_index.get_comps_by_ssp(ssp_name)
authored_ssp.create_new_with_filter(ssp_name, input_ssp, compdefs=[test_comp_2])

ssp, model_path = load_validate_model_name(
trestle_root, ssp_name, ossp.SystemSecurityPlan, FileContentType.JSON
Expand All @@ -277,13 +252,13 @@ def test_create_new_with_filter(tmp_trestle_dir: str) -> None:
assert test_comp_2 in component_names
assert test_comp not in component_names

# Check that without markdown path the ssp_index is not updated
ssp_name = "new_ssp_3"
# Check that the ssp_index is not updated
ssp_name = "new_ssp_2"
authored_ssp.create_new_with_filter(
ssp_name, input_ssp, implementation_status=["implemented"]
)
ssp_index.reload()
with pytest.raises(
AuthoredObjectException, match="SSP new_ssp_3 does not exists in the index"
AuthoredObjectException, match="SSP new_ssp_2 does not exists in the index"
):
ssp_index.get_profile_by_ssp(ssp_name)
28 changes: 3 additions & 25 deletions trestlebot/tasks/authored/ssp.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,6 @@ def create_new_with_filter(
ssp_name: str,
input_ssp: str,
version: str = "",
markdown_path: str = "",
profile_name: str = "",
compdefs: Optional[List[str]] = None,
implementation_status: Optional[List[str]] = None,
Expand All @@ -254,16 +253,15 @@ def create_new_with_filter(
Args:
ssp_name: Output name for ssp
input_ssp: Input ssp to filter
version: Optional version to include in the output ssp
profile_name: Optional profile to filter by
compdefs: Optional list of component definitions to filter by
implementation_status: Optional implementation status to filter by
control_origination: Optional control origination to filter by
markdown_path: Optional top-level markdown path to write to for continued editing.
Notes:
This will transform the SSP with filters. If markdown_path is provided, it will
also generate SSP markdown and an index entry for a new managed SSP for continued
management in the workspace.
The purpose of this function is to allow users to create a new SSP for reporting
purposes without having to modify the source SSP.
"""

# Create new ssp by filtering input ssp
Expand Down Expand Up @@ -303,23 +301,3 @@ def create_new_with_filter(
raise AuthoredObjectException(
f"Trestle filtering failed for {input_ssp}: {e}"
)

# If markdown_path is provided, create a new managed ssp.
# this will eventually need to have a JSON to MD recovery to
# reduce manual editing.
if markdown_path:
if not profile_name:
profile_name = self.ssp_index.get_profile_by_ssp(input_ssp)

if not compdefs:
compdefs = self.ssp_index.get_comps_by_ssp(input_ssp)

leveraged_ssp = self.ssp_index.get_leveraged_by_ssp(input_ssp)

self.create_new_default(
ssp_name,
profile_name,
compdefs,
markdown_path,
leveraged_ssp,
)

0 comments on commit 982ba32

Please sign in to comment.