예제 #1
0
파일: app.py 프로젝트: tx626/dpm
 def install(self, uid, package, version):
     self._lock.acquire()
     try:
         if self._db.has_package(uid, package, None):
             show_error(
                 self,
                 'failed to install, cannot install %s again' % package)
             return
         else:
             addr = self._get_repo(package)
             rpcclient = RPCClient(addr, REPOSITORY_PORT)
             if not version:
                 version = rpcclient.request('version', package=package)
                 if not version:
                     show_error(
                         self,
                         'failed to install, invalid version, uid=%s, package=%s'
                         % (uid, package))
                     return
             ret = rpcclient.request('download',
                                     package=package,
                                     version=version)
             if ret:
                 result = self._install(ret)
                 if result:
                     self._db.set_package(uid, package, version, result)
                     self._print('finished installing %s, version=%s' %
                                 (package, version))
                     return True
         show_error(self, 'failed to install %s' % package)
         return
     finally:
         self._lock.release()
예제 #2
0
파일: app.py 프로젝트: tx626/dpm
 def install(self, uid, package, version):
     self._lock.acquire()
     try:
         if self._db.has_package(uid, package, None):
             show_error(self, 'failed to install, cannot install %s again' % package)
             return
         else:
             addr = self._get_repo(package)
             rpcclient = RPCClient(addr, REPOSITORY_PORT)
             if not version:
                 version = rpcclient.request('version', package=package)
                 if not version:
                     show_error(self, 'failed to install, invalid version, uid=%s, package=%s' % (uid, package))
                     return
             ret = rpcclient.request('download', package=package, version=version)
             if ret:
                 result = self._install(ret)
                 if result:
                     self._db.set_package(uid, package, version, result)
                     self._print('finished installing %s, version=%s' % (package, version))
                     return True
         show_error(self, 'failed to install %s' % package)
         return
     finally:
         self._lock.release()
예제 #3
0
파일: backend.py 프로젝트: llfde/dpm
class Backend(RPCServer):
    def __init__(self, addr, port):
        super(Backend, self).__init__(addr, port)
        self.ftpclient = FTPClient()
        self.rpcclient = RPCClient('127.0.0.1', 9003)
    
    def upload(self, username, name, version, src_type, buf):
        print 'upload in backend starts!'
        ret = self.rpcclient.request('upload', [username], {'name':name, 'version':version, 'src_type':src_type, 'buf':buf})
        log_debug('Backend.upload()', 'the retrun of Repository.upload() is : %s' % str(ret))
        return ret
    
    def download_src(self, username, src_name, src_type):
        ret = self.rpcclient.request('download_src', [username], {'src_name':src_name, 'src_type':src_type})
        return ret
예제 #4
0
파일: backend.py 프로젝트: PangKuo/dpm
class Backend(RPCServer):
    def __init__(self, addr, port):
        super(Backend, self).__init__(addr, port)
        self.ftpclient = FTPClient()
        self.rpcclient = RPCClient("127.0.0.1", 9003)

    def upload(self, username, name, version, src_type, buf):
        print "upload in backend starts!"
        ret = self.rpcclient.request(
            "upload", [username], {"name": name, "version": version, "src_type": src_type, "buf": buf}
        )
        log_debug("Backend.upload()", "the retrun of Repository.upload() is : %s" % str(ret))
        return ret

    def download_src(self, username, src_name, src_type):
        ret = self.rpcclient.request("download_src", [username], {"src_name": src_name, "src_type": src_type})
        return ret
예제 #5
0
class Frontend(RPCServer):
    def __init__(self, addr, port):
        super(Frontend, self).__init__(addr, port)
        self.rpcclient = RPCClient('127.0.0.1', 9002)
        
    def matchfunc(self, a, b, c = 3):
        x = a
        y = b
        z = c
        return x+y+c
    
    def upload(self, username, name, version, src_type, buf):
        #rpcclient =  RPCClient('127.0.0.1', 9002)
        ret = self.rpcclient.request('upload', [username], {'name':name, 'version':version, 'src_type':src_type, 'buf':buf})
        log_debug('Frontend.upload()', 'the return of Backend.upload() is : %s' % str(ret))
        #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! lack a judgement of returning True or False 
        return True
    
    def download_src(self, username, src_name, src_type):
        ret = self.rpcclient.request('download_src', [username], {'src_name':src_name, 'src_type':src_type})
        return ret
예제 #6
0
파일: backend.py 프로젝트: PangKuo/dpm
 def __init__(self, addr, port):
     super(Backend, self).__init__(addr, port)
     self.ftpclient = FTPClient()
     self.rpcclient = RPCClient("127.0.0.1", 9003)
예제 #7
0
 def __init__(self, addr, port):
     super(Frontend, self).__init__(addr, port)
     self.rpcclient = RPCClient('127.0.0.1', 9002)
예제 #8
0
파일: backend.py 프로젝트: llfde/dpm
 def __init__(self, addr, port):
     super(Backend, self).__init__(addr, port)
     self.ftpclient = FTPClient()
     self.rpcclient = RPCClient('127.0.0.1', 9003)