コード例 #1
0
ファイル: lib.py プロジェクト: Bumpybox/Tapp
def setup():

    if utils.get_host().startswith("maya"):
        add_filemenu_maya()

    if utils.get_host().startswith("nuke"):
        add_filemenu_nuke()

    print("tapp: Loaded successfully.")
コード例 #2
0
ファイル: docked_widget.py プロジェクト: Bumpybox/Tapp
def get_docked_widget():

    if "maya" in utils.get_host():
        return get_maya_dock_widget()

    if "nuke" in utils.get_host():
        return get_nuke_dock_widget()

    return None
コード例 #3
0
 def set_neighbors(self):
     self.neighbors = utils.find_neighbors(utils.get_host(), self.port,
                                           NEIGHBORS_IP_RANGE_NUM[0],
                                           NEIGHBORS_IP_RANGE_NUM[1],
                                           BLOCKCHAIN_PORT_RAMGE[0],
                                           BLOCKCHAIN_PORT_RAMGE[1])
     logger.info({'action': 'set_neighbors', 'neighbors': self.neighbors})
コード例 #4
0
ファイル: eulam.py プロジェクト: qlmgg/rap
def reply_eulam_forum(post_url, src):
    logger = utils.RAPLogger(post_url)
    host = utils.get_host(post_url)
    s = utils.RAPSession(src)

    # Step 1: 登录
    if not login_eulam_forum(s, src):
        logger.error(' Login Error')
        return (False, str(logger))
    logger.info(' Login OK')

    r = s.get(post_url)
    soup = BeautifulSoup(r.content)
    form = soup.find('form', attrs={'name': 'form'})
    payload = utils.get_datadic(form, CHARSET)
    payload['Body'] = src['content'].decode('utf8').encode(CHARSET)
    payload['BBSXPCodeForm'] = ''
    r = s.post(host + 'ReTopic.asp',
               data=payload,
               headers={'Referer': post_url})
    if u'操作成功'.encode(CHARSET) not in r.content:
        logger.error('Reply Error')
        return (False, str(logger))
    logger.info('Reply OK')
    return (True, str(logger))
コード例 #5
0
    def get_summary(self):
        res = []
        path_dir = self.mars_config.get_base_path()
        snap_times_list = os.listdir(path_dir)
        snap_times_list.sort(reverse=True)

        for snap_time in snap_times_list:
            try:
                time_stamp = int(snap_time)
                time_str = time.strftime('%Y-%m-%d %H:%M:%S',
                                         time.localtime(time_stamp))
                cur_summary = {
                    'time':
                    time_str,
                    GROUPS_NAME:
                    len(get_group(self.mars_config, snap_time)),
                    DEVICE_NAME:
                    len(get_devices(self.mars_config, snap_time)),
                    DEVICE_CONFIG_NAME:
                    len(get_devices_configs(self.mars_config, snap_time)),
                    HOSTS_NAME:
                    len(get_host(self.mars_config, snap_time)),
                    LINKS_NAME:
                    len(get_link(self.mars_config, snap_time)),
                    FLOW_NAME:
                    len(get_flow(self.mars_config, snap_time)),
                }
                res.append(cur_summary)
            except ValueError as e:
                pass

        return res
コード例 #6
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def host_up(ctx, force, restart, recreate, context=None):
    if context is None:
        context = ctx
    host_name = context.parent.parent.params.get('host')
    host = utils.get_host(host_name)
    host.config = utils.get_host_config(host_name)
    host.up()
コード例 #7
0
ファイル: server.py プロジェクト: Cyned/ProxyServer
def google_page(path='zapretno.info/klip-haski-iuda'):
    logger.info(f'Fetching {path}')
    if 'localhost' in request.host_url:
        if not path.startswith('http'):
            path = 'http://' + path
        domain, suffix = get_host(path)
        domain = f'http://{domain}'
    else:
        domain, suffix = request.host_url, path
    resp = requests.get(f'{domain}{suffix}',
                        stream=True,
                        params=request.args,
                        timeout=5)
    all_urls = find_all_relative_urls(
        resp.content.decode('utf-8', errors='ignore'))
    logger.info('Urls in the web page: ' + str(all_urls))

    if all_urls:
        new_content = replace_with_host(
            urls=all_urls,
            host=domain,
            content=resp.content.decode(encoding='utf-8'))
        logger.info('Get new content')
        resp._content = new_content.encode('utf-8')

    logger.info(f'Got {resp.status_code} response from {path}')
    return Response(generate(response=resp), )
コード例 #8
0
    def set_neighbours(self):
        """
        条件に沿ったnodeを検索する.

        See Also
        ----------
        NEIGHBOURS_IP_RANGE_NUM : tuple
            NEIGHBOURS_IP_RANGE_NUM[0] : int
                start_ip_range
            NEIGHBOURS_IP_RANGE_NUM[1] : int
                end_ip_range

        BLOCKCHAIN_PORT_RANGE : tuple
            BLOCKCHAIN_PORT_RANGE[0] : int
                start_port
            BLOCKCHAIN_PORT_RANGE[1] : int
                end_port
        """
        self.neighbours = utils.find_neighbours(utils.get_host(), self.port,
                                                NEIGHBOURS_IP_RANGE_NUM[0],
                                                NEIGHBOURS_IP_RANGE_NUM[1],
                                                BLOCKCHAIN_PORT_RANGE[0],
                                                BLOCKCHAIN_PORT_RANGE[1])
        logger.info({
            "action": "set_neighbours",
            "neighbours": self.neighbours
        })
