コード例 #1
0
    def get_by_attribute(self, attribute):
        """
    fetches one Value instance with the information of the given attribute

    :param attribute: the attribute in context
    :type attribute: Attribute

    :returns : Value
    """

        self.__set_class_by_attribute(attribute)

        try:
            clazz = self.get_broker_class()
            result = self.session.query(clazz).filter(
                clazz.attribute_id == attribute.identifier).one()

        except sqlalchemy.orm.exc.NoResultFound:
            raise NothingFoundException(
                u'No value found with ID :{0} in {1}'.format(
                    attribute.identifier, self.get_broker_class()))
        except sqlalchemy.orm.exc.MultipleResultsFound:
            raise TooManyResultsFoundException(
                'Too many value found for ID :{0} in {1}'.format(
                    attribute.identifier, self.get_broker_class()))
        except sqlalchemy.exc.SQLAlchemyError as error:
            raise BrokerException(error)

        return result
コード例 #2
0
 def get_related_object_by_child_object_id(self, identifier):
   try:
     return self.session.query(RelatedObject).filter(RelatedObject.child_id == identifier).one()
   except sqlalchemy.orm.exc.NoResultFound:
     raise NothingFoundException('Nothing found with ID :{0} in {1}'.format(identifier, self.__class__.__name__))
   except sqlalchemy.orm.exc.MultipleResultsFound:
     raise TooManyResultsFoundException('Too many results found for ID :{0}'.format(identifier))
   except sqlalchemy.exc.SQLAlchemyError as error:
     raise BrokerException(error)
  def get_by_id_and_event_id(self, identifier, event_id):
    try:
      result = self.session.query(Observable).filter(and_(Observable.identifier == identifier, Observable.event_id == event_id)).one()
    except sqlalchemy.orm.exc.NoResultFound:
      raise NothingFoundException('No observable found with ID :{0} in event with ID {1}'.format(identifier, event_id))
    except sqlalchemy.orm.exc.MultipleResultsFound:
      raise TooManyResultsFoundException('Too many results found for observable with ID {0} in event with ID {1}'.format(identifier, event_id))
    except sqlalchemy.exc.SQLAlchemyError as error:
      raise BrokerException(error)

    return result
コード例 #4
0
  def get_by_name(self, name):
    try:

      result = self.session.query(Group).filter(Group.name == name).one()
      return result
    except sqlalchemy.orm.exc.NoResultFound:
      raise NothingFoundException('Nothing found with name :{0}'.format(name))
    except sqlalchemy.orm.exc.MultipleResultsFound:
      raise TooManyResultsFoundException('Too many results found for name :{0}'.format(name))
    except sqlalchemy.exc.SQLAlchemyError as error:
      raise BrokerException(error)
コード例 #5
0
ファイル: conditionbroker.py プロジェクト: tsmolka/ce1sus
 def get_condition_by_value(self, value):
   try:
     if value == None:
       value = 'Equals'
     return self.session.query(Condition).filter(Condition.value == value).one()
   except NoResultFound:
     raise NothingFoundException('Nothing found with ID :{0} in {1}'.format(value, self.__class__.__name__))
   except MultipleResultsFound:
     raise TooManyResultsFoundException('Too many results found for ID :{0}'.format(value))
   except SQLAlchemyError as error:
     raise BrokerException(error)
 def get_definition_by_name(self, name):
     try:
         return self.session.query(ReferenceDefinition).filter(
             ReferenceDefinition.name == name).one()
     except NoResultFound:
         raise NothingFoundException(
             'Nothing found with ID :{0} in {1}'.format(
                 name, self.__class__.__name__))
     except MultipleResultsFound:
         raise TooManyResultsFoundException(
             'Too many results found for ID :{0}'.format(name))
     except SQLAlchemyError as error:
         raise BrokerException(error)
コード例 #7
0
 def get_user_by_api_key(self, api_key):
     # check if api key exists
     try:
         result = self.session.query(User).filter(
             User.api_key == api_key).one()
         return result
     except sqlalchemy.orm.exc.NoResultFound:
         raise NothingFoundException(
             u'Nothing found with apikey :{0}'.format(api_key))
     except sqlalchemy.orm.exc.MultipleResultsFound:
         raise TooManyResultsFoundException(
             'Too many results found for apikey :{0}'.format(api_key))
     except sqlalchemy.exc.SQLAlchemyError as error:
         raise BrokerException(error)
