diff --git a/releasenotes/notes/nodes-register-port-080747965014e1b3.yaml b/releasenotes/notes/nodes-register-port-080747965014e1b3.yaml new file mode 100644 index 00000000..56d51ac6 --- /dev/null +++ b/releasenotes/notes/nodes-register-port-080747965014e1b3.yaml @@ -0,0 +1,6 @@ +fixes: + - | + Fixes `bug 1689507 `__ + IPMI port is now possible to specify when registering Nodes. + Fixes `bug 1688543 `__ + Node UUID is not generated by UI when registering nodes any more. diff --git a/src/js/components/nodes/driver_fields/DriverFields.js b/src/js/components/nodes/driver_fields/DriverFields.js index e602098a..c7b5bc00 100644 --- a/src/js/components/nodes/driver_fields/DriverFields.js +++ b/src/js/components/nodes/driver_fields/DriverFields.js @@ -10,6 +10,10 @@ const messages = defineMessages({ ipOrFqdnValidatorMessage: { id: 'DriverFields.ipOrFqdnValidatorMessage', defaultMessage: 'Please enter a valid IPv4 Address or a valid FQDN.' + }, + portValidationMessage: { + id: 'DriverFields.portValidationMessage', + defaultMessage: 'Please enter valid Port number (0 - 65535)' } }); @@ -23,6 +27,10 @@ class DriverFields extends React.Component { let fqdn_regex = '^(?!:\/\/)([a-zA-Z0-9]+\.)?[a-zA-Z0-9][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$'; + this.portRegex = + '^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}' + + '|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$$'; + this.ipOrFqdnValidator = { matchRegexp: new RegExp(ip_regex + '|' + fqdn_regex) }; @@ -44,6 +52,17 @@ class DriverFields extends React.Component { validationError={this.ipOrFqdnValidatorMessage} required /> + ); diff --git a/src/js/components/nodes/driver_fields/PXEAndIPMIToolDriverFields.js b/src/js/components/nodes/driver_fields/PXEAndIPMIToolDriverFields.js index 39d7fee1..70a94291 100644 --- a/src/js/components/nodes/driver_fields/PXEAndIPMIToolDriverFields.js +++ b/src/js/components/nodes/driver_fields/PXEAndIPMIToolDriverFields.js @@ -9,6 +9,10 @@ const messages = defineMessages({ id: 'PXEAndIPMIToolDriverFields.addr_title', defaultMessage: 'IPMI IP Address or FQDN' }, + port_title: { + id: 'PXEAndIPMIToolDriverFields.port_title', + defaultMessage: 'IPMI Port' + }, user_title: { id: 'PXEAndIPMIToolDriverFields.user_title', defaultMessage: 'IPMI Username' @@ -26,6 +30,7 @@ class PXEAndIPMIToolDriverFields extends React.Component { {...this.props} addr_title={this.props.intl.formatMessage(messages.addr_title)} user_title={this.props.intl.formatMessage(messages.user_title)} + port_title={this.props.intl.formatMessage(messages.port_title)} pwd_title={this.props.intl.formatMessage(messages.pwd_title)} /> ); diff --git a/src/js/components/nodes/driver_fields/PXEAndSSHDriverFields.js b/src/js/components/nodes/driver_fields/PXEAndSSHDriverFields.js index 047e06b4..a6d71d5d 100644 --- a/src/js/components/nodes/driver_fields/PXEAndSSHDriverFields.js +++ b/src/js/components/nodes/driver_fields/PXEAndSSHDriverFields.js @@ -9,6 +9,10 @@ const messages = defineMessages({ id: 'PXEAndSSHDriverFields.addr_title', defaultMessage: 'SSH IP Address or FQDN' }, + port_title: { + id: 'PXEAndSSHDriverFields.port_title', + defaultMessage: 'SSH Port' + }, user_title: { id: 'PXEAndSSHDriverFields.user_title', defaultMessage: 'SSH User' @@ -26,6 +30,7 @@ class PXEAndSSHDriverFields extends React.Component { {...this.props} addr_title={this.props.intl.formatMessage(messages.addr_title)} user_title={this.props.intl.formatMessage(messages.user_title)} + port_title={this.props.intl.formatMessage(messages.port_title)} pwd_title={this.props.intl.formatMessage(messages.pwd_title)} /> ); diff --git a/src/js/immutableRecords/nodes.js b/src/js/immutableRecords/nodes.js index d267a01d..c14f75db 100644 --- a/src/js/immutableRecords/nodes.js +++ b/src/js/immutableRecords/nodes.js @@ -8,6 +8,7 @@ export const NodeToRegister = Record({ pm_user: undefined, pm_addr: undefined, pm_password: undefined, + pm_port: undefined, arch: undefined, cpu: undefined, memory: undefined, @@ -16,13 +17,14 @@ export const NodeToRegister = Record({ }); export const IronicNode = Record({ - uuid: undefined, + // uuid: undefined, TODO(jtomasek): re-add this once registration supports passing uuid name: undefined, mac: List(), pm_type: 'pxe_ssh', pm_user: undefined, pm_addr: undefined, pm_password: undefined, + pm_port: undefined, arch: undefined, cpu: undefined, memory: undefined,