Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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())
Beispiel #6
0
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)
Beispiel #10
0
 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()