class ShellManager(object): def __init__(self, server_host, server_port): self.command = ServerCommand(server_host, server_port) def create(self, project_name, shellname = 'noname'): # Creates a new shell on the octopus server. This shell locks the db as long as it lives. response = self.command.execute_get_command("/manageshells/create/{}/{}".format(project_name, shellname)) try: port = int(response) except: print(response) raise Exception("Error creating shell. Does the project exist?") return port # Disconnect from server def disconnect(self): self.command._disconnect() def list(self, project_name=None, shell_port=None, filter_occupied=False): response = self.command.execute_get_command("/manageshells/list") if not response: return for shell in response.split('\n'): port, project, name, occupied = shell.split('\t') port = int(port) occupied = True if occupied == 'true' else False if (not project_name or project == project_name) \ and (not shell_port or port == shell_port) \ and (not filter_occupied or not occupied): yield port, project, name, ('occupied' if occupied else 'free')
class ProjectManager(object): def __init__(self, server_host=SERVER_HOST, server_port=SERVER_PORT): self.server_host = server_host self.server_port = server_port self.ftp_port = FTP_PORT def connect(self): self.command = ServerCommand(self.server_host, self.server_port) def create(self, project_name): return self.command.execute_get_command( "/manageprojects/create/{}".format(project_name)) def delete(self, project_name): return self.command.execute_get_command( "/manageprojects/delete/{}".format(project_name)) def list(self): return self.command.execute_get_command("/manageprojects/list") def upload(self, project_name, filename, dst_filename=None): if dst_filename == None: dst_filename = os.path.split(filename)[-1] ftp = FTP() ftp.connect(self.server_host, self.ftp_port) ftp.login() filename_to_write_to = os.path.join(project_name, dst_filename) ftp.storbinary('STOR ' + filename_to_write_to, open(filename, 'rb')) ftp.close() return "uploaded"
class ShellManager(object): def __init__(self, server_host, server_port): self.command = ServerCommand(server_host, server_port) def create(self, project_name, shellname = 'noname'): response = self.command.execute_get_command("/manageshells/create/{}/{}".format(project_name, shellname)) try: port = int(response) except: print(response) raise Exception("Error creating shell. Does the project exist?") return port def list(self, project_name=None, shell_port=None, filter_occupied=False): response = self.command.execute_get_command("/manageshells/list") if not response: return for shell in response.split('\n'): port, dbName, name, occupied = shell.split('\t') port = int(port) occupied = True if occupied == 'true' else False if (not project_name or name == project_name) \ and (not shell_port or port == shell_port) \ and (not filter_occupied or not occupied): yield port, dbName, name, ('occupied' if occupied else 'free')
def testUnreachableServer(self): self.hostname = 'localhost' self.port = '1337' cmd = ServerCommand(self.hostname, self.port) self.assertRaises(ConnectionRefusedError, cmd.execute_get_command, "foo")
class PluginExecutor(object): def __init__(self, server_host=SERVER_HOST, server_port=SERVER_PORT): self.command = ServerCommand(server_host, server_port) def execute(self, pluginname, classname, settings=None): data = {"plugin": pluginname, "class": classname, "settings": settings} json_data = json.dumps(data) return self.post(json_data) def post(self, json_data): return self.command.execute_post_command("/executeplugin/", json_data)
class PluginExecutor(object): def __init__(self, server_host = SERVER_HOST, server_port = SERVER_PORT): self.command = ServerCommand(server_host, server_port) def execute(self, pluginname, classname, settings=None): data = {"plugin": pluginname, "class": classname, "settings": settings} json_data = json.dumps(data) return self.post(json_data) def post(self, json_data): return self.command.execute_post_command("/executeplugin/", json_data)
def __init__(self, server_host, server_port): self.command = ServerCommand(server_host, server_port)
def __init__(self, server_host=SERVER_HOST, server_port=SERVER_PORT): self.command = ServerCommand(server_host, server_port)
def __init__(self, server_host = SERVER_HOST, server_port = SERVER_PORT): self.command = ServerCommand(server_host, server_port)
def connect(self): self.command = ServerCommand(self.server_host, self.server_port)