Example #1
0
def get_search_options():

    driver = utils.start_driver('chrome')
    home_dir = str(pathlib.Path.home())
    session.login(driver, home_dir + '/plst.credential.json')
    utils.wait(3)

    filt_name_dict = {
        'level': 'SKILL LEVELS',
        'role': 'ROLES',
        'subject': 'SUBJECTS TO LEARN',
        'tool': 'TOOLS',
        'cert': 'CERTIFICATIONS',
        'author': 'AUTHORS',
    }

    try:

        for filt, filt_name in sorted(filt_name_dict.items()):
            opt_url_dict = search.get_filter_options_url(driver, filt_name)
            utils.save_json(opt_url_dict,
                            'search/filt_{}_urls.json'.format(filt))
            utils.wait(10)

    finally:
        session.logout(driver)
        utils.wait(3)
        utils.close_driver(driver)
Example #2
0
 def POST(self):
     data = web.input()
     ans, current_user = infoDBserver.check_user(userName = data.username, passwd = data.password)
     if ans:
         session.login(current_user.userId)
         raise web.seeother('/')
     else:
         page_info = PageInfo('Login',error = u'用户名密码错误!')
         return render.login(page_info)
Example #3
0
def get_course_videos(course_list, ncourse_max):

    cache_dir = 'cache'

    driver = utils.start_driver('chrome', download_dir=cache_dir)
    home_dir = str(pathlib.Path.home())
    session.login(driver, home_dir + '/plst.credential.json')
    utils.wait(3)

    try:
        ncourse = 0
        for line in open(course_list):
            if line.startswith('#'):
                continue
            course_id = line.rstrip()
            video_list, nmodule, nclip = load_course_video_list(course_id)
            nvideo = len(video_list)

            out_dir = 'courses/{}/videos'.format(course_id)
            os.makedirs(out_dir, exist_ok=True)

            if count_videos(out_dir) == nvideo:
                continue

            utils.print_message('get video of "{}" ({}/{}): {} modules and '
                                '{} clips'.format(course_id, ncourse + 1,
                                                  ncourse_max, nmodule, nclip))

            for module_id, clip_id, clip_url in video_list:
                video_url = course.get_video_url(driver, clip_url)
                video_basename = video_url.split('?')[0].split('/')[-1]
                video_name = '{}/{}.{}.{}'.format(out_dir, module_id, clip_id,
                                                  video_basename)
                utils.download_file(video_url, video_name, verbose=True)

            ndownload = count_videos(out_dir)
            if ndownload != nvideo:
                utils.print_message('*ERROR*: course "{}", expected {} clips, '
                                    'downloaded {}'.format(
                                        course_id, nvideo, ndownload))
                raise

            ncourse += 1
            utils.print_message(
                '----------------------------------------------')
            utils.wait(3)

            if ncourse == ncourse_max:
                break

    finally:
        session.logout(driver)
        utils.wait(3)
        utils.close_driver(driver)
Example #4
0
 def POST(self):
     data = web.input()
     ans, current_user = infoDBserver.check_user(userName = data.username, passwd = data.password)
     ##answer = True  ## waiting for delete
     ##current_user = default_user ## also should be changed
     if ans:
         session.login(current_user.userId)
         raise web.seeother('/')
     else:
         page_info = PageInfo('Login',error = '用户名密码错误!')
         return render.login(page_info)
Example #5
0
 def POST(self):
     data = web.input()
     ans, current_user = infoDBserver.check_user(userName=data.username,
                                                 passwd=data.password)
     ##answer = True  ## waiting for delete
     ##current_user = default_user ## also should be changed
     if ans:
         session.login(current_user.userId)
         raise web.seeother('/')
     else:
         page_info = PageInfo('Login', error='用户名密码错误!')
         return render.login(page_info)
