def find_by_key(cls, slf_key): return cm_session.query(cls).filter(cls.SLF_Key == slf_key).first()
def find_by_file_hash_id(cls, hash_id): return cm_session.query(cls).filter(cls.FileHashID == hash_id).first()
def find_by_id(cls, name): return cm_session.query(cls).filter(cls.id == name).first()
def check_if_key_is_duplicated(cls, application_id): return cm_session.query(cls).filter(cls.ApplicationID == application_id).count() > 0
def find_by_displayname(cls, displayname): return cm_session.query(cls).filter( cls.DisplayName == displayname).first()
def get_count(cls): return cm_session.query(cls).count()
def find_by_retroscandata_md5(cls, md5): return cm_session.query(cls).filter( cls.RetroScanData_MD5 == md5).first()
def find_by_criteria(cls, criteria): return cm_session.query(cls).filter(cls.Criteria == criteria).all()
def get_parent_tree_node(cls, parent_name, product_name): parent_tree_node = cm_session.query(cls).filter(cls.DisplayName == parent_name). \ join(cls.parent, aliased=True). \ filter(cls.DisplayName == product_name). \ first() return parent_tree_node
def get_CM_guid(cls): return cm_session.query(cls).first().SYS_SystemID
def find_by_criteria_and_agent(cls, criteria, agent): agent_guid = TbEntityInfo.find_by_machine_name(agent).EI_EntityID return cm_session.query(cls).filter(and_(cls.Criteria == criteria, cls.AgentID == agent_guid)).first()
def find_by_machine_name(cls, name): return cm_session.query(cls).filter( cls.EI_OS_MachineName == name).first()
def find_by_entityid(cls, entityid): return cm_session.query(cls).filter( cls.EI_EntityID == entityid).first()
def find_by_app_name(cls, app_name): return cm_session.query(cls).filter(cls.ApplicationName == app_name).first()
def find_by_slf_data(cls, slf_data): return cm_session.query(cls).filter(cls.SLF_Data == slf_data).first()
def find_records_by_event_type(cls, event_type): return cm_session.query(cls).filter(cls.EventType == event_type).all()
def find_by_note(cls, note): return cm_session.query(cls).filter( cls.UserDefinedNotes == note).first()
def find_by_slf_key_and_agent(cls, key, agent): agent_guid = TbEntityInfo.find_by_machine_name(agent).EI_EntityID return cm_session.query(cls).filter( and_(cls.SLF_Key == key, cls.AgentID == agent_guid)).first()
def update_schedule_time(cls, target, freq): cm_session.query(cls).filter(cls.Target == target).update( {cls.FrequencyRange: freq}) cm_session.commit()
def find_by_serverid(cls, serverid): return cm_session.query(cls).filter(cls.ServerID == serverid).first()
def find_last_record_by_slf_key(cls, key): return cm_session.query(cls).filter(cls.SLF_Key == key).order_by(desc(cls.id)).first()
def get_distinct_taskid(cls): return cm_session.query(cls).distinct(cls.TaskID).count()