コード例 #8
0
ファイル: eventbroker.py プロジェクト: tsmolka/ce1sus
 def get_event_group_permissions(self, event, group):
     try:
         return self.session.query(EventGroupPermission).filter(
             and_(EventGroupPermission.event_id == event.identifier,
                  EventGroupPermission.group_id == group.identifier)).one()
     except sqlalchemy.orm.exc.MultipleResultsFound:
         raise TooManyResultsFoundException(
             'Too many results found for this cannot happen')
     except sqlalchemy.orm.exc.NoResultFound:
         raise NothingFoundException(
             'Group {0} was not associated to event {1}'.format(
                 group.identifier, event.identifier))
     except sqlalchemy.exc.SQLAlchemyError as error:
         raise BrokerException(error)
コード例 #9
0
 def get_user_by_act_str(self, activation_str):
     try:
         result = self.session.query(User).filter(
             User.activation_str == activation_str).one()
         return result
     except sqlalchemy.orm.exc.NoResultFound:
         raise NothingFoundException(
             u'Nothing found for activation_str {0}'.format(activation_str))
     except sqlalchemy.orm.exc.MultipleResultsFound:
         raise TooManyResultsFoundException(
             'Too many results found for activation_str :{0}'.format(
                 activation_str))
     except sqlalchemy.exc.SQLAlchemyError as error:
         raise BrokerException(error)
コード例 #10
0
ファイル: config.py プロジェクト: tsmolka/ce1sus
 def get_by_key(self, key):
     """
 Returns a Ce1susConfig by it's key
 """
     try:
         return self.session.query(Ce1susConfig).filter(
             Ce1susConfig.key == key).one()
     except sqlalchemy.orm.exc.NoResultFound:
         raise NothingFoundException(
             u'Nothing found with key :{0}'.format(key))
     except sqlalchemy.orm.exc.MultipleResultsFound:
         raise TooManyResultsFoundException(
             'Too many results found for key :{0}'.format(key))
     except sqlalchemy.exc.SQLAlchemyError as error:
         raise BrokerException(error)
    def get_handler_by_id(self, identifier):
        try:
            result = self.session.query(ReferenceHandler).filter(
                ReferenceHandler.identifier == identifier).one()
        except NoResultFound:
            raise NothingFoundException(
                'Nothing found with ID :{0} in {1}'.format(
                    identifier, self.__class__.__name__))
        except MultipleResultsFound:
            raise TooManyResultsFoundException(
                'Too many results found for ID :{0}'.format(identifier))
        except SQLAlchemyError as error:
            raise BrokerException(error)

        return result
 def get_type_by_name(self, name):
     try:
         for key, value in IndicatorType.get_dictionary().iteritems():
             if value == name:
                 type_ = IndicatorType()
                 type_.type = key
                 return type_
         raise NoResultFound
     except NoResultFound:
         raise NothingFoundException(
             'Nothing found with ID :{0} in {1}'.format(
                 name, self.__class__.__name__))
     except MultipleResultsFound:
         raise TooManyResultsFoundException(
             'Too many results found for ID :{0}'.format(name))
     except SQLAlchemyError as error:
         raise BrokerException(error)
コード例 #13
0
    def get_observable_by_id_and_parent_id(self, identifier, parent_id):
        try:
            # Returns an observable belonging to
            result = self.session.query(Observable).join(
                ObservableComposition.observables).filter(
                    and_(Observable.identifier == identifier,
                         ObservableComposition.parent_id == parent_id)).one()
        except sqlalchemy.orm.exc.NoResultFound:
            raise NothingFoundException(
                'No observable found with ID :{0} in composed observable with ID {1}'
                .format(identifier, parent_id))
        except sqlalchemy.orm.exc.MultipleResultsFound:
            raise TooManyResultsFoundException(
                'Too many results found for observable with ID {0} in composed observable with ID {1}'
                .format(identifier, parent_id))
        except sqlalchemy.exc.SQLAlchemyError as error:
            raise BrokerException(error)

        return result
