Esempio n. 1
0
    def recurseDir(self,
                   dir_path,
                   file_action,
                   dir_action,
                   regular_files_only = False,
                   stop_on_first_error = True):

        """
        recurse a directory doing actions
        file_action on each file, and dir_action on each directory
        these actions must return a Response object

        dir_path is a string (starting path)

        file_action is a callable which takes a path argument
           (called for either all non-directory items or just 
           reguar files, depending on optional arg regular_files_only)
            - or None if none required

        dir_action is a callable which takes a path argument
           (called for directories) - or None if none required - 
           NB this is just what to do with the directory entries 
           themselves - the recursion is already provided
           
        optional arg stop_on_first_error should be self-explanatory
        """
        
        resp = Response.success()
    
        try:
            entries = os.listdir(dir_path)  # FIXME(?) could use self.listDir() and add
                                            # "ignore dot files" functionality?
        except Exception, err:
            return Response.failure("%s: %s" % (Exception, err))
    def broadcast(self,message,file=None,filename=None,toGroup='public'): 
        #fungsi ini bertugas melakukan broadcasting pesan atau file


        newResponse = Res.Response(211)
        content = {}
        content['sender'] = self.name
        content['message'] = message


        if(file!=None):
            newResponse.code = 212
            content['file']      = file
            content['filename']  = filename

        content['toGroup'] = toGroup

        newResponse.content = content
        for friend in self.listfriends:
            if friend.is_alive():
                if toGroup in friend.myGroup:
                    if friend == self and file == None:
                        newResponse2= Res.Response(211)
                        content2 = {}
                        content2['sender'] = "YOU"
                        content2['message'] = message
                        content2['toGroup'] = toGroup
                        newResponse2.content = content2
                        self.sendMessage(newResponse2.encode())
                    else :
                        friend.sendMessage(newResponse.encode())
def update_restaurant(rest_id):
    if 'Content-Type' not in request.headers or request.headers[
            'Content-Type'] != 'application/json':
        return Response.unsupported()

    json = request.get_json()

    s = db.Session()
    rest = s.query(db.Restaurant).get(rest_id)
    rest.name = json['name']
    rest.address = json['address']
    rest.owners = []
    owners = json['owners']

    for o in owners:
        owner = None
        if 'id' in o:
            owner = s.query(db.Owner).get(o['id'])
            if owner is None:
                owner = db.Owner(o['name'], o['age'], o['gender'])
        else:
            owner = db.Owner(**o)
        rest.owners.append(owner)

    s.commit()
    return Response.successful()
Esempio n. 4
0
def answer(sentence):
    index = sentence.index('where was')+2
    text =  nltk.word_tokenize(sentence)
    val = nltk.pos_tag(text)
    #print('Val',val)
    #print('Index',index)
    info = Response.getNextSoloTerm(val[index:],['VBN'])
    subject = info[0]
    index+=info[1]
    #print('Subject',subject)
    if subject=='arnold':
        info = Response.getNextSoloTerm(val[index:],['NN'])
        if info=="":
            return randAnswer()
        attribute = info[0]
        index+=info[1]
        #print('Attribute',attribute)
        form=''
        answer = Response.buildSentence([subject,'where was',attribute,form])
        if answer=="":
            return randAnswer()
        return(answer)
    elif subject=='movie':
        return('Give me a break bro. I\'m not a genie. I\'m a simple chat bot')
    else:
        return randAnswer()
Esempio n. 5
0
def yzm(req):
    vc = VerifyCode()

    data = vc.generate()
    print(vc.code)
    response = Response(req)
    response.set_cookie('yzm', vc.code)
    req.start_response(response.status, response.header)
    return [data]