Example #6
0
def test_login():
	session.clear()
	clear_test_user()
	user = ctrl_user_manager.register("ycat","passwtest",sex_type.Male,23)
	utility.check_log(user.user_id,"注册成功",1,0)
	utility.check_log(user.user_id,"登陆成功",1,1)
	user = ctrl_user_manager.register("ycat2","passwtest",sex_type.Female,35)
	utility.check_log(user.user_id,"注册成功",1,0)
	utility.check_log(user.user_id,"登陆成功",1,1)
	assert 2 == len(session.g_session_data)
	assert not session.login("noexit","passwtest")
	utility.check_log(-1,"noexit登陆失败",0)
	user = session.login("ycat","passwtest")
	#utility.check_log(user.user_id,"登陆成功",1)
	ycatID = user.session_id
	utility.set_session_id(user.session_id)
	assert user
	assert user == session.get()
	assert user.sex == 1
	assert user.nickname == "ycat"
	assert user.user_id != 0
	assert 23 == user.age
	assert user.certf_state == 0
	#session.clear()
	
	user = session.login("ycat2","passwtest")
	utility.set_session_id(user.session_id)
	assert user
	assert user.sex == 0
	assert user.nickname == "ycat2"
	assert user.user_id != 0
	assert user.certf_state == 0
	assert user == session.get()
	assert 2 == len(session.g_session_data)
	session.logout()
	assert not session.get()
	assert 1 == len(session.g_session_data)
	assert session.g_session_data[ycatID].session_id == ycatID
	
	assert 35 == user.age
	
	for i in range(10):
		assert session._is_repeat_login("ycat","passwtest")
		assert not session._is_repeat_login("ycat","passwtest_wrong")
		assert session.login("ycat","passwtest") #repeat login but session keep same 
	assert 1 == len(session.g_session_data)
	
	session.clear();

	clear_test_user()
Example #7
0
 def POST(self):
     data = web.input()
     if data.password != data.password_confirm:
         page_info = PageInfo('Register',error = 'two passwords are not same')
         return render.register(page_info)
     else:
         answer, temp_user = infoDBserver.insert_user(userName = data.username, pwd = data.password, mail = data.email)
         ##answer = True ## waiting for delete
         ##id = 1 ##
         if answer:
             ##session.login(temp_user.id)
             session.login(temp_user.userId)
             raise web.seeother('/')
         else:
             page_info = PageInfo('Register',error = 'input error')
             return render.register(page_info)
Example #8
0
def test_routers():
    req = session.login()
    for r in routers:
        _path = session.sub_path(r)
        print _path
        r = req.get(_path)
        assert r.status_code == 200
Example #9
0
def web_login(nickname,password):
	global g_loginFailedCountLock
	if not g_loginFailedCountLock:
		g_loginFailedCountLock = threading.RLock()
		utility.get_timer().setInterval(auto_del_timer,30*60*1000)
	
	key = nickname			
	if key:
		g_loginFailedCountLock.acquire()
		count = 0
		if key in g_loginFailedCount:
			count = g_loginFailedCount[key]
		g_loginFailedCountLock.release() 
		if count >= 20:
			utility.write_log(-1,nickname+"登陆次数过多"+str(count),0)
			return {"result":"false","msg":"登陆次数过多,请30分钟后重试"}		
	
	user = session.login(nickname,password)
	 
	if user:
		g_loginFailedCountLock.acquire()
		if key in g_loginFailedCount:
			del g_loginFailedCount[key];
		g_loginFailedCountLock.release()
		return {"result":"true","msg":(user.nickname+", 欢迎您回来"),"session":user.session_id}	
	else:
		g_loginFailedCountLock.acquire()
		if key in g_loginFailedCount:
			g_loginFailedCount[key]+=1
		else:
			g_loginFailedCount[key]=1
		g_loginFailedCountLock.release()
		return {"result":"false","msg":"用户名或密码不正确"}
