Seamicro Serial Console¶
https://blueprints.launchpad.net/ironic/+spec/seamicro-serial-console
This blueprint implements console driver – “ShellinaboxConsole” which support serial console access for Seamicro Fabric Compute system.
Problem description¶
Currently there is no support to get the serial console for physical server configured within the Seamicro Fabric Compute system.
Proposed change¶
Implements a console driver – “ShellinaboxConsole” – that uses telnet+shellinabox to connect to serial console of physical servers configured within the Seamicro Fabric Compute system. SeaMicro System provides telnet facility to connect to any of it’s physical server’s serial console. Port to which we telnet depends on server-id. “server-id” here, is what SeaMicro box refers to it’s server and not ironic node’s uuid. We already have the required information (server-id) captured as part of driver_info. Following are details,
Use existing ironic/drivers/modules/console_utils module to start/stop shellinabox. IPMI driver already use shellinabox to access their serial console.
Add seamicro_terminal_port property to CONSOLE_PROPERTIES. This is going to be port on which shellinabox listens locally.
Add new class ShellinaboxConsole inherited from base.ConsoleInterface in ironic/drivers/modules/seamicro.py
- Implement the following methods in ShellinaboxConsole class.
validate()
- Validate the Node console info.param task : a task from TaskManager.
raises : InvalidParameterValue
start_console()
- Start a remote console for the node.stop_console()
- Stop the remote console session for the node.get_console()
- Get the type and connection information about the console.
Add self variable self.console in PXEAndSeaMicroDriver.
Alternatives¶
None
Data model impact¶
None
REST API impact¶
None
RPC API impact¶
None
Driver API impact¶
None
Nova driver impact¶
None
Security impact¶
None
Other end user impact¶
None
Scalability impact¶
None
Performance Impact¶
None
Other deployer impact¶
- The following which are already part of driver_info fields are required:
seamicro_api_endpoint
- hostname or IP address of seamicroseamicro_username
- seamicro usernameseamicro_password
- seamicro passwordseamicro_server_id
- seamicro server id
- Additionally one field need to be provided with driver_info
seamicro_terminal_port
- node’s UDP port to connect to. Only required for console access.
Developer impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
harshada-kakad
Work Items¶
Implement ShellinaboxConsole
class inherited from
base.ManagementInterface
.
Implement validate
, start_console
, stop_console
, get_console
.
Dependencies¶
None
Testing¶
Unit Testing will be added.
Upgrades and Backwards Compatibility¶
None
Documentation Impact¶
As part of this blueprint I would be documenting usage of this feature.
References¶
None