Esempio n. 6
0
	def delete(self, username):
		db = client.sla
		col = db.users

		query = {"username" : username}
		if(col.find_one(query)!=None):
			user_id = col.delete_one(query)
			return(Response(status=200)) #Success

		return(Response(status=400)) #Bad request (username not found)
    def execute_request(self, parameters, timeout):
        parameters = urllib.urlencode(parameters)
        request = urllib2.Request(self.end_point)
        response = urllib2.urlopen(request, parameters, timeout)

        try:
            return Response(response)
        except Exception:
            return Response(None, 'ConnectionError', sys.exc_info()[0])
        finally:
            response.close()
def handle_file_upload(bucket_name, object_name, data, md5, size):
    r = createBucket(bucket_name)
    response = ast.literal_eval(r.content.decode("utf-8"))
    if r.status_code == 400: return res.makeResponse(r.status_code, response)
    r = createUploadTicket(bucket_name, object_name)
    response = ast.literal_eval(r.content.decode("utf-8"))
    if r.status_code == 400: return res.makeResponse(r.status_code, response)
    r = uploadFile(bucket_name, object_name, 1, data, md5, size)[0]
    response = ast.literal_eval(r.content.decode("utf-8"))
    if r.status_code == 400: return res.makeResponse(r.status_code, response)
    r = completeUploadTicket(bucket_name, object_name)
    response = ast.literal_eval(r.content.decode("utf-8"))
    return res.makeResponse(r.status_code, response)
def create_owner():
    if 'Content-Type' not in request.headers or request.headers[
            'Content-Type'] != 'application/json':
        return Response.unsupported()

    json = request.get_json()
    owner = db.Owner(**json)

    s = db.Session()
    s.add(owner)
    s.flush()
    s.commit()
    return Response.successful()
	def get(self, Size):
		app.logger.info('size is %d', Size)
		if Size <= 0:		#checking for negative or 0 Size and responding with appropriate error message and status code
			app.logger.error('Invalid Size: Size must be a positive integer greater than 0 - status code 400')
			return Response.Build_Json_Response('Invalid Size: Size must be a positive integer greater than 0',400)
		elif Size >10000:	# checking the max limit of size and responding with appropriate error message and status code
			app.logger.error('Size cannot be greater than 10000. Please pass a positive integer < 10000 - status code 400')
			return Response.Build_Json_Response('Size cannot be greater than 10000. Please pass a positive integer < 10000',400)
		else: 				#generating the fibonacci sequence if size is valid
			fib=str(GenerateFibonacci.Generate_Fibonacci(Size))
			res=Response.Build_Json_Response(fib,200)
			app.logger.info("generated fibonacci sequence %s - status code %d" , fib,res.status_code )
			return res
Esempio n. 11
0
	def post(self):
		request_json = request.get_json()
		username = request_json['username']
		password = request_json['password']

		db = client.sla
		col = db.users

		match = re.match(pwd_validate, password)
		if(col.find_one({"username" : username})==None and match!=None):
			user_id=col.insert_one({"username" : username, "password" : password})
			return(Response(status=201)) #Created

		return(Response(status=400)) #Bad request: password/username error
def images_remove(id):
    """
    Delete a specific image
    """
    docker ('rmi', id)
    resp = '{"id": "%s"}' % id
    return Response(response=resp, mimetype="application/json")
def images_update(id):
    """
    Update image attributes (support: name[:tag])  tag name should be lowercase only
    curl -s -X PATCH -H 'Content-Type: application/json' http://localhost:8080/images/7f2619ed1768 -d '{"tag": "test:1.0"}'
    """
  #  resp = ''
    return Response(response=resp, mimetype="application/json")
Esempio n. 14
0
def write_envelope(version, filename):
    envelope = Envelope(amfVersion=version)
    message = Response(records)
    envelope.__setitem__('message', message);
    stream = remoting.encode(envelope)
    file = open(filename, 'w+')
    file.write(stream.getvalue())
