Visitar URL original
load balancer: add api field to force or not the domain creation · enterdevstudio/cloudstack@c9f44d5 · GitHub
Skip to content

Commit c9f44d5

Browse files
committed
load balancer: add api field to force or not the domain creation
1 parent fa9f0c8 commit c9f44d5

19 files changed

Lines changed: 150 additions & 51 deletions

File tree

‎api/src/com/cloud/network/lb/LoadBalancingRule.java‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class LoadBalancingRule {
4343
private String healthCheckDestination;
4444
private String healthCheckType;
4545
private String expectedHealthCheck;
46+
private boolean forceDomainRegister = true;
4647

4748
private List<Long> additionalNetworks;
4849
private List<String> additionalPortMap;
@@ -199,6 +200,14 @@ public void setExpectedHealthCheck(String expectedHealthCheck) {
199200
this.expectedHealthCheck = expectedHealthCheck;
200201
}
201202

203+
public boolean isForceDomainRegister() {
204+
return forceDomainRegister;
205+
}
206+
207+
public void setForceDomainRegister(boolean forceDomainRegister) {
208+
this.forceDomainRegister = forceDomainRegister;
209+
}
210+
202211
public interface Destination {
203212
String getIpAddress();
204213

‎api/src/com/cloud/network/lb/LoadBalancingRulesService.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public interface LoadBalancingRulesService {
5353
*/
5454
LoadBalancer createPublicLoadBalancerRule(String xId, String name, String description, int srcPortStart, int srcPortEnd, int defPortStart, int defPortEnd,
5555
Long ipAddrId, String protocol, String algorithm, long networkId, long lbOwnerId, boolean openFirewall, String lbProtocol, Boolean forDisplay, List<String> additionalPortMap, String cache,
56-
String serviceDownAction, String healthCheckDestination, String expectedHealthcheck, String healthcheckType)
56+
String serviceDownAction, String healthCheckDestination, String expectedHealthcheck, String healthcheckType, boolean forcedns)
5757
throws NetworkRuleConflictException, InsufficientAddressCapacityException;
5858

5959
LoadBalancer updateLoadBalancerRule(UpdateLoadBalancerRuleCmd cmd);

‎api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements L
138138
@Parameter(name = ApiConstants.EXPECTED_HEALTHCHECK, type = CommandType.STRING, description = "Expected healthcheck string to check if is in service.")
139139
private String expectedHealthCheck;
140140

141+
@Parameter(name = "forceregisterdomain", type = CommandType.BOOLEAN, description = "when true if dns integration failed, the loadbalancer will not be created")
142+
private boolean forceregisterdomain = true ;
143+
141144
/////////////////////////////////////////////////////
142145
/////////////////// Accessors ///////////////////////
143146
/////////////////////////////////////////////////////
@@ -351,7 +354,7 @@ public void create() {
351354
LoadBalancer result =
352355
_lbService.createPublicLoadBalancerRule(getXid(), getName(), getDescription(), getSourcePortStart(), getSourcePortEnd(), getDefaultPortStart(),
353356
getDefaultPortEnd(), getSourceIpAddressId(), getProtocol(), getAlgorithm(), getNetworkId(), getEntityOwnerId(), getOpenFirewall(), getLbProtocol(), isDisplay(),
354-
getAdditionalPortMap(), getCache(), getServiceDownAction(), getHealthCheckDestination(), getExpectedHealthCheck(), healthCheckType);
357+
getAdditionalPortMap(), getCache(), getServiceDownAction(), getHealthCheckDestination(), getExpectedHealthCheck(), healthCheckType, forceregisterdomain);
355358
this.setEntityId(result.getId());
356359
this.setEntityUuid(result.getUuid());
357360
} catch (NetworkRuleConflictException e) {

‎engine/components-api/src/com/cloud/network/lb/LoadBalancingRulesManager.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public interface LoadBalancingRulesManager {
3737

3838
LoadBalancer createPublicLoadBalancer(String xId, String name, String description, int srcPort, int destPort, long sourceIpId, String protocol, String algorithm,
3939
boolean openFirewall, CallContext caller, String lbProtocol, Boolean forDisplay, List<String> additionalPortMap, String cache,
40-
String serviceDownAction, String healthCheckDestination, String expectedHealthcheck, String healthcheckType) throws NetworkRuleConflictException;
40+
String serviceDownAction, String healthCheckDestination, String expectedHealthcheck, String healthcheckType, boolean forcedns) throws NetworkRuleConflictException;
4141

4242
boolean removeAllLoadBalanacersForIp(long ipId, Account caller, long callerUserId);
4343

‎framework/config/src/org/apache/cloudstack/globoconfig/GloboResourceConfigurationDao.java‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,10 @@ public interface GloboResourceConfigurationDao extends GenericDao<GloboResourceC
1717

1818
List<GloboResourceConfigurationVO> getConfiguration(GloboResourceType resourceType, String resourceUuid, GloboResourceKey key);
1919

20+
public GloboResourceConfigurationVO getFirst(GloboResourceType resourceType,
21+
String resourceUuid, GloboResourceKey key);
2022

23+
public void removeConfigurations(String uuid, GloboResourceType loadBalancer);
24+
25+
public boolean updateValue(GloboResourceConfiguration config);
2126
}

‎framework/config/src/org/apache/cloudstack/globoconfig/GloboResourceConfigurationDaoImpl.java‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
import com.cloud.utils.db.GenericDaoBase;
44
import com.cloud.utils.db.SearchBuilder;
55
import com.cloud.utils.db.SearchCriteria;
6+
import com.cloud.utils.db.TransactionLegacy;
7+
import com.cloud.utils.exception.CloudRuntimeException;
8+
import java.sql.PreparedStatement;
9+
import java.sql.SQLException;
610
import org.apache.log4j.Logger;
711
import org.springframework.stereotype.Component;
812

@@ -53,4 +57,52 @@ public List<GloboResourceConfigurationVO> getConfiguration(GloboResourceType res
5357
sc.setParameters("key", key);
5458
return listBy(sc);
5559
}
60+
61+
@Override
62+
public GloboResourceConfigurationVO getFirst(GloboResourceType resourceType,
63+
String resourceUuid, GloboResourceKey key) {
64+
SearchCriteria<GloboResourceConfigurationVO> sc = ListByResourceId.create();
65+
sc.setParameters("resourceType", resourceType);
66+
sc.setParameters("resourceUuid", resourceUuid);
67+
sc.setParameters("key", key);
68+
69+
List<GloboResourceConfigurationVO> configs = listBy(sc);
70+
if (configs.size() > 0)
71+
return configs.get(0);
72+
return null;
73+
}
74+
75+
@Override
76+
public void removeConfigurations(String uuid, GloboResourceType loadBalancer) {
77+
SearchCriteria<GloboResourceConfigurationVO> sc = ListByResourceId.create();
78+
sc.setParameters("resourceType", loadBalancer);
79+
sc.setParameters("resourceUuid", uuid);
80+
remove(sc);
81+
}
82+
83+
84+
@Override
85+
@Deprecated
86+
public boolean updateValue(GloboResourceConfiguration config) {
87+
TransactionLegacy txn = TransactionLegacy.currentTxn();
88+
PreparedStatement stmt = null;
89+
try {
90+
stmt = txn.prepareStatement("UPDATE globo_resource_configuration SET value=? WHERE resource_uuid=?;");
91+
stmt.setString(1, config.getValue());
92+
stmt.setString(2, config.getResourceUuid());
93+
stmt.executeUpdate();
94+
return true;
95+
} catch (Exception e) {
96+
s_logger.warn("Unable to update GloboResourceConfiguration Value", e);
97+
throw new CloudRuntimeException("Error during pudate globo resource configuration value", e);
98+
} finally {
99+
try {
100+
if (stmt != null)
101+
stmt.close();
102+
} catch (SQLException e) {
103+
s_logger.warn("error closing stmt", e);
104+
}
105+
}
106+
}
107+
56108
}

