Exemple #1
0
def aggregations_terms(query=None):
    """Get page for aggregations."""
    if query is None:
        # Default query
        query = "state,config.instance_type"

    # Remove all white spaces from the str
    query = query.replace(" ", "")

    data = {"query": query}
    end_point = "aggregations/terms"
    url = SOUNDWAVE_API + end_point

    response = requests.post(url, json=data)
    if response.status_code == 200 or response.status_code == 304:
        json_data = json_loads_byteified(response.text)

        return render_template("aggregations.html",
                               data=json.dumps(json_data),
                               query=query)

    elif response.status_code == 404 or response.status_code == 400:
        logger.warn(
            "Data not found in soundwave elastic search store. API returned 404"
        )
        return render_template("404.html")

    elif response.status_code == 500:
        logger.warn(
            "soundwave api returned 500 status code. Internal Server error")
        return render_template("500.html")
Exemple #2
0
def get_vm_private_ip():
    cmd = """
        az vm list-ip-addresses -g %s --output json --query '[].{name:virtualMachine.name, privateIP:virtualMachine.network.privateIpAddresses}'

        """ % (config["azure_cluster"]["resource_group_name"])
    if verbose:
        print(cmd)
    output = utils.exec_cmd_local(cmd)
    return utils.json_loads_byteified(output)
Exemple #3
0
def get_vm_list_by_grp():
    cmd = """
        az vm list --output json -g %s --query '[].{name:name, vmSize:hardwareProfile.vmSize}'

        """ % (config["azure_cluster"]["resource_group_name"])

    if verbose:
        print(cmd)
    output = utils.exec_cmd_local(cmd)

    return utils.json_loads_byteified(output)
def getServerFiles():
    #Create payload message
    payload = json.dumps({"type": MessageTypes.FETCH})
    data = sendMessage(MessageTypes.FETCH, payload)

    #Decode the recieved data from unicode, then Parse data into JSON format
    data = utils.json_loads_byteified(data)
    files = data.get("content")

    print("List of files in Server:")
    print(str(files))
Exemple #5
0
def get_instance(instance_id):
    """Instance information."""
    endpoint = SOUNDWAVE_API + "instance/" + instance_id
    logger.info("Get data for endpoint : " + endpoint)

    response = requests.get(endpoint)
    if response.status_code == 200 or response.status_code == 304:
        json_data = json_loads_byteified(response.text)

        return render_template("instance.html",
                               data=json.dumps(json_data),
                               id=json_data["id"])

    elif response.status_code == 404 or response.status_code == 400:
        logger.warn(
            "Data not found in soundwave elastic search store. API returned 404"
        )
        return render_template("404.html")

    elif response.status_code == 500:
        logger.warn(
            "soundwave api returned 500 status code. Internal Server error")
        return render_template("500.html")
def closeServer():
    payload = json.dumps({"type": MessageTypes.EXIT})
    data = sendMessage(MessageTypes.EXIT, payload)
    data = utils.json_loads_byteified(data)
    msg = data.get("content")
    print(str(msg))
def startRenderer():
    renderSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #So you won't have to wait for address to timeout
    renderSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    print("Render Socket created!")

    try:
        #Bind socket to localhost under defined port
        renderSocket.bind(('', Ports.RENDERER))
        print("Render Socket bind complete")

    except socket.error as msg:
        print("Bind failed. Error: " + str(msg))
        sys.exit()

    #Start listening on socket for Controller requests
    # 2 connections kept waiting if server busy. 3rd connection will be refused
    renderSocket.listen(2)
    print("Socket now listening")

    enabled = True
    while enabled:
        # Establish connections
        # Accept all incoming connections
        connectionSocket, addr = renderSocket.accept()
        print("Incoming Source address: " + str(addr))

        try:
            # Receive message from the socket
            #1024 = max size in bytes to be received at once
            message = connectionSocket.recv(1024)
            print("Message: " + str(message))

            # Decode the message
            message = utils.json_loads_byteified(message)
            type = message.get("type")

            if type == MessageTypes.REQUEST:
                # Convert request back to JSON and send to Server
                data = json.dumps(message)

                #Create TCP socket
                clientSocket = socket.socket(socket.AF_INET,
                                             socket.SOCK_STREAM)
                sendFileRequest(clientSocket, data)

                # Decode the received file
                data = clientSocket.recv(2048)
                clientSocket.close()

                payload = utils.json_loads_byteified(data)
                if payload["type"] == MessageTypes.ERROR:
                    print(payload["content"])
                else:
                    fileName = payload["fileName"]
                    fileData = payload["content"]

                    print("Displaying file: " + fileName)
                    print(fileData)

            elif type == MessageTypes.EXIT:
                enabled = False
                data = json.dumps({"content": "[RENDERER] shutting down"})
                connectionSocket.sendall(data)

            # Close connectionSocket
            connectionSocket.close()
            print("Connection closed!")

        except IOError as err:
            # Send response message for invalid file
            print("IOError: " + str(err))
            connectionSocket.close()

    renderSocket.shutdown(socket.SHUT_RDWR)
    renderSocket.close()
    print("Exiting...")
Exemple #8
0
def startServer():
    serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #So you won't have to wait for address to timeout
    serverSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    print("Socket created!")
    
    try:
        #Bind socket to localhost under defined port
        serverSocket.bind(('', Ports.SERVER))
        print("Socket bind complete")
    except socket.error as msg:
        print("Bind failed. Error: " + str(msg))
        sys.exit()
    
    #Start listening on socket
    # 2 connections kept waiting if server busy. 3rd socket will be refused
    serverSocket.listen(2)
    print("Socket now listening")

    enabled = True
    while enabled:
        # Establish connections
        # Accept all incoming connections
        connectionSocket, addr = serverSocket.accept()
        print("Incoming Source address: " + str(addr))
        
        try:
            # Receive message from the socket
            #1024 = max size in bits to be received at once
            message = connectionSocket.recv(1024)
            print("Message: " + str(message))
            
            # Decode the message
            message = utils.json_loads_byteified(message)
            type = message.get("type")
            
            if type == MessageTypes.FETCH:
                files = listFiles()
                #Convert list to JSON to send across socket
                data = json.dumps({"content": files})
                connectionSocket.sendall(data)
                
            elif type == MessageTypes.REQUEST:
                # Obtain file
                fileName = message.get("content")
                sendFile(connectionSocket, fileName)                
                
            elif type == MessageTypes.EXIT:
                enabled = False
                data = json.dumps({"content": "[SERVER] shutting down"})
                connectionSocket.sendall(data)

            
            # Close connectionSocket            
            connectionSocket.close()
            print("Connection closed!")
                
        except IOError as err:
            # Send response message for invalid file
            print("IOError: " + str(err))
            payload = {}
            payload["type"] = MessageTypes.ERROR
            payload["content"] = "File does not exist: " + fileName
            connectionSocket.sendall(json.dumps(payload))
            connectionSocket.close()
            
    serverSocket.shutdown(socket.SHUT_RDWR)
    serverSocket.close()
    print("Exiting...")