Exemplo n.º 1
0
 def getTargetAllUserCredentials(self, target):
     ret = []
     for creds in self._getTargetAllUserCredentials(target):
         credsDict = mintdata.unmarshalTargetUserCredentials(self.cfg,
                 creds.credentials)
         ret.append((creds.target_credentials_id, credsDict))
     return ret
Exemplo n.º 2
0
 def getTargetsForUsers(self, targetType):
     targetConfigs = self.getConfiguredTargetsByType(targetType)
     cu = self.db.cursor()
     cu.execute("""
         SELECT t.name AS targetName,
                tc.credentials,
                tc.targetCredentialsId,
                Users.username,
                Users.userId
           FROM Targets t
           JOIN target_types USING (target_type_id)
           JOIN TargetUserCredentials AS tuc ON tuc.targetId = t.targetId
           JOIN Users USING (userId)
           JOIN TargetCredentials AS tc ON
               (tuc.targetCredentialsId=tc.targetCredentialsId)
          WHERE target_types.name = ?
          ORDER BY Users.userId, t.name
     """, targetType)
     ret = []
     for targetName, creds, credsId, userName, userId in cu:
         userCredentials = mintdata.unmarshalTargetUserCredentials(self.cfg,
                 creds)
         targetCfg = targetConfigs.get(targetName)
         if targetCfg is None:
             continue
         ret.append((userId, userName, targetName, credsId, targetCfg,
             userCredentials))
     return ret
Exemplo n.º 3
0
 def getEC2AccountNumbersForProjectUsers(self, projectId):
     writers = set()
     readers = set()
     vals = projmodels.Member.objects.filter(
         project__project_id = projectId,
         user__target_user_credentials__target__target_type__name = 'ec2',
         user__target_user_credentials__target__name = 'aws').values_list('level', 'user__target_user_credentials__target_credentials__credentials')
     for level, creds in vals:
         val = datatypes.unmarshalTargetUserCredentials(self.cfg, creds
                 ).get('accountId')
         if val is None:
             continue
         if level <= 1:
             writers.add(val)
         else:
             readers.add(val)
     return sorted(writers), sorted(readers)
Exemplo n.º 4
0
 def getTargetsForUser(self, targetType, userName):
     cu = self.db.cursor()
     cu.execute("""
         SELECT t.name AS targetName, tc.credentials
           FROM Targets t
           JOIN target_types USING (target_type_id)
           JOIN TargetUserCredentials AS tuc ON tuc.targetId = t.targetId
           JOIN Users USING (userId)
           JOIN TargetCredentials AS tc ON
               (tuc.targetCredentialsId=tc.targetCredentialsId)
          WHERE target_types.name = ?
            AND Users.username = ?
     """, targetType, userName)
     userCreds = {}
     for targetName, creds in cu:
         userCreds[targetName] = mintdata.unmarshalTargetUserCredentials(
                 self.cfg, creds)
     targetConfig = self.getConfiguredTargetsByType(targetType)
     ret = []
     for targetName, cfg in sorted(targetConfig.items()):
         ret.append((targetName, cfg, userCreds.get(targetName, {})))
     return ret
Exemplo n.º 5
0
 def getEC2AccountNumbersForProjectUsers(self, projectId):
     writers = set()
     readers = set()
     cu = self.db.cursor()
     cu.execute("""
         SELECT CASE WHEN pu.level <= 1 THEN 1 ELSE 0 END AS isWriter,
             tc.credentials AS creds
           FROM projectUsers AS pu
           JOIN TargetUserCredentials AS tuc USING (userId)
           JOIN TargetCredentials AS tc USING (targetCredentialsId)
           JOIN Targets ON (tuc.targetId=Targets.targetId)
           JOIN target_types USING (target_type_id)
          WHERE pu.projectId = ?
            AND target_types.name = ?
            AND Targets.name = ?""", projectId, 'ec2', 'aws')
     for isWriter, creds in cu.fetchall():
         val = mintdata.unmarshalTargetUserCredentials(None, creds).get('accountId')
         if val is None:
             continue
         if isWriter:
             writers.add(val)
         else:
             readers.add(val)
     return sorted(writers), sorted(readers)
Exemplo n.º 6
0
 def getTargetCredentialsForCurrentUser(self, target):
     creds = self._getTargetCredentialsForCurrentUser(target)
     if creds is None:
         return None
     return mintdata.unmarshalTargetUserCredentials(self.cfg, creds.credentials)
Exemplo n.º 7
0
 def _extractUserCredentialsFromCursor(self, cu):
     row = cu.fetchone()
     if not row:
         return {}
     return mintdata.unmarshalTargetUserCredentials(self.cfg, row[0])