Example #10
0
 async def poller(stream):
     sreader = asyncio.StreamReader(stream)
     i = 0
     while True:
         await scheduling.wait()  #and await disconnect.wait()
         b = await sreader.read(1)
         if b:
             try:
                 b.decode('utf-8')
             except UnicodeError:
                 await asyncio.sleep(0)
                 continue
             if (b == dfl.ESC_CHAR.encode()
                     and stream.__class__.__name__ == 'UART'
                     and not session.logging):
                 i += 1
                 if i > 2:
                     asyncio.create_task(session.login(m, stream))
                     session.logging = True
             elif (b == b'\x1b' and
                   (stream.__class__.__name__ == 'UART' and session.loggedin
                    or stream.__class__.__name__ == 'USB_VCP')
                   and not menu.interactive):
                 asyncio.create_task(menu.main(m, stream, devs))
                 m.set(b)  # Passes ESC to menu.
                 menu.interactive = True
             else:
                 m.set(b)
                 i = 0
         await asyncio.sleep_ms(100)
def get_search_option_courses():

    driver = utils.start_driver('chrome')
    home_dir = str(pathlib.Path.home())
    session.login(driver, home_dir + '/plst.credential.json')
    utils.wait(3)

    filt_name_dict = {
        'role': 'ROLES',
        'subject': 'SUBJECTS TO LEARN',
        'tool': 'TOOLS',
        'cert': 'CERTIFICATIONS',
        # 'level': 'SKILL LEVELS',
        # 'author': 'AUTHORS',
    }

    try:

        for filt, filt_name in sorted(filt_name_dict.items()):
            opt_url_dict = utils.load_json(
                'search/filt_{}_urls.json'.format(filt))
            out_dir = 'search/filt_{}_courses'.format(filt)
            os.makedirs(out_dir, exist_ok=True)

            opt_index = 0
            nopt = len(opt_url_dict)
            for opt, url in sorted(opt_url_dict.items()):
                opt_index += 1
                fname_json = '{}/{}.json'.format(out_dir, opt_index)
                if os.path.isfile(fname_json):
                    continue
                # if opt_index >= 10:
                #     break
                utils.print_message(
                    'get all courses with filt={}, option={} ({}/{})'.format(
                        filt, opt, opt_index, nopt))
                course_id_list = search.get_all_courses_per_option(
                    driver, url, wait_time=10)
                opt_courses_dict = {opt: course_id_list}
                utils.save_json(opt_courses_dict, fname_json)
                utils.wait(20)

    finally:
        session.logout(driver)
        utils.wait(3)
        utils.close_driver(driver)
Example #12
0
 def POST(self):
     data = web.input()
     if data.password != data.password_confirm:
         page_info = PageInfo('Register',
                              error='two passwords are not same')
         return render.register(page_info)
     else:
         answer, temp_user = infoDBserver.insert_user(
             userName=data.username, pwd=data.password, mail=data.email)
         ##answer = True ## waiting for delete
         ##id = 1 ##
         if answer:
             ##session.login(temp_user.id)
             session.login(temp_user.userId)
             raise web.seeother('/')
         else:
             page_info = PageInfo('Register', error='input error')
             return render.register(page_info)
Example #13
0
def test_post_bas():
    bas = dict(
            ip_addr="192.168.88.1",bas_name="stdbas",
            bas_secret="123456",vendor_id='14988',
            coa_port='3799',time_type='0'
        )
    print 'post bas',bas
    req = session.login()
    r = req.post(session.sub_path("/bas/add"),bas)
    assert r.status_code == 200
Example #14
0
def test_post_bas():
    bas = dict(ip_addr="192.168.88.1",
               bas_name="stdbas",
               bas_secret="123456",
               vendor_id='14988',
               coa_port='3799',
               time_type='0')
    print 'post bas', bas
    req = session.login()
    r = req.post(session.sub_path("/bas/add"), bas)
    assert r.status_code == 200
Example #15
0
    def run(self):
        # login each session
        for session in self.sessions.itervalues():
            session.login()
            self.userQueue.get()
            self.userQueue.task_done()
        
        # loop for sessions to keep connect
        while not self.threadStop:
            time.sleep(1)
            self.intCnt += 1
            if self.intCnt == self.interval:
                self.intCnt = 0
                for session in self.sessions.itervalues():
                    session.keep_connect()

        # stop and logout
        for session in self.sessions.itervalues():
            session.logout()
        self.sessions.clear()
