@@ -33,7 +33,6 @@ class WizardNetworks extends Component {
3333
3434 static propTypes = {
3535 data : PropTypes . object ,
36- setWizardState : PropTypes . func
3736 }
3837
3938 constructor ( props ) {
@@ -65,7 +64,8 @@ class WizardNetworks extends Component {
6564 this . state = {
6665 networks : networks || null ,
6766 nextStep : "WizardSummary" ,
68- valid : valid
67+ valid : valid ,
68+ hasNoNics : false
6969 }
7070 }
7171
@@ -80,9 +80,14 @@ class WizardNetworks extends Component {
8080
8181 processProps ( props ) {
8282 let networks = [ ]
83+ let hasNoNics = false
8384
8485 props . data . selectedInstances . forEach ( ( vm ) => {
8586 if ( vm . devices && vm . devices . nics ) {
87+ if ( vm . devices . nics . length === 0 ) {
88+ hasNoNics = true
89+ }
90+
8691 vm . devices . nics . forEach ( ( item ) => {
8792 let exists = false
8893 networks . forEach ( network => {
@@ -100,9 +105,12 @@ class WizardNetworks extends Component {
100105 }
101106 } )
102107
103- if ( networks . length == 0 ) {
108+ if ( networks . length === 0 ) {
104109 networks = null
110+ } else {
111+ hasNoNics = false
105112 }
113+
106114 if ( props . data . targetNetworks && props . data . targetNetworks . length ) {
107115 this . networkOptions = [ ]
108116
@@ -116,7 +124,14 @@ class WizardNetworks extends Component {
116124 } )
117125 } , this )
118126 }
119- this . setState ( { networks : networks } )
127+
128+ if ( ! this . state . valid && hasNoNics ) {
129+ this . setState ( { networks, hasNoNics, valid : true } , ( ) => {
130+ WizardActions . updateWizardState ( { networks, valid : true } )
131+ } )
132+ } else {
133+ this . setState ( { networks, hasNoNics } )
134+ }
120135 }
121136
122137 handleChangeNetwork ( event , network ) {
@@ -139,6 +154,18 @@ class WizardNetworks extends Component {
139154 }
140155
141156 render ( ) {
157+ if ( this . state . hasNoNics ) {
158+ return (
159+ < div className = { s . root } >
160+ < div className = { s . container } >
161+ < div className = "items-list" >
162+ < div className = { s . message } > The selected instances have no NICs.</ div >
163+ </ div >
164+ </ div >
165+ </ div >
166+ )
167+ }
168+
142169 if ( this . state . networks != null ) {
143170 let networks = this . state . networks . map ( ( network , index ) => {
144171 let networkDropdown
@@ -180,17 +207,17 @@ class WizardNetworks extends Component {
180207 </ div >
181208 </ div >
182209 ) ;
183- } else {
184- return (
185- < div className = { s . root } >
186- < div className = { s . container } >
187- < div className = "items-list" >
188- < LoadingIcon text = "Loading networks..." / >
189- </ div >
210+ }
211+
212+ return (
213+ < div className = { s . root } >
214+ < div className = { s . container } >
215+ < div className = "items-list" >
216+ < LoadingIcon text = "Loading networks..." / >
190217 </ div >
191218 </ div >
192- ) ;
193- }
219+ </ div >
220+ ) ;
194221 }
195222
196223}
0 commit comments