Beispiel #1
0
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')
Beispiel #2
0
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')
Beispiel #4
0
    def testUnreachableServer(self):

        self.hostname = 'localhost'
        self.port = '1337'

        cmd = ServerCommand(self.hostname, self.port)
        self.assertRaises(ConnectionRefusedError, cmd.execute_get_command,
                          "foo")
Beispiel #5
0
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)
Beispiel #7
0
 def __init__(self, server_host, server_port):
     self.command = ServerCommand(server_host, server_port)
 def __init__(self, server_host, server_port):
     self.command = ServerCommand(server_host, server_port)
Beispiel #9
0
 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)
Beispiel #11
0
 def connect(self):
     self.command = ServerCommand(self.server_host, self.server_port)