Skip to content

Commit 700a017

Browse files
author
Daniel Vega
committed
New drop-down menu to choose LB domains when creating a new LB
1 parent 970be8e commit 700a017

5 files changed

Lines changed: 62 additions & 2 deletions

File tree

plugins/network-elements/globonetwork/src/com/globo/globonetwork/cloudstack/api/GloboNetworkCapabilitiesResponse.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import org.apache.cloudstack.api.BaseResponse;
2020

21+
import java.util.List;
22+
2123
import com.cloud.serializer.Param;
2224
import com.google.gson.annotations.SerializedName;
2325

@@ -35,6 +37,10 @@ public class GloboNetworkCapabilitiesResponse extends BaseResponse {
3537
@Param(description = "is GloboNetwork provider enabled in any zone")
3638
private Boolean enabled;
3739

40+
@SerializedName("allowedLbSuffixes")
41+
@Param(description = "allowed domain suffixes for load balancers in GloboNetwork")
42+
private List<String> allowedLbSuffixes;
43+
3844
public String getDomainSuffix() {
3945
return domainSuffix;
4046
}
@@ -55,4 +61,12 @@ public void setEnabled(boolean enabled) {
5561
this.enabled = enabled;
5662
}
5763

64+
public List<String> getAllowedLbSuffixes() {
65+
return allowedLbSuffixes;
66+
}
67+
68+
public void setAllowedLbSuffixes(List<String> allowedLbSuffixes) {
69+
this.allowedLbSuffixes = allowedLbSuffixes;
70+
}
71+
5872
}

plugins/network-elements/globonetwork/src/com/globo/globonetwork/cloudstack/api/ListGloboNetworkCapabilitiesCmd.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public void execute() {
4545
response.setDomainSuffix(_globoNetworkService.getDomainSuffix());
4646
response.setSupportCustomNetworkDomain(_globoNetworkService.isSupportedCustomNetworkDomain());
4747
response.setEnabled(enabledInZones != null && !enabledInZones.isEmpty());
48+
response.setAllowedLbSuffixes(_globoNetworkService.listAllowedLbSuffixes());
4849
response.setObjectName("globoNetworkCapability");
4950
response.setResponseName(getCommandName());
5051
this.setResponseObject(response);

plugins/network-elements/globonetwork/src/com/globo/globonetwork/cloudstack/manager/GloboNetworkManager.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2215,4 +2215,21 @@ public List<DataCenter> getAllZonesThatProviderAreEnabled() {
22152215
}
22162216
return zonesEnabled;
22172217
}
2218+
2219+
@Override
2220+
public List<String> listAllowedLbSuffixes() {
2221+
String allowedDomainsOpt = GloboNetworkLBAllowedSuffixes.value();
2222+
List<String> allowedDomains = new ArrayList<String>();
2223+
2224+
for (String allowedDomain : allowedDomainsOpt.split(",")) {
2225+
// Remove any whitespaces
2226+
allowedDomain = allowedDomain.trim();
2227+
if (allowedDomainsOpt != null && !allowedDomainsOpt.equals("")) {
2228+
// Insert the '.' before the domain, if it's not there yet
2229+
allowedDomain = allowedDomain.startsWith(".") ? allowedDomain : "." + allowedDomain;
2230+
allowedDomains.add(allowedDomain);
2231+
}
2232+
}
2233+
return allowedDomains;
2234+
}
22182235
}

plugins/network-elements/globonetwork/src/com/globo/globonetwork/cloudstack/manager/GloboNetworkService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@ public Network validateNic(NicProfile nicProfile, VirtualMachineProfile vm, Netw
213213

214214
public List<DataCenter> getAllZonesThatProviderAreEnabled();
215215

216+
public List<String> listAllowedLbSuffixes();
217+
216218
public boolean destroyGloboNetwork(long networkId, boolean forced);
217219

218220
/**

ui/scripts/loadbalancer.js

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -760,11 +760,37 @@
760760
createForm: {
761761
fields: {
762762
name: {
763-
label: 'label.fqdn',
763+
label: 'label.name',
764764
validation: {
765765
required: true
766766
}
767767
},
768+
lbdomain: {
769+
label: 'LB Domain',
770+
validation: {
771+
required: true
772+
},
773+
select: function(args) {
774+
var lbdomains = [];
775+
$.ajax({
776+
url: createURL("listGloboNetworkCapabilities"),
777+
dataType: "json",
778+
async: false,
779+
success: function(json) {
780+
var response = json.listglobonetworkcapabilitiesresponse;
781+
$(json.listglobonetworkcapabilitiesresponse.globoNetworkCapability.allowedLbSuffixes).each(function() {
782+
lbdomains.push({id: this.valueOf(), description: this.valueOf()});
783+
});
784+
},
785+
error: function(json) {
786+
args.response.error(parseXMLHttpResponse(json));
787+
}
788+
});
789+
args.response.success({
790+
data: lbdomains
791+
});
792+
}
793+
},
768794
publicport: {
769795
label: 'label.public.port',
770796
validation: {
@@ -1042,7 +1068,7 @@
10421068

10431069
var data = {
10441070
algorithm: args.data.algorithm,
1045-
name: args.data.name,
1071+
name: args.data.name + args.data.lbdomain,
10461072
privateport: args.data.privateport,
10471073
publicport: args.data.publicport,
10481074
openfirewall: false,

0 commit comments

Comments
 (0)