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();
+ }
+ }
}