コード例 #14
0
 def get_by_observable_id(self, identifier):
     try:
         # TODO find a solution with one
         result = self.session.query(ObservableComposition).join(
             ObservableComposition.observables).filter(
                 Observable.identifier == identifier).all()
         if result:
             return result[0]
         else:
             raise sqlalchemy.orm.exc.NoResultFound()
     except sqlalchemy.orm.exc.NoResultFound:
         raise NothingFoundException(
             'No composition found in observable with ID {0}'.format(
                 identifier))
     except sqlalchemy.orm.exc.MultipleResultsFound:
         raise TooManyResultsFoundException(
             'Too many results found for observable with ID {0}'.format(
                 identifier))
     except sqlalchemy.exc.SQLAlchemyError as error:
         raise BrokerException(error)
コード例 #15
0
    def getUserByUsernameAndPassword(self, username, password, salt=None):
        """
    Returns the user with the following username and password

    Note: Password will be hashed inside this function

    :param user: The username
    :type user: Stirng
    :param password: The username
    :type password: Stirng

    :returns: User
    """
        if salt:
            passwd = hashSHA1(password, salt)
            old_pwd = hashSHA1(password + username)
        else:
            passwd = password
            old_pwd = None

        try:
            if old_pwd:
                user = self.session.query(User).filter(
                    User.username == username,
                    or_(
                        User.password == passwd,
                        User.password == old_pwd,
                    )).one()
            else:
                user = self.session.query(User).filter(
                    User.username == username, User.password == passwd).one()
        except sqlalchemy.orm.exc.NoResultFound:
            raise NothingFoundException(
                u'Nothing found with ID :{0}'.format(username))
        except sqlalchemy.orm.exc.MultipleResultsFound:
            raise TooManyResultsFoundException(
                u'Too many results found for ID ' + ':{0}'.format(username))
        except sqlalchemy.exc.SQLAlchemyError as error:
            self.session.rollback()
            raise BrokerException(error)
        return user
  def get_defintion_by_name(self, name):
    """
    Returns the attribute definition object with the given name

    Note: raises a NothingFoundException or a TooManyResultsFound Exception

    :param identifier: the id of the requested user object
    :type identifier: integer

    :returns: Object
    """
    try:
      definition = self.session.query(self.get_broker_class()).filter(getattr(self.get_broker_class(), 'name') == name).one()
      return definition
    except sqlalchemy.orm.exc.MultipleResultsFound:
      raise TooManyResultsFoundException('Too many results found for name :{0}'.format(name))
    except sqlalchemy.orm.exc.NoResultFound:
      raise NothingFoundException(u'No {0} not found for {1}'.format(self.get_broker_class().__class__.__name__, name))
    except sqlalchemy.exc.SQLAlchemyError as error:
      self.session.rollback()
      raise BrokerException(error)
コード例 #17
0
    def getUserByUserName(self, username):
        """
    Returns the user with the following username

    :param user: The username
    :type user: Stirng

    :returns: User
    """
        try:
            user = self.session.query(User).filter(
                User.username == username).one()
        except sqlalchemy.orm.exc.NoResultFound:
            raise NothingFoundException(
                u'Nothing found with username :{0}'.format(username))
        except sqlalchemy.orm.exc.MultipleResultsFound:
            raise TooManyResultsFoundException(u'Too many results found for' +
                                               'ID :{0}'.format(username))
        except sqlalchemy.exc.SQLAlchemyError as error:
            self.session.rollback()
            raise BrokerException(error)
        return user
    def __get_template(self, identifier):
        """
    Returns the object by the given identifier

    Note: raises a NothingFoundException or a TooManyResultsFound Exception

    :returns: MailTemplate
    """
        try:
            result = self.session.query(MailTemplate).filter(
                MailTemplate.name == identifier).one()
        except NoResultFound:
            raise NothingFoundException(
                u'Nothing found for function_id :{0}'.format(identifier))
        except MultipleResultsFound:
            raise TooManyResultsFoundException(
                'Too many results found for function_id :{0}'.format(
                    identifier))
        except SQLAlchemyError as error:
            raise BrokerException(error)

        return result