diff options
Diffstat (limited to 'ironic_python_agent/api')
| -rw-r--r-- | ironic_python_agent/api/controllers/root.py | 5 | ||||
| -rw-r--r-- | ironic_python_agent/api/controllers/v1/command.py | 42 | ||||
| -rw-r--r-- | ironic_python_agent/api/controllers/v1/status.py | 8 |
3 files changed, 31 insertions, 24 deletions
diff --git a/ironic_python_agent/api/controllers/root.py b/ironic_python_agent/api/controllers/root.py index 46caaad0..c95e2186 100644 --- a/ironic_python_agent/api/controllers/root.py +++ b/ironic_python_agent/api/controllers/root.py @@ -12,9 +12,9 @@ # License for the specific language governing permissions and limitations # under the License. +from ironic_lib import metrics_utils import pecan from pecan import rest - from wsme import types as wtypes import wsmeext.pecan as wsme_pecan @@ -81,7 +81,8 @@ class RootController(rest.RestController): # NOTE: The reason why convert() it's being called for every # request is because we need to get the host url from # the request object to make the links. - return Root.convert() + with metrics_utils.get_metrics_logger(__name__).timer('get'): + return Root.convert() @pecan.expose() def _route(self, args): diff --git a/ironic_python_agent/api/controllers/v1/command.py b/ironic_python_agent/api/controllers/v1/command.py index e4483e29..b6971fa7 100644 --- a/ironic_python_agent/api/controllers/v1/command.py +++ b/ironic_python_agent/api/controllers/v1/command.py @@ -13,6 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. +from ironic_lib import metrics_utils import pecan from pecan import rest from wsme import types @@ -78,9 +79,10 @@ class CommandController(rest.RestController): @wsme_pecan.wsexpose(CommandResultList) def get_all(self): """Get all command results.""" - agent = pecan.request.agent - results = agent.list_command_results() - return CommandResultList.from_results(results) + with metrics_utils.get_metrics_logger(__name__).timer('get_all'): + agent = pecan.request.agent + results = agent.list_command_results() + return CommandResultList.from_results(results) @wsme_pecan.wsexpose(CommandResult, types.text, types.text) def get_one(self, result_id, wait=None): @@ -91,13 +93,14 @@ class CommandController(rest.RestController): :returns: a :class:`ironic_python_agent.api.controller.v1.command. CommandResult` object. """ - agent = pecan.request.agent - result = agent.get_command_result(result_id) + with metrics_utils.get_metrics_logger(__name__).timer('get_one'): + agent = pecan.request.agent + result = agent.get_command_result(result_id) - if wait and wait.lower() == 'true': - result.join() + if wait and wait.lower() == 'true': + result.join() - return CommandResult.from_result(result) + return CommandResult.from_result(result) @wsme_pecan.wsexpose(CommandResult, types.text, body=Command) def post(self, wait=None, command=None): @@ -109,14 +112,15 @@ class CommandController(rest.RestController): :returns: a :class:`ironic_python_agent.api.controller.v1.command. CommandResult` object. """ - # the POST body is always the last arg, - # so command must be a kwarg here - if command is None: - command = Command() - agent = pecan.request.agent - result = agent.execute_command(command.name, **command.params) - - if wait and wait.lower() == 'true': - result.join() - - return result + with metrics_utils.get_metrics_logger(__name__).timer('post'): + # the POST body is always the last arg, + # so command must be a kwarg here + if command is None: + command = Command() + agent = pecan.request.agent + result = agent.execute_command(command.name, **command.params) + + if wait and wait.lower() == 'true': + result.join() + + return result diff --git a/ironic_python_agent/api/controllers/v1/status.py b/ironic_python_agent/api/controllers/v1/status.py index 84efc6a4..b1ed83b8 100644 --- a/ironic_python_agent/api/controllers/v1/status.py +++ b/ironic_python_agent/api/controllers/v1/status.py @@ -13,6 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. +from ironic_lib import metrics_utils import pecan from pecan import rest from wsme import types @@ -48,6 +49,7 @@ class StatusController(rest.RestController): @wsme_pecan.wsexpose(AgentStatus) def get_all(self): """Get current status of the running agent.""" - agent = pecan.request.agent - status = agent.get_status() - return AgentStatus.from_agent_status(status) + with metrics_utils.get_metrics_logger(__name__).timer('get_all'): + agent = pecan.request.agent + status = agent.get_status() + return AgentStatus.from_agent_status(status) |
