def controller_sensor_message_request(resource_type): egressMsg = { "title": "SSPL Actuator Request", "description": "Seagate Storage Platform Library - Actuator Request", "username" : "JohnDoe", "signature" : "None", "time" : "2015-05-29 14:28:30.974749", "expires" : 500, "message" : { "sspl_ll_msg_header": { "schema_version": "1.0.0", "sspl_version": "1.0.0", "msg_version": "1.0.0" }, "sspl_ll_debug": { "debug_component" : "sensor", "debug_enabled" : True }, "sensor_request_type": { "enclosure_alert": { "info": { "resource_type": resource_type } } } } } world.sspl_modules[RabbitMQegressProcessor.name()]._write_internal_msgQ(RabbitMQegressProcessor.name(), egressMsg)
def disk_actuator_message_request(resource_type): egressMsg = { "username": "******", "expires": 3600, "description": "Seagate Storage Platform Library - Low Level - Actuator Request", "title": "SSPL-LL Actuator Request", "signature": "None", "time": "2018-07-31 04:08:04.071170", "message": { "sspl_ll_debug": { "debug_component": "sensor", "debug_enabled": True }, "sspl_ll_msg_header": { "msg_version": "1.0.0", "uuid": "9e6b8e53-10f7-4de0-a9aa-b7895bab7774", "schema_version": "1.0.0", "sspl_version": "1.0.0" }, "actuator_request_type": { "node_controller": { "node_request": resource_type, "resource": "*" } } } } world.sspl_modules[RabbitMQegressProcessor.name()]._write_internal_msgQ( RabbitMQegressProcessor.name(), egressMsg)
def controller_actuator_message_request(resource_type): egressMsg = { "title": "SSPL Actuator Request", "description": "Seagate Storage Platform Library - Actuator Request", "username": "******", "signature": "None", "time": "2015-05-29 14:28:30.974749", "expires": 500, "message": { "sspl_ll_debug": { "debug_component": "sensor", "debug_enabled": True }, "response_dest": {}, "sspl_ll_msg_header": { "msg_version": "1.0.0", "uuid": "16476007-a739-4785-b5c7-f3de189cdf9d", "schema_version": "1.0.0", "sspl_version": "1.0.0" }, "request_path": { "site_id": "0", "node_id": "1", "rack_id": "0" }, "actuator_request_type": { "storage_enclosure": { "enclosure_request": resource_type, "resource": "*" } } } } world.sspl_modules[RabbitMQegressProcessor.name()]._write_internal_msgQ( RabbitMQegressProcessor.name(), egressMsg)
def _run_thread_capture_errors(curr_module, msgQlist, conf_reader, product): """Run the given thread and log any errors that happen on it. Will stop all sspl_modules if one of them fails.""" try: # Each module is passed a reference list to message queues so it can transmit # internal messages to other modules as desired curr_module.initialize(conf_reader, msgQlist, product) curr_module.start() except BaseException as ex: logger.critical( "SSPL-Tests encountered a fatal error, terminating service Error: %s" % ex) logger.exception(ex) # Populate an actuator response message and transmit back to HAlon error_msg = "SSPL-Tests encountered an error, terminating service Error: " + \ ", Exception: " + logger.exception(ex) jsonMsg = ThreadControllerMsg(curr_module, error_msg).getJson() curr_module._write_internal_msgQ(RabbitMQegressProcessor.name(), jsonMsg) # Shut it down, error is non-recoverable for name, other_module in list(world.sspl_modules.items()): if other_module is not curr_module: other_module.shutdown()