Example #1
0
    def __init__(self, account=1, creator=1, type=1, data=None):
        tqconn = HostedTaskQueue()

        jdata = json.loads(data)
        tags = []
        tags.append("creator=" + str(creator))
        tags.append("deviceId=" + jdata['Device']['Udid'])
        tags.append("owner=" + jdata['User']['Email'])
        tags.append("type=" + str(type))
        tags.append("status=1")
        tags.append("restServiceFlag=1")

        payload_base64 = base64.b64encode(data)

        result = tqconn.do_add(tqname='enrollment',
                               namespace='mobile',
                               account=account,
                               payload=payload_base64,
                               tags=tags)
        if result.code == 200 or result.code == 201:
            logger.info(
                'Notification REST Service - Add enrollment decision task success!'
            )
        else:
            raise ServerInternalException(
                'Add enrollment decision task failed!')
Example #2
0
    def move_task_to_errorqueue(self, error_msg):
        hostedTQ = HostedTaskQueue()
        if type(self.m_tags)!=list:
            logger.error('task tags is not a list:[%s]' % self.m_tags)
            raise Exception('tags type error in move_task_to_errorqueue')
        if TASK_STATUS_DICT['normal'] in self.m_tags:
            self.m_tags.remove(TASK_STATUS_DICT['normal'])
        if TASK_STATUS_DICT['retry'] in self.m_tags:
            self.m_tags.remove(TASK_STATUS_DICT['retry'])
        self.m_tags.append(TASK_STATUS_DICT['error'])

        tag_error = 'error_msg_base64=%s' % base64.encodestring(error_msg).replace('\n', '')
        self.m_tags.append(tag_error)
        try:
            hostedTQ.do_add(tqname=self.m_error_qname, namespace='mobile', account=int(self.m_account), version=1, payload=self.m_payload_base64, tags=self.m_tags, priority = self.m_priority)
        except MDMiHttpError, e:
            logger.debug('add error task failed:%s, will try to create error queue' % repr(e))
            error_qname_list = [
            {'name' : 'enrollmentError', 'settings' : {"description" : "Enrollment Decision Error task queue", "max_leases" : "30", "max_age" : "0"}}
            ]
            tqo = TaskQueueUtils(error_qname_list)
            tqo.init_task_queue()
            del tqo

            hostedTQ.do_add(tqname=self.m_error_qname, namespace='mobile', account=int(self.m_account), version=1, payload=self.m_payload_base64, tags=self.m_tags, priority = self.m_priority)
Example #3
0
def main():

    #estimate localhost is master
    result =  os.path.exists('/etc/sysconfig/mes.primary')
    if result:
        logger.info('Start adding periodic usergroup sync tasks.')
        hosted_account = HostedAccount(ACCOUNT_BLACK_SPIDER)
        #acct_nums = hosted_account.get_airwatch_account_ids()
        acct_nums = hosted_account.get_airwatch_hosted_account_ids()
        success = 0
        failure = 0
        if acct_nums:
            for n in acct_nums:
                try:
                    task_num = HostedTaskQueue().do_get_task_total(tqname=TASK_QUEUE_USERGROUP_PERIODIC, account=int(n))
                    if int(task_num):
                        logger.info('Another machine has added periodic sync tasks. Abort adding.')
                        break
                    logger.info('To add periodic usergroup sync task for account %s.', n)
                    HostedTaskQueue().do_add(tqname=TASK_QUEUE_USERGROUP_PERIODIC, account=int(n))
                    success += 1
                    logger.info('Added periodic usergroup sync task for account %s.', n)
                except Exception as e:
                    failure += 1
                    logger.error('Add periodic usergroup sync task for account %s failed. %s', n, e)
                    logger.error(e)
        logger.info('END adding periodic usergroup sync tasks. %d success, %d failure.', success, failure)
    else:
        logger.info('localhost is not master')
