Exemple #1
0
 def process(self, ssh, hostname):
     result = BaseResponse()
     try:
         result.data = ssh(hostname, 'uname -a').decode("utf8")
     except Exception as e:
         logger.error(traceback.format_exc())
         result.error = traceback.format_exc()
         result.status = False
     return result.dict
Exemple #2
0
 def process(self, ssh, hostname):
     response = BaseResponse()
     try:
         result = ssh(hostname, 'dmidecode -t1')
         response.data = self.parse(result)
     except Exception as e:
         logger.error(traceback.format_exc())
         response.status = False
         response.error = traceback.format_exc()
     return response.dict
    def process(self, ssh, hostname):
        response = BaseResponse()
        try:
            result = ssh(hostname, "ifconfig | grep 'inet ' -B1")
            response.data = self.parse(result)
        except Exception as e:
            logger.error(traceback.format_exc())
            response.status = False
            response.error = traceback.format_exc()

        return response.dict
Exemple #4
0
    def process(self, ssh, hostname):
        response = BaseResponse()
        try:
            info = ssh(hostname, 'df')
            response.data = self.parse(info)
        except Exception as xe:
            logger.error(traceback.format_exc())
            response.status = False
            response.error = traceback.format_exc()

        return response.dict
Exemple #5
0
 def process(self, ssh, hostname):
     response = BaseResponse()
     try:
         shell_command = "cat /proc/cpuinfo"
         output = ssh(shell_command, hostname)
         response.data = self.parse(output)
     except Exception as e:
         msg = traceback.format_exc()
         response.status = False
         response.error = msg
         logger.error(msg)
     return response.dict
Exemple #6
0
    def process(self, ssh, hostname):
        response = BaseResponse()
        try:
            result = ssh(hostname, "free | awk 'NR>1{print $0}'")
            # result = ssh(hostname, 'dmidecode -q -t 17 2> /dev/null')
            response.data = self.parse(result)
        except Exception as e:
            logger.error(traceback.format_exc())
            response.status = False
            response.error = traceback.format_exc()

        return response.dict
Exemple #7
0
 def process(self, ssh, hostname):
     # 假设执行了命令
     result = BaseResponse()
     try:
         # output = ssh(hostname,"MegaCli  -PDList -aALL")
         with open(settings.LOCAL_DISK_FILE_PATH) as f:
             output = f.read()
         result.data = self.parse(output)
     except Exception as e:
         logger.error(traceback.format_exc())
         result.status = False
         result.error = traceback.format_exc()
     return result.dict
Exemple #8
0
 def process(self, ssh, hostname):
     response = BaseResponse()
     try:
         uname = ssh(hostname, 'uname').strip()
         version = ssh(hostname, 'cat /etc/issue').strip().split('\n')[0]
         response.data = {
             'uname': uname,
             'version': version,
         }
     except Exception as e:
         logger.error(traceback.format_exc())
         response.status = False
         response.error = traceback.format_exc()
     return response.dict
Exemple #9
0
    def process(self, ssh, hostname):
        response = BaseResponse()
        try:
            cmd1 = ssh(hostname, 'sudo ip link show')
            cmd2 = ssh(hostname, 'sudo ip addr show')

            result = self._interfaces_ip(cmd1 + '\n' + cmd2)
            response.data = result

        except Exception as e:
            logger.error(traceback.format_exc())
            response.status = False
            response.error = traceback.format_exc()
        return response.dict
Exemple #10
0
def handler(accid, openids):

    for openid in openids:

        logger.info("处理[{}]中".format(openid))

        userinfo = WechatAccUser(accid=accid,
                                 isAccessToken=True).get_info(openid)

        logger.info("获取列表[{}]".format(userinfo))

        if userinfo['subscribe'] == 0:
            continue

        with transaction.atomic():
            try:
                accUserObj = AccLinkUser.objects.get(accid=accid,
                                                     openid=openid)
                accUserObj.tags = json.dumps(userinfo['tagid_list']).replace(
                    " ", "")
                accUserObj.nickname = userinfo['nickname']
                accUserObj.sex = userinfo['sex']
                accUserObj.city = userinfo['city']
                accUserObj.province = userinfo['province']
                accUserObj.country = userinfo['country']
                accUserObj.headimgurl = userinfo['headimgurl']
                accUserObj.subscribe_time = userinfo['subscribe_time']
                accUserObj.subscribe_scene = userinfo['subscribe_scene']
                accUserObj.umark = '0'
                accUserObj.save()

            except AccLinkUser.DoesNotExist:
                try:
                    AccLinkUser.objects.create(
                        **dict(accid=accid,
                               openid=userinfo['openid'],
                               tags=json.dumps(userinfo['tagid_list']).replace(
                                   " ", ""),
                               nickname=userinfo['nickname'],
                               sex=userinfo['sex'],
                               city=userinfo['city'],
                               province=userinfo['province'],
                               country=userinfo['country'],
                               headimgurl=userinfo['headimgurl'],
                               subscribe_time=userinfo['subscribe_time'],
                               subscribe_scene=userinfo['subscribe_scene'],
                               umark='0'))
                except Exception as e:
                    logger.error(str(e))
