Пример #1
0
def initModels():
    """Initialize timebot DB tables and mappers"""
    engine = db.getEngine()
    meta = db.getMeta()
    session = db.getSession()

    tb_user = Table(
            'tb_user', meta,
            Column('id', Integer, primary_key=True, autoincrement=True),
            Column('company_id', None, ForeignKey('tb_company.id'), nullable=True),
            Column('jid', Unicode(50), unique=True, nullable=False),
            Column('name', Unicode(50)),
            Column('rate', Integer))

    tb_worktime = Table(
            'tb_time', meta,
            Column('id', Integer, primary_key=True),
            Column('user_id', None, ForeignKey('tb_user.id'), nullable=False),
            Column('start', DateTime, default=datetime.now),
            Column('stop', DateTime, nullable=True))

    tb_company = Table(
            'tb_company', meta,
            Column('id', Integer, primary_key=True),
            Column('name', Unicode(50), nullable=True))

    meta.create_all()

    mapper(TUser, tb_user, properties=dict(
            worktime=relation(TWorktime),
            company=relation(TCompany)))
    mapper(TWorktime, tb_worktime, properties=dict(
            user=relation(TUser)))
    mapper(TCompany, tb_company, properties=dict(
            users=relation(TUser)))
Пример #2
0
def doTest():
	# to load this data I need a certificate,
	#therefore at the moment no validation
	client = 'all'
	logging.debug(request)
	f = request.files['key']
	
	string = f.read()
	logging.debug(string)
	
	keyReference = request.form['keyreference']
	logging.debug(keyReference)
	
	engine = getEngine()
	testSet = getTestSet(engine, client)
	if testSet is None:
		logging.info('client ' + client + ' does not exist or has no test set assigned. ')
		abort(400)
	
	try:
		keyReference = int(keyReference)
	except:
		#Http code 400: Bad request
		logging.info('keyReference: ' + keyReference + ' is no integer.')
		abort(400)
	
	if not hasParser(string):
		logging.info('No valid input. ')
		logging.info(string)
		abort(400)
	
	key = parse(string)
	if key is None:
		logging.info('No valid input. ')
		logging.info(string)
		abort(400)	

	keyFormat, keyType = getParam(string)
	if keyFormat is None or keyType is None:
		logging.info('keyFormat: ' + keyFormat + ' and keyType: ' + keyType +' are not valid')
		abort(400)
	
	tester = Tester(testSet, engine, shared)
	id=tester.testSync(keyType, keyFormat, key, keyReference, client)
	threading.Thread(target=tester.testAsync, args=[True]).start()
	#asyncPool.apply_async(testAsync, tester)
	#asyncPool.apply_async(tester.testAsync, [True])
	#apply(tester.testAsync, [True])

	res = Result(engine, id,client).getJSON()
	return res;
Пример #3
0
def initWorker(testSet, Client, MakePerm, Verbose, Shared):
	global engine
	global tester
	global shared
	global client
	global makePerm
	global verbose
	
	engine = getEngine()
	shared = Shared	
	client = Client
	makePerm = MakePerm
	verbose = Verbose
	
	tester = Tester(testSet, engine, shared)
Пример #4
0
def result(testRunId):
	# to load this data I need a certificate,
	#therefore at the moment no validation
	client = 'all'
	
	try:
		testRunId = int(testRunId)
	except:
		logging.info(str(testRunId) + ' is no valid test run ID. ')
		abort(400)
	
	engine = getEngine()
	
	if not hasAccess(engine, testRunId, client):
		#Http code 403: Forbidden
		logging.warning('Unauthorized access tried by ' + client + ' on Test run ID ' + str(testRunId))
		abort(403)
	
	res = Result(engine, testRunId, client).getJSON()
	return res;
Пример #5
0
		parser.error("options --global and --file are mutually exclusive. ")
		
	#Enough options specified?	
	if not(options.result or options.file or options.reset or options.globalTest):
		parser.error("Not enough options specified")
		
	if options.file or options.globalTest:
		if not(options.testSet or options.client):
			parser.error("An test or an client has to be specified")
			
		if not(options.keyReference or options.batch or options.globalTest):
			parser.error("You have to either specify batch mode, globalTest or give an keyReference")
		
	#Loading data to test input validity
	initDB()
	engine=getEngine()
	
	if options.client:
		client = options.client
	else:
		client = 'admin'
		
	if options.testSet:
		testSet = options.testSet

	#Is input valid
	if options.keyReference:
		try:
			options.keyReference = int(options.keyReference)
		except:
			parser.error("Specified Key Reference is no int")
Пример #6
0
@app.route('/api/finishSetup',methods=['POST'])
def finishSetup():
    username=request.form['username']
    password=request.form['password']
    return "/"

@app.route('/api/presets/setactivepreset',methods=['POST'])
def setActivePreset():
    presetName = request.form['presetName']
    return "Activating Preset: %s " % presetName
    
@app.route('/api/presets/',methods=['GET','PUT','DELETE'])
def preset():
    return "Preset"
    
@app.route('/api/setcontrol',methods=['POST'])
def control():
    controlObject = request.form['controlObject']
    controlProperties = request.form['controlProperties']
    return "Setting Control: %s " % controlObject
    
print (type(db.getEngine()))

loadedPlugins = getPlugins()
    
if __name__ == "__main__":
    context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
    context.load_cert_chain('/etc/ssl/certs/ssl-cert-snakeoil.pem','/etc/ssl/private/ssl-cert-snakeoil.key')
    app.run(host='0.0.0.0',port=5002,ssl_context=context)