Fix nodes registration

* Don't include uuid in nodes registration
* Add IPMI port to driver fields

Closes-Bug: 1689507
Closes-Bug: 1688543
Change-Id: I35df26175aa3fe44970420d8e1f0936fc1005337
This commit is contained in:
Jiri Tomasek 2017-05-05 14:31:13 +02:00
parent 24231d39c6
commit 2b74192998
6 changed files with 44 additions and 1 deletions

View File

@ -0,0 +1,6 @@
fixes:
- |
Fixes `bug 1689507 <https://launchpad.net/bugs/1689507>`__
IPMI port is now possible to specify when registering Nodes.
Fixes `bug 1688543 <https://launchpad.net/bugs/1688543>`__
Node UUID is not generated by UI when registering nodes any more.

View File

@ -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
/>
<HorizontalInput
name="pm_port"
title={this.props.port_title}
inputColumnClasses="col-sm-7"
labelColumnClasses="col-sm-5"
value={this.props.node.pm_port}
validations={{ matchRegexp: new RegExp(this.portRegex) }}
validationError={this.props.intl.formatMessage(
messages.portValidationMessage
)}
/>
<HorizontalInput
name="pm_user"
title={this.props.user_title}
@ -68,6 +87,7 @@ DriverFields.propTypes = {
addr_title: PropTypes.string.isRequired,
intl: PropTypes.object,
node: ImmutablePropTypes.record.isRequired,
port_title: PropTypes.string.isRequired,
pwd_title: PropTypes.string.isRequired,
user_title: PropTypes.string.isRequired
};

View File

@ -9,6 +9,10 @@ const messages = defineMessages({
id: 'PXEAndDRACDriverFields.addr_title',
defaultMessage: 'DRAC Host'
},
port_title: {
id: 'PXEAndDRACDriverFields.port_title',
defaultMessage: 'DRAC Port'
},
user_title: {
id: 'PXEAndDRACDriverFields.user_title',
defaultMessage: 'DRAC Username'
@ -26,6 +30,7 @@ class PXEAndDRACDriverFields 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)}
/>
);

View File

@ -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)}
/>
);

View File

@ -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)}
/>
);

View File

@ -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,