Exemple #11
0
    def wrapped(request, *args, **kwds):
        # Init params
        params = kwds.get('params', {})

        info = Info.objects.all()
        if (len(info) == 0):
            logger.error("Info is empty!!!")
        elif (len(info) > 1):
            logger.error("Info contains more than one record!!!")
            params["info"] = info[0]
        else:
            params["info"] = info[0]

        kwds['params'] = params
        # Execute original function
        return f(request, *args, **kwds)
Exemple #12
0
def send_request_other(url, method='get', params=None, data=None, headers={}):
    logger.info("请求参数: url:{} header:{} body:{} params:{}".format(
        url, headers, data, params))

    try:
        result = request(method,
                         url,
                         params=params,
                         json=data,
                         verify=False,
                         headers=headers)
        status_code = result.status_code
        result = result.json()
        print(result)
        if str(status_code) == '200':
            return result
    except Exception as ex:
        logger.error('{0} 调用失败:{1}'.format(url, ex))
        raise PubErrorCustom('{0}'.format(ex))
Exemple #13
0
    def process(self, ssh, hostname):
        response = BaseResponse()
        try:
            uname = ssh(hostname, 'uname').strip()
            version = ssh(hostname,
                          'cat /etc/redhat-release').strip().split('\n')[0]
            cpu_count = ssh(
                hostname,
                'cat /proc/cpuinfo | grep "physical id" | uniq | wc -l ')
            kernel_version = ssh(hostname, 'uname -r')
            response.data = {
                'uname': uname,
                'version': version,
                'cpu_count': cpu_count,
                'kernel_version': kernel_version
            }
        except Exception:
            logger.error(traceback.format_exc())
            response.status = False
            response.error = traceback.format_exc()

        return response.dict
Exemple #14
0
def handler(accid, res):

    for item in res:
        with transaction.atomic():
            try:
                atObj = AccTag.objects.get(id=item['id'])
                atObj.name = item['name']
                atObj.fans_count = item['count']
                atObj.wechat_fans_count = item['count']
                atObj.umark = '0'
                atObj.save()
            except AccTag.DoesNotExist:
                try:
                    AccTag.objects.create(
                        **dict(id=item['id'],
                               accid=accid,
                               name=item['name'],
                               fans_count=item['count'],
                               wechat_fans_count=item['count'],
                               umark='0'))
                except Exception as e:
                    logger.error(str(e))
Exemple #15
0
def send_request(url,
                 token=None,
                 method='get',
                 params=None,
                 data=None,
                 headers={}):
    logger.info("请求参数: url:{} header:{} body:{}".format(url, headers, data))
    print(ServerUrl + url)
    try:
        result = request(method,
                         ServerUrl + url,
                         params=params,
                         json=data,
                         verify=False,
                         headers=headers)
        # status_code = result.status_code
        result = result.json()
        logger.info(result)
        if str(result.get('rescode')) == '10000':
            return result.get('data') if 'data' in result else {}
        raise PubErrorCustom(result.get('msg'))
    except Exception as ex:
        logger.error('{0} 调用失败:{1}'.format(url, ex))
        raise PubErrorCustom('{0}'.format(ex))
