def update_dataflow(self, old_dataflow_name, old_environment_name, dataflow): df_params = DataFlowParameters(dfName=dataflow.name(), envName=dataflow.environment(), fromName=dataflow.fromName(), fromType=dataflow.fromType(), toName=dataflow.toName(), toType=dataflow.toType(), dfAssets=dataflow.assets()) try: # if not self.check_existing_dataflow(dataflow.name(),dataflow.fromType(), dataflow.fromName(), dataflow.toType(), dataflow.toName(), dataflow.environment()): self.db_proxy.updateDataFlow(old_dataflow_name, old_environment_name, df_params) # else: # self.close() # raise OverwriteNotAllowedHTTPError(obj_name=dataflow.name()) except DatabaseProxyException as ex: self.close() raise ARMHTTPError(ex) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def add_object(self, dataflow): df_params = DataFlowParameters(dfName=dataflow.name(), dfType=dataflow.type(), envName=dataflow.environment(), fromName=dataflow.fromName(), fromType=dataflow.fromType(), toName=dataflow.toName(), toType=dataflow.toType(), dfAssets=dataflow.assets(), dfObs=dataflow.obstacles(), dfTags=dataflow.tags()) try: if not self.check_existing_dataflow( dataflow.name(), dataflow.fromType(), dataflow.fromName(), dataflow.toType(), dataflow.toName(), dataflow.environment()): self.db_proxy.addDataFlow(df_params) else: self.close() raise OverwriteNotAllowedHTTPError(obj_name=dataflow.name()) except DatabaseProxyException as ex: self.close() raise ARMHTTPError(ex) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def endElement(self, name): if name == 'dataflow': self.theDataFlows.append( DataFlowParameters(self.theName, self.theType, self.theEnvironmentName, self.theFromName, self.theFromType, self.theToName, self.theToType, self.theAssets, self.theObstacles, self.theTags)) self.resetDataFlowAttributes() elif name == 'trust_boundary_environment': self.theEnvironmentComponents[ self.theEnvironmentName] = self.theComponents self.theComponents = [] self.theEnvironmentName = '' elif name == 'trust_boundary': self.theTrustBoundaries.append( TrustBoundary(-1, self.theName, self.theTBType, self.theDescription, self.theEnvironmentComponents, self.theEnvironmentPrivileges, self.theTags)) self.resetTrustBoundaryAttributes() elif name == 'description': self.inDescription = 0 elif name == 'context': self.inContext = 0 elif name == 'dataflow_obstacle': self.theObstacles.append( (self.theObstacleName, self.theKeyword, self.theContext)) self.resetDataFlowObstacleAttributes()
def update_object(self, dataflow, old_dataflow_name, old_from_name, old_from_type, old_to_name, old_to_type, old_environment_name, pathValues=[]): df_params = DataFlowParameters(dfName=dataflow.name(), dfType=dataflow.type(), envName=dataflow.environment(), fromName=dataflow.fromName(), fromType=dataflow.fromType(), toName=dataflow.toName(), toType=dataflow.toType(), dfAssets=dataflow.assets(), dfObs=dataflow.obstacles(), dfTags=dataflow.tags()) try: self.db_proxy.updateDataFlow(old_dataflow_name, old_from_name, old_from_type, old_to_name, old_to_type, old_environment_name, df_params) except DatabaseProxyException as ex: self.close() raise ARMHTTPError(ex) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def testUpdateDataFlow(self): idfp = DataFlowParameters(self.dfJson['theName'],self.dfJson['theEnvironmentName'],self.dfJson['theFromName'],self.dfJson['theFromType'],self.dfJson['theToName'],self.dfJson['theToType'],self.dfJson['theAssets']) b = Borg() b.dbProxy.addDataFlow(idfp) idfp.theName = 'Authenticate' b.dbProxy.updateDataFlow('authenticate','Psychosis',idfp) odfs = b.dbProxy.getDataFlows() odf = odfs[0] self.assertEqual(idfp.name(),odf.name()) self.assertEqual(idfp.environment(),odf.environment()) self.assertEqual(idfp.fromName(),odf.fromName()) self.assertEqual(idfp.fromType(),odf.fromType()) self.assertEqual(idfp.toName(),odf.toName()) self.assertEqual(idfp.toType(),odf.toType()) self.assertEqual(idfp.assets(),odf.assets())
def testUpdateDataFlow(self): idfp = DataFlowParameters( self.dfJson['theName'], self.dfJson['theEnvironmentName'], self.dfJson['theFromName'], self.dfJson['theFromType'], self.dfJson['theToName'], self.dfJson['theToType'], self.dfJson['theAssets']) b = Borg() b.dbProxy.addDataFlow(idfp) idfp.theName = 'Authenticate' b.dbProxy.updateDataFlow('authenticate', 'Psychosis', idfp) odfs = b.dbProxy.getDataFlows() odf = odfs[0] self.assertEqual(idfp.name(), odf.name()) self.assertEqual(idfp.environment(), odf.environment()) self.assertEqual(idfp.fromName(), odf.fromName()) self.assertEqual(idfp.fromType(), odf.fromType()) self.assertEqual(idfp.toName(), odf.toName()) self.assertEqual(idfp.toType(), odf.toType()) self.assertEqual(idfp.assets(), odf.assets())
def testAddDataFlow(self): idfp = DataFlowParameters(self.dfJson['theName'],self.dfJson['theEnvironmentName'],self.dfJson['theFromName'],self.dfJson['theFromType'],self.dfJson['theToName'],self.dfJson['theToType'],self.dfJson['theAssets']) b = Borg() b.dbProxy.addDataFlow(idfp) odfs = b.dbProxy.getDataFlows() odf = odfs[0] self.assertEqual(idfp.name(),odf.name()) self.assertEqual(idfp.environment(),odf.environment()) self.assertEqual(idfp.fromName(),odf.fromName()) self.assertEqual(idfp.fromType(),odf.fromType()) self.assertEqual(idfp.toName(),odf.toName()) self.assertEqual(idfp.toType(),odf.toType()) self.assertEqual(idfp.assets(),odf.assets())
def testAddDataFlow(self): idfp = DataFlowParameters( self.dfJson['theName'], self.dfJson['theEnvironmentName'], self.dfJson['theFromName'], self.dfJson['theFromType'], self.dfJson['theToName'], self.dfJson['theToType'], self.dfJson['theAssets']) b = Borg() b.dbProxy.addDataFlow(idfp) odfs = b.dbProxy.getDataFlows() odf = odfs[0] self.assertEqual(idfp.name(), odf.name()) self.assertEqual(idfp.environment(), odf.environment()) self.assertEqual(idfp.fromName(), odf.fromName()) self.assertEqual(idfp.fromType(), odf.fromType()) self.assertEqual(idfp.toName(), odf.toName()) self.assertEqual(idfp.toType(), odf.toType()) self.assertEqual(idfp.assets(), odf.assets())
def endElement(self, name): if name == 'dataflow': self.theDataFlows.append( DataFlowParameters(self.theName, self.theEnvironmentName, self.theFromName, self.theFromType, self.theToName, self.theToType, self.theAssets)) self.resetDataFlowAttributes() elif name == 'trust_boundary_environment': self.theEnvironmentProperties[ self.theEnvironmentName] = self.theComponents self.theComponents = [] self.theEnvironmentName = '' elif name == 'trust_boundary': self.theTrustBoundaries.append( TrustBoundary(-1, self.theName, self.theDescription, self.theEnvironmentProperties)) self.resetTrustBoundaryAttributes() elif name == 'description': self.inDescription = 0
def update_dataflow(self, old_dataflow_name, old_environment_name, dataflow): df_params = DataFlowParameters(dfName=dataflow.name(), envName=dataflow.environment(), fromName=dataflow.fromName(), fromType=dataflow.fromType(), toName=dataflow.toName(), toType=dataflow.toType(), dfAssets=dataflow.assets()) try: self.db_proxy.updateDataFlow(old_dataflow_name, old_environment_name, df_params) except DatabaseProxyException as ex: self.close() raise ARMHTTPError(ex) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def testUpdateDataFlow(self): dfObs = [] for dfo in self.dfJson['theObstacles']: dfObs.append( (dfo['theName'], dfo['theKeyword'], dfo['theContext'])) idfp = DataFlowParameters( self.dfJson['theName'], self.dfJson['theType'], self.dfJson['theEnvironmentName'], self.dfJson['theFromName'], self.dfJson['theFromType'], self.dfJson['theToName'], self.dfJson['theToType'], self.dfJson['theAssets'], dfObs, self.dfJson['theTags']) b = Borg() b.dbProxy.addDataFlow(idfp) idfp.theName = 'Authenticate' b.dbProxy.updateDataFlow('authenticate', 'Psychosis', idfp) odfs = b.dbProxy.getDataFlows() odf = odfs[0] self.assertEqual(idfp.name(), odf.name()) self.assertEqual(idfp.type(), odf.type()) self.assertEqual(idfp.environment(), odf.environment()) self.assertEqual(idfp.fromName(), odf.fromName()) self.assertEqual(idfp.fromType(), odf.fromType()) self.assertEqual(idfp.toName(), odf.toName()) self.assertEqual(idfp.toType(), odf.toType()) self.assertEqual(idfp.assets(), odf.assets()) self.assertEqual(idfp.obstacles(), odf.obstacles()) self.assertEqual(idfp.tags(), odf.tags())
def importDiagramsNetDFD(importFile,envName,session_id): objts, flows, tbs = importDiagramsNetFile(importFile,'dataflow') b = Borg() db_proxy = b.get_dbproxy(session_id) newAssetCount = 0 newUCCount = 0 for objt in objts: objtType = objt['type'] assetType = 'Information' if (objtType == 'process'): objtType = 'usecase' elif (objtType == 'entity'): objtType = 'asset' assetType = 'Systems' else: objtType = 'asset' if (db_proxy.existingObject(objt['name'],objtType) == -1): cairis.core.DefaultParametersFactory.build(objt['name'],envName,objtType,session_id,assetType) if (objtType == 'usecase'): newUCCount += 1 else: newAssetCount += 1 flowCount = 0 for f in flows: dfName = f['name'] fromName = f['from_name'] fromType = f['from_type'] toName = f['to_name'] toType = f['to_type'] try: db_proxy.checkDataFlowExists(dfName, fromType, fromName, toType, toName, envName) dfAssets = f['assets'] for dfAsset in dfAssets: if (db_proxy.existingObject(dfAsset,'asset') == -1): cairis.core.DefaultParametersFactory.build(dfAsset,envName,'asset',session_id,'Information') newAssetCount += 1 db_proxy.addDataFlow(DataFlowParameters(dfName,'Information',envName,fromName,fromType,toName,toType,dfAssets)) flowCount += 1 except DatabaseProxyException as ex: if str(ex.value).find('already exists') == -1: raise ARMException(str(ex.value)) except ARMException as ex: if str(ex.value).find('already exists') == -1: raise ARMException(str(ex.value)) tbCount = 0 for tb in tbs: tbName = tb['name'] if (db_proxy.existingObject(tbName,'trust_boundary') == -1): tbComps = [] for tbComp in tb['components']: tbComps.append((tbComp['type'],tbComp['name'])) db_proxy.addTrustBoundary(TrustBoundary(-1,tbName,'General','To be defined',{envName : tbComps},{envName : 'None'},[])) tbCount += 1 msgStr = 'Imported ' + str(newAssetCount) + ' asset' if (newAssetCount != 1): msgStr += 's' msgStr += ', ' + str(newUCCount) + ' use case' if (newUCCount != 1): msgStr += 's' msgStr += ', ' + str(flowCount) + ' data flow' if (flowCount != 1): msgStr += 's' msgStr += ', and ' + str(tbCount) + ' trust boundar' if (tbCount != 1): msgStr += 'ies' else: msgStr += 'y' msgStr += '.' return msgStr