コード例 #9
0
ファイル: collect_ip.py プロジェクト: source99/addict
def send_ip_db(ip_src, session, user):
    global count
    hostname = "unknown host"
    try:
        hostname = socket.gethostbyaddr(ip_src)
    except socket.herror:
        hostname = "unknown"

#    print "{} : packet from ip={} : hostname={}".format(count,str(ip_src), hostname[0])
    subnet = "{}.0/24".format(ip_src.rsplit(".",1)[0])
    new_ip = IPAddress(IP=ip_src)
    new_subnet = Subnet(subnet=subnet)
    try:
        session.add(new_ip)
        session.commit()
        print "adding new ip {} : {}".format(ip_src, get_host(ip_src))
    except IntegrityError:
#        print "could not add new_ip because of integrity error - {}".format(new_ip.IP)
        session.rollback()
        new_ip = session.query(IPAddress).filter(IPAddress.IP==ip_src)[0]
    try:
        session.add(new_subnet)
        session.commit()
        #print "subnet = {}".format(subnet.replace("/24",""))
        #print "adding new subnet {} : {}".format(subnet, get_host(subnet.replace("/24","")))
    except IntegrityError:
        session.rollback()
        new_subnet = session.query(Subnet).filter(Subnet.subnet==subnet)[0]

    new_visit = VisitByUser(user=user,IP=new_ip, subnet = new_subnet, dateTime=datetime.datetime.now())
    session.add(new_visit)
    session.commit()

    count += 1
コード例 #10
0
		def goto_login():
			next = request.args.get('next', '')
			if get_host(next) != request.host:
				return redirect('/')

			params = urllib.urlencode({'next':next.encode('utf-8')})
			url = '%s?%s' % (ACCOUNTS_LOGIN, params)
			return redirect(url)
コード例 #11
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def remove(ctx):
    workspace = Workspace(utils.get_host(ctx.parent.params.get('host')))
    try:
        workspace.remove()
        return
    except subprocess.CalledProcessError as e:
        click.echo('Unable to remove the workspace.', err=True)
        exit(1)
コード例 #12
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def host_docker_env(ctx, host_name):
    if host_name is None:
        host_name = ctx.parent.parent.params.get('host')
    host = utils.get_host(host_name)
    host.config = utils.get_host_config(host_name)
    try:
        host.ping()
        click.echo('Running')
    except base_host.HostDownException:
        click.echo("Stopped'")
コード例 #13
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def state(ctx):
    workspace = Workspace(utils.get_host(ctx.parent.params.get('host')))
    state = None
    try:
        state = workspace.state
    except base_host.HostDownException:
        state = 'host-down'
    except subprocess.CalledProcessError as e:
        click.echo('Unable to get workspace state.', err=True)
        exit(1)
    click.echo(state)
コード例 #14
0
ファイル: analyzer.py プロジェクト: a-tsvetkov/yandex-test
    def backend_connect(self, timestamp, request_id, replica_set_id, request_url):
        """
        Process BackendConnect event

        Extract host here for optimisation puropose
        """

        host = utils.get_host(request_url)
        self.open_requests[request_id].backend_connect(replica_set_id, host)

        if replica_set_id not in self.backend_stats:
            self.backend_stats[replica_set_id] = ReplicaSetStat(replica_set_id)
        self.backend_stats[replica_set_id].backend_connect(host)
コード例 #15
0
ファイル: _163.py プロジェクト: qlmgg/rap
def thumb_up_163(post_url, src):
    logger = utils.RAPLogger(post_url)
    sess = utils.RAPSession(src)

    resp = sess.get(post_url)
    resp = sess.post(src['extra']['target_url'],
                     headers={
                         'Referer': post_url,
                         'Host': utils.get_host(post_url),
                         'X-Requested-With': 'XMLHttpRequest',
                     })
    logger.info(resp.content)
    return (True, str(logger))
コード例 #16
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def ssh_command(ctx, command, force, cmd=None, context=None):
    if context is None:
        context = ctx
    host_name = context.parent.parent.params.get('host')
    host = utils.get_host(host_name)
    host.config = utils.get_host_config(host_name)
    try:
        click.echo(' '.join(host.ssh_command(command=cmd)))
        return
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
        ctx.invoke(ssh, command=command, force=force, cmd=cmd, context=context)
コード例 #17
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def ssh_config(ctx, force, context=None):
    if context is None:
        context = ctx
    host_name = context.parent.parent.params.get('host')
    host = utils.get_host(host_name)
    host.config = utils.get_host_config(host_name)
    try:
        click.echo(host.flat_ssh_config)
        return
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
        ctx.invoke(ssh_config, force=force, context=context)
コード例 #18
0
 def __init__(self, my_port=50082, c_host=None, c_port=None, callback=None):
     self.client_state = STATE_INIT
     print('Initializing ClientCore...')
     self.my_ip = utils.get_host()
     print('Server IP address is set to ... ', self.my_ip)
     self.my_port = my_port
     self.my_core_host = c_host
     self.my_core_port = c_port
     self.blockchain = BlockChain()
     self.wallet = Wallet()
     self.cm = ConnectionManager4Edge(self.my_ip, self.my_port, c_host,
                                      c_port, self.__handle_message)
     self.callback = callback