Example #4
0
	def send(self, account=1, mailfrom='*****@*****.**', rcptto=None, substitutions=None, template=None, tags=None):
		'''
		TODO: Send email

		Params:
			account: Account ID.
			mailfrom: sender name.
			rcptto: Receiver name.
			substitutions: Email data.
			template: Template href.
			tags: User defined data in list.

		Return:
			=0 : Operation success.
			< 0 : Failed.
		'''
		if not rcptto or not substitutions or not template:
			raise Exception('Invalid input!')

		request = HostedTaskQueue()
		retval = 0
		data = {'mailfrom' : mailfrom,
				'rcptto' : rcptto,
				'substitutions' : substitutions,
				'template_href' : template
				}
		payload = json.dumps(data)
		payload = base64.encodestring(payload)
		result = request.do_add(tqname='email', namespace='email', account=account, version=1, payload=payload, tags=tags)
		if (retval >= 0) and ((result.code - 200) < 10):
			retval = 0
		else:
			retval = -1
		return retval
		pass
Example #5
0
    def move_task_to_retryqueue(self):
        hostedTQ = HostedTaskQueue()
        if type(self.m_tags)!=list:
            logger.error('task tags is not a list:[%s]' % self.m_tags)
            raise Exception('tags type error in move_task_to_retryqueue')

        if not TASK_STATUS_DICT['retry'] in self.m_tags:
            if TASK_STATUS_DICT['normal'] in self.m_tags:
                self.m_tags.remove(TASK_STATUS_DICT['normal'])
            self.m_tags.append(TASK_STATUS_DICT['retry'])
            hostedTQ.do_add(tqname=self.m_retry_qname, namespace='mobile', account=int(self.m_account), version=1, payload=self.m_payload_base64, tags=self.m_tags, priority = self.m_priority)
            logger.debug('enrollment.py - add task to retry queue success')
Example #6
0
	def init_task_queue(self, qName):
		try:
			tq = HostedTaskQueue()
			data = {"description" : "deployment task queue", "max_leases" : "30", "max_age" : "0"}
			logger.info("initialize task queue start")
			result = tq.do_establish_taskqueue(tqname=qName, description=data)
			if not result:
				logger.error("taskqueue '%s' establish failed!" % qName)
			else:
				logger.info("taskqueue '%s' initialize end!" % (qName))
		except Exception, e:
			logger.error("initialize taskqueue '%s' error %s" % (qName, e))
			raise Exception("initialize taskqueue '%s' error" % qName)
Example #7
0
    def send(self,
             account=1,
             mailfrom='*****@*****.**',
             rcptto=None,
             substitutions=None,
             template=None,
             tags=None):
        '''
		TODO: Send email

		Params:
			account: Account ID.
			mailfrom: sender name.
			rcptto: Receiver name.
			substitutions: Email data.
			template: Template href.
			tags: User defined data in list.

		Return:
			=0 : Operation success.
			< 0 : Failed.
		'''
        if not rcptto or not substitutions or not template:
            raise Exception('Invalid input!')

        request = HostedTaskQueue()
        retval = 0
        data = {
            'mailfrom': mailfrom,
            'rcptto': rcptto,
            'substitutions': substitutions,
            'template_href': template
        }
        payload = json.dumps(data)
        payload = base64.encodestring(payload)
        result = request.do_add(tqname='email',
                                namespace='email',
                                account=account,
                                version=1,
                                payload=payload,
                                tags=tags)
        if (retval >= 0) and ((result.code - 200) < 10):
            retval = 0
        else:
            retval = -1
        return retval
        pass
Example #8
0
 def init_task_queue(self):
     if len(self.m_qname_list) > 0:
         tqobj = HostedTaskQueue()
         for tq in self.m_qname_list:
             try:
                 if tq.has_key('name') and tq.has_key('settings'):
                     result = tqobj.do_establish_taskqueue(tqname=tq['name'], description=tq['settings'])
                     if result:
                         logger.debug('Task Queue %s initialize ok!' % tq['name'])
                     else:
                         logger.error('Task Queue %s initialize failed!' % tq['name'])
                 else:
                     logger.error('Unknow task queue setting! Value is %s' % repr(tq))
             except Exception, e:
                 logger.error(e)
                 raise Exception("Initialize task queue error!")
         del tqobj
