Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EE8DA11F37 for ; Tue, 12 Aug 2014 19:08:14 +0000 (UTC) Received: (qmail 67582 invoked by uid 500); 12 Aug 2014 19:08:14 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 67537 invoked by uid 500); 12 Aug 2014 19:08:14 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 62996 invoked by uid 99); 12 Aug 2014 19:06:34 -0000 Received: from Unknown (HELO reviews.apache.org) (140.211.11.40) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Aug 2014 19:06:34 +0000 Received: from reviews.apache.org (localhost [127.0.0.1]) by reviews.apache.org (Postfix) with ESMTP id 8BC151D4374; Tue, 12 Aug 2014 19:05:32 +0000 (UTC) Content-Type: multipart/alternative; boundary="===============7650840123821604425==" MIME-Version: 1.0 Subject: Review Request 24611: New DNS provider (GloboDNS) From: "Daniel Vega Simoes" To: "Daniel Vega Simoes" , "cloudstack" Date: Tue, 12 Aug 2014 19:05:32 -0000 Message-ID: <20140812190532.1262.62446@reviews.apache.org> X-ReviewBoard-URL: https://reviews.apache.org Auto-Submitted: auto-generated Sender: "Daniel Vega Simoes" X-ReviewGroup: cloudstack X-ReviewRequest-URL: https://reviews.apache.org/r/24611/ X-Sender: "Daniel Vega Simoes" Reply-To: "Daniel Vega Simoes" X-ReviewRequest-Repository: cloudstack-git --===============7650840123821604425== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/24611/ ----------------------------------------------------------- Review request for cloudstack. Bugs: CLOUDSTACK-6998 https://issues.apache.org/jira/browse/CLOUDSTACK-6998 Repository: cloudstack-git Description ------- This is a feature to handle DNS entries by means of an external DNS Provider, such as Bind. These entries include DNS domains and reverse domains, VM records and reverse records. For a complete description, please refer to the design document available at https://cwiki.apache.org/confluence/display/CLOUDSTACK/Bind+and+PowerDNS+integration+by+Globo+DNSAPI For the discussion about this feature on the dev mailing list, please refer to http://markmail.org/thread/fvwf36hpxotiibka Summary: - new Network Service Provider called GloboDNS - new Network Element to manage network domains and VM records (entries) on an external API - new Network Resource to communicate with GloboDNS (open source) - new API command to add DNS server - new global option to determine if this provider should override VM entries on external DNS server - changes in UI to include GloboDNS in Providers list Diffs ----- api/src/com/cloud/network/Network.java b5e8173 api/src/org/apache/cloudstack/network/ExternalNetworkDeviceManager.java 32f13f8 client/pom.xml 3995f6e client/tomcatconf/commands.properties.in add35dd plugins/network-elements/globodns/pom.xml PRE-CREATION plugins/network-elements/globodns/resources/META-INF/cloudstack/globodns/module.properties PRE-CREATION plugins/network-elements/globodns/resources/META-INF/cloudstack/globodns/spring-globodns-context.xml PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/api/AddGloboDnsHostCmd.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/commands/CreateOrUpdateDomainCommand.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/commands/CreateOrUpdateRecordAndReverseCommand.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/commands/RemoveDomainCommand.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/commands/RemoveRecordCommand.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/commands/SignInCommand.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/element/GloboDnsElement.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/element/GloboDnsElementService.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/resource/GloboDnsResource.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/response/GloboDnsDomainListResponse.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/response/GloboDnsDomainResponse.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/response/GloboDnsExportResponse.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/response/GloboDnsRecordListResponse.java PRE-CREATION plugins/network-elements/globodns/src/com/globo/globodns/cloudstack/response/GloboDnsRecordResponse.java PRE-CREATION plugins/network-elements/globodns/test/com/globo/globodns/cloudstack/element/GloboDnsElementTest.java PRE-CREATION plugins/network-elements/globodns/test/com/globo/globodns/cloudstack/resource/GloboDnsResourceTest.java PRE-CREATION plugins/network-elements/globodns/test/resources/db.properties PRE-CREATION plugins/network-elements/globodns/test/resources/log4j.properties PRE-CREATION plugins/pom.xml 4f7805a ui/scripts/system.js 0c56baf Diff: https://reviews.apache.org/r/24611/diff/ Testing ------- The implemented feature is widely covered by several unit tests, which check use cases like: - creation of GloboDNS host (external resource) - creation of a DNS domain when override flag is true or false - creation of a VM record when override flag is true - creation of a VM record fails when override flag is false and record exists - uppercase letters are not allowed for VM records - updating VM records when override flag is true and false - removal of a record entry when VM is destroyed - removal of DNS domains when network is destroyed You can check all use cases related to the override flag on the design document. On this first release, tests were performed using Bind server as DNS server. Further improvements could include PowerDNS as well. Thanks, Daniel Vega Simoes --===============7650840123821604425==--