‎framework/config/src/org/apache/cloudstack/globoconfig/GloboResourceConfigurationVO.java‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,12 @@ public String getValue() {
7979

8080
@Override
8181
public void setValue(String value) {this.value = value; }
82+
83+
public boolean getBooleanValue() {
84+
return Boolean.valueOf(this.getValue());
85+
}
86+
87+
public void setBoolValue(boolean value) {
88+
this.setValue(Boolean.toString(value));
89+
}
8290
}

‎framework/config/src/org/apache/cloudstack/globoconfig/GloboResourceKey.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
* Created by sinval.neto on 7/15/16.
55
*/
66
public enum GloboResourceKey {
7-
isDNSRegistered
7+
isDNSRegistered, forceDomainRegister
88
}

‎plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/LoadBalanceRuleHandler.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ private LoadBalancer handleCreateLoadBalancerRuleWithLock(CreateLoadBalancerRule
347347
lb.setSourceIpAddressId(ipId);
348348

349349
result = _lbMgr.createPublicLoadBalancer(lb.getXid(), lb.getName(), lb.getDescription(), lb.getSourcePortStart(), lb.getDefaultPortStart(), ipId.longValue(),
350-
lb.getProtocol(), lb.getAlgorithm(), false, CallContext.current(), lb.getLbProtocol(), true, null, lb.getCache(), lb.getServiceDownAction(), lb.getHealthCheckDestination(), lb.getExpectedHealthCheck(), lb.getHealthCheckType());
350+
lb.getProtocol(), lb.getAlgorithm(), false, CallContext.current(), lb.getLbProtocol(), true, null, lb.getCache(), lb.getServiceDownAction(), lb.getHealthCheckDestination(), lb.getExpectedHealthCheck(), lb.getHealthCheckType(), true);
351351
} catch (NetworkRuleConflictException e) {
352352
s_logger.warn("Failed to create LB rule, not continuing with ELB deployment");
353353
if (newIp) {

‎plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/commands/ValidateLbRecordCommand.java‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,14 @@ public class ValidateLbRecordCommand extends Command {
2828

2929
private boolean override;
3030

31-
public ValidateLbRecordCommand(String lbRecordName, String lbRecordContent, String lbDomain, boolean override) {
31+
private boolean forceDomainRegister;
32+
33+
public ValidateLbRecordCommand(String lbRecordName, String lbRecordContent, String lbDomain, boolean override, boolean forceDomainRegister) {
3234
this.lbRecordName = lbRecordName;
3335
this.lbRecordContent = lbRecordContent;
3436
this.lbDomain = lbDomain;
3537
this.override = override;
38+
this.forceDomainRegister = forceDomainRegister;
3639
}
3740

3841
@Override
@@ -56,4 +59,8 @@ public boolean isOverride() {
5659
return override;
5760
}
5861

62+
public boolean isForceDomainRegister() {
63+
return forceDomainRegister;
64+
}
65+
5966
}

0 commit comments

Comments
 (0)