Exemple #16
0
import time, json
Exemple #17
0
import time, json
Exemple #18
0
    def eventHandler(self):

        logger.info(self.xml_data)

        if self.xml_data['MsgType'] == 'event':
            """
            扫描带参数二维码事件
            """
            if (self.xml_data['Event'] == 'subscribe'
                    and 'EventKey' in self.xml_data
                    and self.xml_data.get("EventKey")
                ) or self.xml_data['Event'] == 'SCAN':

                if self.xml_data['Event'] == 'SCAN':
                    """
                    如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者
                    """
                    try:
                        aqc_obj = AccQrcode.objects.select_for_update().get(
                            id=self.xml_data['EventKey'])
                    except AccQrcode.DoesNotExist:
                        logger.info("未找到此渠道二维码{}".format(self.xml_data))
                        return "success"

                    self.ActionHandler('4')
                    self.ActionHandler('2')

                    aqc_obj.tot_count += 1
                    aqc_obj.follow_count += 1
                    aqc_obj.save()
                else:
                    """
                    如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者
                    """

                    try:
                        aqc_obj = AccQrcode.objects.select_for_update().get(
                            id=self.xml_data['EventKey'].split("qrscene_")[1])
                    except AccQrcode.DoesNotExist:
                        logger.info("未找到此渠道二维码{}".format(self.xml_data))
                        return "success"

                    self.ActionHandler('4')
                    self.ActionHandler('1')

                    aqc_obj.tot_count += 1
                    aqc_obj.new_count += 1
                    aqc_obj.save()
                """
                先给此用户打标签
                """
                for item in json.loads(aqc_obj.tags):
                    WeChatAccTag(
                        auth_accesstoken=self.auth_accesstoken).batchtagging(
                            [self.xml_data['FromUserName']], item)

                userinfo = self.linkUser()

                #推送消息
                if aqc_obj.qr_type == '0':
                    return self.msgHandler(send_type=aqc_obj.send_type,
                                           listids=aqc_obj.listids,
                                           user={
                                               "openid": userinfo['openid'],
                                               "nickname": userinfo['nickname']
                                           })
                else:
                    return "success"

            elif self.xml_data['Event'] == 'subscribe':
                if self.acc.follow_setting != '0':
                    return "success"
                else:
                    try:
                        obj = AccFollow.objects.get(accid=self.acc.accid)
                    except AccFollow.DoesNotExist:
                        logger.error("公众号{}无设置{}".format(
                            self.acc.accid, self.xml_data))
                        return "success"

                    if obj.send_type == '0':
                        send_type = '1'
                    elif obj.send_type == '1':
                        send_type = '2'
                    elif obj.send_type == '2':
                        send_type = '0'
                    else:
                        logger.error("公众号{}推送标志有误!".format(self.acc.accid))

                    userinfo = self.linkUser()

                    self.ActionHandler('1')

                    self.ReplyCustom(type='0', userinfo=userinfo)

                    return self.msgHandler(send_type=send_type,
                                           obj=AccFollowModelSerializer1(
                                               obj, many=False).data,
                                           listids=obj.listids,
                                           user={
                                               "openid": userinfo['openid'],
                                               "nickname": userinfo['nickname']
                                           })
            elif self.xml_data['Event'] == 'unsubscribe':
                try:
                    aobj = AccLinkUser.objects.get(
                        accid=self.acc.accid,
                        openid=self.xml_data['FromUserName'])
                    aobj.umark = '1'
                    aobj.save()
                except AccLinkUser.DoesNotExist:
                    pass

                self.ActionHandler('3')

            elif self.xml_data['Event'] == 'CLICK':
                userinfo = self.linkUser()
                self.ActionHandler('5')
                self.ReplyCustom(type='2', userinfo=userinfo)
            elif self.xml_data['Event'] == 'VIEW':
                userinfo = self.linkUser()
                self.ActionHandler('5')
            else:
                logger.error("事件未定义{}".format(self.xml_data))
                return "success"
        elif self.xml_data['MsgType'] == 'text':
            userinfo = self.linkUser()
            self.ActionHandler('0')
            self.ReplyCustom(type='1', userinfo=userinfo)
        elif self.xml_data['MsgType'] == 'image':
            userinfo = self.linkUser()
            self.ActionHandler('0')
            self.ReplyCustom(type='1', userinfo=userinfo)
        elif self.xml_data['MsgType'] == 'voice':
            userinfo = self.linkUser()
            self.ActionHandler('0')
            self.ReplyCustom(type='1', userinfo=userinfo)
        elif self.xml_data['MsgType'] == 'video':
            userinfo = self.linkUser()
            self.ActionHandler('0')
            self.ReplyCustom(type='1', userinfo=userinfo)
        elif self.xml_data['MsgType'] == 'shortvideo':
            userinfo = self.linkUser()
            self.ActionHandler('0')
            self.ReplyCustom(type='1', userinfo=userinfo)
        elif self.xml_data['MsgType'] == 'location':
            userinfo = self.linkUser()
            self.ActionHandler('0')
            self.ReplyCustom(type='1', userinfo=userinfo)
        elif self.xml_data['MsgType'] == 'link':
            userinfo = self.linkUser()
            self.ActionHandler('0')
            self.ReplyCustom(type='1', userinfo=userinfo)
        else:
            logger.error("消息类型错误!{}".format(self.xml_data['MsgType']))
            return "success"

        return "success"
