def _power_status(node): """Get the power status for a node. :param node: a node object. :returns: one of ironic.common.states POWER_OFF, POWER_ON or ERROR. :raises: AMTFailure. :raises: AMTConnectFailure. """ client = amt_common.get_wsman_client(node) namespace = resource_uris.CIM_AssociatedPowerManagementService try: doc = client.wsman_get(namespace) except (exception.AMTFailure, exception.AMTConnectFailure) as e: with excutils.save_and_reraise_exception(): LOG.exception(_LE("Failed to get power state for node %(node_id)s " "with error: %(error)s."), {'node_id': node.uuid, 'error': e}) item = "PowerState" power_state = amt_common.xml_find(doc, namespace, item).text for state in AMT_POWER_MAP: if power_state == AMT_POWER_MAP[state]: return state return states.ERROR
def _power_status(node): """Get the power status for a node. :param node: a node object. :returns: one of ironic.common.states POWER_OFF, POWER_ON or ERROR. :raises: AMTFailure. :raises: AMTConnectFailure. """ client = amt_common.get_wsman_client(node) namespace = resource_uris.CIM_AssociatedPowerManagementService try: doc = client.wsman_get(namespace) except (exception.AMTFailure, exception.AMTConnectFailure) as e: with excutils.save_and_reraise_exception(): LOG.exception( _LE("Failed to get power state for node %(node_id)s " "with error: %(error)s."), { 'node_id': node.uuid, 'error': e }) item = "PowerState" power_state = amt_common.xml_find(doc, namespace, item).text for state in AMT_POWER_MAP: if power_state == AMT_POWER_MAP[state]: return state return states.ERROR
def test_xml_find(self): namespace = "http://fake" value = "fake_value" test_xml = test_utils.build_soap_xml([{"test_element": value}], namespace) mock_doc = test_utils.mock_wsman_root(test_xml) result = amt_common.xml_find(mock_doc, namespace, "test_element") self.assertEqual(value, result.text)
def test_xml_find(self): namespace = 'http://fake' value = 'fake_value' test_xml = test_utils.build_soap_xml([{'test_element': value}], namespace) mock_doc = test_utils.mock_wsman_root(test_xml) result = amt_common.xml_find(mock_doc, namespace, 'test_element') self.assertEqual(value, result.text)