def checkin(update, context):
    """Check in for current user and send check in result when checkin command used"""

    try:
        checkin_url = base_url + "user/checkin"
        checkin = session.login().post(checkin_url)
    except requests.exceptions.RequestException:
        error(update, context)

    result = json.loads(checkin.text)
    message = re.sub("<br/>", '\n', result["msg"])

    context.bot.send_message(chat_id=update.effective_chat.id, text=message)
def usage(update, context):
    """Query data usage for current use and send usage info when usage command used"""

    try:
        usage_url = base_url
        usage = session.login().get(usage_url)
    except requests.exceptions.RequestException:
        error(update, context)

    result = BeautifulSoup(usage.text).body.findAll('code')
    usage_info = tuple(i.text for i in result)
    message = "用户:%s\n等级:%s\n过期时间:%s\n总流量:%s\n已用流量:%s\n剩余流量:%s" % usage_info

    context.bot.send_message(chat_id=update.effective_chat.id, text=message)
Example #18
0
def main():
    ''' Parse and execute user desired functions
    '''
    global VERBOSE

    parser = argparse.ArgumentParser(
        description='Wrapper around the op (1password) utility')
    parser.add_argument('-v',
                        '--verbose',
                        action='store_true',
                        help='Print out debug information.')

    subparsers = parser.add_subparsers(help='Sub command options')

    # peyop list
    list_parse = subparsers.add_parser('list', description='List all items')
    list_parse.set_defaults(user_func=user_list)

    # peyop get [item]
    get_parse = subparsers.add_parser('get',
                                      description='Get a particular item')
    get_parse.add_argument('item',
                           type=str,
                           help='An item to search for in the vault.')
    get_parse.set_defaults(user_func=user_get)

    parser.add_argument('user', type=str, help='1password user name.')
    # Do the parsing
    args = parser.parse_args()

    VERBOSE = args.verbose

    # All commands require us to do a login
    login(args.user)

    args.user_func(args)
Example #19
0
def url_index():
	nick = bottle.request.get_cookie("uname",secret="abc123")
	pwd = bottle.request.get_cookie("pwd",secret="abc123")
	if nick and pwd:
		#保存了cookies
		user = session.login(nick,pwd)
		if user:
			bottle.response.set_cookie('session',user.session_id)
			bottle.redirect("/index2")
			return
	
	d = session.get_dist2()
	d["register"] = utility.get_template_file("views/register.tpl",d)
	d["login"] = utility.get_template_file("views/login.tpl",d)
	return bottle.template('index', d)
Example #20
0
def test_post_member_100():
    req = session.login()
    r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元"))
    assert r0.status_code == 200
    pid0 = r0.json()['pid']

    for i in range(100):
        memberi = member.copy()
        memberi['member_name'] = 'ppmuser%s' % (i + 1)
        memberi['realname'] = u"测试包月用户%s" % (i + 1)
        memberi['account_number'] = 'ppm%s' % (i + 1)
        memberi['ip_address'] = '192.168.1.%s' % (i + 1)
        memberi['product_id'] = pid0
        r = req.post(session.sub_path("/bus/member/open"), data=memberi)
        assert r.status_code == 200
        assert '<span class="wrong">' not in r.text
Example #21
0
def test_post_member_100():
    req = session.login()    
    r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元"))
    assert r0.status_code == 200
    pid0 = r0.json()['pid']
    
    for i in range(100):
        memberi = member.copy()
        memberi['member_name'] = 'ppmuser%s'%(i+1)
        memberi['realname'] = u"测试包月用户%s"%(i+1)
        memberi['account_number'] = 'ppm%s'%(i+1)
        memberi['ip_address'] = '192.168.1.%s'%(i+1)
        memberi['product_id'] = pid0
        r = req.post(session.sub_path("/bus/member/open"),data=memberi)
        assert r.status_code == 200
        assert '<span class="wrong">' not in  r.text
