summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-11-15 18:00:04 +0000
committerGerrit Code Review <review@openstack.org>2016-11-15 18:00:04 +0000
commite1f4cbdab3ce681daa4c3939c013fd86e152f4a3 (patch)
tree30ed64887d66bd52932976fa3986341ff6ed58ab
parent292b4295d9c4f196d5e95ebd3ea32fca3676ff1c (diff)
parentbcf137bd09dbd59aec6a2ed99b3a637ecdb2b3d6 (diff)
downloadironic-e1f4cbdab3ce681daa4c3939c013fd86e152f4a3.tar.gz
Merge "Timing metrics: OneView drivers"
-rw-r--r--ironic/drivers/modules/oneview/deploy.py13
-rw-r--r--ironic/drivers/modules/oneview/inspect.py5
-rw-r--r--ironic/drivers/modules/oneview/management.py8
-rw-r--r--ironic/drivers/modules/oneview/power.py8
-rw-r--r--ironic/drivers/modules/oneview/vendor.py6
-rw-r--r--releasenotes/notes/oneview-timing-metrics-0b6c1b54e80eb683.yaml3
6 files changed, 42 insertions, 1 deletions
diff --git a/ironic/drivers/modules/oneview/deploy.py b/ironic/drivers/modules/oneview/deploy.py
index 52be56b78..9ee9ee572 100644
--- a/ironic/drivers/modules/oneview/deploy.py
+++ b/ironic/drivers/modules/oneview/deploy.py
@@ -17,6 +17,7 @@
import abc
from futurist import periodics
+from ironic_lib import metrics_utils
from oslo_log import log as logging
import six
@@ -31,6 +32,8 @@ from ironic import objects
LOG = logging.getLogger(__name__)
+METRICS = metrics_utils.get_metrics_logger(__name__)
+
CONF = common.CONF
@@ -223,6 +226,7 @@ class OneViewIscsiDeploy(iscsi_deploy.ISCSIDeploy, OneViewPeriodicTasks):
def get_properties(self):
deploy_utils.get_properties()
+ @METRICS.timer('OneViewIscsiDeploy.validate')
def validate(self, task):
common.verify_node_info(task.node)
try:
@@ -231,22 +235,26 @@ class OneViewIscsiDeploy(iscsi_deploy.ISCSIDeploy, OneViewPeriodicTasks):
raise exception.InvalidParameterValue(oneview_exc)
super(OneViewIscsiDeploy, self).validate(task)
+ @METRICS.timer('OneViewIscsiDeploy.prepare')
def prepare(self, task):
if common.is_dynamic_allocation_enabled(task.node):
deploy_utils.prepare(task)
super(OneViewIscsiDeploy, self).prepare(task)
+ @METRICS.timer('OneViewIscsiDeploy.tear_down')
def tear_down(self, task):
if (common.is_dynamic_allocation_enabled(task.node) and
not CONF.conductor.automated_clean):
deploy_utils.tear_down(task)
super(OneViewIscsiDeploy, self).tear_down(task)
+ @METRICS.timer('OneViewIscsiDeploy.prepare_cleaning')
def prepare_cleaning(self, task):
if common.is_dynamic_allocation_enabled(task.node):
deploy_utils.prepare_cleaning(task)
return super(OneViewIscsiDeploy, self).prepare_cleaning(task)
+ @METRICS.timer('OneViewIscsiDeploy.tear_down_cleaning')
def tear_down_cleaning(self, task):
if common.is_dynamic_allocation_enabled(task.node):
deploy_utils.tear_down_cleaning(task)
@@ -261,6 +269,7 @@ class OneViewAgentDeploy(agent.AgentDeploy, OneViewPeriodicTasks):
def get_properties(self):
deploy_utils.get_properties()
+ @METRICS.timer('OneViewAgentDeploy.validate')
def validate(self, task):
common.verify_node_info(task.node)
try:
@@ -269,22 +278,26 @@ class OneViewAgentDeploy(agent.AgentDeploy, OneViewPeriodicTasks):
raise exception.InvalidParameterValue(oneview_exc)
super(OneViewAgentDeploy, self).validate(task)
+ @METRICS.timer('OneViewAgentDeploy.prepare')
def prepare(self, task):
if common.is_dynamic_allocation_enabled(task.node):
deploy_utils.prepare(task)
super(OneViewAgentDeploy, self).prepare(task)
+ @METRICS.timer('OneViewAgentDeploy.tear_down')
def tear_down(self, task):
if (common.is_dynamic_allocation_enabled(task.node) and
not CONF.conductor.automated_clean):
deploy_utils.tear_down(task)
super(OneViewAgentDeploy, self).tear_down(task)
+ @METRICS.timer('OneViewAgentDeploy.prepare_cleaning')
def prepare_cleaning(self, task):
if common.is_dynamic_allocation_enabled(task.node):
deploy_utils.prepare_cleaning(task)
return super(OneViewAgentDeploy, self).prepare_cleaning(task)
+ @METRICS.timer('OneViewAgentDeploy.tear_down_cleaning')
def tear_down_cleaning(self, task):
if common.is_dynamic_allocation_enabled(task.node):
deploy_utils.tear_down_cleaning(task)
diff --git a/ironic/drivers/modules/oneview/inspect.py b/ironic/drivers/modules/oneview/inspect.py
index dde2e6583..38c1b20a0 100644
--- a/ironic/drivers/modules/oneview/inspect.py
+++ b/ironic/drivers/modules/oneview/inspect.py
@@ -15,6 +15,7 @@
# under the License.
from futurist import periodics
+from ironic_lib import metrics_utils
from oslo_log import log as logging
from oslo_utils import importutils
@@ -29,6 +30,8 @@ from ironic.conf import CONF
LOG = logging.getLogger(__name__)
+METRICS = metrics_utils.get_metrics_logger(__name__)
+
oneview_exception = importutils.try_import('oneview_client.exceptions')
oneview_utils = importutils.try_import('oneview_client.utils')
@@ -39,6 +42,7 @@ class OneViewInspect(inspector.Inspector):
def get_properties(self):
return common.COMMON_PROPERTIES
+ @METRICS.timer('OneViewInspect.validate')
def validate(self, task):
"""Checks required info on 'driver_info' and validates node with OneView
@@ -60,6 +64,7 @@ class OneViewInspect(inspector.Inspector):
except exception.OneViewError as oneview_exc:
raise exception.InvalidParameterValue(oneview_exc)
+ @METRICS.timer('OneViewInspect.inspect_hardware')
def inspect_hardware(self, task):
profile_name = 'Ironic Inspecting [%s]' % task.node.uuid
deploy_utils.allocate_server_hardware_to_ironic(
diff --git a/ironic/drivers/modules/oneview/management.py b/ironic/drivers/modules/oneview/management.py
index b0bf2941e..eeef9a127 100644
--- a/ironic/drivers/modules/oneview/management.py
+++ b/ironic/drivers/modules/oneview/management.py
@@ -14,6 +14,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from ironic_lib import metrics_utils
from oslo_log import log as logging
from oslo_utils import importutils
@@ -27,6 +28,8 @@ from ironic.drivers.modules.oneview import deploy_utils
LOG = logging.getLogger(__name__)
+METRICS = metrics_utils.get_metrics_logger(__name__)
+
BOOT_DEVICE_MAPPING_TO_OV = {
boot_devices.DISK: 'HardDisk',
boot_devices.PXE: 'PXE',
@@ -46,6 +49,7 @@ class OneViewManagement(base.ManagementInterface):
def get_properties(self):
return common.COMMON_PROPERTIES
+ @METRICS.timer('OneViewManagement.validate')
def validate(self, task):
"""Checks required info on 'driver_info' and validates node with OneView
@@ -73,6 +77,7 @@ class OneViewManagement(base.ManagementInterface):
except exception.OneViewError as oneview_exc:
raise exception.InvalidParameterValue(oneview_exc)
+ @METRICS.timer('OneViewManagement.get_supported_boot_devices')
def get_supported_boot_devices(self, task):
"""Gets a list of the supported boot devices.
@@ -83,6 +88,7 @@ class OneViewManagement(base.ManagementInterface):
return sorted(BOOT_DEVICE_MAPPING_TO_OV.keys())
+ @METRICS.timer('OneViewManagement.set_boot_device')
@task_manager.require_exclusive_lock
@common.node_has_server_profile
def set_boot_device(self, task, device, persistent=False):
@@ -121,6 +127,7 @@ class OneViewManagement(base.ManagementInterface):
)
raise exception.OneViewError(error=msg)
+ @METRICS.timer('OneViewManagement.get_boot_device')
@common.node_has_server_profile
def get_boot_device(self, task):
"""Get the current boot device for the task's node.
@@ -164,6 +171,7 @@ class OneViewManagement(base.ManagementInterface):
return boot_device
+ @METRICS.timer('OneViewManagement.get_sensors_data')
def get_sensors_data(self, task):
"""Get sensors data.
diff --git a/ironic/drivers/modules/oneview/power.py b/ironic/drivers/modules/oneview/power.py
index dc4ebcfd8..b972c0ff3 100644
--- a/ironic/drivers/modules/oneview/power.py
+++ b/ironic/drivers/modules/oneview/power.py
@@ -14,6 +14,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from ironic_lib import metrics_utils
from oslo_log import log as logging
from oslo_utils import importutils
@@ -24,9 +25,10 @@ from ironic.conductor import task_manager
from ironic.drivers import base
from ironic.drivers.modules.oneview import common
-
LOG = logging.getLogger(__name__)
+METRICS = metrics_utils.get_metrics_logger(__name__)
+
oneview_exceptions = importutils.try_import('oneview_client.exceptions')
@@ -35,6 +37,7 @@ class OneViewPower(base.PowerInterface):
def get_properties(self):
return common.COMMON_PROPERTIES
+ @METRICS.timer('OneViewPower.validate')
def validate(self, task):
"""Checks required info on 'driver_info' and validates node with OneView
@@ -58,6 +61,7 @@ class OneViewPower(base.PowerInterface):
except exception.OneViewError as oneview_exc:
raise exception.InvalidParameterValue(oneview_exc)
+ @METRICS.timer('OneViewPower.get_power_state')
def get_power_state(self, task):
"""Gets the current power state.
@@ -82,6 +86,7 @@ class OneViewPower(base.PowerInterface):
raise exception.OneViewError(error=oneview_exc)
return common.translate_oneview_power_state(power_state)
+ @METRICS.timer('OneViewPower.set_power_state')
@task_manager.require_exclusive_lock
def set_power_state(self, task, power_state):
"""Turn the current power state on or off.
@@ -119,6 +124,7 @@ class OneViewPower(base.PowerInterface):
_("Error setting power state: %s") % exc
)
+ @METRICS.timer('OneViewPower.reboot')
@task_manager.require_exclusive_lock
def reboot(self, task):
"""Reboot the node
diff --git a/ironic/drivers/modules/oneview/vendor.py b/ironic/drivers/modules/oneview/vendor.py
index d785bc738..20d724146 100644
--- a/ironic/drivers/modules/oneview/vendor.py
+++ b/ironic/drivers/modules/oneview/vendor.py
@@ -14,6 +14,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from ironic_lib import metrics_utils
from oslo_log import log
import retrying
@@ -25,6 +26,9 @@ from ironic.drivers.modules import agent_base_vendor
from ironic.drivers.modules import deploy_utils
LOG = log.getLogger(__name__)
+
+METRICS = metrics_utils.get_metrics_logger(__name__)
+
CONF = agent.CONF
@@ -36,6 +40,7 @@ CONF = agent.CONF
# TODO(thiagop): remove this interface once bug/1503855 is fixed
class AgentVendorInterface(agent.AgentVendorInterface):
+ @METRICS.timer('AgentVendorInterface.reboot_to_instance')
def reboot_to_instance(self, task, **kwargs):
task.process_event('resume')
node = task.node
@@ -63,6 +68,7 @@ class AgentVendorInterface(agent.AgentVendorInterface):
if task.driver.boot:
task.driver.boot.clean_up_ramdisk(task)
+ @METRICS.timer('AgentVendorInterface.reboot_and_finish_deploy')
def reboot_and_finish_deploy(self, task):
"""Helper method to trigger reboot on the node and finish deploy.
diff --git a/releasenotes/notes/oneview-timing-metrics-0b6c1b54e80eb683.yaml b/releasenotes/notes/oneview-timing-metrics-0b6c1b54e80eb683.yaml
new file mode 100644
index 000000000..bd803abc2
--- /dev/null
+++ b/releasenotes/notes/oneview-timing-metrics-0b6c1b54e80eb683.yaml
@@ -0,0 +1,3 @@
+---
+features:
+ - Adds timing metrics to OneView drivers.