Esempio n. 15
0
def partial_response(path, start, end=None):
    file_size = os.path.getsize(path)

    if end is None:
        end = file_size - start - 1
    end = min(end, file_size - 1)
    length = end - start + 1

    with open(path, 'rb') as fd:
        fd.seek(start)
        bytes = fd.read(length)
    assert len(bytes) == length

    response = Response(
        bytes,
        206,
        mimetype=mimetypes.guess_type(path)[0],
        direct_passthrough=True,
    )
    response.headers.add(
        'Content-Range', 'bytes {0}-{1}/{2}'.format(
            start, end, file_size,
        ),
    )
    response.headers.add(
        'Accept-Ranges', 'bytes'
    )
    return response
Esempio n. 16
0
    def _on_list_users(self, request: Request.ListUsers):
        if request.client.state != Client.State.AUTHORIZED:
            self.client_manager.remove_client(request.client)
            return

        request.client.send_response(
            Response.UserList(self.client_manager.authorized_clients.values()))
Esempio n. 17
0
def getMapIntent(req):
    id = getId()
    iduser = id + req.user
    getMap({req.fieldMap: req.valueMap}, req.tablename, req.databasename,
           iduser, req.long, req.lat, req.extrainfo)
    r = response.Response(id, None)
    return r.map
def swarm_index():
    """
    List all nodes in the swarm
    """
    output = docker'(docker node ls'')
    resp = json.dumps(docker_ps_to_array(output))
    return Response(response=resp, mimetype="application/json")
Esempio n. 19
0
 def connect(command):
     receiver = command.struct['sender']
     receiver = command.struct['args'][0]
     if self.serverRegistry.sRegistry.has_key(receiver):
         if sender == receiver:
             send(Response(sender, 'Connect Fail: cannot connect to self'))
         else:
             Ysender = self.serverRegistry.sRegistry['sender']['public_key']
             Yreceiv = self.serverRegistry.sRegistry['receiver'][
                 'public_key']
             send(KeyExchange(receiver, Ysender, sender))
             send(KeyExchange(sender, Yreceiv, receiver))
     else:
         send(
             Response(sender,
                      'Connect Fail: user unavailable at the moment'))
def containers_show(id):
    """
    Inspect specific container
    """
    output = docker('ps -f',id)
    resp = json.dumps(docker_ps_to_array(output))
    return Response(response=resp, mimetype="application/json")
Esempio n. 21
0
 def execute(self):
     logging.debug('params: %s'%q.parsed())
     r = Response.error(return_code='0',
         dimino6_return_code='0',
         dimino6_error_message='There was an error.',
         list=[])
     return str(r)
    def get_move(self):
        print 'getting raw_response(sc)'
        raw_response = self._socket.recv(4096)
        print 'move: ' + raw_response
        main_token = raw_response.split(MAIN_DELIM)
        category_tokens = main_token[0].split(CATG_DELIM)

        if len(category_tokens) == 4 or (len(category_tokens) == 5 and category_tokens[0] == ""):
            self._turn_number += 1
            player_turn = int(category_tokens[0])
            raw_scores = category_tokens[1]
            message = category_tokens[2]
            raw_pieces = category_tokens[3].split(MOVE_DELIM)
        else:
            self._turn_number = int(category_tokens[0])
            player_turn = int(category_tokens[1])
            raw_scores = category_tokens[2]
            message = category_tokens[3]
            raw_pieces = category_tokens[4].split(MOVE_DELIM)
            
        print 'player turn: ',player_turn
        print 'message(sc):',message        
        print 'raw_scores: ',raw_scores
        scores = [score for score in raw_scores.split(SCOR_DELIM)] #list comprehension ftw
        print 'scores: ', scores
        pieces = []
        
        #if message.strip() != 'Starting Turn':
        print 'raw pieces: ',raw_pieces
        for piece in raw_pieces:
            p = piece.split(VALU_DELIM)
            pieces.append(GamePiece.GamePiece(int(p[0]), int(p[1]), int(p[2])))
        print 'pieces: ',pieces
        return Response.Response(self._turn_number, player_turn, scores, message, pieces)