コード例 #19
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def build(ctx, no_cache, force, context=None):
    if context is None:
        context = ctx
    host = utils.get_host(context.parent.params.get('host'))
    workspace = Workspace(host)
    try:
        workspace.build(no_cache=no_cache)
        return
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
    except WorkspaceDownException:
        workspace.up()
    ctx.invoke(build, no_cache=no_cache, force=force, context=context)
コード例 #20
0
ファイル: backchina.py プロジェクト: qlmgg/rap
def reply_backchina_forum(post_url, src):
    """倍可亲回复模块

    @param sess:    requests.Session()
    @type sess:     Session

    @param post_url:   帖子地址
    @type post_url:    str

    @param src:        用户名,密码,回复内容,等等。
    @type src:         dict

    @return:           是否登录成功
    @rtype:            bool

    """
    # Returnable logger
    logger = utils.RAPLogger(post_url)
    host = utils.get_host(post_url)
    sess = utils.RAPSession(src)

    # Step 1: 登录
    if not login_backchina(sess, src):
        logger.error(' Login Error')
        return (False, str(logger))
    logger.info(' Login OK')

    # Step 2: Load post page
    # 获取所需发帖页面,查找与{'id':'fastpostform'}匹配的form标签
    resp = sess.get(post_url)
    soup = BeautifulSoup(resp.content)
    form = soup.find('form', attrs={'id': 'fastpostform'})

    # Step 3: Submit
    # 回复内容
    payload = utils.get_datadic(form)
    if 'subject' in src:
        payload['subject'] = src['subject']
    payload['message'] = src['content']

    #发送post包
    resp = sess.post(host + form['action'], data=payload)

    #判断回帖后页面是否含有回帖内容,若存在则证明回帖成功,否则失败
    if src['content'] in resp.content:
        logger.info('Reply OK')
    else:
        logger.error('Reply Error: Reply Error, please try again !')
        return (False, str(logger))
    return (True, str(logger))
コード例 #21
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def host_docker_env(ctx, shell, host_name):
    if host_name is None:
        host_name = ctx.parent.parent.params.get('host')
    host = utils.get_host(host_name)
    host.config = utils.get_host_config(host_name)
    try:
        host.ping()
        output = [
            'export DOCKER_HOST="tcp://{}:2375"'.format(host.ip),
            'export DOCKER_MACHINE_NAME="{}"'.format(host_name),
        ]
        click.echo('\n'.join(output))
    except base_host.HostDownException:
        click.echo("echo 'Host is down!'")
コード例 #22
0
def post_wailaike_forum(post_url, src):
    """ 外来客论坛发主贴函数

    @param post_url:   板块地址 如:http://www.wailaike.net/group_post?gid=1
    @type post_url:    str

    @param src:        用户名,密码,标题,主帖内容,等等。用户名:[email protected] 密码:wenshen4921119
    @type src:         dict

    @return:           是否发帖成功,帖子URL
    @rtype:            bool,str

    """
     # Returnable logger
    logger = utils.RAPLogger(post_url)
    host = utils.get_host(post_url)
    sess = utils.RAPSession(src)

    # Step 1: 登录
    if not login_wailaike(sess, src):
        logger.error(' Login Error')
        return ('', str(logger))
    logger.info(' Login OK')
    gid = re.findall(r'gid=(\d*)', post_url)[0]
    resp = sess.get('http://www.wailaike.net/newpost?gid='+gid)
    soup = BeautifulSoup(resp.content)
    # 获得发帖form
    form = soup.find('form', attrs={'id': 'editor'})
    # 构造回复参数
    payload = utils.get_datadic(form)
    payload['title'] = src['subject'].decode('utf8').encode(CHARSET)
    payload['rstbody'] = src['content'].decode('utf8').encode(CHARSET)

    resp = sess.get('http://www.wailaike.net/time.php')
    payload['time'] = re.findall('"time":"(.*?)"', resp.content)[0]

    # 发送发帖post包
    resp = sess.post('http://www.wailaike.net/newpost?gid='+gid, data=payload)

    # By sniper 2015-2-1
    # 标题中的'('和')'等需要在正则表达式中转义
    # 如:[转帖]ZT) 汉服是FQ闹的大笑话
    subject = re.escape(src['subject'])
    url = re.findall(r'<h3 class="titles-txt"><a href=\"(.*?)\" target="_blank">' + subject + '</a></h3>',resp.content)[0]
    url = "http://www.wailaike.net" + url
    # 如果url未成功匹配,则抛出异常,Post Error

    logger.info(' Post OK')
    return (url, str(logger))
コード例 #23
0
ファイル: canyu.py プロジェクト: qlmgg/rap
def reply_canyu(post_url, src):
    """参与网回帖模块
    @author: sky
    @since: 2015-01-05

    @param sess:    requests.Session()
    @type sess:     Session

    @param post_url:   帖子地址
    @type post_url:    str

    @param src:        用户名,密码,回复内容,等等。
    @type src:         dict

    @return:           是否登录成功
    @rtype:            bool
    """

    logger = RAPLogger(post_url)

    host = get_host(post_url)
    sess = RAPSession(src)

    # Step 1: 获取回帖页面
    resp = sess.get(post_url)
    soup = BeautifulSoup(resp.content)
    form = soup.find('form', attrs={'id': 'remarkForm'})

    # Step 2: 提交回帖
    # 回复内容
    payload = {}
    payload = get_datadic(form)
    payload['face'] = '1'
    payload['body'] = src['content'].decode('utf8').encode(CHARSET)
    if 'nickname' in src:
        payload['username'] = src['nickname'].decode('utf8').encode(CHARSET)
    else:
        payload['username'] = u'匿名'.encode(CHARSET)
    #发送post包
    resp = sess.post(host + form['action'], data=payload)
    #再次请求原网页,查看是否已经有回帖内容
    resp = sess.get(post_url)
    #判断回帖后页面是否含有回帖内容,若存在则证明回帖成功,否则失败
    if src['content'].decode('utf8').encode(CHARSET) in resp.content:
        logger.info('Reply OK')
    else:
        logger.error('Reply Error, please try again !')
        return (False, str(logger))
    return (True, str(logger))
