Exemplo n.º 1
0
class File(elixir.Entity):
    #parent = elixir.ManyToOne('File')
    #children = elixir.OneToMany('File')
    evidence = elixir.ManyToOne('Evidence')
    filesystem = elixir.ManyToOne('Filesystem')
    state = elixir.ManyToOne('FileState')
    filename = elixir.Field(elixir.Unicode(300), index=True)
    filesize = elixir.Field(elixir.Integer)
    fullpath = elixir.ManyToOne('FullPath')
    extension = elixir.ManyToOne('Extension')
    mimetype = elixir.ManyToOne('MimeType')
    md5 = elixir.ManyToOne('Md5')
    sha1 = elixir.ManyToOne('Sha1')
    sha256 = elixir.ManyToOne('Sha256')
    ssdeep = elixir.ManyToOne('Ssdeep')

    def fullFileSpec(self, hashtype='md5'):
        fp = os.path.join(self.fullpath.fullpath, self.filename)
        fsize = fritutils.humanize(self.filesize)
        hashes = {
            'md5': self.md5.md5,
            'sha1': self.sha1.sha1,
            'sha256': self.sha256.sha256,
            'ssdeep': self.ssdeep.ssdeep
        }
        fhash = 'NO_HASH_COMPUTED'
        if hashes[hashtype]:
            fhash = hashes[hashtype]
        specs = '%s,%s,%s: "%s" ,%s/%s,"%s"' % (
            self.state.state, fsize, hashtype, fhash, self.evidence.configName,
            self.filesystem.configName, fp)
        return specs

    def __repr__(self):
        return os.path.join(self.fullpath.fullpath, self.filename)