def update_owner(owner_id):
    if 'Content-Type' not in request.headers or request.headers[
            'Content-Type'] != 'application/json':
        return Response.unsupported()

    json = request.get_json()

    s = db.Session()
    owner = s.query(db.Owner).get(owner_id)

    owner.name = json['name']
    owner.age = json['age']
    owner.gender = json['gender']

    s.commit()
    return Response.successful()
Esempio n. 24
0
	def post(self):
		request_json = request.get_json()
		username = request_json['username']
		password = request_json['password']

		db = client.sla
		users = db.users

		response=Response()
		user_doc=users.find_one({"username":username,"password":password})
		if(user_doc!=None):
		
			response.status_code=200
		else:
			response.status_code=403
		return(response)
Esempio n. 25
0
def handle_invalid_path(invalid_path):
    app.logger.info('size is %s', invalid_path)
    app.logger.error(
        'Invalid Size: Size must be a positive integer greater than 0 - status code 400'
    )
    return Response.Build_Json_Response(
        'Invalid Size: Size must be a positive integer greater than 0', 400)
 def sendButtonListener(event=None):
     EntryBox.bind("<Return>", lambda event: tempFrame.focus_set())
     userInput = EntryBox.get()
     if len(userInput) != 0:
         ChatBox.insert("end", "You: " + userInput)
         ChatBox.itemconfig('end', {'fg': 'blue'})
         root.update_idletasks()
         responseList = Response.getResponse(userInput, no_of_lines.get())
         ChatBox.insert("end", "Bot: " + responseList[0])
         ChatBox.itemconfig('end', {'fg': 'green'})
         ChatBox.config(foreground="#446665", font=("Verdana", 12))
         root.update_idletasks()
         signUpWindow.update_idletasks()
         for response in responseList[1:]:
             ChatBox.insert("end", "       " + response)
             ChatBox.itemconfig('end', {'fg': 'green'})
             ChatBox.config(foreground="#446665", font=("Verdana", 12))
             root.update_idletasks()
             signUpWindow.update_idletasks()
         root.update_idletasks()
         signUpWindow.update_idletasks()
         mic_button.config(state='active')
         response = "".join(responseList)
         insertIntoDatabase("MsgStore", userEmailAddress, userInput)
         insertIntoDatabase("MsgStoreHistory", userEmailAddress, userInput)
         insertIntoDatabase("MsgStore", "bot" + userEmailAddress, response)
         insertIntoDatabase("MsgStoreHistory", "bot" + userEmailAddress,
                            response)
         EntryBox.delete(0, 'end')
         global stringToSpeak
         stringToSpeak = response
     else:
         return
def containers_remove(id):
    """
    Delete a specific container - must be already stopped/killed
    """
    container.stop(id)
    docker ('rm',id)
    resp = '{"id": "%s"}' % id
    return Response(response=resp, mimetype="application/json")
Esempio n. 28
0
def intent1():
    query = "select tititu from library where prcolp='PRO';"
    r = response.Response(
        None,
        'The result has more lines than allowed. Please download the result here:\n'
        + 'https://' + www + '.ngrok.io/files?id=20200824185330Sndr18')
    res = r.simple
    return res
Esempio n. 29
0
def intent2():
    query = 'select tititu from library;'
    r = response.Response(
        None,
        "The result is:\nALU,\nDIG,\nENT,\nINS,\nINV,\nLEC,\nLECI,\nPRO,\nROB,\nTEL,\n"
    )
    res = r.simple
    return res
Esempio n. 30
0
def intent3():
    query = "select tititu from library where prfpre='01/07/20' and prlesu='BCDIG';"
    r = response.Response(
        None,
        "The result is: \nLas aventuras del joven Einstein ,\nLa vuelta al mundo en 80 días ,\nQuerido zoo ,\nI'm not a supermouse ,\nMarada : la mujer lobo ,\nPenny Dreadful causes a kerfuffle ,\nRecuerdos del ayer ,\nQue Dios nos perdone ,\nDogman ,\n"
    )
    res = r.simple
    return res