コード例 #24
0
ファイル: powerapple.py プロジェクト: qlmgg/rap
def post_powerapple_forum(post_url, src):
    """ 超级苹果论坛发主贴函数

    @param post_url:   板块地址 如:http://bbs.powerapple.com/forum.php?mod=forumdisplay&fid=50
    @type post_url:    str

    @param src:        用户名,密码,标题,主帖内容,等等。
    @type src:         dict

    @return:           是否发帖成功,帖子URL
    @rtype:            bool,str

    """
    logger = utils.RAPLogger(post_url)
    host = utils.get_host(post_url)
    sess = utils.RAPSession(src)

    # Step 1: 登录
    if not login_powerapple(sess, src):
        logger.error(' Login Error')
        return ('', str(logger))
    logger.info(' Login OK')
    # Step 2: Load post page
    fid = re.findall(r'fid=(\d+)', post_url)[0]
    # 获取所需发帖页面,查找与{'id':'fastpostform'}匹配的form标签
    resp = sess.get(
        'http://bbs.powerapple.com/forum.php?mod=post&action=newthread&fid=' +
        fid)
    soup = BeautifulSoup(resp.content)
    form = soup.find('form', attrs={'id': 'postform'})

    # Step 3: Submit
    # 回复内容
    payload = get_datadic(form)
    payload['subject'] = src['subject']
    payload['message'] = src['content']
    payload['typeid'] = '138'
    #发送post包
    resp = sess.post(host + form['action'], data=payload)
    #获取回帖页面content的HTML

    print_to_file(resp.content)
    #判断回帖后页面是否含有回帖内容,若存在则证明回帖成功,否则失败
    if src['subject'] in resp.content:
        logger.info('Post OK')
    else:
        logger.error('Reply Error: please try again !')
        return ('', str(logger))
    return (resp.url, str(logger))
コード例 #25
0
 def init_snap_data(self, snap_time_str):
     print('Start to trace the ' +
           UseStyle(snap_time_str, fore='green', mode='underline') +
           ' snap data\n')
     snap_time = format_time_string_2_number(snap_time_str)
     self.snap_time = snap_time
     self.device_config_obj = DeviceConfigs.initialize_with(
         self.mars_config, get_devices_configs(self.mars_config, snap_time))
     self.hosts_obj = Hosts.initialize_with(
         self.mars_config, get_host(self.mars_config, snap_time))
     self.group_obj = Groups.initialize_with(
         self.mars_config, get_group(self.mars_config, snap_time))
     self.flow_obj = Flows.initialize_with(
         self.mars_config, get_flow(self.mars_config, snap_time))
     self.link_obj = Links.initialize_with(
         self.mars_config, get_link(self.mars_config, snap_time))
コード例 #26
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def ssh_command(ctx, command, force, recreate, cmd=None, context=None):
    if context is None:
        context = ctx
    host = utils.get_host(context.parent.params.get('host'))
    workspace = Workspace(host)
    try:
        if recreate:
            workspace.recreate()
        click.echo(' '.join(workspace.ssh_command(cmd)))
        return
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
    except WorkspaceDownException:
        workspace.up()
    ctx.invoke(ssh, command=command, force=force, recreate=recreate, cmd=cmd, context=context)
コード例 #27
0
 def __init__(self,
              my_port=50082,
              core_node_host=None,
              core_node_port=None):
     self.server_state = STATE_INIT
     print('Initializing server...')
     self.my_ip = utils.get_host()
     print('Server IP address is set to ... ', self.my_ip)
     self.my_port = my_port
     self.cm = ConnectionManager(self.my_ip, self.my_port,
                                 self.__handle_message)
     self.core_node_host = core_node_host
     self.core_node_port = core_node_port
     self.miners_wallet = Wallet()
     self.blockchain = BlockChain(self.miners_wallet.blockchain_address)
     self.mining_semaphore = threading.Semaphore(1)
     self.__print_info()
コード例 #28
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def host_ip(ctx, force, restart, recreate, context=None):
    if context is None:
        context = ctx
    host_name = context.parent.parent.params.get('host')
    host = utils.get_host(host_name)
    host.config = utils.get_host_config(host_name)
    try:
        ip = host.ip
        if recreate:
            recreate = force or click.confirm("Are you sure you want to recreate '{}'?".format(host.name))
            if not recreate:
                return
            host.recreate()
        elif restart:
            host.restart()
        click.echo(ip)
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
        ctx.invoke(host_ip, force=True, restart=restart, recreate=recreate, context=context)
