From 340b086df484ce27df6bbb12926ade6934e5aa2e Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Fri, 10 Aug 2012 13:37:43 -0700 Subject: [PATCH] commit review request https://reviews.apache.org/r/6502/# --- .../src/com/cloud/hypervisor/vmware/mo/HostMO.java | 9 +++++++-- .../hypervisor/vmware/mo/HypervisorHostHelper.java | 14 +++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java index c8e0ca1e5e2..fd303994d85 100755 --- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java +++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java @@ -41,6 +41,7 @@ import com.vmware.vim25.HostIpRouteEntry; import com.vmware.vim25.HostListSummaryQuickStats; import com.vmware.vim25.HostNetworkInfo; import com.vmware.vim25.HostNetworkPolicy; +import com.vmware.vim25.HostNetworkSecurityPolicy; import com.vmware.vim25.HostNetworkTrafficShapingPolicy; import com.vmware.vim25.HostPortGroup; import com.vmware.vim25.HostPortGroupSpec; @@ -365,7 +366,7 @@ public class HostMO extends BaseMO implements VmwareHypervisorHost { return false; } - public void createPortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception { + public void createPortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkSecurityPolicy secPolicy, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception { assert(portGroupName != null); HostNetworkSystemMO hostNetMo = getHostNetworkSystemMO(); assert(hostNetMo != null); @@ -376,13 +377,15 @@ public class HostMO extends BaseMO implements VmwareHypervisorHost { if(vlanId != null) spec.setVlanId(vlanId.intValue()); HostNetworkPolicy policy = new HostNetworkPolicy(); + if (secPolicy != null) + policy.setSecurity(secPolicy); policy.setShapingPolicy(shapingPolicy); spec.setPolicy(policy); spec.setVswitchName(vSwitch.getName()); hostNetMo.addPortGroup(spec); } - public void updatePortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception { + public void updatePortGroup(HostVirtualSwitch vSwitch, String portGroupName, Integer vlanId, HostNetworkSecurityPolicy secPolicy, HostNetworkTrafficShapingPolicy shapingPolicy) throws Exception { assert(portGroupName != null); HostNetworkSystemMO hostNetMo = getHostNetworkSystemMO(); assert(hostNetMo != null); @@ -393,6 +396,8 @@ public class HostMO extends BaseMO implements VmwareHypervisorHost { if(vlanId != null) spec.setVlanId(vlanId.intValue()); HostNetworkPolicy policy = new HostNetworkPolicy(); + if (secPolicy != null) + policy.setSecurity(secPolicy); policy.setShapingPolicy(shapingPolicy); spec.setPolicy(policy); spec.setVswitchName(vSwitch.getName()); diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java index 944d66cdfc3..50f95413bd2 100755 --- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java +++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java @@ -43,6 +43,8 @@ import com.vmware.vim25.BoolPolicy; import com.vmware.vim25.DVPortgroupConfigInfo; import com.vmware.vim25.DVSTrafficShapingPolicy; import com.vmware.vim25.DynamicProperty; +import com.vmware.vim25.HostNetworkPolicy; +import com.vmware.vim25.HostNetworkSecurityPolicy; import com.vmware.vim25.HostNetworkTrafficShapingPolicy; import com.vmware.vim25.HostPortGroupSpec; import com.vmware.vim25.HostVirtualSwitch; @@ -563,7 +565,13 @@ public class HypervisorHostHelper { } networkName = composeCloudNetworkName(namePrefix, vlanId, networkRateMbps, vSwitchName); - + HostNetworkSecurityPolicy secPolicy = null; + if (namePrefix.equalsIgnoreCase("cloud.private")) { + secPolicy = new HostNetworkSecurityPolicy(); + secPolicy.setAllowPromiscuous(Boolean.TRUE); + secPolicy.setForgedTransmits(Boolean.TRUE); + secPolicy.setMacChanges(Boolean.TRUE); + } HostNetworkTrafficShapingPolicy shapingPolicy = null; if(networkRateMbps != null && networkRateMbps.intValue() > 0) { shapingPolicy = new HostNetworkTrafficShapingPolicy(); @@ -583,12 +591,12 @@ public class HypervisorHostHelper { boolean bWaitPortGroupReady = false; if (!hostMo.hasPortGroup(vSwitch, networkName)) { - hostMo.createPortGroup(vSwitch, networkName, vid, shapingPolicy); + hostMo.createPortGroup(vSwitch, networkName, vid, secPolicy, shapingPolicy); bWaitPortGroupReady = true; } else { HostPortGroupSpec spec = hostMo.getPortGroupSpec(networkName); if(!isSpecMatch(spec, vid, shapingPolicy)) { - hostMo.updatePortGroup(vSwitch, networkName, vid, shapingPolicy); + hostMo.updatePortGroup(vSwitch, networkName, vid, secPolicy, shapingPolicy); bWaitPortGroupReady = true; } }