Example #1
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:
            #      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)
Example #2
0
    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()
Example #4
0
    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)
Example #5
0
 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())
Example #6
0
 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())
Example #7
0
 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())
Example #8
0
 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())
Example #9
0
 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
Example #10
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)
Example #11
0
 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())
Example #12
0
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