Example #1
0
	def __init__(self, record=None, user=None, group=None, lastname=None, firstname=None, mail=None, groups=[], authkey=None, *args, **kargs):
		self.user = user
		self.groups = groups
		self.shadowpasswd = None
		
		self.authkey = authkey

		self.lastname = lastname
		self.firstname = firstname
		self.mail = mail

		self.type = "account"

		if not self.user:
			self.user = "******"

		if not group:
			group = "group.anonymous"
			
		if not self.authkey:
			self.generate_new_authkey()

		if self.user:
			self._id = self.type + "." + self.user
		
		self.access_owner = ['r', 'w']
		self.access_group = []
		self.access_other = []
		self.access_unauth = []

		if isinstance(record, crecord):
			crecord.__init__(self, _id=self._id, record=record, type=self.type, *args, **kargs)
		else:
			crecord.__init__(self, _id=self._id, owner="account.%s" % self.user, group=group, type=self.type, *args, **kargs)
Example #2
0
	def __init__(self, record=None, user=None, group=None, lastname=None, firstname=None, mail=None, groups=[], authkey=None, *args, **kargs):
		self.user = user or "anonymous"
		self.groups = groups
		self.group = group or "group.anonymous"
		self.shadowpasswd = None
		
		self.authkey = authkey or self.generate_new_authkey()

		self.lastname = lastname
		self.firstname = firstname
		self.mail = mail

		self.type = "account"

		self._id = self.type + "." + self.user
		
		self.access_owner = ['r', 'w']
		self.access_group = []
		self.access_other = []
		self.access_unauth = []

		self.external = False

		if isinstance(record, crecord):
			crecord.__init__(self, _id=self._id, record=record, type=self.type, *args, **kargs)
		else:
			crecord.__init__(self, _id=self._id, owner="account.%s" % self.user, group=self.group, type=self.type, *args, **kargs)
Example #3
0
	def __init__(self, record=None, account_ids=[], description=None, *args, **kargs):
		crecord.__init__(self, *args, **kargs)
		self.type = 'group'
		self._id = '%s.%s' % (self.type,str(self.name))
		self.account_ids = account_ids
		self.description = description
		
		#HACK
		self.admin_group = 'group.CPS_account_admin'
		
		if isinstance(record, crecord):
			crecord.__init__(self, _id=self._id, record=record, type=self.type, *args, **kargs)
Example #4
0
	def __init__(self, storage, _id=None, name=None, namespace='events', use_cache=True, record=None, cache_time=60, logging_level=None):
		self.type = 'selector'
		self.storage = storage
		
		if name and not _id:
			self._id = self.type + "." + storage.account._id + "." + name
			
		## Default vars
		self.namespace = namespace
		
		self.dostate = True
		self.state_algorithm = 0
		
		self.mfilter = {}
		self.include_ids = []
		self.exclude_ids = []
		self.changed = False
		self.rk = None
		
		self.use_cache = use_cache
		self.cache_time = cache_time
		self.cache = None
		
		self.last_resolv = None
		self.last_nb_records = 0
		
		self.last_event = None
		
		self.output_tpl="{cps_sel_state_0} Ok, {cps_sel_state_1} Warning, {cps_sel_state_2} Critical"

		self.sel_metric_prefix = "cps_sel_"
		self.sel_metric_name = self.sel_metric_prefix + "state_%s"
		
		self._ids = None
		
		self.logger = logging.getLogger('cselector')
		if logging_level:
			self.logger.setLevel(logging_level)
		
		## Init
		if not record:
			try:
				record = storage.get(self._id)
			except:
				record = None

		
		if record:
			self.logger.debug("Init from record.")
			crecord.__init__(self, record=record, storage=storage)
		else:
			self.logger.debug("Init new record.")
			crecord.__init__(self, name=name, _id=self._id, account=storage.account, type=self.type, storage=storage)
Example #5
0
	def __init__(self, storage=None, *args, **kargs):
		crecord.__init__(self, storage=storage, *args, **kargs)
		self.type = 'bin'
		self.binary = None
Example #6
0
    def __init__(
        self,
        data={},
        _id=None,
        name="noname",
        owner=None,
        group=None,
        raw_record=None,
        record=None,
        storage=None,
        account=None,
        type="raw",
        logging_level=logging.ERROR,
        *args,
        **kargs
    ):

        self.write_time = None

        self.owner = owner
        self.group = group
        self.type = type
        self.access_owner = ["r", "w"]
        self.access_group = ["r"]
        self.access_other = []
        self.access_unauth = []
        self.name = name
        self.parent = []
        self.children = []
        self.children_record = []

        # name, _id, storage, record, account

        ## Set Account
        if not account:
            account = caccount(user="******", group="root")

            ## Set Storage
        if not storage:
            storage = get_storage(namespace="object", account=account)
            # raise Exception('You must specify storage !')

            ## Set Id
        if name:
            _id = type + "." + account.user + "." + name
        if record:
            _id = record._id
        if data:
            try:
                _id = data["_id"]
                del data["_id"]
            except:
                pass

                ## Init logger
        self.logger = logging.getLogger(str(_id))
        self.logger.setLevel(logging_level)
        self.logger.debug("Init %s '%s' ..." % (type, _id))

        if data:
            crecord.__init__(self, data, name=name)
        elif raw_record:
            crecord.__init__(self, raw_record=raw_record)
        else:
            ## Check if object exist in mongo
            if not record and _id:
                self.logger.debug(" + Try to get record from DB ...")
                try:
                    record = storage.get(_id, account=account)
                    self.logger.debug("   + Success")
                except:
                    self.logger.debug("   + Failed")

                    ## If record
            if record:
                self.logger.debug(" + Load object from record")
                _id = record._id
                crecord.__init__(self, storage=storage, record=record)
            else:
                self.logger.debug(" + Init new object")
                crecord.__init__(self, storage=storage, name=name)

        self.type = type
        self._id = _id
        self.account = account
        self.storage = storage
Example #7
0
 def __init__(self, storage=None, *args, **kargs):
     crecord.__init__(self, storage=storage, *args, **kargs)
     self.type = 'bin'
     self.binary = None
Example #8
0
	def __init__(self, *args, **kargs):
		crecord.__init__(self, *args, **kargs)
		self.type = 'bin'