[
https://issues.apache.org/jira/browse/CLOUDSTACK-10164?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16273434#comment-16273434
]
ASF GitHub Bot commented on CLOUDSTACK-10164:
---------------------------------------------
rhtyd closed pull request #2345: CLOUDSTACK-10164: bugfix allow users to create
a VPC through the UI.
URL: https://github.com/apache/cloudstack/pull/2345
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
b/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
index 1bbef4ec2c7..96016e6bb53 100644
---
a/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
+++
b/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
@@ -57,6 +57,7 @@
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -845,18 +846,23 @@ private String findNuageVspCmsIdForDevice(long deviceId) {
if (passedPhysicalNetworkId != null) {
physicalNetworkId = Optional.of(passedPhysicalNetworkId);
} else if (zoneId != null) {
- physicalNetworkId =
Optional.of(getPhysicalNetworkBasedOnZone(zoneId));
+ physicalNetworkId =
Optional.ofNullable(getPhysicalNetworkBasedOnZone(zoneId));
} else {
throw new InvalidParameterValueException("No zoneid or
physicalnetworkid specified.");
}
- List<VspDomainTemplate> domainTemplates;
+ if (!physicalNetworkId.isPresent()) {
+ return new LinkedList<>();
+ }
- ListVspDomainTemplatesCommand agentCmd = new
ListVspDomainTemplatesCommand(vspDomain, keyword);
Long hostId = getNuageVspHostId(physicalNetworkId.get());
+ if (hostId == null) {
+ return new LinkedList<>();
+ }
+ ListVspDomainTemplatesCommand agentCmd = new
ListVspDomainTemplatesCommand(vspDomain, keyword);
ListVspDomainTemplatesAnswer answer = (ListVspDomainTemplatesAnswer)
_agentMgr.easySend(hostId, agentCmd);
- domainTemplates = answer.getDomainTemplates();
+ List<VspDomainTemplate> domainTemplates = answer.getDomainTemplates();
return domainTemplates.stream()
.map(NuageVspManagerImpl::createDomainTemplateResponse)
@@ -926,6 +932,10 @@ public boolean checkIfDomainTemplateExist(Long domainId,
String domainTemplate,
@Override
public boolean entityExist(EntityExistsCommand cmd, Long
physicalNetworkId){
Long hostId = getNuageVspHostId(physicalNetworkId);
+ if (hostId == null) {
+ throw new CloudRuntimeException("There is no Nuage VSP device
configured on physical network " + physicalNetworkId);
+ }
+
Answer answer = _agentMgr.easySend(hostId, cmd);
if (answer != null) {
return answer.getResult();
@@ -1168,7 +1178,7 @@ private Long getNuageVspHostId(long physicalNetworkId) {
return config.getHostId();
}
- throw new CloudRuntimeException("There is no Nuage VSP device
configured on physical network " + physicalNetworkId);
+ return null;
}
@DB
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index 16feaf1f835..66ab75a42f0 100644
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -5245,65 +5245,66 @@
args.context.domainTemplateMap
= [];
args.context.globalDomainTemplateUsed = [];
}
- $.ajax({
- url:
createURL('listNuageVspDomainTemplates'),
- dataType: "json",
- data: {
- zoneid: args.zoneid
- },
- async: true,
- success: function (json) {
- $.ajax({
- url:
createURL('listNuageVspGlobalDomainTemplate'),
- dataType: "json",
- data: {
- name:
"nuagevsp.vpc.domaintemplate.name"
- },
- async: true,
- success:
function(PDTjson){
- var
domaintemplates = json.listnuagevspdomaintemplatesresponse.domaintemplates ?
json.listnuagevspdomaintemplatesresponse.domaintemplates : [];
- var
preConfiguredDomainTemplate =
PDTjson.listnuagevspglobaldomaintemplateresponse.count == 1 ?
PDTjson.listnuagevspglobaldomaintemplateresponse.domaintemplates[0].name : "";
- if
(!domaintemplates.length) {
-
args.$form.find("[rel=nuageusedomaintemplate]").hide();
- }
+ $.ajax({
+ url:
createURL('listNuageVspDomainTemplates'),
+ dataType: "json",
+ data: {
+ zoneid: args.zoneid
+ },
+ async: true,
+ error:
function(XMLHttpRequest, textStatus, errorThrown) {
+ args.response.success({});
+ },
+ success: function (json) {
+ $.ajax({
+ url:
createURL('listNuageVspGlobalDomainTemplate'),
+ dataType: "json",
+ data: {
+ name:
"nuagevsp.vpc.domaintemplate.name"
+ },
+ async: true,
+ success:
function(PDTjson){
+ var
domaintemplates = json.listnuagevspdomaintemplatesresponse.domaintemplates ?
json.listnuagevspdomaintemplatesresponse.domaintemplates : [];
+ var
preConfiguredDomainTemplate =
PDTjson.listnuagevspglobaldomaintemplateresponse.count == 1 ?
PDTjson.listnuagevspglobaldomaintemplateresponse.domaintemplates[0].name : "";
- var index = -1;
-
$.each(domaintemplates, function(key,value) {
- if
(preConfiguredDomainTemplate == value.name) {
- index
= key;
- }
- });
+ if
(!domaintemplates.length) {
+
args.$form.find("[rel=nuageusedomaintemplate]").hide();
+ }
- //Set global
pre configured DT as the default by placing it to the top of the drop down list.
- if (index !=
-1) {
-
domaintemplates.unshift(domaintemplates[index]);
-
domaintemplates.splice(index + 1, 1);
-
args.$form.find("[rel=nuageusedomaintemplate]").show();
-
args.$form.find("[rel=nuagedomaintemplatelist]").show();
-
args.$form.find("[rel=nuageusedomaintemplate]").find("input").attr('checked',
true);
-
args.context.globalDomainTemplateUsed[args.zoneid] = true;
- } else {
-
args.context.globalDomainTemplateUsed[args.zoneid] = false;
+ var index = -1;
+
$.each(domaintemplates, function(key,value) {
+ if
(preConfiguredDomainTemplate == value.name) {
+ index =
key;
}
+ });
-
args.context.domainTemplateMap[args.zoneid] = domaintemplates;
-
args.response.success({
- data:
$.map(domaintemplates, function (dt) {
- return
{
-
id: dt.name,
-
description: dt.description
- };
- })
- });
+ //Set global pre
configured DT as the default by placing it to the top of the drop down list.
+ if (index != -1) {
+
domaintemplates.unshift(domaintemplates[index]);
+
domaintemplates.splice(index + 1, 1);
+
args.$form.find("[rel=nuageusedomaintemplate]").show();
+
args.$form.find("[rel=nuagedomaintemplatelist]").show();
+
args.$form.find("[rel=nuageusedomaintemplate]").find("input").attr('checked',
true);
+
args.context.globalDomainTemplateUsed[args.zoneid] = true;
+ } else {
+
args.context.globalDomainTemplateUsed[args.zoneid] = false;
}
- });
- }
- });
-
- //}
+
args.context.domainTemplateMap[args.zoneid] = domaintemplates;
+
args.response.success({
+ data:
$.map(domaintemplates, function (dt) {
+ return {
+ id:
dt.name,
+
description: dt.description
+ };
+ })
+ });
+ }
+ });
+ }
+ });
}
}
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> UI - not able to create a VPC
> -----------------------------
>
> Key: CLOUDSTACK-10164
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10164
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: UI
> Affects Versions: 4.11.0.0
> Reporter: Sigert Goeminne
> Assignee: Sigert Goeminne
> Priority: Blocker
>
> I'm not able to create a vpc through the UI.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)