Esempio n. 31
0
 def __init__(self, usi):
     self.usi = usi.usi
     self.r = Response.Response()
     self.results = None
     self.name = None
     self.precursorMZ = None
     self.numPeaks = None
     self.peakList = None
def images_create():
    """
    Create image (from uploaded Dockerfile)
    curl -H 'Accept: application/json' -F file=@Dockerfile http://localhost:8080/images
    """
    dockerfile = request.files['file']
    
   # resp = ''
    return Response(response=resp, mimetype="application/json")
Esempio n. 33
0
 def handleRequest(self, request, connection, host, port):
     if (len(request.keys()) == 0):
         return 0
     log = Logger.Logger()
     method = request['method']
     route = request['route']
     server = '{0}:{1}'.format(host, port)
     referrer = request['Referer'] or ''
     data = request['params'] or request['body']
     host = request['Host']
     log.log({
         'method': method,
         'timestamp': time.time(),
         'server': server,
         'host': host,
         'referrer': referrer,
         'url': route,
         'data': data
     })
     response = Response.Response(connection, self.__host, self.__port)
     if (not 'Host' in request.keys()):
         return response.send400BadRequest()
     if (not self.__router[method]):
         if (not method in self.__router.getKnownMethods()):
             return response.send405MethodNotAllowed()
         return response.send503NotImplemented()
     if (not self.__router[method].get(route)):
         return response.send404NotFound()
     contentType = request['Accept'] or request['Content-Type']
     if ',' in contentType:
         contentType = contentType.split(',')
         for mimeType in contentType:
             if (mimeType in self.__mimetypes.values()):
                 break
     elif (not contentType or contentType == '*/*'):
         '''this will go to next check'''
         pass
     elif (not contentType in self.__mimetypes.values()):
         print('Not In MimyTypes')
         return response.send406NotAcceptable()
     elif (route != '/'):
         isValid = False
         resourceExtension = re.match('.*(\.[a-z]*)', route)
         if (not resourceExtension):
             return response.send406NotAcceptable()
         resourceExtension = resourceExtension.group(1)
         for mimeType in contentType:
             if (mimeType == self.__mimetypes[resourceExtension]):
                 isValid = True
                 break
         if (contentType == self.__mimetypes[resourceExtension]):
             isValid = True
         if (not isValid):
             print('not a valid resource for type')
             return response.send406NotAcceptable()
     response.setStatusCode(200)
     return self.__router[method].get(route)(request, response)
Esempio n. 34
0
    def test_response():
        fail1 = Response.Response(Response.failure, "angst1")
        fail2 = Response.failure("angst2")
        succ1 = Response.Response(Response.success, "happiness1")
        succ2 = Response.success("happiness2")

        print Response.success, Response.failure, Response.success(), Response.failure()

        print fail1, fail2, succ1, succ2
        if fail1:
            print "should not get here"
        if succ1:
            print "should get here"

        print fail1 + fail2
        print fail1 + succ2
        print succ1 + fail2
        print succ1 + succ2
Esempio n. 35
0
    def deleteDir(self, dir_path, **kwargs):
        """
        Delete a directory recursively (akin to rm -fr)

        Optional args (in particular stop_on_first_error) can be
        passed to recurseDir()
        """
        return (self.recurseDir(dir_path,
                                self.deleteFile,
                                self.deleteEmptyDir,
                                **kwargs)
                and Response.success("%s deleted" % dir_path))