Example #22
0
def test_user_age():
	test_user_manager.clear_test_user()
	now = datetime.datetime(2014,5,27,12,50,43)
	utility.set_now(now)
	assert utility.now() == now
	
	s = web_register.ctrl_user_manager.register("ycattest","123test",web_register.sex_type.Male,35)
	utility.set_session_id(s.session_id)
	assert session.get().age == 35
	session.logout()
	
	utility.set_now(datetime.datetime(2015,5,27,12,50,43))
	s = session.login("ycattest","123test")
	assert s.age == 36

	test_user_manager.clear_test_user()
	utility.set_now(None)
Example #23
0
def test_post_member():
    req = session.login()    
    r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元"))
    assert r0.status_code == 200
    r1 = req.get(session.sub_path(u"/test/pid?name=预付费时长每小时2元"))
    assert r1.status_code == 200
    r2 = req.get(session.sub_path(u"/test/pid?name=买断包月12个月500元"))
    assert r2.status_code == 200
    r3 = req.get(session.sub_path(u"/test/pid?name=买断时长100元50小时"))
    assert r3.status_code == 200
    r4 = req.get(session.sub_path(u"/test/pid?name=预付费流量每MB0.05元"))
    assert r4.status_code == 200
    r5 = req.get(session.sub_path(u"/test/pid?name=买断流量5元100MB"))
    assert r5.status_code == 200
    
    # 快速开新户
    pid0 = r0.json()['pid']
    member['product_id'] = pid0
    r = req.post(session.sub_path("/bus/member/open"),data=member)
    assert r.status_code == 200
    assert '<span class="wrong">' not in  r.text
    # 获取memberid
    r = req.get(session.sub_path(u"/test/mid?name=tester"))
    assert r.status_code == 200
    mid = r.json()['mid']
    #新增账号
    for _r in (r0,r1,r2,r3,r4,r5):
        pid = _r.json()['pid']
        account = dict(
            node_id = 1,
            member_id = mid,
            realname = u"测试用户",
            account_number = "test00%s"%pid,
            password = "******",
            ip_address = '',
            address = 'test address',
            product_id = pid,
            months = 12,
            fee_value = '100.00',
            expire_date =  "2500-12-30",
            status = 1
        )
        rr = req.post(session.sub_path("/bus/account/open"),data=account)
        assert rr.status_code == 200
        assert '<span class="wrong">' not in  r.text
        
Example #24
0
def test_post_member():
    req = session.login()
    r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元"))
    assert r0.status_code == 200
    r1 = req.get(session.sub_path(u"/test/pid?name=预付费时长每小时2元"))
    assert r1.status_code == 200
    r2 = req.get(session.sub_path(u"/test/pid?name=买断包月12个月500元"))
    assert r2.status_code == 200
    r3 = req.get(session.sub_path(u"/test/pid?name=买断时长100元50小时"))
    assert r3.status_code == 200
    r4 = req.get(session.sub_path(u"/test/pid?name=预付费流量每MB0.05元"))
    assert r4.status_code == 200
    r5 = req.get(session.sub_path(u"/test/pid?name=买断流量5元100MB"))
    assert r5.status_code == 200

    # 快速开新户
    pid0 = r0.json()['pid']
    member['product_id'] = pid0
    r = req.post(session.sub_path("/bus/member/open"), data=member)
    assert r.status_code == 200
    assert '<span class="wrong">' not in r.text
    # 获取memberid
    r = req.get(session.sub_path(u"/test/mid?name=tester"))
    assert r.status_code == 200
    mid = r.json()['mid']
    #新增账号
    for _r in (r0, r1, r2, r3, r4, r5):
        pid = _r.json()['pid']
        account = dict(node_id=1,
                       member_id=mid,
                       realname=u"测试用户",
                       account_number="test00%s" % pid,
                       password="******",
                       ip_address='',
                       address='test address',
                       product_id=pid,
                       months=12,
                       fee_value='100.00',
                       expire_date="2500-12-30",
                       status=1)
        rr = req.post(session.sub_path("/bus/account/open"), data=account)
        assert rr.status_code == 200
        assert '<span class="wrong">' not in r.text