コード例 #29
0
ファイル: _1dpw.py プロジェクト: qlmgg/rap
def post_1dpw_forum(post_url, src):
    """ 加国华人网发主贴函数

    @param post_url:   板块地址 如:http://bbs.1dpw.com/forum-71-1.html
    @type post_url:    str

    @param src:        用户名,密码,标题,主帖内容,等等。
    @type src:         dict

    @return:           是否发帖成功,帖子URL
    @rtype:            bool,str

    """
    host = utils.get_host(post_url)
    logger = utils.RAPLogger(post_url)
    sess = utils.RAPSession(src)
    # Step 1: 登录
    if not login_1dpw(post_url, sess, src):
        logger.error(' Login Error')
        return ('', str(logger))
    logger.info(' Login OK')

    resp = sess.get(post_url)
    soup = BeautifulSoup(resp.content)
    # 获得回复form
    form = soup.find('form', attrs={'id': 'fastpostform'})
    # 构造回复参数
    payload = utils.get_datadic(form)
    payload['subject'] = src['subject']
    payload['message'] = src['content']
    payload['posttime'] = int(time.time())
    # 发送登录post包
    resp = sess.post(host + form['action'] + '&inajax=1', data=payload)
    # 若指定字样出现在response中,表示发帖成功
    if '主题已发布' not in resp.content:
        logger.error(' Post Error')
        return ('', str(logger))
    logger.info(' Post OK')
    url = host + re.findall(r'succeedhandle_fastnewpost\(\'(.*?)\'', resp.content)[0]
    print url
    return (url, str(logger))
コード例 #30
0
def reply_creaders_news(post_url, src):
    logger = utils.RAPLogger(post_url)
    host = utils.get_host(post_url)
    s = utils.RAPSession(src)

    r = s.get(post_url)
    payload = {
        'news_id': re.findall('news_id=(\d+)', r.content)[0],
        'r_nid': re.findall('r_nid=(\d+)', r.content)[0],
        'username': src['username'],
        'password': src['password'],
        'replyid': 0,
        # The charset of this page is `gb2312` absolutely, but it seems that
        # `saytext` receives `utf8` only.
        'saytext': src['content'],
    }
    r = s.post(host + '/headline/postcomment.php', data=payload)
    if u'评论成功'.encode('gb2312') not in r.content:
        logger.error('Reply Error')
        return (False, str(logger))
    logger.info('Reply OK')
    return (True, str(logger))
コード例 #31
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def host_ssh(ctx, command, force, restart, recreate, cmd=None, context=None):
    if context is None:
        context = ctx
    host_name = context.parent.parent.params.get('host')
    host = utils.get_host(host_name)
    host.config = utils.get_host_config(host_name)
    try:
        host.ping()
        if recreate:
            recreate = force or click.confirm("Are you sure you want to recreate '{}'?".format(host.name))
            if not recreate:
                return
            host.recreate()
        elif restart:
            host.restart()
        result = host.ssh(command=cmd, stdout=True)
        if result is not None:
            click.echo(''.join(result))
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
        ctx.invoke(host_ssh, command=command, force=True, restart=restart, recreate=recreate, cmd=cmd, context=context)
コード例 #32
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def ssh(ctx, force, recreate, rebuild, command=False, cmd=None, context=None):
    if context is None:
        context = ctx
    host = utils.get_host(context.parent.params.get('host'))
    workspace = Workspace(host)
    try:
        if rebuild:
            workspace.build()
            recreate = True
        if recreate:
            workspace.recreate()
            sleep(1)
        workspace.ssh(command=cmd)
        return
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
    except WorkspaceDownException:
        workspace.up()
    except ssh_utils.SshException as e:
        exit(e.returncode)
    ctx.invoke(ssh, force=force, recreate=recreate, rebuild=rebuild, command=command, cmd=cmd, context=context)
コード例 #33
0
    def show_snap_hosts(self, snap_time_str):
        print_normal('Show the ' +
                     UseStyle(snap_time_str, fore='green', mode='underline') +
                     ' hosts.')

        snap_time = format_time_string_2_number(snap_time_str)
        host_obj = Hosts.initialize_with(self.mars_config,
                                         get_host(self.mars_config, snap_time))
        devices_config_obj = DeviceConfigs.initialize_with(
            self.mars_config, get_devices_configs(self.mars_config, snap_time))

        for device_config in devices_config_obj.get_data():
            print_normal_start('Device Name : ' + device_config['name'],
                               color='yellow')
            for host in host_obj.get_data():
                for location in host['locations']:
                    if location['elementId'] == device_config['id']:
                        print_normal_center(
                            host_to_line_string(host, devices_config_obj))

            print_normal_end('')
            print_normal('')
コード例 #34
0
ファイル: _1dpw.py プロジェクト: qlmgg/rap
def reply_1dpw_forum(post_url, src):
    """ 加国华人网发回复函数(10个字符)

    @param post_url:   帖子地址
    @type post_url:    str

    @param src:        用户名,密码,内容,等等。
    @type src:         dict

    @return:           是否回复成功
    @rtype:            bool

    """
    host = utils.get_host(post_url)
    logger = utils.RAPLogger(post_url)
    sess = utils.RAPSession(src)
    # Step 1: 登录
    if not login_1dpw(post_url, sess, src):
        logger.error(' Login Error')
        return (False, str(logger))
    logger.info(' Login OK')

    resp = sess.get(post_url)
    soup = BeautifulSoup(resp.content)
    # 获得回复form
    form = soup.find('form', attrs={'id': 'fastpostform'})
    # 构造回复参数
    payload = utils.get_datadic(form)
    payload['message'] = src['content']
    payload['posttime'] = int(time.time())
    # 发送登录post包
    resp = sess.post(host + form['action'] + '&inajax=1', data=payload)
    # 若指定字样出现在response中,表示发帖成功
    if 'Database' not in resp.content:
        logger.error(' Reply Error')
        return (False, str(logger))
    logger.info(' Reply OK')
    return (True, str(logger))
