get lb working on advanced mode again

This commit is contained in:
Chiradeep Vittal 2011-08-09 01:02:58 -07:00
parent 64efcf0443
commit 179368ea32
3 changed files with 21 additions and 8 deletions

View File

@ -1092,13 +1092,23 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
if (_canBridgeFirewall) {
String result = null;
if (vmSpec.getType() != VirtualMachine.Type.User) {
result = callHostPlugin(conn, "vmops", "default_network_rules_systemvm", "vmName", vmName);
if (result == null || result.isEmpty() || !Boolean.parseBoolean(result)) {
s_logger.warn("Failed to program default network rules for " + vmName);
} else {
s_logger.info("Programmed default network rules for " + vmName);
NicTO[] nics = vmSpec.getNics();
boolean secGrpEnabled = false;
for (NicTO nic : nics) {
if (nic.getIsolationUri() != null && nic.getIsolationUri().getScheme().equalsIgnoreCase(IsolationType.Ec2.toString())) {
secGrpEnabled = true;
break;
}
}
if (secGrpEnabled) {
result = callHostPlugin(conn, "vmops", "default_network_rules_systemvm", "vmName", vmName);
if (result == null || result.isEmpty() || !Boolean.parseBoolean(result)) {
s_logger.warn("Failed to program default network rules for " + vmName);
} else {
s_logger.info("Programmed default network rules for " + vmName);
}
}
} else {
//For user vm, program the rules for each nic if the isolation uri scheme is ec2
NicTO[] nics = vmSpec.getNics();

View File

@ -164,8 +164,9 @@ iflag=
aflag=
dflag=
fflag=
sflag=
while getopts 'i:a:d:f:' OPTION
while getopts 'i:a:d:f:s:' OPTION
do
case $OPTION in
i) iflag=1
@ -180,6 +181,8 @@ do
f) fflag=1
cfgfile="$OPTARG"
;;
s) sflag=1;;
?) usage
exit 2
;;

View File

@ -391,7 +391,6 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
IPAddressVO ipAddr = _ipAddressDao.findById(lb.getSourceIpAddressId());
Long networkId = ipAddr.getSourceNetworkId();
NetworkVO network = _networkDao.findById(networkId);
// make sure ip address exists
if (ipAddr == null || !ipAddr.readyToUse()) {
throw new InvalidParameterValueException("Unable to create load balancer rule, invalid IP address id" + ipId);
@ -405,6 +404,7 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager,
throw new InvalidParameterValueException("Unable to create load balancer rule ; ip id=" + ipId + " is not associated with any network");
}
NetworkVO network = _networkDao.findById(networkId);
_accountMgr.checkAccess(caller.getCaller(), ipAddr);