Exemple #19
0
    def __init__(self,
                 model,
                 train_params,
                 batch_processor,
                 train_data,
                 val_data=None):
        assert isinstance(train_params, TrainParams)
        self.params = train_params

        # Data loaders
        self.train_data = train_data
        self.val_data = val_data  # sDataLoader.copy(val_data) if isinstance(val_data, DataLoader) else val_data
        # self.val_stream = self.val_data.get_stream() if self.val_data else None

        self.batch_processor = batch_processor
        self.batch_per_epoch = len(self.train_data)

        # set CUDA_VISIBLE_DEVICES=gpus
        gpus = ','.join([str(x) for x in self.params.gpus])
        os.environ['CUDA_VISIBLE_DEVICES'] = gpus
        self.params.gpus = tuple(range(len(self.params.gpus)))
        logger.info('Set CUDA_VISIBLE_DEVICES to {}...'.format(gpus))

        # Optimizer and learning rate
        self.last_epoch = 0
        self.optimizer = self.params.optimizer  # type: Optimizer
        if not isinstance(self.optimizer, Optimizer):
            logger.error('optimizer should be an instance of Optimizer, '
                         'but got {}'.format(type(self.optimizer)))
            raise ValueError
        self.lr_scheduler = self.params.lr_scheduler  # type: ReduceLROnPlateau or _LRScheduler
        if self.lr_scheduler and not isinstance(
                self.lr_scheduler, (ReduceLROnPlateau, _LRScheduler)):
            logger.error(
                'lr_scheduler should be an instance of _LRScheduler or ReduceLROnPlateau, '
                'but got {}'.format(type(self.lr_scheduler)))
            raise ValueError
        logger.info('Set lr_scheduler to {}'.format(type(self.lr_scheduler)))

        self.log_values = OrderedDict()
        self.batch_timer = Timer()
        self.data_timer = Timer()

        # load model
        self.model = model
        ckpt = self.params.ckpt
        if not self.params.save_dir:
            self.params.save_dir = os.path.join('outputs',
                                                self.params.exp_name)
        mkdir(self.params.save_dir)
        logger.info('Set output dir to {}'.format(self.params.save_dir))
        if ckpt is None:
            # find the last ckpt
            ckpts = [
                fname for fname in os.listdir(self.params.save_dir)
                if os.path.splitext(fname)[-1] == '.h5'
            ]
            ckpt = os.path.join(
                self.params.save_dir,
                sorted(ckpts,
                       key=lambda name: int(
                           os.path.splitext(name)[0].split('_')[-1]))
                [-1]) if len(ckpts) > 0 else None

        if ckpt is not None and not self.params.re_init:
            self._load_ckpt(ckpt)
            logger.info('Load ckpt from {}'.format(ckpt))

        self.model = ListDataParallel(self.model, device_ids=self.params.gpus)
        self.model = self.model.cuda(self.params.gpus[0])
        self.model.train()
        if self.params.subnet_name != 'keypoint_subnet':
            self.model.module.freeze_bn(
            )  # nn.BatchNorm2d.eval() if not 'keypoint_subnet'
Exemple #21
0
    total = 0
    next_openid = False
    while count == 0 or count < total:

        res = WechatAccUser(accid=accid,
                            isAccessToken=True).get_user_list(next_openid)
        logger.info("获取列表[{}]".format(res))
        handler(accid, res['data']['openid'])

        count += res['count']
        total = res['total']
        next_openid = res['next_openid']

        print(count, total)

    logger.info("公众号[{}]粉丝同步[{}]处理完毕!".format(accid,
                                              UtilTime().arrow_to_string()))


if __name__ == '__main__':
    """
        同步粉丝列表
    """

    accid = sys.argv[1]

    try:
        sync(accid)
    except Exception as e:
        logger.error(str(e))