Example #25
0
	def register(nick,pwd,sex,age):
		assert int(sex) <= 1
		age = int(age)
		try:
			now = utility.now()
			db = utility.get_db()
			c = db.cursor()
			c.execute("INSERT INTO u_user (NickName,Sex,Password,CreateDate,BirthdayYear,CertfState)VALUES(?,?,?,?,?,?)", 
				(nick,int(sex),pwd,now.strftime("%Y-%m-%d %H:%M:%S"),now.year - age,0))			
			db.commit() #不这样做取不到user_id 
			
			user = session.login(nick,pwd) 
			c.execute("INSERT INTO u_profile(ID,EditDate)VALUES(?,?)",(user.user_id,now))
			utility.write_log(user.user_id,"注册成功",1,False)
			db.commit()
			return user
			
		except Exception as err:
			utility.write_log(-1,nick+"注册失败",0)
			traceback.print_exc()
			return None;
Example #26
0
def loginpage():
    """
    loginpage()
    This function is called twice:
    - firstly in GET when the system loads, giving in output the mere template.
    - secondly in POST when the user logs in: the page calls login() (imported from functions) to verify the credential, then:
        - if login was successful, redirect the user on "main".
        - else renders the login page again showing the failure message to the user.
    """
    if request.method == "GET":
        template = env.get_template("login.html")
        return template.render()

    if request.method == "POST":
        log = login(request.form["name"], request.form["pass"])
        if not log:
            return redirect(url_for("main"))
        else:
            mappa = {"msg": log, "error": "TRUE"}
            template = env.get_template("login.html")
            return template.render(mappa)
    return "How could I end up here? :/"
Example #27
0
def loginpage():
    """
    loginpage()
    This function is called twice:
    - firstly in GET when the system loads, giving in output the mere template.
    - secondly in POST when the user logs in: the page calls login() (imported from functions) to verify the credential, then:
        - if login was successful, redirect the user on "main".
        - else renders the login page again showing the failure message to the user.
    """
    if request.method == "GET":
        template = env.get_template("login.html")
        return template.render()
    
    if request.method == "POST":
        log = login(request.form["name"], request.form["pass"])
        if not log:
            return redirect(url_for("main"))
        else:
            mappa = {"msg" : log , "error" : "TRUE" }
            template = env.get_template("login.html")
            return template.render(mappa)
    return "How could I end up here? :/"
Example #28
0
def main(argv):
    if len(argv) < 1 or len(argv) > 2:
        usage()
        sys.exit(2)
    dataconn_path = argv[0]
    obj_id = dataconn_path[len(settings.get_setting('DATACONN_URL')):]
    rem_obj = "/" in obj_id
    if len(argv) == 2:
        if rem_obj:
            usage()
            sys.exit(2)
        query = '?query=' + argv[1]
    else:
        if rem_obj:
            query = ''
        else:
            query = '?query='
    session_id = session.login()
    print
    url = settings.get_setting('BASE_URL') + dataconn_path + query
    response = requests.get(url, headers=session.get_session_hdr(session_id))
    if response.status_code == 404:
        print "object not found"
    else:
        if rem_obj:
            print_objinfo([response.json()])
        else:
            query_results = response.json()["_embedded"]["query_results"]
            if "matching_objects" in query_results:
                print_objinfo(query_results["matching_objects"])
            else:
                print "errors:"
                for error in query_results["access_errors"]:
                    print "  %s" % (error)
    if json_debug:
        print "debug:"
        print "  %s" % (response.json())
    session.logout(session_id)
