|
274 | 274 | } |
275 | 275 | }; |
276 | 276 |
|
277 | | - var networkOfferingObjs = []; |
278 | | - var checkVpc=0; |
| 277 | + var networkOfferingObjs = []; |
| 278 | + var advZoneObjs; |
| 279 | + |
279 | 280 | cloudStack.sections.network = { |
280 | 281 | title: 'label.network', |
281 | 282 | id: 'network', |
282 | 283 | sectionSelect: { |
283 | 284 | preFilter: function(args) { |
284 | | - var havingSecurityGroupNetwork = false; |
285 | | - |
| 285 | + var sectionsToShow = ['networks']; |
| 286 | + |
| 287 | + $.ajax({ |
| 288 | + url: createURL('listZones'), |
| 289 | + data: { |
| 290 | + networktype: 'Advanced' |
| 291 | + }, |
| 292 | + async: false, |
| 293 | + success: function(json) { |
| 294 | + advZoneObjs = json.listzonesresponse.zone; |
| 295 | + if(advZoneObjs != null && advZoneObjs.length > 0) { |
| 296 | + sectionsToShow.push('vpc'); |
| 297 | + sectionsToShow.push('vpnCustomerGateway'); |
| 298 | + } |
| 299 | + } |
| 300 | + }); |
| 301 | + |
286 | 302 | $.ajax({ |
287 | 303 | url: createURL('listNetworks', { ignoreProject: true }), |
288 | 304 | data: { |
289 | 305 | supportedServices: 'SecurityGroup', |
290 | 306 | listAll: true, |
291 | | - details: 'min' |
| 307 | + details: 'min' |
292 | 308 | }, |
293 | 309 | async: false, |
294 | | - success: function(data) { |
295 | | - if (data.listnetworksresponse.network != null && data.listnetworksresponse.network.length > 0) { |
296 | | - havingSecurityGroupNetwork = true; |
| 310 | + success: function(json) { |
| 311 | + if(json.listnetworksresponse.network != null && json.listnetworksresponse.network.length > 0) { |
| 312 | + sectionsToShow.push('securityGroups'); |
297 | 313 | } |
298 | 314 | } |
299 | 315 | }); |
300 | | - |
301 | | - var sectionsToShow = ['networks']; |
302 | | - |
303 | | - if(args.context.zoneType != 'Basic') { //Advanced type or all types |
304 | | - sectionsToShow.push('vpc'); |
305 | | - sectionsToShow.push('vpnCustomerGateway'); |
306 | | - } |
307 | | - |
308 | | - if(havingSecurityGroupNetwork == true) |
309 | | - sectionsToShow.push('securityGroups'); |
310 | | - |
| 316 | + |
311 | 317 | return sectionsToShow; |
312 | 318 | }, |
313 | 319 |
|
|
323 | 329 | add: { |
324 | 330 | label: 'Add Isolated Guest Network with SourceNat', |
325 | 331 |
|
326 | | - preFilter: function(args) { //Isolated networks is only supported in Advanced (SG-disabled) zone |
327 | | - if(args.context.zoneType != 'Basic') |
328 | | - return true; |
329 | | - else |
330 | | - return false; |
| 332 | + preFilter: function(args) { |
| 333 | + if(advZoneObjs != null && advZoneObjs.length > 0) { |
| 334 | + for(var i = 0; i < advZoneObjs.length; i++) { |
| 335 | + if(advZoneObjs[i].securitygroupsenabled != true) { //'Add Isolated Guest Network with SourceNat' is only supported in Advanced SG-disabled zone |
| 336 | + return true; |
| 337 | + } |
| 338 | + } |
| 339 | + return false; |
| 340 | + } |
| 341 | + else{ |
| 342 | + return false; |
| 343 | + } |
331 | 344 | }, |
332 | 345 |
|
333 | 346 | createForm: { |
|
0 commit comments