Exemplo n.º 2
0
class Blackboard(elixir.Entity):
    elixir.using_options(tablename='blackboard')

    MyType = elixir.Field(elixir.Unicode(255))
    TargetType = elixir.Field(elixir.Unicode(255))
    GlobalJobId = elixir.Field(elixir.Unicode(255), primary_key=True)
    ProcId = elixir.Field(elixir.Integer)
    AutoClusterId = elixir.Field(elixir.Integer)
    AutoClusterAttrs = elixir.Field(elixir.Unicode(255))
    WantMatchDiagnostics = elixir.Field(elixir.Boolean)
    LastMatchTime = elixir.Field(elixir.DateTime)
    LastRejMatchTime = elixir.Field(elixir.DateTime)
    NumJobMatches = elixir.Field(elixir.Integer)
    OrigMaxHosts = elixir.Field(elixir.Integer)
    LastJobStatus = elixir.Field(elixir.Integer)
    JobStatus = elixir.Field(elixir.Integer)
    EnteredCurrentStatus = elixir.Field(elixir.DateTime)
    LastSuspensionTime = elixir.Field(elixir.DateTime)
    CurrentHosts = elixir.Field(elixir.Integer)
    ClaimId = elixir.Field(elixir.Unicode(255))
    PublicClaimId = elixir.Field(elixir.Unicode(255))
    StartdIpAddr = elixir.Field(elixir.Unicode(255))
    RemoteHost = elixir.Field(elixir.Unicode(255))
    RemoteSlotID = elixir.Field(elixir.Integer)
    StartdPrincipal = elixir.Field(elixir.Unicode(255))
    ShadowBday = elixir.Field(elixir.DateTime)
    JobStartDate = elixir.Field(elixir.DateTime)
    JobCurrentStartDate = elixir.Field(elixir.DateTime)
    NumShadowStarts = elixir.Field(elixir.Integer)
    JobRunCount = elixir.Field(elixir.Integer)
    ClusterId = elixir.Field(elixir.Integer)
    QDate = elixir.Field(elixir.DateTime)
    CompletionDate = elixir.Field(elixir.DateTime)
    Owner = elixir.Field(elixir.Unicode(255))
    RemoteWallClockTime = elixir.Field(elixir.Float)
    LocalUserCpu = elixir.Field(elixir.Float)
    LocalSysCpu = elixir.Field(elixir.Float)
    RemoteUserCpu = elixir.Field(elixir.Float)
    RemoteSysCpu = elixir.Field(elixir.Float)
    ExitStatus = elixir.Field(elixir.Integer)
    NumCkpts_RAW = elixir.Field(elixir.Integer)
    NumCkpts = elixir.Field(elixir.Integer)
    NumJobStarts = elixir.Field(elixir.Integer)
    NumRestarts = elixir.Field(elixir.Integer)
    NumSystemHolds = elixir.Field(elixir.Integer)
    CommittedTime = elixir.Field(elixir.DateTime)
    TotalSuspensions = elixir.Field(elixir.Integer)
    CumulativeSuspensionTime = elixir.Field(elixir.Integer)
    ExitBySignal = elixir.Field(elixir.Boolean)
    CondorVersion = elixir.Field(elixir.Unicode(255))
    CondorPlatform = elixir.Field(elixir.Unicode(255))
    RootDir = elixir.Field(elixir.Unicode(255))
    Iwd = elixir.Field(elixir.Unicode(255))
    JobUniverse = elixir.Field(elixir.Integer)
    Cmd = elixir.Field(elixir.Unicode(255))
    MinHosts = elixir.Field(elixir.Integer)
    MaxHosts = elixir.Field(elixir.Integer)
    WantRemoteSyscalls = elixir.Field(elixir.Boolean)
    WantCheckpoint = elixir.Field(elixir.Boolean)
    RequestCpus = elixir.Field(elixir.Integer)
    JobPrio = elixir.Field(elixir.Integer)
    User = elixir.Field(elixir.Unicode(255))
    NiceUser = elixir.Field(elixir.Boolean)
    JobNotification = elixir.Field(elixir.Integer)
    WantRemoteIO = elixir.Field(elixir.Boolean)
    UserLog = elixir.Field(elixir.Unicode(255))
    CoreSize = elixir.Field(elixir.Integer)
    KillSig = elixir.Field(elixir.Unicode(255))
    Rank = elixir.Field(elixir.Float)
    In = elixir.Field(elixir.Unicode(255))
    TransferIn = elixir.Field(elixir.Boolean)
    Out = elixir.Field(elixir.Unicode(255))
    StreamOut = elixir.Field(elixir.Boolean)
    Err = elixir.Field(elixir.Unicode(255))
    StreamErr = elixir.Field(elixir.Boolean)
    BufferSize = elixir.Field(elixir.Integer)
    BufferBlockSize = elixir.Field(elixir.Integer)
    ShouldTransferFiles = elixir.Field(elixir.Unicode(255))
    WhenToTransferOutput = elixir.Field(elixir.Unicode(255))
    TransferFiles = elixir.Field(elixir.Unicode(255))
    ImageSize_RAW = elixir.Field(elixir.Integer)
    ImageSize = elixir.Field(elixir.Integer)
    ExecutableSize_RAW = elixir.Field(elixir.Integer)
    ExecutableSize = elixir.Field(elixir.Integer)
    DiskUsage_RAW = elixir.Field(elixir.Integer)
    DiskUsage = elixir.Field(elixir.Integer)
    RequestMemory = elixir.Field(elixir.Unicode(255))
    RequestDisk = elixir.Field(elixir.Unicode(255))
    Requirements = elixir.Field(elixir.Unicode(255))
    FileSystemDomain = elixir.Field(elixir.Unicode(255))
    JobLeaseDuration = elixir.Field(elixir.Integer)
    PeriodicHold = elixir.Field(elixir.Boolean)
    PeriodicRelease = elixir.Field(elixir.Boolean)
    PeriodicRemove = elixir.Field(elixir.Boolean)
    OnExitHold = elixir.Field(elixir.Boolean)
    OnExitRemove = elixir.Field(elixir.Boolean)
    LeaveJobInQueue = elixir.Field(elixir.Boolean)
    DAGNodeName = elixir.Field(elixir.Unicode(255))
    DAGParentNodeNames = elixir.Field(elixir.Unicode(255))
    DAGManJobId = elixir.Field(elixir.Unicode(255))
    HookKeyword = elixir.Field(elixir.Unicode(255))
    Environment = elixir.Field(elixir.UnicodeText())
    Arguments = elixir.Field(elixir.Unicode(255))
    MyAddress = elixir.Field(elixir.Unicode(255))
    LastJobLeaseRenewal = elixir.Field(elixir.DateTime)
    TransferKey = elixir.Field(elixir.Unicode(255))
    TransferSocket = elixir.Field(elixir.Unicode(255))
    ShadowIpAddr = elixir.Field(elixir.Unicode(255))
    ShadowVersion = elixir.Field(elixir.Unicode(255))
    UidDomain = elixir.Field(elixir.Unicode(255))
    OrigCmd = elixir.Field(elixir.Unicode(255))
    OrigIwd = elixir.Field(elixir.Unicode(255))
    StarterIpAddr = elixir.Field(elixir.Unicode(255))
    JobState = elixir.Field(elixir.Unicode(255))
    NumPids = elixir.Field(elixir.Integer)
    JobPid = elixir.Field(elixir.Integer)
    JobDuration = elixir.Field(elixir.Float)
    ExitCode = elixir.Field(elixir.Integer)
    Dataset = elixir.Field(elixir.Unicode(255))
    Instances = elixir.Field(elixir.Integer)

    def __repr__(self):
        return ('Blackboard(GlobalJobId=%s, ExitCode=%s)' %
                (self.GlobalJobId, str(self.ExitCode)))

    def todict(self):
        return (dict([(key, val) for (key, val) in self.__dict__.items()
                      if not key.startswith('_')]))