Esempio n. 36
0
def answer(sentence):
    index = sentence.index('when')+2
    text =  nltk.word_tokenize(sentence)
    #print('Question',text)
    val = nltk.pos_tag(text)
    #print('Tokens',val)
    #print(val)
    info = Response.getNextSoloTerm(val[index:],['VBN','NN'])
    if info=="":
        #print("HERE WE GO")
        return randAnswer()
    subject = info[0]
    index+=info[1]
    #print('subject',subject)
    if subject=='arnold':
        info = Response.getNextSoloTerm(val[index:],['NN'])
        if info=="":
            return randAnswer()
             #randNum = random.randint(0,len(randomAnswers)-1)
             #return(randomAnswers[randNum])
        attribute = info[0]
        index+=info[1]
        #print('ATTRIBUTE',attribute)
        form = ''
        answer = Response.buildSentence([subject,'when was',attribute,form])
        if answer=="":
            return randAnswer()
            #randNum = random.randint(0,len(randomAnswers)-1)
            #return(randomAnswers[randNum])
        return(answer)
    elif subject=='movie':
         form = ''
         #print('Form',form)
         info = Response.getMovieTitle(val[index:],['VBN','VBD'])
         if info=="":
             return randAnswer()
         title = info[0]
         index = index + info[1]
         #print('Title:',title)
         info = Response.getNextTerm(val[index:],['VBN','VBD'])
         if info=="":
             return randAnswer()
         attribute = info[0]
         index = index + info[1]
         #print('NEWcounter',counter)
         #print('Attribute:',attribute)
         answer = Response.buildSentence([subject,'when was',title,attribute,form])
         if answer=="":
             return randAnswer()
         return answer
    else:
        return randAnswer()
Esempio n. 37
0
def answer(sent):
    #print(sent)
    sent = sent.lower()
    locTerms = ['city','country''province']
    dateTerms = ['month','year','day','date']
    curiousTerms = ['is','was']
    if re.match('^(what).*$',sent):
        tokes= nltk.pos_tag(nltk.word_tokenize(sent))
        if tokes[1][0] in dateTerms:
            #print('we\'re in the date object')
            counter = 2
            info = Response.getNextSoloTerm(tokes[counter:],['VBN','NN'])
            if info=="":
                return randAnswer()
            subject = info[0]
            counter = counter+info[1]
            #print('Subject:',subject)
            if subject =='movie':
                form = tokes[1][0]
                #print('Form',form)
                info = Response.getMovieTitle(tokes[counter:],['VBN','VBD'])
                if info=="":
                    return randAnswer()
                title = info[0]
                counter = counter + info[1]
                #print('Title:',title)
                info = Response.getNextTerm(tokes[counter:],['VBN','VBD'])
                if info=="":
                    return randAnswer()
                attribute = info[0]
                counter = counter + info[1]
                #print('NEWcounter',counter)
                #print('Attribute:',attribute)
                answer = Response.buildSentence([subject,'when was',title,attribute,form])
                if answer=="":
                    return randAnswer()
                return answer
            elif subject=='arnold':
                form = tokes[1][0]
                #print('Form:',form)
                info = Response.getNextTerm(tokes[counter:],['NN','NNP'])
                if info=="":
                    return randAnswer()
                attribute = info[0]
                counter = counter + info[1]
                #print('Attribute:',attribute)
                #print('OBJECT:\nSubject: {}\nQuestType: when\nAttribute: {}\nForm: {}'.format(subject,attribute,form))
                answer = Response.buildSentence([subject,'when was',attribute,form])
                if answer=="":
                     return randAnswer()
                return answer
        elif tokes[1][0] in locTerms:
            #print('we\'re in the location object')
            counter = 2
            info = Response.getNextSoloTerm(tokes[counter:],['VBN','NN'])
            if info=="":
                return randAnswer()
            subject = info[0]
            counter = counter+info[1]
            #print('Subject:',subject)
            if subject=='arnold':
                form = tokes[1][0]
                #print('Form:',form)
                info = Response.getNextTerm(tokes[counter:],['NN','NNP'])
                if info=="":
                    return randAnswer()
                attribute = info[0]
                counter = counter + info[1]
                #print('Attribute:',attribute)
                return Response.buildSentence([subject,'where was',attribute,form])
        elif tokes[1][0] in curiousTerms:
            return randAnswer()
            #randNum = random.randint(0,len(randomAnswers))
            #return(randomAnswers[randNum])
        else:
            return randAnswer()
Esempio n. 38
0
 def zipDir(self, *args, **kwargs):
     """
     As _zipDir, but returns a Response object
     """
     return Response.wrap(self._zipDir, *args, **kwargs)    