コード例 #35
0
ファイル: __init__.py プロジェクト: maikelvl/workspace
def up(ctx, recreate, rebuild, force, context=None):
    if context is None:
        context = ctx
    host = utils.get_host(context.parent.params.get('host'))
    try:
        if rebuild:
            workspace.build()
            recreate = True
        workspace = Workspace(host)
        if recreate:
            workspace.recreate()
            sleep(1)
        workspace.up()
        return
    except base_host.HostDownException:
        if not utils.confirm_host_up(force=force, host=host):
            return
    except ssh_utils.SshException as e:
        exit(e.returncode)
    except subprocess.CalledProcessError as e:
        click.echo('Unable to create the workspace', err=True)
        exit(1)
    ctx.invoke(up, recreate=recreate, rebuild=rebuild, force=force, context=context)
コード例 #36
0
ファイル: powerapple.py プロジェクト: qlmgg/rap
def reply_powerapple_forum(post_url, src):

    # Returnable logger
    logger = utils.RAPLogger(post_url)
    host = utils.get_host(post_url)
    sess = utils.RAPSession(src)

    # Step 1: 登录
    if not login_powerapple(sess, src):
        logger.error(' Login Error')
        return (False, str(logger))
    logger.info(' Login OK')
    # Step 2: Load post page
    # 获取所需发帖页面,查找与{'id':'fastpostform'}匹配的form标签
    resp = sess.get(post_url)
    soup = BeautifulSoup(resp.content)
    form = soup.find('form', attrs={'id': 'fastpostform'})

    # Step 3: Submit
    # 回复内容
    payload = get_datadic(form)
    if 'subject' in src:
        payload['subject'] = src['subject']
    payload['message'] = src['content']

    #发送post包
    resp = sess.post(host + form['action'], data=payload)
    #获取回帖页面content的HTML
    soup = BeautifulSoup(resp.content)

    #判断回帖后页面是否含有回帖内容,若存在则证明回帖成功,否则失败
    if src['content'] in resp.content:
        logger.info('Reply OK')
    else:
        logger.error('Reply Error: please try again !')
        return (False, str(logger))
    return (True, str(logger))
コード例 #37
0
ファイル: _163.py プロジェクト: qlmgg/rap
def reply_163_bbs(post_url, src):
    """ 网易论坛回复函数

        - Name:     网易论坛
        - Feature:  bbs.*.163.com/bbs/
        - Captcha:  YES
        - Login:    YES

    @param post_url:   帖子地址
    @type post_url:    str

    @param src:        用户名,密码,回复内容,等等。
    @type src:         dict
    
    @return:           是否回复成功
    @rtype:            bool

    """
    logger = utils.RAPLogger(post_url)
    sess = utils.RAPSession(src)

    # Step 1: 登录
    if not login_163(sess, src):
        logger.error(' Login Error')
        return (False, str(logger))
    logger.info(' Login OK')

    # Step 2: 验证码
    host = utils.get_host(post_url)
    logger.info(host)
    page = sess.get(post_url)
    # 获取各项参数
    board_id = re.findall('boardId = \"(.*?)\"', page.content)[0]
    thread_id = re.findall('threadId = \"(.*?)\"', page.content)[0]
    # 当前时间戳
    timestamp = str(time.time())
    # 询问是否需要验证码
    resp = sess.post(host + 'v2/post/replyCheck/' + board_id + '/' +
                     thread_id + '/?timestamp=' + timestamp,
                     headers={
                         'X-Requested-With': 'XMLHttpRequest',
                         'Origin': host,
                         'Referer': post_url,
                         'Accept-Language': 'zh-CN,zh;q=0.8,en;q=0.6'
                     })
    # 询问结果
    check_code = re.findall('\"checkCode\":\"(.*?)\",', resp.content)[0]
    logger.info(check_code)

    seccode = ''
    validate_sucess = False
    post_times = 0
    # 如果需要验证码
    if check_code == '1':
        # 询问验证码是否正确,如果不正确再次发送
        while not validate_sucess \
                and post_times < src['TTL']:
            # 限制最大发送次数
            post_times = post_times + 1
            # 获取验证码图片
            resp = sess.get(host + 'v2/checkcode/codeimg?timestamp=' +
                            timestamp,
                            headers={
                                'Accept': config.accept_image,
                                'Referer': post_url,
                            })
            # 获取验证码字符串
            seccode = utils.crack_captcha(resp.content)
            logger.info(' seccode:' + seccode)
            # 发送验证码,询问是否正确
            payload = {'code': seccode.encode('utf-8')}
            resp = sess.post(host + 'v2/checkcode/validate',
                             data=payload,
                             headers={
                                 'Origin': host,
                                 'Referer': post_url,
                             })
            logger.info(resp.content)
            validate_sucess = '"code":1' in resp.content

    # Step 3: 回复
    # 构造回复参数
    payload = {
        'checkcode': seccode,
        'content': src['content'].decode('utf8').encode(CHARSET),
        'title': re.findall('<title>(.*?)</title>', page.content)[0],
        'boardId': board_id,
        'threadId': thread_id
    }
    # 发送回复post包
    resp = sess.post(host + 'v2/post/doReply',
                     data=payload,
                     headers={
                         'Referer': post_url,
                     })
    # 若指定字样出现在response中,表示回复成功
    if '\"message\">' in resp.content:
        logger.error(' Reply Error ' + re.findall(
            '\"message\">(.*?)</td>', resp.content.decode(CHARSET))[0])
        return (False, str(logger))
    logger.info(' Reply OK')
    return (True, str(logger))