Exemplo n.º 3
0
 class Person(e.Entity):
     name = e.Field(e.Unicode(60), primary_key=True)
Exemplo n.º 4
0
 class Movie(e.Entity):
     title = e.Field(e.Unicode(30), primary_key=True)
     year = e.Field(e.Integer, primary_key=True)
     description = e.Field(e.UnicodeText, deferred=True)
     director = e.ManyToOne('Director')
     genres = e.ManyToMany('Genre')
Exemplo n.º 5
0
    class Genre(e.Entity):
        name = e.Field(e.Unicode(15), primary_key=True)
        movies = e.ManyToMany('Movie')

        def __repr__(self):
            return '<Genre "%s">' % self.name
Exemplo n.º 6
0
class Sha256(elixir.Entity):
    sha256 = elixir.Field(elixir.Unicode(64), index=True)
    files = elixir.OneToMany('File')
Exemplo n.º 7
0
class Sha1(elixir.Entity):
    sha1 = elixir.Field(elixir.Unicode(40), index=True)
    files = elixir.OneToMany('File')
Exemplo n.º 8
0
class Md5(elixir.Entity):
    md5 = elixir.Field(elixir.Unicode(32), index=True)
    files = elixir.OneToMany('File')
Exemplo n.º 9
0
class MimeType(elixir.Entity):
    mimetype = elixir.Field(elixir.Unicode(150))
    files = elixir.OneToMany('File')
Exemplo n.º 10
0
class FullPath(elixir.Entity):
    fullpath = elixir.Field(elixir.Unicode(900), index=True)
    files = elixir.OneToMany('File')
Exemplo n.º 11
0
class Extension(elixir.Entity):
    extension = elixir.Field(elixir.Unicode(50), index=True)
    files = elixir.OneToMany('File')
Exemplo n.º 12
0
class FileState(elixir.Entity):
    state = elixir.Field(elixir.Unicode(20))
Exemplo n.º 13
0
class Filesystem(elixir.Entity):
    evidence = elixir.ManyToOne('Evidence')
    configName = elixir.Field(elixir.Unicode(300))
Exemplo n.º 14
0
class Evidence(elixir.Entity):
    name = elixir.Field(elixir.Unicode(300))
    configName = elixir.Field(elixir.Unicode(300))
Exemplo n.º 15
0
class Ssdeep(elixir.Entity):
    ssdeep = elixir.Field(elixir.Unicode(150), index=True)
    files = elixir.OneToMany('File')