def update_template_requirement(self, tr, name): trParams = TemplateRequirementParameters(reqName=tr.theName, assetName=tr.theAssetName, reqType=tr.theType, reqDesc=tr.theDescription, reqRat=tr.theRationale, reqFC=tr.theFitCriterion) try: trId = self.db_proxy.getDimensionId(name, 'template_requirement') trParams.setId(trId) self.db_proxy.updateTemplateRequirement(trParams) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def update_template_requirement(self,tr,name): found_tr = self.get_template_requirement(name) trParams = TemplateRequirementParameters( reqName=tr.theName, assetName=tr.theAssetName, reqType=tr.theType, reqDesc=tr.theDescription, reqRat=tr.theRationale, reqFC=tr.theFitCriterion) trParams.setId(found_tr.theId) try: self.db_proxy.updateTemplateRequirement(trParams) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def add_template_requirement(self, tr): trParams = TemplateRequirementParameters(reqName=tr.theName, assetName=tr.theAssetName, reqType=tr.theType, reqDesc=tr.theDescription, reqRat=tr.theRationale, reqFC=tr.theFitCriterion) try: self.db_proxy.addTemplateRequirement(trParams) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def fakeToRealSP(self,sp): spName = sp["theName"] spContext = sp["theContext"] spProb = sp["theProblem"] spSol = sp["theSolution"] spReqs = [] for freq in sp["theRequirements"]: spReqs.append(TemplateRequirementParameters(freq["theName"],freq["theAsset"],freq["theType"],freq["theDescription"],freq["theRationale"],freq["theFitCriterion"])) spAssocs = [] for cs in sp["theConcernAssociations"]: spAssocs.append((cs["theHeadAsset"],cs["theHeadAdornment"],cs["theHeadNry"],cs["theHeadRole"],cs["theTailRole"],cs["theTailNry"],cs["theTailAdornment"],cs["theTailAsset"])) spParams = SecurityPatternParameters(spName,spContext,spProb,spSol,spReqs,spAssocs) return spParams
def testTemplateRequirement(self): b = Borg() iTar = TemplateRequirementParameters(self.iTemplateReqs[0]["theName"],self.iTemplateReqs[0]["theAsset"],self.iTemplateReqs[0]["theType"],self.iTemplateReqs[0]["theDescription"],self.iTemplateReqs[0]["theRationale"],self.iTemplateReqs[0]["theFitCriterion"]) b.dbProxy.addTemplateRequirement(iTar) oTars = b.dbProxy.getTemplateRequirements() oTar = oTars[self.iTemplateReqs[0]["theName"]] self.assertEqual(iTar.name(), oTar.name()) self.assertEqual(iTar.asset(), oTar.asset()) self.assertEqual(iTar.type(), oTar.type()) self.assertEqual(iTar.description(), oTar.description()) self.assertEqual(iTar.rationale(), oTar.rationale()) self.assertEqual(iTar.fitCriterion(), oTar.fitCriterion()) iTar.theName = 'Updated name' iTar.setId(oTar.id()) b.dbProxy.updateTemplateRequirement(iTar) oTars = b.dbProxy.getTemplateRequirements() oTar = oTars['Updated name'] self.assertEqual(oTar.name(),'Updated name') b.dbProxy.deleteTemplateRequirement(oTar.id())
def addTestData(): f = open(os.environ['CAIRIS_SRC'] + '/test/templaterequirements.json') d = json.load(f) f.close() iAccessRights = d['access_rights'] iSurfaceTypes = d['surface_types'] iTemplateAssets = d['template_assets'] cairis.core.BorgFactory.initialise() b = Borg() iar1 = ValueTypeParameters(iAccessRights[0]["theName"], iAccessRights[0]["theDescription"], 'access_right','',iAccessRights[0]["theValue"],iAccessRights[0]["theRationale"]) ist1 = ValueTypeParameters(iSurfaceTypes[0]["theName"], iSurfaceTypes[0]["theDescription"], 'surface_type','',iSurfaceTypes[0]["theValue"],iSurfaceTypes[0]["theRationale"]) b.dbProxy.addValueType(iar1) b.dbProxy.addValueType(ist1) spValues = [0,0,0,0,0,0,0,0] srValues = ['None','None','None','None','None','None','None','None'] iTap = TemplateAssetParameters(iTemplateAssets[0]["theName"], iTemplateAssets[0]["theShortCode"], iTemplateAssets[0]["theDescription"], iTemplateAssets[0]["theSignificance"],iTemplateAssets[0]["theType"],iTemplateAssets[0]["theSurfaceType"],iTemplateAssets[0]["theAccessRight"],spValues,srValues,[],[]) b.dbProxy.addTemplateAsset(iTap) iTemplateReqs = d['template_requirements'] iTar = TemplateRequirementParameters(iTemplateReqs[0]["theName"],iTemplateReqs[0]["theAsset"],iTemplateReqs[0]["theType"],iTemplateReqs[0]["theDescription"],iTemplateReqs[0]["theRationale"],iTemplateReqs[0]["theFitCriterion"]) b.dbProxy.addTemplateRequirement(iTar)
def testTemplateRequirement(self): b = Borg() iTar = TemplateRequirementParameters( self.iTemplateReqs[0]["theName"], self.iTemplateReqs[0]["theAsset"], self.iTemplateReqs[0]["theType"], self.iTemplateReqs[0]["theDescription"], self.iTemplateReqs[0]["theRationale"], self.iTemplateReqs[0]["theFitCriterion"]) b.dbProxy.addTemplateRequirement(iTar) oTars = b.dbProxy.getTemplateRequirements() oTar = oTars[self.iTemplateReqs[0]["theName"]] self.assertEqual(iTar.name(), oTar.name()) self.assertEqual(iTar.asset(), oTar.asset()) self.assertEqual(iTar.type(), oTar.type()) self.assertEqual(iTar.description(), oTar.description()) self.assertEqual(iTar.rationale(), oTar.rationale()) self.assertEqual(iTar.fitCriterion(), oTar.fitCriterion()) iTar.theName = 'Updated name' iTar.setId(oTar.id()) b.dbProxy.updateTemplateRequirement(iTar) oTars = b.dbProxy.getTemplateRequirements() oTar = oTars['Updated name'] self.assertEqual(oTar.name(), 'Updated name') b.dbProxy.deleteTemplateRequirement(oTar.id())
def parameters(self): parameters = TemplateRequirementParameters(self.theName,self.theAssetName,self.theType,self.theDescription,self.theRationale,self.theFitCriterion) parameters.setId(self.theRequirementId) return parameters
def endElement(self, name): if (name == 'component'): p = ComponentParameters(self.theName, self.theDescription, self.theInterfaces, self.theStructure, self.theComponentRequirements, self.theComponentGoals, self.theComponentGoalAssociations) self.theComponents.append(p) self.resetComponentAttributes() elif name == 'role': p = RoleParameters(self.theName, self.theType, self.theShortCode, self.theDescription, []) self.theRoles.append(p) self.resetRoleAttributes() elif name == 'asset': spDict = {} spDict['confidentiality'] = 0 spDict['integrity'] = 0 spDict['availability'] = 0 spDict['accountability'] = 0 spDict['anonymity'] = 0 spDict['pseudonymity'] = 0 spDict['unlinkability'] = 0 spDict['unobservability'] = 0 srDict = {} srDict['confidentiality'] = 'None' srDict['integrity'] = 'None' srDict['availability'] = 'None' srDict['accountability'] = 'None' srDict['anonymity'] = 'None' srDict['pseudonymity'] = 'None' srDict['unlinkability'] = 'None' srDict['unobservability'] = 'None' for sp in self.theSecurityProperties: spName = sp[0] spValue = a2i(sp[1]) spRationale = sp[2] if spName in spDict: spDict[spName] = spValue if spName in srDict: srDict[spName] = spRationale spValues = [] spValues.append(spDict['confidentiality']) spValues.append(spDict['integrity']) spValues.append(spDict['availability']) spValues.append(spDict['accountability']) spValues.append(spDict['anonymity']) spValues.append(spDict['pseudonymity']) spValues.append(spDict['unlinkability']) spValues.append(spDict['unobservability']) srValues = [] srValues.append(srDict['confidentiality']) srValues.append(srDict['integrity']) srValues.append(srDict['availability']) srValues.append(srDict['accountability']) srValues.append(srDict['anonymity']) srValues.append(srDict['pseudonymity']) srValues.append(srDict['unlinkability']) srValues.append(srDict['unobservability']) p = TemplateAssetParameters( self.theName, self.theShortCode, self.theDescription, self.theSignificance, self.theAssetType, self.theSurfaceType, self.theAccessRight, spValues, srValues, self.theTags, self.theInterfaces) self.theAssets.append(p) self.resetAssetAttributes() elif name == 'security_property': self.theSecurityProperties.append( (self.thePropertyName, self.thePropertyValue, self.theRationale)) self.resetSecurityPropertyAttributes() elif name == 'structure': self.theStructure.append( (self.theHeadName, self.theHeadAdornment, self.theHeadNav, self.theHeadNry, self.theHeadRole, self.theTailRole, self.theTailNry, self.theTailNav, self.theTailAdornment, self.theTailName)) self.resetStructure() elif name == 'requirement': p = TemplateRequirementParameters(self.theReqName, self.theAsset, self.theType, self.theDescription, self.theRationale, self.theFitCriterion) self.theRequirements.append(p) self.resetRequirementAttributes() elif name == 'goal': p = TemplateGoalParameters(self.theName, self.theDefinition, self.theRationale, self.theConcerns, self.theResponsibilities) self.theGoals.append(p) self.resetGoalAttributes() elif name == 'connector': p = ConnectorParameters(self.theName, self.theViewName, self.theFromName, self.theFromRole, self.theFromInterface, self.theToName, self.theToInterface, self.theToRole, self.theConnectorAsset, self.theProtocolName, self.theAccessRight) self.theConnectors.append(p) self.resetConnectorAttributes() elif name == 'component_goal_association': self.theComponentGoalAssociations.append( (self.theGoalName, self.theSubGoalName, self.theRefType, self.theRationale)) self.resetComponentGoalAssociationAttributes() elif name == 'description': self.inDescription = 0 elif name == 'definition': self.inDefinition = 0 elif name == 'synopsis': self.inSynopsis = 0 elif name == 'rationale': self.inRationale = 0 elif name == 'significance': self.inSignificance = 0 elif name == 'fit_criterion': self.inFitCriterion = 0 elif name == 'access_right' or name == 'protocol' or name == 'privilege' or name == 'surface_type': p = ValueTypeParameters(self.theName, self.theDescription, name, '', self.theScore, self.theRationale) self.theMetricTypes.append(p) self.resetValueTypeAttributes() elif name == 'architectural_pattern': self.theViewParameters = ComponentViewParameters( self.theViewName, self.theSynopsis, self.theMetricTypes, self.theRoles, self.theAssets, self.theRequirements, self.theGoals, self.theComponents, self.theConnectors)
def parameters(self): parameters = TemplateRequirementParameters( self.theName, self.theAssetName, self.theType, self.theDescription, self.theRationale, self.theFitCriterion) parameters.setId(self.theRequirementId) return parameters
def endElement(self, name): if name == 'asset': spDict = {} spDict['confidentiality'] = 0 spDict['integrity'] = 0 spDict['availability'] = 0 spDict['accountability'] = 0 spDict['anonymity'] = 0 spDict['pseudonymity'] = 0 spDict['unlinkability'] = 0 spDict['unobservability'] = 0 srDict = {} srDict['confidentiality'] = 'None' srDict['integrity'] = 'None' srDict['availability'] = 'None' srDict['accountability'] = 'None' srDict['anonymity'] = 'None' srDict['pseudonymity'] = 'None' srDict['unlinkability'] = 'None' srDict['unobservability'] = 'None' for sp in self.theSecurityProperties: spName = sp[0] spValue = a2i(sp[1]) spRationale = sp[2] if spName in spDict: spDict[spName] = spValue if spName in srDict: srDict[spName] = spRationale spValues = [] spValues.append(spDict['confidentiality']) spValues.append(spDict['integrity']) spValues.append(spDict['availability']) spValues.append(spDict['accountability']) spValues.append(spDict['anonymity']) spValues.append(spDict['pseudonymity']) spValues.append(spDict['unlinkability']) spValues.append(spDict['unobservability']) srValues = [] srValues.append(srDict['confidentiality']) srValues.append(srDict['integrity']) srValues.append(srDict['availability']) srValues.append(srDict['accountability']) srValues.append(srDict['anonymity']) srValues.append(srDict['pseudonymity']) srValues.append(srDict['unlinkability']) srValues.append(srDict['unobservability']) p = TemplateAssetParameters( self.theName, self.theShortCode, self.theDescription, self.theSignificance, self.theAssetType, self.theSurfaceType, self.theAccessRight, spValues, srValues, self.theTags, self.theInterfaces) self.theAssets.append(p) self.resetAssetAttributes() elif name == 'security_property': self.theSecurityProperties.append( (self.thePropertyName, self.thePropertyValue, self.theRationale)) self.resetSecurityPropertyAttributes() elif name == 'pattern': p = SecurityPatternParameters(self.theName, self.theContext, self.theProblem, self.theSolution, self.theRequirements, self.theStructure) self.theSecurityPatterns.append(p) self.resetPatternAttributes() elif name == 'structure': self.theStructure.append( (self.theHeadName, self.theHeadAdornment, self.theHeadNry, self.theHeadRole, self.theTailRole, self.theTailNry, self.theTailAdornment, self.theTailName)) self.resetStructure() elif name == 'requirement': tr = TemplateRequirementParameters(self.theReqName, self.theAsset, self.theType, self.theDescription, self.theRationale, self.theFitCriterion) self.theRequirements.append(tr) self.resetRequirement() elif name == 'description': self.inDescription = 0 elif name == 'rationale': self.inRationale = 0 elif name == 'significance': self.inSignificance = 0 elif name == 'context': self.inContext = 0 elif name == 'problem': self.inProblem = 0 elif name == 'solution': self.inSolution = 0 elif name == 'fit_criterion': self.inFitCriterion = 0 elif name == 'access_right' or name == 'surface_type': p = ValueTypeParameters(self.theName, self.theDescription, name, '', self.theScore, self.theRationale) self.theMetricTypes.append(p) self.resetValueTypeAttributes()