Esempio n. 39
0
def HandleClient(clientsock):
	name = threading.currentThread().getName()
	print name, ' Started.............'
	global EOM
	chunks=[]
	while 1:
		buf = clientsock.recv(2048)
		chunks.append(str(buf))
		if (EOM in chunks[-1]):
			msg= "".join(chunks)[:-5]
			if (msg=="TEST: HELLO"):
				return
			req =Request.parseRequest(msg)
			if (not validReq(req)):
				Response.sendData(clientsock,"Invalid Request")
				print "invalid request"
				clientsock.close()
				return 
			if (req["requestType"]=="SUBMIT"):
				job=Request.parseJob(msg)
				global	JOBS
				if (req["Owner"]=="system" or req["Owner"]=="utils"):
                                        res= PBS.run(job["command"],req["JobID"])
                                        if req["Owner"]=="system":
                                                Response.sendData(clientsock,"Done")
                                        else:
                                                Response.sendData(clientsock,res)
				elif req["Owner"]=="ubuntu":
					res= PBS.run("su ubuntu -c '"+job["command"]+"'",req["JobID"])
					Response.sendData(clientsock,res)
				elif req["Owner"]=="ehpcuser":
                                        res= PBS.run("su ehpcuser -c '"+job["command"]+"'",req["JobID"])
                                        Response.sendData(clientsock,res)
				else:
					print "command:" + job["command"]
#					print "inputs:" + job["inputs"]
					c = PBS.AddFileWrapper("direct",job["command"],job["inputs"],job["outputs"])
					id= PBS.runAsPBSJob(req["Owner"],req["JobID"],c)
					Response.sendData(clientsock,'recieved:'+id)
				clientsock.close()
				
			elif (req["requestType"]=="STATUS"):
				status=Job.checkPBSstatus(req["JobID"])
				Response.sendData(clientsock,Job.perpareJobStatusMessage(req,status))
			elif (req["requestType"]=="FETCH"):
				OutputList = Request.getOutputList(msg)
				response = Response.generateResponse(msg,OutputList)
				Response.sendData(clientsock,response)
			elif (req["requestType"]=='UPLOAD'):
				UploadDict = Request.parseUpload(msg)
				for key, value in UploadFileData.iteritems():
					createFile = open(key, "wb")
					while True:
                        data = conn.recv(1024)
                        createFile.write(value)
					createFile.close()

			break
