def getFlavor(self, id):
        try:
            response_data = self.getResource("flavors/" + id, "GET")
        except requests.exceptions.HTTPError as ex:
            raise SynergyError("error on retrieving the flavor info (id=%r)"
                               ": %s" % (id, ex.response.json()))

        flavor = None

        if response_data:
            flavor_data = response_data["flavor"]

            flavor = Flavor()
            flavor.setId(flavor_data["id"])
            flavor.setName(flavor_data["name"])
            flavor.setVCPUs(flavor_data["vcpus"])
            flavor.setMemory(flavor_data["ram"])
            flavor.setStorage(flavor_data["disk"])

        return flavor
    def getFlavor(self, id):
        try:
            response_data = self.getResource("flavors/" + id, "GET")
        except requests.exceptions.HTTPError as ex:
            raise Exception("error on retrieving the flavor info (id=%r)"
                            ": %s" % (id, ex.response.json()))

        flavor = None

        if response_data:
            flavor_data = response_data["flavor"]

            flavor = Flavor()
            flavor.setId(flavor_data["id"])
            flavor.setName(flavor_data["name"])
            flavor.setVCPUs(flavor_data["vcpus"])
            flavor.setMemory(flavor_data["ram"])
            flavor.setStorage(flavor_data["disk"])

        return flavor
    def _makeServer(self, server_info):
        if not server_info:
            return

        flavor = Flavor()
        flavor.setMemory(server_info["memory_mb"])
        flavor.setVCPUs(server_info["vcpus"])
        flavor.setStorage(server_info["root_gb"])

        if "instance_type" in server_info:
            flavor.setName(server_info["instance_type"])

        server = Server()
        server.setFlavor(flavor)
        server.setUserId(server_info["user_id"])
        server.setMetadata(server_info["metadata"])
        server.setDeletedAt(server_info["deleted_at"])
        server.setTerminatedAt(server_info["terminated_at"])
        server.setType()

        if "host" in server_info:
            server.setHost(server_info["host"])

        if "uuid" in server_info:
            server.setId(server_info["uuid"])
        elif "instance_id" in server_info:
            server.setId(server_info["instance_id"])

        if "project_id" in server_info:
            server.setProjectId(server_info["project_id"])
        elif "tenant_id" in server_info:
            server.setProjectId(server_info["tenant_id"])

        if "vm_state" in server_info:
            server.setState(server_info["vm_state"])
        elif "state" in server_info:
            server.setState(server_info["state"])

        return server
    def _makeServer(self, server_info):
        if not server_info:
            return

        flavor = Flavor()
        flavor.setMemory(server_info["memory_mb"])
        flavor.setVCPUs(server_info["vcpus"])
        flavor.setStorage(server_info["root_gb"])

        if "instance_type" in server_info:
            flavor.setName(server_info["instance_type"])

        server = Server()
        server.setFlavor(flavor)
        server.setUserId(server_info["user_id"])
        server.setMetadata(server_info["metadata"])
        server.setDeletedAt(server_info["deleted_at"])
        server.setTerminatedAt(server_info["terminated_at"])
        server.setType()

        if "host" in server_info:
            server.setHost(server_info["host"])

        if "uuid" in server_info:
            server.setId(server_info["uuid"])
        elif "instance_id" in server_info:
            server.setId(server_info["instance_id"])

        if "project_id" in server_info:
            server.setProjectId(server_info["project_id"])
        elif "tenant_id" in server_info:
            server.setProjectId(server_info["tenant_id"])

        if "vm_state" in server_info:
            server.setState(server_info["vm_state"])
        elif "state" in server_info:
            server.setState(server_info["state"])

        return server
    def getFlavors(self):
        url = "flavors/detail"

        try:
            response_data = self.getResource(url, method="GET")
        except requests.exceptions.HTTPError as ex:
            response = ex.response.json()
            raise SynergyError("error on retrieving the flavors list: %s"
                               % response)

        flavors = []

        if response_data:
            for flavor_data in response_data["flavors"]:
                flavor = Flavor()
                flavor.setId(flavor_data["id"])
                flavor.setName(flavor_data["name"])
                flavor.setVCPUs(flavor_data["vcpus"])
                flavor.setMemory(flavor_data["ram"])
                flavor.setStorage(flavor_data["disk"])

                flavors.append(flavor)

        return flavors
    def getFlavors(self):
        url = "flavors/detail"

        try:
            response_data = self.getResource(url, method="GET")
        except requests.exceptions.HTTPError as ex:
            response = ex.response.json()
            raise Exception("error on retrieving the flavors list: %s" %
                            response)

        flavors = []

        if response_data:
            for flavor_data in response_data["flavors"]:
                flavor = Flavor()
                flavor.setId(flavor_data["id"])
                flavor.setName(flavor_data["name"])
                flavor.setVCPUs(flavor_data["vcpus"])
                flavor.setMemory(flavor_data["ram"])
                flavor.setStorage(flavor_data["disk"])

                flavors.append(flavor)

        return flavors