Rebase with master, bring into Vmware vswitch change.
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 7df0cf4..0a3e20b 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
@@ -484,8 +484,8 @@
     public ManagedObjectReference getDvSwitchMor(String dvSwitchName) throws Exception {
         ManagedObjectReference dvSwitchMor = null;
         ManagedObjectReference networkFolderMor = null;
-        networkFolderMor = _context.getServiceUtil().getMoRefProp(_mor, "networkFolder");
-        dvSwitchMor = _context.getServiceUtil().getDecendentMoRef(networkFolderMor, "VmwareDistributedVirtualSwitch", dvSwitchName);
+        networkFolderMor = _context.getVimClient().getMoRefProp(_mor, "networkFolder");
+        dvSwitchMor = _context.getVimClient().getDecendentMoRef(networkFolderMor, "VmwareDistributedVirtualSwitch", dvSwitchName);
         return dvSwitchMor;
     }
 }
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DistributedVirtualSwitchMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DistributedVirtualSwitchMO.java
index 494477e..247be2a 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DistributedVirtualSwitchMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DistributedVirtualSwitchMO.java
@@ -16,11 +16,13 @@
 // under the License.
 package com.cloud.hypervisor.vmware.mo;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.log4j.Logger;
 
 import com.cloud.hypervisor.vmware.util.VmwareContext;
 import com.vmware.vim25.DVPortgroupConfigSpec;
-import com.vmware.vim25.HostPortGroupSpec;
 import com.vmware.vim25.ManagedObjectReference;
 
 public class DistributedVirtualSwitchMO extends BaseMO {
@@ -35,13 +37,13 @@
     }
 
     public void createDVPortGroup(DVPortgroupConfigSpec dvPortGroupSpec) throws Exception {
-        DVPortgroupConfigSpec[] dvPortGroupSpecArray = new DVPortgroupConfigSpec[1];
-        dvPortGroupSpecArray[0] = dvPortGroupSpec;
-        _context.getService().addDVPortgroup_Task(_mor, dvPortGroupSpecArray);
+        List<DVPortgroupConfigSpec> dvPortGroupSpecArray = new ArrayList<DVPortgroupConfigSpec>();
+        dvPortGroupSpecArray.add(dvPortGroupSpec);
+        _context.getService().addDVPortgroupTask(_mor, dvPortGroupSpecArray);
     }
 
     public void updateDvPortGroup(ManagedObjectReference dvPortGroupMor, DVPortgroupConfigSpec dvPortGroupSpec) throws Exception {
         // TODO(sateesh): Update numPorts
-        _context.getService().reconfigureDVPortgroup_Task(dvPortGroupMor, dvPortGroupSpec);
+        _context.getService().reconfigureDVPortgroupTask(dvPortGroupMor, dvPortGroupSpec);
     }
 }
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareClient.java b/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareClient.java
index 21c649a..fc307f8 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareClient.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareClient.java
@@ -540,4 +540,20 @@
         }
         return null;
     }
+
+    /**
+     * Get a MORef from the property returned.
+     *
+     * @param objMor Object to get a reference property from
+     * @param propName name of the property that is the MORef
+     * @return the ManagedObjectReference for that property.
+     */
+    public ManagedObjectReference getMoRefProp(ManagedObjectReference objMor, String propName) throws Exception {
+       Object props = getDynamicProperty(objMor, propName);
+       ManagedObjectReference propmor = null;
+       if (!props.getClass().isArray()) {
+          propmor = (ManagedObjectReference)props;
+       }
+       return propmor;
+    }
 }