Optimizes API Calls

Through additional profiling, I found a few more places where
caching could be enabled to reduce network calls and speed up
page load times slightly.  This patch adds caching to frequently
used methods and provides for minor improvements.  Tested in both
virt and baremetal environments.

Change-Id: I768d6643c4523d33c440a13f5ddc5212555956a8
This commit is contained in:
Ryan Brady 2015-07-09 10:18:51 -04:00
parent 99201028f7
commit c00978551d
3 changed files with 7 additions and 0 deletions

View File

@ -34,6 +34,7 @@ from tuskar_ui.utils import utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@memoized.memoized
def overcloud_keystoneclient(request, endpoint, password): def overcloud_keystoneclient(request, endpoint, password):
"""Returns a client connected to the Keystone backend. """Returns a client connected to the Keystone backend.

View File

@ -56,6 +56,7 @@ IRONIC_DISCOVERD_URL = getattr(settings, 'IRONIC_DISCOVERD_URL', None)
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@memoized.memoized
def ironicclient(request): def ironicclient(request):
api_version = 1 api_version = 1
kwargs = {'os_auth_token': request.user.token.id, kwargs = {'os_auth_token': request.user.token.id,
@ -156,6 +157,7 @@ class Node(base.APIResourceWrapper):
return cls(node, request) return cls(node, request)
@classmethod @classmethod
@memoized.memoized
@handle_errors(_("Unable to retrieve node")) @handle_errors(_("Unable to retrieve node"))
def get(cls, request, uuid): def get(cls, request, uuid):
"""Return the Node that matches the ID """Return the Node that matches the ID
@ -199,6 +201,7 @@ class Node(base.APIResourceWrapper):
return cls(node, request, server) return cls(node, request, server)
@classmethod @classmethod
@memoized.memoized
@handle_errors(_("Unable to retrieve nodes"), []) @handle_errors(_("Unable to retrieve nodes"), [])
def list(cls, request, associated=None, maintenance=None): def list(cls, request, associated=None, maintenance=None):
"""Return a list of Nodes """Return a list of Nodes
@ -302,6 +305,7 @@ class Node(base.APIResourceWrapper):
return cls(node, request) return cls(node, request)
@classmethod @classmethod
@memoized.memoized
def list_ports(cls, request, uuid): def list_ports(cls, request, uuid):
"""Return a list of ports associated with this Node """Return a list of ports associated with this Node

View File

@ -352,6 +352,7 @@ class Role(base.APIResourceWrapper):
self._request = request self._request = request
@classmethod @classmethod
@memoized.memoized
@handle_errors(_("Unable to retrieve overcloud roles"), []) @handle_errors(_("Unable to retrieve overcloud roles"), [])
def list(cls, request): def list(cls, request):
"""Return a list of Overcloud Roles in Tuskar """Return a list of Overcloud Roles in Tuskar
@ -367,6 +368,7 @@ class Role(base.APIResourceWrapper):
return [cls(role, request=request) for role in roles] return [cls(role, request=request) for role in roles]
@classmethod @classmethod
@memoized.memoized
@handle_errors(_("Unable to retrieve overcloud role")) @handle_errors(_("Unable to retrieve overcloud role"))
def get(cls, request, role_id): def get(cls, request, role_id):
"""Return the Tuskar Role that matches the ID """Return the Tuskar Role that matches the ID