from mininet.link import Link
+LOG = logging.getLogger("api.openstack.nova")
+
+
class NovaDummyApi(BaseOpenstackDummy):
def __init__(self, in_ip, in_port, compute):
super(NovaDummyApi, self).__init__(in_ip, in_port)
resource_class_kwargs={'api': self})
def _start_flask(self):
- logging.info("Starting %s endpoint @ http://%s:%d" % ("NovaDummyApi", self.ip, self.port))
+ LOG.info("Starting %s endpoint @ http://%s:%d" % ("NovaDummyApi", self.ip, self.port))
# add some flavors for good measure
self.compute.add_flavor('m1.tiny', 1, 512, "MB", 1, "GB")
self.compute.add_flavor('m1.nano', 1, 64, "MB", 0, "GB")
"""
def get(self):
- logging.debug(("%s is beeing shut doen") % (__name__))
+ LOG.debug(("%s is beeing shut doen") % (__name__))
func = request.environ.get('werkzeug.server.shutdown')
if func is None:
raise RuntimeError('Not running with the Werkzeug Server')
:return: Returns a json with API versions.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = """
{
return response
except Exception as ex:
- logging.exception(u"%s: Could not show list of versions." % __name__)
+ LOG.exception(u"%s: Could not show list of versions." % __name__)
return ex.message, 500
:return: Returns a json with API details.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = """
return response
except Exception as ex:
- logging.exception(u"%s: Could not show list of versions." % __name__)
+ LOG.exception(u"%s: Could not show list of versions." % __name__)
return ex.message, 500
:return: Returns a json response with a dictionary that contains the server information.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the list of servers." % __name__)
+ LOG.exception(u"%s: Could not retrieve the list of servers." % __name__)
return ex.message, 500
def post(self, id):
:return: Returns a flask response, with detailed information about the just created server.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s POST" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s POST" % str(self.__class__.__name__))
try:
server_dict = json.loads(request.data)['server']
networks = server_dict.get('networks', None)
return response
except Exception as ex:
- logging.exception(u"%s: Could not create the server." % __name__)
+ LOG.exception(u"%s: Could not create the server." % __name__)
return ex.message, 500
:return: Returns a json response with a dictionary that contains the server information.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the list of servers." % __name__)
+ LOG.exception(u"%s: Could not retrieve the list of servers." % __name__)
return ex.message, 500
:return: Returns a flask response, with detailed information aboit the servers and their flavor and image.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = {"servers": list()}
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the list of servers." % __name__)
+ LOG.exception(u"%s: Could not retrieve the list of servers." % __name__)
return ex.message, 500
:return: Returns a flask response with a list of all flavors.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
resp['flavors'] = list()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the list of servers." % __name__)
+ LOG.exception(u"%s: Could not retrieve the list of servers." % __name__)
return ex.message, 500
def post(self, id):
- logging.debug("API CALL: %s POST" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s POST" % str(self.__class__.__name__))
data = json.loads(request.data).get("flavor")
- logging.warning("Create Flavor: %s" % str(data))
+ LOG.warning("Create Flavor: %s" % str(data))
# add to internal dict
f = self.api.compute.add_flavor(
data.get("name"),
:return: Returns a flask response with a list of all flavors with additional information.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
resp['flavors'] = list()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the list of servers." % __name__)
+ LOG.exception(u"%s: Could not retrieve the list of servers." % __name__)
return ex.message, 500
def post(self, id):
- logging.debug("API CALL: %s POST" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s POST" % str(self.__class__.__name__))
data = json.loads(request.data).get("flavor")
- logging.warning("Create Flavor: %s" % str(data))
+ LOG.warning("Create Flavor: %s" % str(data))
# add to internal dict
f = self.api.compute.add_flavor(
data.get("name"),
:return: Returns a flask response with detailed information about the flavor.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
resp['flavor'] = dict()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve flavor with id %s" % (__name__, flavorid))
+ LOG.exception(u"%s: Could not retrieve flavor with id %s" % (__name__, flavorid))
return ex.message, 500
:return: Returns a flask response with a list of available images.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
resp['images'] = list()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the list of images." % __name__)
+ LOG.exception(u"%s: Could not retrieve the list of images." % __name__)
return ex.message, 500
:return: Returns a flask response with a list of images and their metadata.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
resp['images'] = list()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the list of images." % __name__)
+ LOG.exception(u"%s: Could not retrieve the list of images." % __name__)
return ex.message, 500
:return: Returns a flask response with the information about one image.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
resp = dict()
i = resp['image'] = dict()
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve image with id %s." % (__name__, imageid))
+ LOG.exception(u"%s: Could not retrieve image with id %s." % (__name__, imageid))
return ex.message, 500
:return: Returns a flask response with details about the server.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
server = self.api.compute.find_server_by_name_or_id(serverid)
if server is None:
return response
except Exception as ex:
- logging.exception(u"%s: Could not retrieve the server details." % __name__)
+ LOG.exception(u"%s: Could not retrieve the server details." % __name__)
return ex.message, 500
def delete(self, id, serverid):
:return: Returns 200 if everything is fine.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s POST" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s POST" % str(self.__class__.__name__))
try:
server = self.api.compute.find_server_by_name_or_id(serverid)
if server is None:
return response
except Exception as ex:
- logging.exception(u"%s: Could not create the server." % __name__)
+ LOG.exception(u"%s: Could not create the server." % __name__)
return ex.message, 500
:return: Returns a flask response with information about the attached interface.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
server = self.api.compute.find_server_by_name_or_id(serverid)
if server is None:
return Response("Server with id or name %s does not exists." % serverid, status=404)
if server.emulator_compute is None:
- logging.error("The targeted container does not exist.")
+ LOG.error("The targeted container does not exist.")
return Response("The targeted container of %s does not exist." % serverid, status=404)
data = json.loads(request.data).get("interfaceAttachment")
resp = dict()
return response
except Exception as ex:
- logging.exception(u"%s: Could not add interface to the server." % __name__)
+ LOG.exception(u"%s: Could not add interface to the server." % __name__)
return ex.message, 500
error message.
:rtype: :class:`flask.response`
"""
- logging.debug("API CALL: %s GET" % str(self.__class__.__name__))
+ LOG.debug("API CALL: %s GET" % str(self.__class__.__name__))
try:
server = self.api.compute.find_server_by_name_or_id(serverid)
if server is None:
return response
except Exception as ex:
- logging.exception(u"%s: Could not detach interface from the server." % __name__)
+ LOG.exception(u"%s: Could not detach interface from the server." % __name__)
return ex.message, 500