コード例 #38
0
ファイル: test_utils.py プロジェクト: Aloknayan/personfinder
 def test_get_host(self):
     host = 'foo.appspot.com'
     os.environ['HTTP_HOST'] = host
     assert utils.get_host() == host
     os.environ['HTTP_HOST'] = 'foo.' + host
     assert utils.get_host() == host
コード例 #39
0
ファイル: test_utils.py プロジェクト: waseem18/personfinder
 def test_get_host(self):
     host = 'foo.appspot.com'
     os.environ['HTTP_HOST'] = host
     assert utils.get_host() == host
     os.environ['HTTP_HOST'] = 'foo.' + host
     assert utils.get_host() == host
コード例 #40
0
def shutdown_server():
    global my_p2p_server
    my_p2p_server.shutdown()


def main(my_port, c_host, c_port):
    signal.signal(signal.SIGINT, signal_handler)
    global my_p2p_server
    my_p2p_server = ServerCore(my_port, c_host, c_port)
    my_p2p_server.start()
    my_p2p_server.join_network()


if __name__ == '__main__':
    from argparse import ArgumentParser
    parser = ArgumentParser()
    parser.add_argument('--c_host', default=get_host())
    parser.add_argument('--c_port', default=5000, type=int)
    parser.add_argument('-p',
                        '--port',
                        default=5001,
                        type=int,
                        help='port to listen on')

    args = parser.parse_args()
    c_host = args.c_host
    c_port = args.c_port
    port = args.port

    main(port, c_host, c_port)
コード例 #41
0
import pytest
import utils

@pytest.mark.parametrize("name", utils.get_services())
@pytest.mark.parametrize("host", utils.get_host())
def test_services(host, name):
    service = host.service(name)
    assert service.is_running