Example #9
0
    def move_task_to_retryqueue(self):
        hostedTQ = HostedTaskQueue()
        if type(self.m_tags) != list:
            logger.error('task tags is not a list:[%s]' % self.m_tags)
            raise Exception('tags type error in move_task_to_retryqueue')

        if not TASK_STATUS_DICT['retry'] in self.m_tags:
            if TASK_STATUS_DICT['normal'] in self.m_tags:
                self.m_tags.remove(TASK_STATUS_DICT['normal'])
            self.m_tags.append(TASK_STATUS_DICT['retry'])
            hostedTQ.do_add(tqname=self.m_retry_qname,
                            namespace='mobile',
                            account=int(self.m_account),
                            version=1,
                            payload=self.m_payload_base64,
                            tags=self.m_tags,
                            priority=self.m_priority)
            logger.debug('enrollment.py - add task to retry queue success')
Example #10
0
 def create_task_queue(self, qName):
     '''
     Create task queue in DB
     '''
     try:
         tq = HostedTaskQueue()
         data = {"description" : "iOS device redeployment task queue", "max_leases" : "30", "max_age" : "0"}
         logger.info("initialize task queue start")
         if not tq.do_get_taskqueue(tqname = qName):
             result = tq.do_establish_taskqueue(tqname=qName, description=data)
             if not result:
                 logger.error("taskqueue '%s' establish failed!" % qName)
             else:
                 logger.info("taskqueue '%s' initialize success!" % qName)
         else:
             logger.debug('task queue %s already exists' % qName)
     except Exception, e:
         logger.error("initialize taskqueue '%s' error: %s" % (qName, e))
         raise Exception("initialize taskqueue '%s' error" % qName)
Example #11
0
    def _send_mail(self, rcptto, account):
        logger.info("send mail start")
        hostedq = HostedTaskQueue()
        data = {}
        data["mailfrom"] = "*****@*****.**"
        data["rcptto"] = rcptto

        portal_url = self._get_cluster_portal_url()
        data["substitutions"] = {
            "_displayfromname_": "Cloud Web Security Portal",
            "_portalurl_": portal_url
        } 
        data["template"] = self._get_template() 

        payload = json.dumps(data)
        payload_base64 = base64.encodestring(payload)
        hostedq.do_add(tqname='email', namespace='email', account=account, version=1, payload=payload_base64)
        logger.info("send mail end")
        pass
Example #12
0
    def __init__(self, account=1, creator=1, type=1, data=None):
        tqconn = HostedTaskQueue()
        
        jdata = json.loads(data)
        tags = []
        tags.append("creator=" + str(creator))
        tags.append("deviceId=" + jdata['Device']['Udid'])
        tags.append("owner=" + jdata['User']['Email'])
        tags.append("type=" + str(type))
        tags.append("status=1")
        tags.append("restServiceFlag=1")
        
        payload_base64 = base64.b64encode(data)

        result = tqconn.do_add(tqname='enrollment', namespace='mobile', account=account, payload=payload_base64, tags=tags)
        if result.code == 200 or result.code == 201:
            logger.info('Notification REST Service - Add enrollment decision task success!')
        else:
            raise ServerInternalException('Add enrollment decision task failed!')
Example #13
0
 def init_task_queue(self):
     if len(self.m_qname_list) > 0:
         tqobj = HostedTaskQueue()
         for tq in self.m_qname_list:
             try:
                 if tq.has_key('name') and tq.has_key('settings'):
                     result = tqobj.do_establish_taskqueue(
                         tqname=tq['name'], description=tq['settings'])
                     if result:
                         logger.debug('Task Queue %s initialize ok!' %
                                      tq['name'])
                     else:
                         logger.error('Task Queue %s initialize failed!' %
                                      tq['name'])
                 else:
                     logger.error('Unknow task queue setting! Value is %s' %
                                  repr(tq))
             except Exception, e:
                 logger.error(e)
                 raise Exception("Initialize task queue error!")
         del tqobj
