You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ke...@apache.org on 2012/05/28 00:30:44 UTC
[38/50] git commit: CS-9919: Support for Nexus Swiches (Cisco
Vswitches)
CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:
Discover dvSwitch UUID for dvPort configuration.
Conflicts:
vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/7838b3fe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/7838b3fe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/7838b3fe
Branch: refs/heads/master
Commit: 7838b3fed6c8dd38a887640cded7107c3193e6f0
Parents: f774ef7
Author: Sateesh Chodapuneedi <sa...@citrix.com>
Authored: Tue May 15 04:27:10 2012 +0530
Committer: Vijayendra Bhamidipati <vi...@citrix.com>
Committed: Fri May 25 17:47:58 2012 -0700
----------------------------------------------------------------------
.../cloud/hypervisor/vmware/mo/DatacenterMO.java | 79 ++++++++++++++-
1 files changed, 78 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7838b3fe/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
index 30d5b1d..91cff67 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
@@ -393,5 +393,82 @@ public class DatacenterMO extends BaseMO {
}
}
return null;
- }
+ }
+
+ public ManagedObjectReference getDvSwitchMor(ManagedObjectReference morDatacenter, ManagedObjectReference dvPortGroupMor) throws Exception {
+ String dvPortGroupKey = null;
+ ManagedObjectReference dvSwitchMor = null;
+ PropertySpec pSpec = new PropertySpec();
+ pSpec.setType("DistributedVirtualPortgroup");
+ pSpec.setPathSet(new String[] { "key", "config.distributedVirtualSwitch" });
+
+ TraversalSpec datacenter2DvPortGroupTraversal = new TraversalSpec();
+ datacenter2DvPortGroupTraversal.setType("Datacenter");
+ datacenter2DvPortGroupTraversal.setPath("network");
+ datacenter2DvPortGroupTraversal.setName("datacenter2DvPortgroupTraversal");
+
+ ObjectSpec oSpec = new ObjectSpec();
+ oSpec.setObj(morDatacenter);
+ oSpec.setSkip(Boolean.TRUE);
+ oSpec.setSelectSet(new SelectionSpec[] { datacenter2DvPortGroupTraversal });
+
+ PropertyFilterSpec pfSpec = new PropertyFilterSpec();
+ pfSpec.setPropSet(new PropertySpec[] { pSpec });
+ pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
+
+ ObjectContent[] ocs = _context.getService().retrieveProperties(
+ _context.getServiceContent().getPropertyCollector(),
+ new PropertyFilterSpec[] { pfSpec });
+
+ if (ocs != null) {
+ for (ObjectContent oc : ocs) {
+ DynamicProperty[] props = oc.getPropSet();
+ if (props != null) {
+ assert (props.length == 2);
+ for (DynamicProperty prop : props) {
+ if (prop.getName().equals("key")) {
+ dvPortGroupKey = (String) prop.getVal();
+ }
+ else {
+ dvSwitchMor = (ManagedObjectReference) prop.getVal();
+ }
+ }
+ if ((dvPortGroupKey != null) && dvPortGroupKey.equals(dvPortGroupMor.get_value())) {
+ return dvSwitchMor;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public String getDvSwitchUuid(ManagedObjectReference dvSwitchMor) throws Exception {
+ assert (dvSwitchMor != null);
+ PropertySpec pSpec = new PropertySpec();
+ pSpec.setType("DistributedVirtualSwitch");
+ pSpec.setPathSet(new String[] { "uuid" });
+
+ ObjectSpec oSpec = new ObjectSpec();
+ oSpec.setObj(dvSwitchMor);
+ oSpec.setSkip(Boolean.FALSE);
+ oSpec.setSelectSet(new SelectionSpec[] {});
+
+ PropertyFilterSpec pfSpec = new PropertyFilterSpec();
+ pfSpec.setPropSet(new PropertySpec[] { pSpec });
+ pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
+
+ ObjectContent[] ocs = _context.getService().retrieveProperties(
+ _context.getServiceContent().getPropertyCollector(),
+ new PropertyFilterSpec[] { pfSpec });
+
+ if (ocs != null) {
+ for (ObjectContent oc : ocs) {
+ DynamicProperty[] props = oc.getPropSet();
+ if (props != null) {
+ return (String) props[0].getVal();
+ }
+ }
+ }
+ return null;
+ }
}