Esempio n. 40
0
def HandleClient(clientsock):
    import config
    name = threading.currentThread().getName()
    print name, ' Started.............'
    global EOM
    chunks = []
    cmd=""
    while 1:
        buf = clientsock.recv(2048)
        if len(buf)<6:
            chunks[-1]+=buf
        else:
            chunks.append(str(buf))
        if (EOM in chunks[-1]):
            msg = "".join(chunks)[:-5]
            if debug: print msg
            if (msg == "TEST: HELLO"):
                Response.sendData(clientsock,"Hello")
                clientsock.close()
                return
            req = Request.parseRequest(msg)
            if (not validReq(req)):
                Response.sendData(clientsock, "Invalid Request")
                print "invalid request"
                clientsock.close()
                return
            if (req["requestType"]=="CLONE"):
                job = Request.parseCloneJob(msg)
                if job["scm"]=="git":
                    gclient=git.GIT(job["workdir"],job["repo"])
                    gclient.setKey(job["key"])
                    cmd=gclient.get_clone_cmd()
            elif (req["requestType"] == "PULL"):
                job = Request.parsePullJob(msg)
                if job["scm"]=="git":
                    gclient=git.GIT(workdir=job["workdir"])
                    gclient.setKey(job["key"])
                    cmd=gclient.get_pull_cmd()
            elif req["requestType"]=="LIST-TAGS":
                job = Request.parseListTagsJob(msg)
                if job["scm"]=="git":
                    gclient=git.GIT(workdir=job["workdir"])
                    gclient.setKey(job["key"])
                    cmd=gclient.get_list_tags_cmd()
                    result=[]
                    res=Common.run(cmd)
                    if "ERR:" in res:
                        Response.sendData(clientsock,res)
                    else:
                        for line in res.split("\n"):
                            try:
                                cmd="cd %s; git show %s"%(job["workdir"],line)
                                res=Common.run(cmd)
                                lines=res.split("diff --git ")[0]
                                info=lines.split("\n")
                                #print info
                                tag=info[0][4:]
                                tagger=info[1].split(": ")[1].split("<")[0].strip()
                                date=info[2].split(": ")[1].strip()
                                commit=info[6].split("commit ")[1]
                                result.append(",,".join([tag,tagger,date,commit]))
                            except:
                                pass
                        Response.sendData(clientsock,"\n".join(result))
                        return
            elif req["requestType"] == "LIST-BRNACHS":
                job = Request.parseListBranchsJob(msg)
                if job["scm"] == "git":
                    gclient = git.GIT(workdir=job["workdir"])
                    cmd = gclient.get_list_branches()
                    result = []
                    res = Common.run(cmd)
                    if "ERR:" in res:
                        Response.sendData(clientsock, res)
                    else:
                        for line in res.split("\n"):
                            try:
                                if line!="":
                                    result.append(line.replace("*","").strip())
                            except:
                                pass
                        #print result
                        Response.sendData(clientsock, "\n".join(result))
                        return
            elif req["requestType"]=="LIST-COMMITS":
                job = Request.parseGetCommitsJob(msg)
                if job["scm"]=="git":
                    gclient=git.GIT(workdir=job["workdir"])
                    gclient.setKey(job["key"])
                    cmd=gclient.get_history_cmd(job["options"],limit=config.log_limit)
            elif req["requestType"]=="SWITCH-TAG":
                job = Request.parseSwitchTagJob(msg)
                if job["scm"]=="git":
                    gclient=git.GIT(workdir=job["workdir"])
                    cmd=gclient.get_switch_to_tag_cmd(tag=job["tag"])
            elif req["requestType"]=="SWITCH-COMMIT":
                job = Request.parseSwitchCommitJob(msg)
                if job["scm"]=="git":
                    gclient=git.GIT(workdir=job["workdir"])
                    cmd=gclient.switch_to_histroy_cmd(commit=job["commit"])
            elif req["requestType"]=="DIFF-COMMIT":
                job = Request.parseSwitchCommitJob(msg)
                if job["scm"]=="git":
                    gclient=git.GIT(workdir=job["workdir"])
                    cmd=gclient.commit_diff_cmd(commit=job["commit"])

            elif req["requestType"]=="LIST-CHANGES":
                job = Request.parseGetChangeLog(msg)
                if job["scm"] == "git":
                    gclient = git.GIT(workdir=job["workdir"])
                    cmd = gclient.get_changelog(since=job["options"]["since"], to=job["options"]["to"])
                    result = []
                    res = Common.run(cmd)
                    print res
                    if "ERR:" in res:
                        Response.sendData(clientsock, res)
                    else:
                        for line in res.split("\n"):
                            try:
                                if line != "":
                                    result.append(line.replace("*", "").strip())
                            except:
                                pass
                        print result
                        Response.sendData(clientsock, "\n".join(result))
            elif req["requestType"]=="DEPLOY":
                print msg
                job = Request.parseDeployJob(msg)
                try:
                    config=yaml.safe_load(open(job["configFile"]))
                    autodeployer.deploy(config,job["workdir"])
                    res="Done"
                except Exception as e:
                    res="ERR:"+traceback.format_exc()
            if cmd!="":
                print cmd
                res=Common.run(cmd)

            Response.sendData(clientsock,res)
            if debug:
                print "Ended,",res
            else:
                print "Ended"
            clientsock.close()

            break
Esempio n. 41
0
 def add(self, file):
     try:
         self.total += self.futils.getSize(file)
         return Response.success()
     except OSError:
         return Response.failure()