Example #29
0
def main(argv):
    global url

    try:
        opts, args = getopt.getopt(argv, "hn:p:t:s:v:o:a:c:u:k:e:m:", [
            "help", "name=", "path=", "type=", "server=", "volume=", "port=",
            "account=", "container=", "secure", "username="******"key=", "export=",
            "mount=", "test="
        ])
    except getopt.GetoptError:
        usage()
        sys.exit(2)

    conn_name = None
    conn_path = None
    conn_type = None
    host = None
    backup_host = None
    port = None
    gluster_volume = None
    swift_account = None
    swift_container = None
    swift_secure = False
    swift_username = None
    swift_key = None
    nfs_export = None
    mount = None
    test = False

    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            sys.exit()
        elif opt in ("-n", "--name"):
            conn_name = arg
        elif opt in ("-p", "--path"):
            conn_path = arg
        elif opt in ("-t", "--type"):
            conn_type = arg
        elif opt in ("-s", "--server"):
            host = arg
        elif opt in ("-b", "--backup_server"):
            backup_host = arg
        elif opt in ("-v", "--volume"):
            gluster_volume = arg
        elif opt in ("-o", "--port"):
            port = int(arg)
        elif opt in ("-a", "--account"):
            swift_account = arg
        elif opt in ("-c", "--container"):
            swift_container = arg
        elif opt in ("--secure"):
            swift_secure = True
        elif opt in ("-u", "--username"):
            swift_username = arg
        elif opt in ("-k", "--key"):
            swift_key = arg
        elif opt in ("-e", "--export"):
            nfs_export = arg
        elif opt in ("-m", "--mount"):
            mount = arg
        elif opt in ("--test"):
            test = True
            url = settings.get_setting('BASE_URL') + settings.get_setting(
                'TESTDATACONN_URL') + '?query=' + arg

    if conn_name is None:
        if not test:
            usage()
            sys.exit(2)
        else:
            conn_name = ""

    if conn_type not in ("file", "gluster", "hdfs", "swift", "nfs"):
        usage()
        sys.exit(2)

    # Current set of endpoint args: host, gluster_volume, port, swift_account,
    # swift_container, swift_secure, swift_username, swift_key, nfs_export, mount

    has_swift_only_args = swift_account is not None or swift_container is not None or swift_secure or swift_username is not None or swift_key is not None

    has_required_args = {}
    has_required_args["file"] = True
    has_required_args[
        "gluster"] = host is not None and gluster_volume is not None
    has_required_args["hdfs"] = host is not None
    has_required_args[
        "swift"] = host is not None and swift_account is not None and swift_container is not None
    has_required_args["nfs"] = host is not None and nfs_export is not None

    has_wrong_args = {}
    has_wrong_args[
        "file"] = host is not None or gluster_volume is not None or port is not None or has_swift_only_args or nfs_export is not None
    has_wrong_args[
        "gluster"] = has_swift_only_args or nfs_export is not None or mount is not None
    has_wrong_args[
        "hdfs"] = gluster_volume is not None or has_swift_only_args or nfs_export is not None or mount is not None
    has_wrong_args[
        "swift"] = gluster_volume is not None or port is not None or nfs_export is not None or mount is not None
    has_wrong_args[
        "nfs"] = gluster_volume is not None or port is not None or has_swift_only_args

    if has_wrong_args[conn_type] or not has_required_args[conn_type]:
        usage()
        sys.exit(2)

    session_id = session.login(user='******')

    if conn_type == "file":
        response = post_file_dataconn(session_id, conn_path, conn_name, mount)
    elif conn_type == "gluster":
        response = post_gluster_dataconn(session_id, conn_path, conn_name,
                                         host, gluster_volume, port)
    elif conn_type == "hdfs":
        response = post_hdfs_dataconn(session_id, conn_path, conn_name, host,
                                      backup_host, port)
    elif conn_type == "swift":
        response = post_swift_dataconn(session_id, conn_path, conn_name, host,
                                       swift_account, swift_container,
                                       swift_secure, swift_username, swift_key)
    elif conn_type == "nfs":
        response = post_nfs_dataconn(session_id, conn_path, conn_name, host,
                                     nfs_export, mount)

    print

    if not test:
        if response.status_code != 201:
            print "Data connector creation failed!"
            print response.text
            sys.exit()
        print "Created: %s" % (response.headers["location"])
        print
    else:
        if response.status_code != 200:
            print "Data connector test failed!"
            print response.text
            sys.exit()
        query_results = response.json()["query_results"]
        if "matching_objects" in query_results:
            query_dataconn.print_objinfo(query_results["matching_objects"])
        else:
            print "errors:"
            for error in query_results["access_errors"]:
                print "  %s" % (error)
        if json_debug:
            print "debug:"
            print "  %s" % (response.json())

    session.logout(session_id)
