Пример #1
0
 def task_fail_start(self, exception, conn):
     results = to_str(exception)
     self.curr_instance = datetime.utcnow()
     res = TaskResult(self.task_id, \
                      self.curr_instance, \
                      self.FAILED, \
                      results)
     u = User.by_user_name(self.user_name)
     if u is None:
         u = User.by_user_name(u'admin')
     email = u.email_address
     notification=Notification(to_unicode(self.task_id), \
                               self.name, \
                               self.curr_instance, \
                               results, \
                               self.user_name, \
                               email)
     conn.merge(res)
     conn.add(notification)
     if not self.repeating and self.entity_id != None:
         UIUpdateManager().set_updated_tasks(self.task_id,\
                                             self.user_name)
Пример #2
0
 def task_fail_start(self, exception, conn):
     results = to_str(exception)
     self.curr_instance = datetime.utcnow()
     res = TaskResult(self.task_id, \
                      self.curr_instance, \
                      self.FAILED, \
                      results)
     u = User.by_user_name(self.user_name)
     if u is None:
         u = User.by_user_name(u'admin')
     email=u.email_address
     notification=Notification(to_unicode(self.task_id), \
                               self.name, \
                               self.curr_instance, \
                               results, \
                               self.user_name, \
                               email)
     conn.merge(res)
     conn.add(notification)
     if not self.repeating and self.entity_id!=None:
         UIUpdateManager().set_updated_tasks(self.task_id,\
                                             self.user_name)
Пример #3
0
    def save_user_det(self, login,userid, username, fname, lname, displayname, password, email, phone, status):
       
        user1=DBSession.query(User).filter(User.user_name==username).first()
        
        if user1 is None:
           if not self.check_email(email):
               return 'Email_exist'
           result = []
           user=User()  
           user.password=(password)
           user.firstname=(fname)
           user.lastname=(lname)
           user.display_name=(displayname)
           user.user_name=(username)
           user.phone_number=(phone)
           user.email_address=(email)
           user.created_by=(login)
           user.modified_by=(login)
           user.created_date=datetime.now()

           if status=="InActive":
              user.status=False

#           L=(groupids).split(',')
#           if groupids !="":
#                for i in L:
#                    group=DBSession.query(Group).filter(Group.group_id==int(i)).first()
#                    user.groups.append(group);

           DBHelper().add(user)
           return result
        else:
             result='False'
             return result
Пример #4
0
    def do_work(self, runtime_context, args=None, kw=None):
        self.task_manager = runtime_context.pop()
        self.curr_instance = datetime.utcnow()
        args = self.params
        recover = resume = False
        visible = False
        if kw:
            resume = kw.get('resume', False)
            recover = kw.get('recover', False)

        kw = self.kw_params
        self.quiet = (self.get_context_param('quiet') == True)

        if not self.quiet and resume == False and recover == False:
            self.task_started()

        try:
            try:
                task_result_running_instance = True
                if not args:
                    args = []
                if not kw:
                    kw = {}
                #build auth object
                auth = AuthorizationService()
                auth.email_address = ""
                user = User.by_user_name(self.user_name)
                auth.user = user
                if user is None:
                    u = User.by_user_name(u'admin')
                    auth.email_address = u.email_address
                    logger.info("User: "******" does not exist in CMS.")
                    raise Exception("User: "******" does not exist in CMS.")
                else:
                    auth.user = user
                    auth.user_name = user.user_name
                    auth.email_address = user.email_address

                TaskUtil.set_task_context(self.task_id)
                if recover != True and resume != True:
                    raw_result = self.exec_task(auth, self.context, *args,
                                                **kw)
                else:
                    runn = self.get_running_instance()
                    if runn:
                        self.curr_instance = runn.timestamp
                    else:
                        task_result = self.get_task_result_instance()
                        if isinstance(task_result.results, str):
                            task_result.results += "can not resume task. No running instance"
                        elif not task_result.results:
                            task_result.results = "can not resume task. No running instance"
                        task_result_running_instance = False

                    if task_result_running_instance:
                        if recover == True:
                            raw_result = self.recover_task(
                                auth, self.context, *args, **kw)
                        elif resume == True:
                            raw_result = self.resume_task(
                                auth, self.context, *args, **kw)
                if task_result_running_instance:
                    cancelled = False
                    results = raw_result
                    if isinstance(raw_result, dict):
                        if raw_result.get('status') == constants.TASK_CANCELED:
                            e = raw_result.get('msg') + "\n" + raw_result.get(
                                'results')
                            transaction.abort()
                            cancelled = True
                            if not self.quiet:
                                self.task_fail(e, auth, cancelled=True)
                        elif raw_result.get('status') == Task.SUCCEEDED:
                            results = raw_result.get('results')
                            visible = raw_result.get('visible', False)

                    else:
                        #get processed results
                        if raw_result is not None and self.processors is not None:
                            results = [
                                raw_result,
                            ]
                            for p in self.processors:
                                if issubclass(p, Processor):
                                    p().process_output(results)
                        else:
                            results = raw_result

                        if results is None:
                            desc_tuple = self.get_short_desc()
                            if desc_tuple is None:
                                results = 'Task Completed Successfully.'
                            else:
                                (short_desc, short_desc_params) = desc_tuple
                                desc = (short_desc) % short_desc_params
                                results = desc + ' Completed Successfully.'
                        #commit changes done by exec_task
                        transaction.commit()
            except Exception, e:
                #rollback any changes made in thread session
                logger.exception(to_str(e))
                transaction.abort()
                if not self.quiet:
                    self.task_fail(e, auth)
            else:
Пример #5
0
    def save_user_det(self, login, userid, username, fname, lname, displayname,
                      password, email, vm_licenses, status):

        user1 = DBSession.query(User).filter(
            User.user_name == username).first()

        if user1 is None:
            if not self.check_email(email):
                return 'Email_exist'
            result = []
            user = User()
            user.password = (password)
            user.firstname = (fname)
            user.lastname = (lname)
            user.display_name = (displayname)
            user.user_name = (username)
            user.vm_license_number = (vm_licenses)
            user.email_address = (email)
            user.created_by = (login)
            user.modified_by = (login)
            user.created_date = datetime.now()

            if status == "InActive":
                user.status = False

#           L=(groupids).split(',')
#           if groupids !="":
#                for i in L:
#                    group=DBSession.query(Group).filter(Group.group_id==int(i)).first()
#                    user.groups.append(group);

            DBHelper().add(user)
            return result
        else:
            result = 'False'
            return result
Пример #6
0
    def do_work(self, runtime_context, args = None, kw = None):
        self.task_manager = runtime_context.pop()
        self.curr_instance = datetime.utcnow()
        args = self.params
        recover = resume = False
        visible = False
        if kw:
            resume = kw.get('resume',False)
            recover= kw.get('recover',False)
        
        kw = self.kw_params
        self.quiet = (self.get_context_param('quiet') == True)

        if not self.quiet and resume==False and recover==False :
            self.task_started()

        try:
            try:
                task_result_running_instance = True
                if not args:
                    args = []
                if not kw:
                    kw = {}
                #build auth object
                auth = AuthorizationService()
                auth.email_address = ""
                user = User.by_user_name(self.user_name)
                auth.user = user
                if user is None:
                    u = User.by_user_name(u'admin')
                    auth.email_address = u.email_address
                    logger.info("User: "******" does not exist in CMS.")
                    raise Exception("User: "******" does not exist in CMS.")
                else:
                    auth.user = user
                    auth.user_name = user.user_name
                    auth.email_address = user.email_address

                TaskUtil.set_task_context(self.task_id)
                if recover != True and resume != True:
                    raw_result = self.exec_task(auth, self.context, *args, **kw)
                else:
                    runn = self.get_running_instance()
                    if runn:
                        self.curr_instance = runn.timestamp
                    else:
                        task_result = self.get_task_result_instance()
                        if isinstance(task_result.results, str):
                            task_result.results += "can not resume task. No running instance"
                        elif not task_result.results:
                            task_result.results = "can not resume task. No running instance"
                        task_result_running_instance = False

                    if task_result_running_instance:
                        if recover == True :
                            raw_result = self.recover_task(auth, self.context, *args, **kw)
                        elif resume == True:
                            raw_result = self.resume_task(auth, self.context, *args, **kw)
                if task_result_running_instance:
                    cancelled=False
                    results = raw_result
                    if isinstance(raw_result,dict):
                        if raw_result.get('status')==constants.TASK_CANCELED:
                            e=raw_result.get('msg')+"\n"+raw_result.get('results')
                            transaction.abort()
                            cancelled=True
                            if not self.quiet:
                                self.task_fail(e, auth, cancelled=True)
                        elif raw_result.get('status')==Task.SUCCEEDED:
                            results = raw_result.get('results')
                            visible = raw_result.get('visible',False)

                    else:
                        #get processed results
                        if raw_result is not None and self.processors is not None:
                            results = [raw_result,]
                            for p in self.processors:
                                if issubclass(p, Processor):
                                    p().process_output(results)
                        else:
                            results = raw_result

                        if results is None:
                            desc_tuple = self.get_short_desc()
                            if desc_tuple is None:
                                results = 'Task Completed Successfully.'
                            else:
                                (short_desc, short_desc_params) = desc_tuple
                                desc = (short_desc)%short_desc_params
                                results = desc+' Completed Successfully.'
                        #commit changes done by exec_task
                        transaction.commit()
            except Exception, e:
                #rollback any changes made in thread session
                logger.exception(to_str(e))
                transaction.abort()
                if not self.quiet:
                    self.task_fail(e, auth)
            else: