You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ch...@apache.org on 2013/01/17 01:38:52 UTC

[5/15] git commit: WIP : dhcp server policy

WIP : dhcp server policy

Signed-off-by: Chiradeep Vittal <ch...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e32295e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e32295e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e32295e8

Branch: refs/heads/cisco-vnmc-api-integration
Commit: e32295e8cf3baacb154b2a6cecf48dc3be74f505
Parents: 446a9b8
Author: Chiradeep Vittal <ch...@apache.org>
Authored: Wed Jan 16 15:30:24 2013 -0800
Committer: Chiradeep Vittal <ch...@apache.org>
Committed: Wed Jan 16 15:30:24 2013 -0800

----------------------------------------------------------------------
 .../network/cisco/associate-dhcp-server.xml        |   14 +++++++
 .../scripts/network/cisco/create-dhcp-policy.xml   |   12 +-----
 .../cloud/network/resource/CiscoVnmcResource.java  |   30 ++++++++++++--
 .../resource/test/CiscoVnmcResourceTest.java       |   13 ++++++-
 4 files changed, 52 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e32295e8/plugins/network-elements/cisco-vnmc/scripts/network/cisco/associate-dhcp-server.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/cisco-vnmc/scripts/network/cisco/associate-dhcp-server.xml b/plugins/network-elements/cisco-vnmc/scripts/network/cisco/associate-dhcp-server.xml
new file mode 100644
index 0000000..9a1197a
--- /dev/null
+++ b/plugins/network-elements/cisco-vnmc/scripts/network/cisco/associate-dhcp-server.xml
@@ -0,0 +1,14 @@
+<configConfMos 
+cookie="%cookie%" 
+inHierarchical="false">
+    <inConfigs>
+      <pair key="%dhcpdn%" > 
+          <policyDhcpPolicyAssoc
+          dn="%dhcpdn%" 
+          interfaceName="%insideintf%"
+          policyRef="%dhcpserverpolicyname%"
+          status="modified"
+          type="server"/>
+      </pair>
+    </inConfigs>
+</configConfMos>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e32295e8/plugins/network-elements/cisco-vnmc/scripts/network/cisco/create-dhcp-policy.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/cisco-vnmc/scripts/network/cisco/create-dhcp-policy.xml b/plugins/network-elements/cisco-vnmc/scripts/network/cisco/create-dhcp-policy.xml
index 0b7de76..5686429 100644
--- a/plugins/network-elements/cisco-vnmc/scripts/network/cisco/create-dhcp-policy.xml
+++ b/plugins/network-elements/cisco-vnmc/scripts/network/cisco/create-dhcp-policy.xml
@@ -4,9 +4,6 @@
       <inConfigs> 
          <pair key="%dhcpserverdn%">
              <policyDhcpServerPolicy 
-             adminState="enabled" 
-             autoConfigIfName="" 
-          
              descr="%dhcpserverdescr%"
              dn="%dhcpserverdn%" 
              dnsDomainRef="" 
@@ -18,7 +15,6 @@
                    
          <pair key="%iprangedn%" >
              <policyIPAddressRange 
-             descr="" 
              dn="%iprangedn%"
              endip="%endip%"
              name="iprange" 
@@ -29,25 +25,18 @@
           
          <pair key="%dnsservicedn%">
              <commDns 
-             adminState="enabled" 
              descr="" 
              dn="%dnsservicedn%" 
              domain="%domain%" 
              name="%dnsservicename%"
-             port="0" 
-             proto="none" 
              status="created"/> 
          </pair> 
           
          <pair key="%nameserverdn%">
              <commDnsProvider 
-             adminState="enabled" 
              descr="" 
              dn="%nameserverdn%"
              hostip="%nameserverip%"
-             hostname="" 
-             intfName=""  
-             name="" 
              order="100" 
              status="created"/> 
          </pair> 
@@ -57,6 +46,7 @@
   
 <!--"org-root/org-TestTenant3/org-Tenant3-VDC/dhcp-server-Tenant3-DHCP-Policy" 
 "org-root/org-TestTenant3/org-Tenant3-VDC/dhcp-server-Tenant3-DHCP-Policy/ip-range-iprange" 
+org-root/org-TenantC/org-VDC-TenantC/dhcp-server-TenantC-Dhcp-Policy/ip-range-iprange
     "org-root/org-TestTenant3/org-Tenant3-VDC/dhcp-server-Tenant3-DHCP-Policy/dns-svc-Tenant3-DNS" 
    "org-root/org-TestTenant3/org-Tenant3-VDC/dhcp-server-Tenant3-DHCP-Policy/dns-svc-Tenant3-DNS/dns-8.8.8.8" 
 --!>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e32295e8/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/CiscoVnmcResource.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/CiscoVnmcResource.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/CiscoVnmcResource.java
index 802e1f9..1d5b76d 100644
--- a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/CiscoVnmcResource.java
+++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/CiscoVnmcResource.java
@@ -88,10 +88,8 @@ public class CiscoVnmcResource implements ServerResource {
         CREATE_EDGE_ROUTE("create-edge-device-route.xml", "policy-mgr"),
         RESOLVE_EDGE_ROUTE_POLICY("associate-route-policy.xml", "policy-mgr"),
         RESOLVE_EDGE_DHCP_POLICY("associate-dhcp-policy.xml", "policy-mgr"),
-        CREATE_DHCP_POLICY("create-dhcp-policy.xml", "policy-mgr");
-
-
-
+        CREATE_DHCP_POLICY("create-dhcp-policy.xml", "policy-mgr"),
+        RESOLVE_EDGE_DHCP_SERVER_POLICY("associate-dhcp-server.xml", "policy-mgr");
 
         private String scriptsDir = "scripts/network/cisco";
         private String xml;
@@ -565,7 +563,7 @@ public class CiscoVnmcResource implements ServerResource {
     	xml = replaceXmlValue(xml, "cookie", _cookie);
     	xml = replaceXmlValue(xml, "dhcpserverdn", getDnForDhcpServerPolicy(tenantName));
     	xml = replaceXmlValue(xml, "dhcpserverdescr", "DHCP server for " + tenantName);
-    	xml = replaceXmlValue(xml, "dhcpservername", getNameForDhcpServer(tenantName));
+    	xml = replaceXmlValue(xml, "dhcpservername", getNameForDhcpPolicy(tenantName));
     	xml = replaceXmlValue(xml, "iprangedn", getDnForDhcpIpRange(tenantName));
     	xml = replaceXmlValue(xml, "startip", startIp);
     	xml = replaceXmlValue(xml, "endip", endIp);
@@ -589,6 +587,28 @@ public class CiscoVnmcResource implements ServerResource {
     	}
     	return true;
     }
+    
+    public boolean associateTenantVDCEdgeDhcpServerPolicy(String tenantName, String intfName) throws ExecutionException {
+      	 String xml = VnmcXml.RESOLVE_EDGE_DHCP_SERVER_POLICY.getXml();
+           String service = VnmcXml.RESOLVE_EDGE_DHCP_SERVER_POLICY.getService();
+           xml = replaceXmlValue(xml, "cookie", _cookie);
+           xml = replaceXmlValue(xml, "dhcpdn", getDnForDhcpPolicy(tenantName, intfName));
+           xml = replaceXmlValue(xml, "insideintf", intfName);
+           xml = replaceXmlValue(xml, "dhcpserverpolicyname", getNameForDhcpServer(tenantName));
+
+           String response =  sendRequest(service, xml);
+           Map<String, String> checked = checkResponse(response, "errorCode", "response");
+           
+           if (checked.get("errorCode") != null) {
+          	 String errorCode = checked.get("errorCode");
+          	 if (errorCode.equals("103")) {
+          		 //already exists
+          		 return true;
+          	 }
+          	 return false;
+           }
+           return true;
+       }
 
     private String sendRequest(String service, String xmlRequest) throws ExecutionException {
     	org.apache.commons.httpclient.protocol.Protocol myhttps = 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e32295e8/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/test/CiscoVnmcResourceTest.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/test/CiscoVnmcResourceTest.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/test/CiscoVnmcResourceTest.java
index d8ca6a1..b7d69d0 100644
--- a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/test/CiscoVnmcResourceTest.java
+++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/resource/test/CiscoVnmcResourceTest.java
@@ -28,7 +28,7 @@ import com.cloud.utils.exception.ExecutionException;
 
 public class CiscoVnmcResourceTest {
 	static CiscoVnmcResource resource;
-	static String tenantName = "TenantD";
+	static String tenantName = "TenantE";
 	@BeforeClass
 	public static void setUpClass() throws Exception {
 		resource = new CiscoVnmcResource("10.223.56.5", "admin", "C1sco123");
@@ -146,4 +146,15 @@ public class CiscoVnmcResourceTest {
 			e.printStackTrace();
 		}
 	}
+	
+	@Test
+	public void testAssociateTenantVDCEdgeDhcpServerPolicy() {
+		try {
+			boolean response = resource.associateTenantVDCEdgeDhcpServerPolicy(tenantName, "Edge_Inside"); 
+			assertTrue(response);
+		} catch (ExecutionException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
 }