Example #30
0
def test_post_node():
    req = session.login()
    r = req.post(session.sub_path("/node/add"),
                 dict(node_name="testnode", node_desc=u"测试区域2"))
    assert r.status_code == 200
Example #31
0
def test_post_product():
    req = session.login()
    for p in products:
        print 'post product', p
        r = req.post(session.sub_path("/product/add"), data=p)
        assert r.status_code == 200
Example #32
0
                break
        utils.wait(3)

        buttons = self.driver.find_elements_by_xpath(
            '//*[starts-with(@id,"dlBtn_")]//a')
        return bool(len(buttons) == 0)


if __name__ == '__main__':

    import session
    import sys

    driver = utils.start_driver('chrome')
    home_dir = str(pathlib.Path.home())
    session.login(driver, home_dir + '/cma.credential.json')

    composer_id, work_id, page_id, track_id = [
        int(x) for x in sys.argv[1].split(',')
    ]

    out_dir = 'midi/{}'.format(composer_id)
    job = Download(driver, composer_id, work_id, page_id, track_id)
    job.order()
    utils.wait(3)
    success = False
    fname = job.pickup(out_dir)
    if fname:
        success = job.cleanup()
    if success:
        utils.print_message('successfully downloaded {}'.format(
Example #33
0
def test_post_node():
    req = session.login()
    r = req.post(session.sub_path("/node/add"),dict(node_name="testnode",node_desc=u"测试区域2"))
    assert r.status_code == 200
Example #34
0
def test_post_product():
    req = session.login()    
    for p in products:
        print 'post product',p
        r = req.post(session.sub_path("/product/add"),data=p)
        assert r.status_code == 200
Example #35
0
        course_meta = course.find_element_by_xpath(
            './/*[@class="courses-list__item-meta"]')
        out['author'] = course_meta.find_element_by_xpath(
            './p[@class="courses-list__item-authors"]/span/a').text
        out['level'] = course_meta.find_element_by_xpath(
            './p[@class="courses-list__item-level"]').text
        out['date'] = course_meta.find_element_by_xpath(
            './time[@class="courses-list__item-date"]').text
        out['level'] = course_meta.find_element_by_xpath(
            './time[@class="courses-list__item-duration"]').text
        ncourse += 1
        out_list.append(out)

    utils.save_json(out_list, json_name)


if __name__ == '__main__':

    import session

    driver = utils.start_driver('chrome')
    out_json = sys.argv[1]
    out_html = out_json.rsplit('.', 1)[0] + '.html'
    try:
        session.login(driver, 'input/credential.json')
        load_all_courses(driver, out_html, num_load=None)
        get_all_courses(driver, out_json)

    finally:
        utils.close_driver(driver)
Example #36
0
from selenium import webdriver
driver = webdriver.Firefox()
from session import login, open_home_page

open_home_page()

login(login=22, password='******')

driver.close()
Example #37
0
def login( access_token):
    try:
        ret = session.login( access_token)
    except Exception as e:
        return errtmpl( '{0}:{1}'.format( type(e), e))
    return oktmpl(ret )
Example #38
0
 def login(self, username=None, password=None):
     username = username or self._username
     password = password or self._password
     self._session = session.login(self._console_url, username, password)
     self.update_session()