Skip to content

Commit

Permalink
Refactor countermeasure controller (Issue #516)
Browse files Browse the repository at this point in the history
  • Loading branch information
failys committed Mar 28, 2020
1 parent 13ff9ce commit 69dc5fd
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 40 deletions.
35 changes: 0 additions & 35 deletions cairis/controllers/CountermeasureController.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,41 +32,6 @@

__author__ = 'Shamal Faily'


class TargetsAPI(Resource):

def __init__(self):
self.DAOModule = getattr(import_module('cairis.data.CountermeasureDAO'),'CountermeasureDAO')

def get(self, environment):
session_id = get_session_id(session, request)
reqList = request.args.getlist('requirement')
dao = self.DAOModule(session_id)
targets = dao.get_countermeasure_targets(reqList,environment)
dao.close()
resp = make_response(json_serialize(targets, session_id=session_id), OK)
resp.contenttype = 'application/json'
return resp


class CountermeasureTasksAPI(Resource):

def __init__(self):
self.DAOModule = getattr(import_module('cairis.data.CountermeasureDAO'),'CountermeasureDAO')

def get(self, environment):
session_id = get_session_id(session, request)
roleList = request.args.getlist('role')
dao = self.DAOModule(session_id)
tasks = dao.get_countermeasure_tasks(roleList,environment)
dao.close()

resp = make_response(json_serialize(tasks, session_id=session_id), OK)
resp.contenttype = 'application/json'
return resp
dao.close()


class GenerateAssetAPI(Resource):

def __init__(self):
Expand Down
5 changes: 4 additions & 1 deletion cairis/controllers/ObjectController.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,10 @@ def get(self,parameter_string):
dao = self.DAOModule(session_id)
pathValues = []
for parameterName,defaultValue in self.thePathParameters:
pathValues.append(request.args.get(parameterName,defaultValue))
if (self.DAOModule.__name__ == 'CountermeasureDAO' and parameterName in ['requirement','role']):
pathValues.append(request.args.getlist(parameterName))
else:
pathValues.append(request.args.get(parameterName,defaultValue))
objts = getattr(dao, self.theGetMethod)(parameter_string,pathValues)
dao.close()
resp = make_response(json_serialize(objts, session_id=session_id), OK)
Expand Down
4 changes: 2 additions & 2 deletions cairis/daemon/main/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,8 +250,8 @@ def resetUser():
api.add_resource(CountermeasureController.SituateCountermeasurePatternAPI, '/api/countermeasures/name/<path:name>/security_pattern/<path:security_pattern_name>/situate',endpoint='countermeasure_situate_countermeasure_pattern')
api.add_resource(CountermeasureController.AssociateSituatedPatternAPI, '/api/countermeasures/name/<path:name>/security_pattern/<path:security_pattern_name>/associate_situated',endpoint='associate_situated_pattern')
api.add_resource(CountermeasureController.RemoveSituatedPatternAPI, '/api/countermeasures/name/<path:name>/security_pattern/<path:security_pattern_name>/remove_situated',endpoint='remove_situated_pattern')
api.add_resource(CountermeasureController.TargetsAPI, '/api/countermeasures/targets/environment/<path:environment>',endpoint='targets')
api.add_resource(CountermeasureController.CountermeasureTasksAPI, '/api/countermeasures/tasks/environment/<path:environment>',endpoint='countermeasuretasks')
api.add_resource(ObjectController.ObjectsByMethodAndParameterAPI, '/api/countermeasures/targets/environment/<path:parameter_string>',endpoint='targets',resource_class_kwargs={'dao' : 'CountermeasureDAO','get_method' : 'get_countermeasure_targets', 'path_parameters' : [('requirement',[])]})
api.add_resource(ObjectController.ObjectsByMethodAndParameterAPI, '/api/countermeasures/tasks/environment/<path:parameter_string>',endpoint='countermeasuretasks',resource_class_kwargs={'dao' : 'CountermeasureDAO','get_method' : 'get_countermeasure_tasks', 'path_parameters' : [('role',[])]})
api.add_resource(CountermeasureController.CandidatePatternsAPI, '/api/countermeasures/name/<path:name>/candidate_patterns',endpoint='candidate_patterns')
api.add_resource(CountermeasureController.CountermeasurePatternsAPI, '/api/countermeasures/name/<path:name>/patterns',endpoint='countermeasure_patterns')

Expand Down
6 changes: 4 additions & 2 deletions cairis/data/CountermeasureDAO.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,8 @@ def check_existing_countermeasure(self, name):
self.close()
raise ARMHTTPError(ex)

def get_countermeasure_targets(self,reqList,envName):
def get_countermeasure_targets(self,envName,pathValues):
reqList = pathValues[0]
try:
return list(self.db_proxy.targetNames(reqList,envName).keys())
except DatabaseProxyException as ex:
Expand All @@ -183,7 +184,8 @@ def get_countermeasure_targets(self,reqList,envName):
self.close()
raise ARMHTTPError(ex)

def get_countermeasure_tasks(self,roleList,envName):
def get_countermeasure_tasks(self,envName,pathValues):
roleList = pathValues[0]
try:
roleTasks = self.db_proxy.roleTasks(envName,roleList)
outRoleTasks = []
Expand Down

0 comments on commit 69dc5fd

Please sign in to comment.