コード例 #42
0
"""

lr = 2e-2
parser.add_argument('--lr', type=float, default=lr)

device = str('cuda:{}'.
             format(gpu) if torch.cuda.is_available() and gpu != -1 else 'cpu')
parser.add_argument('--device', default=device)

num_epochs = 400
num_epochs = 2 if debug else num_epochs
parser.add_argument('--num_epochs', type=int, default=num_epochs)
"""
Other info.
"""
parser.add_argument('--user', default=get_user())

parser.add_argument('--hostname', default=get_host())

FLAGS = parser.parse_args()

COMET_EXPERIMENT = None
if FLAGS.use_comet_ml:
    hyper_params = vars(FLAGS)
    COMET_EXPERIMENT = Experiment(api_key=COMET_ML_APP_KEY,
                                  project_name=COMET_PROJECT_NAME)
    COMET_EXPERIMENT.log_parameters(hyper_params)
    COMET_EXPERIMENT.log_parameters(model_params)
    print("Experiment url, ", COMET_EXPERIMENT.url)
    COMET_EXPERIMENT.add_tag(FLAGS.dataset)
コード例 #43
0
ファイル: review_ip.py プロジェクト: source99/addict
for subnet in dontBlockSubnetsList:
    ignoreHosts.append(subnet.subnet)

IPs = session.query(distinct(IPAddress.IP)).all()

auto_block = [
        "twttr",
        "akamai",
        "fbcdn",
        "facebook",
        "1e100"
        ]


for IP in IPs:
    host = get_host(IP[0])
    if host:
        host = host[0]
        auto_block_bool = False
        for blocker in auto_block:
            if blocker in host:
                print "autoblocking : {} : {}".format(IP[0], get_host(IP[0]))
                auto_block_bool = True
        if not auto_block_bool:
            print "unknown : {} : {}".format(IP[0], get_host(IP[0]))
    else:
        print "could not resolve : {}".format(IP[0])


exit(-1)
コード例 #44
0
ファイル: aws.py プロジェクト: abhimanyu-babbar/xFlow
    def create_or_update_function(self,
                                  name,
                                  runtime,
                                  handler,
                                  description=None,
                                  zip_filename=None,
                                  s3_filename=None,
                                  local_filename=None,
                                  otherfiles=None):
        if zip_filename:
            zip_blob = utils.get_zip_contents(zip_filename)
            code = {'ZipFile': zip_blob}
            log.debug('source=zip, file=%s' % zip_filename)
        elif local_filename:
            zip_filename = utils.zip_file(local_filename,
                                          otherfiles=otherfiles)
            zip_blob = utils.get_zip_contents(zip_filename)
            code = {'ZipFile': zip_blob}
            log.debug('source=local, file=%s' % local_filename)
        elif s3_filename:
            bucket, key = utils.get_host(s3_filename), utils.get_path(
                s3_filename)
            if key.endswith('.zip'):
                code = {'S3Bucket': bucket, 'S3Key': key}
            else:
                filename = utils.get_resource(s3_filename)
                local_filename = self.download_from_s3(bucket, key, filename)
                zip_filename = utils.zip_file(local_filename,
                                              otherfiles=otherfiles)
                zip_blob = utils.get_zip_contents(zip_filename)
                code = {'ZipFile': zip_blob}
            log.debug('source=s3, file=%s' % s3_filename)
        else:
            log.error('Missing source')
            raise MissingSourceCodeFileError(
                "Must provide either zip_filename, s3_filename or local_filename"
            )

        try:
            _handler = '%s.%s' % (name, handler)
            self.awslambda\
                .update_function_configuration(FunctionName=name,
                                               Role=self.role_arn,
                                               Handler=_handler,
                                               Description=description or name,
                                               Timeout=self.timeout_time,
                                               Runtime=runtime,
                                               VpcConfig={
                                                'SubnetIds': self.subnet_ids,
                                                'SecurityGroupIds': self.security_group_ids
                                               })
            if zip_filename or local_filename:
                function = self.awslambda \
                               .update_function_code(FunctionName=name,
                                                     ZipFile=code['ZipFile'],
                                                     Publish=True)
            else:
                function = self.awslambda \
                               .update_function_code(FunctionName=name,
                                                     S3Bucket=code['S3Bucket'],
                                                     S3Key=code['S3Key'],
                                                     Publish=True)
            log.info("Lambda updated, lambda=%s" % name)
        except botocore.exceptions.ClientError as ex:
            if ex.response['Error']['Code'] == 'ResourceNotFoundException':
                _handler = '%s.%s' % (name, handler)
                # Amazon needs a few seconds to replicate the new role through
                # all regions. So creating a Lambda function just after the role
                # creation would sometimes result in botocore.exceptions.ClientError:
                # An error occurred (InvalidParameterValueException) when calling
                # the CreateFunction operation: The role defined for the function
                # cannot be assumed by Lambda.
                lambda_created = False
                last_ex = None
                for i in range(1, 10):
                    try:
                        function = self.awslambda \
                                       .create_function(FunctionName=name,
                                                        Runtime=runtime,
                                                        Role=self.role_arn,
                                                        Handler=_handler,
                                                        Description=description or name,
                                                        Timeout=self.timeout_time,
                                                        Publish=True,
                                                        Code=code,
                                                        VpcConfig={
                                                         'SubnetIds': self.subnet_ids,
                                                         'SecurityGroupIds': self.security_group_ids
                                                        })
                        log.info("Lambda created, lambda=%s" % name)
                        lambda_created = True
                        break
                    except botocore.exceptions.ClientError as exx:
                        if exx.response['Error'][
                                'Code'] == 'InvalidParameterValueException':
                            log.info(
                                'Retrying to create lambda, lambda=%s ...' %
                                name)
                            time.sleep(3)
                            last_ex = exx
                        else:
                            raise exx
                if not lambda_created:
                    raise last_ex
            else:
                raise ex

        function_arn = function['FunctionArn']
        return function_arn
コード例 #45
0
def reply_sina_club(post_url, src):
    """ 新浪论坛回复函数

        - Name:     新浪论坛18646492184
        - Feature:  (forum|club).*.sina.com.cn
        - Captcha:  YES
        - Login:    YES

    @param post_url:   帖子地址
    @type post_url:    str

    @param src:        用户名,密码,回复内容,等等。
    @type src:         dict
    
    @return:           是否回复成功
    @rtype:            bool

    """
    logger = utils.RAPLogger(post_url)
    sess = utils.RAPSession(src)

    # Step 1: 登录
    if not login_sina(sess, src):
        logger.error(' Login Error')
        return (False, str(logger))
    logger.info(' Login OK')

    # Step 2: 回复
    resp = sess.get(post_url)
    host = utils.get_host(post_url)
    # 获取回复地址
    reply_url = re.findall(r'id=\"postform\" action=\"(.*?)\"',
                           resp.content)[0]
    soup = BeautifulSoup(resp.content)
    # 获取回复form
    form = soup.find('form', attrs={'id': 'postform'})
    # 构造回复参数
    payload = utils.get_datadic(form)
    payload['message'] = src['content'].decode('utf8').encode(CHARSET)
    # 替换回复地址中的特殊符号
    reply_url = reply_url.replace('&amp;', '&')
    # 发送回复post包
    resp = sess.post(reply_url,
                     data=payload,
                     headers={
                         'Origin': utils.get_host(post_url),
                         'Referer': post_url
                     })
    post_times = 0
    # 验证是否成功,如果失败再次发送
    # 失败可能原因:验证码错误
    while 'postform' not in resp.content \
            and post_times < src['TTL']:
        # 限制最大发送次数
        post_times = post_times + 1
        logger.info(' reply need captcha')
        # 获取验证码图片
        captcha = sess.get(host + 'seccode.php',
                           headers={
                               'Accept': config.accept_image,
                               'Referer': reply_url
                           })
        # 获取验证码字符串
        seccode = utils.crack_captcha(captcha.content)
        logger.info(' seccode:' + seccode)
        # 回复参数中增加验证码
        payload['seccodeverify'] = seccode.decode(CHARSET)
        # 发送回复post包
        resp = sess.post(reply_url,
                         data=payload,
                         headers={
                             'Origin': utils.get_host(post_url),
                             'Referer': post_url
                         })
    # 若指定字样出现在response中,表示回复成功
    if 'postform' not in resp.content:
        logger.error(' Reply Error')
        return (False, str(logger))
    logger.info(' Reply OK')
    return (True, str(logger))
コード例 #46
0
	def jsonp(self):
		next = request.args.get('next') or '/'
		if get_host(next) != request.host:
			return ''

		return 'window.location.href="%s";' % next