Example #14
0
    def __init__(self, account=1, creator=1, type=1, data=None):
        tqconn = HostedTaskQueue()

        tags = []
        tags.append("reties=0")
        tags.append("type=" + str(type))
        tags.append("creator=" + str(creator))
        tags.append("restServiceFlag=1")

        payload = {}
        payload.update({'requestPayload': data})
        tmpdict = self.analyse_payload(data)
        payload.update(tmpdict)
        payload = json.dumps(payload)

        payload_base64 = base64.b64encode(payload)

        result = tqconn.do_add(tqname='usergroup', namespace='mobile', account=account, payload=payload_base64, tags=tags)
        if result.code == 200 or result.code == 201:
            logger.info('Notification REST Service - Add user sync task success!')
        else:
            raise ServerInternalException('Add user sync task failed!')
Example #15
0
    def _send_mail(self, rcptto, account):
        logger.info("send mail start")
        hostedq = HostedTaskQueue()
        data = {}
        data["mailfrom"] = "*****@*****.**"
        data["rcptto"] = rcptto

        portal_url = self._get_cluster_portal_url()
        data["substitutions"] = {
            "_displayfromname_": "Cloud Web Security Portal",
            "_portalurl_": portal_url
        }
        data["template"] = self._get_template()

        payload = json.dumps(data)
        payload_base64 = base64.encodestring(payload)
        hostedq.do_add(tqname='email',
                       namespace='email',
                       account=account,
                       version=1,
                       payload=payload_base64)
        logger.info("send mail end")
        pass
Example #16
0
 def create_task_queue(self, qName):
     '''
     Create task queue in DB
     '''
     try:
         tq = HostedTaskQueue()
         data = {
             "description": "iOS device redeployment task queue",
             "max_leases": "30",
             "max_age": "0"
         }
         logger.info("initialize task queue start")
         if not tq.do_get_taskqueue(tqname=qName):
             result = tq.do_establish_taskqueue(tqname=qName,
                                                description=data)
             if not result:
                 logger.error("taskqueue '%s' establish failed!" % qName)
             else:
                 logger.info("taskqueue '%s' initialize success!" % qName)
         else:
             logger.debug('task queue %s already exists' % qName)
     except Exception, e:
         logger.error("initialize taskqueue '%s' error: %s" % (qName, e))
         raise Exception("initialize taskqueue '%s' error" % qName)
Example #17
0
    def move_task_to_errorqueue(self, error_msg):
        hostedTQ = HostedTaskQueue()
        if type(self.m_tags) != list:
            logger.error('task tags is not a list:[%s]' % self.m_tags)
            raise Exception('tags type error in move_task_to_errorqueue')
        if TASK_STATUS_DICT['normal'] in self.m_tags:
            self.m_tags.remove(TASK_STATUS_DICT['normal'])
        if TASK_STATUS_DICT['retry'] in self.m_tags:
            self.m_tags.remove(TASK_STATUS_DICT['retry'])
        self.m_tags.append(TASK_STATUS_DICT['error'])

        tag_error = 'error_msg_base64=%s' % base64.encodestring(
            error_msg).replace('\n', '')
        self.m_tags.append(tag_error)
        try:
            hostedTQ.do_add(tqname=self.m_error_qname,
                            namespace='mobile',
                            account=int(self.m_account),
                            version=1,
                            payload=self.m_payload_base64,
                            tags=self.m_tags,
                            priority=self.m_priority)
        except MDMiHttpError, e:
            logger.debug(
                'add error task failed:%s, will try to create error queue' %
                repr(e))
            error_qname_list = [{
                'name': 'enrollmentError',
                'settings': {
                    "description": "Enrollment Decision Error task queue",
                    "max_leases": "30",
                    "max_age": "0"
                }
            }]
            tqo = TaskQueueUtils(error_qname_list)
            tqo.init_task_queue()
            del tqo

            hostedTQ.do_add(tqname=self.m_error_qname,
                            namespace='mobile',
                            account=int(self.m_account),
                            version=1,
                            payload=self.m_payload_base64,
                            tags=self.m_tags,
                            priority=self.m_priority)
Example #18
0
def establish_taskqueue(tqname, data):
    result = HostedTaskQueue().do_establish_taskqueue(tqname=tqname, description=data)
    if not result:
        logger.error('Task Queue %s established failed!' % tqname)
    else:
        logger.info('Task Queue %s established success!' % tqname)