You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by wilderrodrigues <gi...@git.apache.org> on 2015/10/29 10:12:11 UTC

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

GitHub user wilderrodrigues opened a pull request:

    https://github.com/apache/cloudstack/pull/1002

    CLOUDSTACK-9007 - Write test to check that the /etc/dhcphosts.txt doesn't contain duplicate IPs

    This PR contains a test that will cover the fix on PR #981 
    
    The tests does the following:
    
    * Creates account, service offering, network offering, network
    * Deploys two virtual machines
      - Each machine with a pre-assigned IP
    * Creates two FW and PF rules
    * Checks that SSH into the VMs works
    * Checks default routes from both VMs
    * Checks that the /etc/dhcphosts.txt contains 1 entry per VM IP
    * Destroys/Expunges 1 VM
    * Creates a new VM with the same IP as the destroyed one
    * Checks that the /etc/dhcphosts.txt contains 1 entry per VM IP

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ekholabs/cloudstack test/dhcphosts-CLOUDSTACK-9007

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cloudstack/pull/1002.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1002
    
----
commit a1eeac08efbbffd038a2e656c57e7211c0cc076b
Author: Wilder Rodrigues <wr...@schubergphilis.com>
Date:   2015-10-29T09:05:49Z

    CLOUDSTACK-9007 - Add test check that /etc/dhcphosts.txt doesn't contain duplicate IPs

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by serbaut <gi...@git.apache.org>.
Github user serbaut commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1002#discussion_r43384431
  
    --- Diff: test/integration/component/test_router_dhcphosts.py ---
    @@ -0,0 +1,381 @@
    +# Licensed to the Apache Software Foundation (ASF) under one
    +# or more contributor license agreements.  See the NOTICE file
    +# distributed with this work for additional information
    +# regarding copyright ownership.  The ASF licenses this file
    +# to you under the Apache License, Version 2.0 (the
    +# "License"); you may not use this file except in compliance
    +# with the License.  You may obtain a copy of the License at
    +#
    +#   http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing,
    +# software distributed under the License is distributed on an
    +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +# KIND, either express or implied.  See the License for the
    +# specific language governing permissions and limitations
    +# under the License.
    +
    +# Import Local Modules
    +from nose.plugins.attrib import attr
    +from marvin.cloudstackTestCase import cloudstackTestCase
    +from marvin.cloudstackAPI import (stopVirtualMachine,
    +                                  stopRouter,
    +                                  startRouter)
    +from marvin.lib.utils import (cleanup_resources,
    +                              get_process_status)
    +from marvin.lib.base import (ServiceOffering,
    +                             VirtualMachine,
    +                             Account,
    +                             ServiceOffering,
    +                             NATRule,
    +                             NetworkACL,
    +                             FireWallRule,
    +                             PublicIPAddress,
    +                             NetworkOffering,
    +                             Network,
    +                             Router)
    +from marvin.lib.common import (get_zone,
    +                               get_template,
    +                               get_domain,
    +                               list_virtual_machines,
    +                               list_networks,
    +                               list_configurations,
    +                               list_routers,
    +                               list_nat_rules,
    +                               list_publicIP,
    +                               list_firewall_rules,
    +                               list_hosts)
    +
    +# Import System modules
    +import time
    +import logging
    +
    +
    +class TestRouterDHCPHosts(cloudstackTestCase):
    +
    +    @classmethod
    +    def setUpClass(cls):
    +
    +        cls.logger = logging.getLogger('TestRouterDHCPHosts')
    +        cls.stream_handler = logging.StreamHandler()
    +        cls.logger.setLevel(logging.DEBUG)
    +        cls.logger.addHandler(cls.stream_handler)
    +
    +        cls.testClient = super(TestRouterDHCPHosts, cls).getClsTestClient()
    +        cls.api_client = cls.testClient.getApiClient()
    +
    +        cls.services = cls.testClient.getParsedTestDataConfig()
    +        # Get Zone, Domain and templates
    +        cls.domain = get_domain(cls.api_client)
    +        cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
    +        cls.services['mode'] = cls.zone.networktype
    +        cls.template = get_template(
    +            cls.api_client,
    +            cls.zone.id,
    +            cls.services["ostype"]
    +        )
    +
    +        cls.services["virtual_machine"]["zoneid"] = cls.zone.id
    +
    +        cls.logger.debug("Creating Admin Account for domain %s on zone %s" % (cls.domain.id, cls.zone.id))
    +        # Create an account, network, VM and IP addresses
    +        cls.account = Account.create(
    +            cls.api_client,
    +            cls.services["account"],
    +            admin=True,
    +            domainid=cls.domain.id
    +        )
    +
    +        cls.logger.debug("Creating Service Offering on zone %s" % (cls.zone.id))
    +        cls.service_offering = ServiceOffering.create(
    +            cls.api_client,
    +            cls.services["service_offering"]
    +        )
    +
    +        cls.services["isolated_network_offering"]["egress_policy"] = "true"
    +
    +        cls.logger.debug("Creating Network Offering on zone %s" % (cls.zone.id))
    +        cls.network_offering = NetworkOffering.create(cls.api_client,
    +                                                       cls.services["isolated_network_offering"],
    +                                                       conservemode=True)
    +
    +        cls.network_offering.update(cls.api_client, state='Enabled')
    +
    +        cls.logger.debug("Creating Network for Account %s using offering %s" % (cls.account.name, cls.network_offering.id))
    +        cls.network = Network.create(cls.api_client,
    +                                      cls.services["network"],
    +                                      accountid=cls.account.name,
    +                                      domainid=cls.account.domainid,
    +                                      networkofferingid=cls.network_offering.id,
    +                                      zoneid=cls.zone.id)
    +
    +        cls.logger.debug("Creating VM1 for Account %s using offering %s with IP 10.1.1.50" % (cls.account.name, cls.service_offering.id))
    +        cls.vm_1 = VirtualMachine.create(cls.api_client,
    +                                         cls.services["virtual_machine"],
    +                                         templateid=cls.template.id,
    +                                         accountid=cls.account.name,
    +                                         domainid=cls.domain.id,
    +                                         serviceofferingid=cls.service_offering.id,
    +                                         networkids=[str(cls.network.id)],
    +                                         ipaddress="10.1.1.50")
    +
    +        cls.logger.debug("Creating VM2 for Account %s using offering %s with IP 10.1.1.51" % (cls.account.name, cls.service_offering.id))
    +        cls.vm_2 = VirtualMachine.create(cls.api_client,
    +                                         cls.services["virtual_machine"],
    +                                         templateid=cls.template.id,
    +                                         accountid=cls.account.name,
    +                                         domainid=cls.domain.id,
    +                                         serviceofferingid=cls.service_offering.id,
    +                                         networkids=[str(cls.network.id)],
    +                                         ipaddress="10.1.1.51")
    +
    +        cls.services["natrule1"] = {
    +            "privateport": 22,
    +            "publicport": 222,
    +            "protocol": "TCP"
    +        }
    +
    +        cls.services["natrule2"] = {
    +            "privateport": 22,
    +            "publicport": 223,
    +            "protocol": "TCP"
    +        }
    +
    +        cls.services["configurableData"] = {
    +            "host": {
    +                "password": "password",
    +                "username": "root",
    +                "port": 22
    +            },
    +            "input": "INPUT",
    +            "forward": "FORWARD"
    +        }
    +
    +        cls._cleanup = [
    +            cls.vm_2,
    +            cls.network,
    +            cls.network_offering,
    +            cls.service_offering,
    +            cls.account
    +        ]
    +
    +        return
    +
    +    @classmethod
    +    def tearDownClass(cls):
    +        try:
    +            cleanup_resources(cls.api_client, cls._cleanup)
    +        except Exception as e:
    +            raise Exception("Warning: Exception during cleanup : %s" % e)
    +        return
    +
    +    def setUp(self):
    +        self.apiclient = self.testClient.getApiClient()
    +        self.cleanup = []
    +        return
    +
    +    def tearDown(self):
    +        try:
    +            cleanup_resources(self.apiclient, self.cleanup)
    +        except Exception as e:
    +            raise Exception("Warning: Exception during cleanup : %s" % e)
    +        return
    +
    +    def test_ssh_command(self, vm, nat_rule, rule_label):
    +        result = 'failed'
    +        try:
    +            ssh_command = "ping -c 3 8.8.8.8"
    +            self.logger.debug("SSH into VM with IP: %s" % nat_rule.ipaddress)
    +
    +            ssh = vm.get_ssh_client(ipaddress=nat_rule.ipaddress, port=self.services[rule_label]["publicport"], retries=5)
    +            result = str(ssh.execute(ssh_command))
    +
    +            self.logger.debug("SSH result: %s; COUNT is ==> %s" % (result, result.count("3 packets received")))
    +        except:
    +            self.fail("Failed to SSH into VM - %s" % (nat_rule.ipaddress))
    +
    +        self.assertEqual(
    +                         result.count("3 packets received"),
    +                         1,
    +                         "Ping to outside world from VM should be successful"
    +                         )
    +
    +    def test_dhcphosts(self, vm, router):
    +        hosts = list_hosts(
    +            self.apiclient,
    +            id=router.hostid)
    +
    +        self.assertEqual(
    +            isinstance(hosts, list),
    +            True,
    +            "Check for list hosts response return valid data")
    +
    +        host = hosts[0]
    +        host.user = self.services["configurableData"]["host"]["username"]
    +        host.passwd = self.services["configurableData"]["host"]["password"]
    +        host.port = self.services["configurableData"]["host"]["port"]
    +        #mac1,10.7.32.101,infinite
    +        try:
    +            result = get_process_status(
    +                host.ipaddress,
    +                host.port,
    +                host.user,
    +                host.passwd,
    +                router.linklocalip,
    +                "cat /etc/dhcphosts.txt | grep %s | sed 's/\,/ /g' | awk '{print $2}'" % (vm.nic[0].ipaddress))
    +        except KeyError:
    +            self.skipTest(
    +                "Provide a marvin config file with host\
    +                        credentials to run %s" %
    +                self._testMethodName)
    +
    +        self.logger.debug("cat /etc/dhcphosts.txt | grep %s | sed 's/\,/ /g' | awk '{print $2}' RESULT IS ==> %s" % (vm.nic[0].ipaddress, result))
    +        res = str(result)
    +        
    +        self.assertEqual(
    +            res.count(vm.nic[0].ipaddress),
    +            1,
    +            "Password file is empty or doesn't exist!")
    --- End diff --
    
    Do you mean dhcphosts.txt here?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by serbaut <gi...@git.apache.org>.
Github user serbaut commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152180011
  
    Thank you, that would have taken me days to write.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by wilderrodrigues <gi...@git.apache.org>.
Github user wilderrodrigues commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152189749
  
    @remibergsma @karuturi 
    
    All green... Do you have some time to review/merge this PR? It's a test, no code - neither on the routers nor the java side - was changed.
    
    Cheers,
    Wilder


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by wilderrodrigues <gi...@git.apache.org>.
Github user wilderrodrigues commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1002#discussion_r43389852
  
    --- Diff: test/integration/component/test_router_dhcphosts.py ---
    @@ -0,0 +1,381 @@
    +# Licensed to the Apache Software Foundation (ASF) under one
    +# or more contributor license agreements.  See the NOTICE file
    +# distributed with this work for additional information
    +# regarding copyright ownership.  The ASF licenses this file
    +# to you under the Apache License, Version 2.0 (the
    +# "License"); you may not use this file except in compliance
    +# with the License.  You may obtain a copy of the License at
    +#
    +#   http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing,
    +# software distributed under the License is distributed on an
    +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +# KIND, either express or implied.  See the License for the
    +# specific language governing permissions and limitations
    +# under the License.
    +
    +# Import Local Modules
    +from nose.plugins.attrib import attr
    +from marvin.cloudstackTestCase import cloudstackTestCase
    +from marvin.cloudstackAPI import (stopVirtualMachine,
    +                                  stopRouter,
    +                                  startRouter)
    +from marvin.lib.utils import (cleanup_resources,
    +                              get_process_status)
    +from marvin.lib.base import (ServiceOffering,
    +                             VirtualMachine,
    +                             Account,
    +                             ServiceOffering,
    +                             NATRule,
    +                             NetworkACL,
    +                             FireWallRule,
    +                             PublicIPAddress,
    +                             NetworkOffering,
    +                             Network,
    +                             Router)
    +from marvin.lib.common import (get_zone,
    +                               get_template,
    +                               get_domain,
    +                               list_virtual_machines,
    +                               list_networks,
    +                               list_configurations,
    +                               list_routers,
    +                               list_nat_rules,
    +                               list_publicIP,
    +                               list_firewall_rules,
    +                               list_hosts)
    +
    +# Import System modules
    +import time
    +import logging
    +
    +
    +class TestRouterDHCPHosts(cloudstackTestCase):
    +
    +    @classmethod
    +    def setUpClass(cls):
    +
    +        cls.logger = logging.getLogger('TestRouterDHCPHosts')
    +        cls.stream_handler = logging.StreamHandler()
    +        cls.logger.setLevel(logging.DEBUG)
    +        cls.logger.addHandler(cls.stream_handler)
    +
    +        cls.testClient = super(TestRouterDHCPHosts, cls).getClsTestClient()
    +        cls.api_client = cls.testClient.getApiClient()
    +
    +        cls.services = cls.testClient.getParsedTestDataConfig()
    +        # Get Zone, Domain and templates
    +        cls.domain = get_domain(cls.api_client)
    +        cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
    +        cls.services['mode'] = cls.zone.networktype
    +        cls.template = get_template(
    +            cls.api_client,
    +            cls.zone.id,
    +            cls.services["ostype"]
    +        )
    +
    +        cls.services["virtual_machine"]["zoneid"] = cls.zone.id
    +
    +        cls.logger.debug("Creating Admin Account for domain %s on zone %s" % (cls.domain.id, cls.zone.id))
    +        # Create an account, network, VM and IP addresses
    +        cls.account = Account.create(
    +            cls.api_client,
    +            cls.services["account"],
    +            admin=True,
    +            domainid=cls.domain.id
    +        )
    +
    +        cls.logger.debug("Creating Service Offering on zone %s" % (cls.zone.id))
    +        cls.service_offering = ServiceOffering.create(
    +            cls.api_client,
    +            cls.services["service_offering"]
    +        )
    +
    +        cls.services["isolated_network_offering"]["egress_policy"] = "true"
    +
    +        cls.logger.debug("Creating Network Offering on zone %s" % (cls.zone.id))
    +        cls.network_offering = NetworkOffering.create(cls.api_client,
    +                                                       cls.services["isolated_network_offering"],
    +                                                       conservemode=True)
    +
    +        cls.network_offering.update(cls.api_client, state='Enabled')
    +
    +        cls.logger.debug("Creating Network for Account %s using offering %s" % (cls.account.name, cls.network_offering.id))
    +        cls.network = Network.create(cls.api_client,
    +                                      cls.services["network"],
    +                                      accountid=cls.account.name,
    +                                      domainid=cls.account.domainid,
    +                                      networkofferingid=cls.network_offering.id,
    +                                      zoneid=cls.zone.id)
    +
    +        cls.logger.debug("Creating VM1 for Account %s using offering %s with IP 10.1.1.50" % (cls.account.name, cls.service_offering.id))
    +        cls.vm_1 = VirtualMachine.create(cls.api_client,
    +                                         cls.services["virtual_machine"],
    +                                         templateid=cls.template.id,
    +                                         accountid=cls.account.name,
    +                                         domainid=cls.domain.id,
    +                                         serviceofferingid=cls.service_offering.id,
    +                                         networkids=[str(cls.network.id)],
    +                                         ipaddress="10.1.1.50")
    +
    +        cls.logger.debug("Creating VM2 for Account %s using offering %s with IP 10.1.1.51" % (cls.account.name, cls.service_offering.id))
    +        cls.vm_2 = VirtualMachine.create(cls.api_client,
    +                                         cls.services["virtual_machine"],
    +                                         templateid=cls.template.id,
    +                                         accountid=cls.account.name,
    +                                         domainid=cls.domain.id,
    +                                         serviceofferingid=cls.service_offering.id,
    +                                         networkids=[str(cls.network.id)],
    +                                         ipaddress="10.1.1.51")
    +
    +        cls.services["natrule1"] = {
    +            "privateport": 22,
    +            "publicport": 222,
    +            "protocol": "TCP"
    +        }
    +
    +        cls.services["natrule2"] = {
    +            "privateport": 22,
    +            "publicport": 223,
    +            "protocol": "TCP"
    +        }
    +
    +        cls.services["configurableData"] = {
    +            "host": {
    +                "password": "password",
    +                "username": "root",
    +                "port": 22
    +            },
    +            "input": "INPUT",
    +            "forward": "FORWARD"
    +        }
    +
    +        cls._cleanup = [
    +            cls.vm_2,
    +            cls.network,
    +            cls.network_offering,
    +            cls.service_offering,
    +            cls.account
    +        ]
    +
    +        return
    +
    +    @classmethod
    +    def tearDownClass(cls):
    +        try:
    +            cleanup_resources(cls.api_client, cls._cleanup)
    +        except Exception as e:
    +            raise Exception("Warning: Exception during cleanup : %s" % e)
    +        return
    +
    +    def setUp(self):
    +        self.apiclient = self.testClient.getApiClient()
    +        self.cleanup = []
    +        return
    +
    +    def tearDown(self):
    +        try:
    +            cleanup_resources(self.apiclient, self.cleanup)
    +        except Exception as e:
    +            raise Exception("Warning: Exception during cleanup : %s" % e)
    +        return
    +
    +    def test_ssh_command(self, vm, nat_rule, rule_label):
    +        result = 'failed'
    +        try:
    +            ssh_command = "ping -c 3 8.8.8.8"
    +            self.logger.debug("SSH into VM with IP: %s" % nat_rule.ipaddress)
    +
    +            ssh = vm.get_ssh_client(ipaddress=nat_rule.ipaddress, port=self.services[rule_label]["publicport"], retries=5)
    +            result = str(ssh.execute(ssh_command))
    +
    +            self.logger.debug("SSH result: %s; COUNT is ==> %s" % (result, result.count("3 packets received")))
    +        except:
    +            self.fail("Failed to SSH into VM - %s" % (nat_rule.ipaddress))
    +
    +        self.assertEqual(
    +                         result.count("3 packets received"),
    +                         1,
    +                         "Ping to outside world from VM should be successful"
    +                         )
    +
    +    def test_dhcphosts(self, vm, router):
    +        hosts = list_hosts(
    +            self.apiclient,
    +            id=router.hostid)
    +
    +        self.assertEqual(
    +            isinstance(hosts, list),
    +            True,
    +            "Check for list hosts response return valid data")
    +
    +        host = hosts[0]
    +        host.user = self.services["configurableData"]["host"]["username"]
    +        host.passwd = self.services["configurableData"]["host"]["password"]
    +        host.port = self.services["configurableData"]["host"]["port"]
    +        #mac1,10.7.32.101,infinite
    +        try:
    +            result = get_process_status(
    +                host.ipaddress,
    +                host.port,
    +                host.user,
    +                host.passwd,
    +                router.linklocalip,
    +                "cat /etc/dhcphosts.txt | grep %s | sed 's/\,/ /g' | awk '{print $2}'" % (vm.nic[0].ipaddress))
    +        except KeyError:
    +            self.skipTest(
    +                "Provide a marvin config file with host\
    +                        credentials to run %s" %
    +                self._testMethodName)
    +
    +        self.logger.debug("cat /etc/dhcphosts.txt | grep %s | sed 's/\,/ /g' | awk '{print $2}' RESULT IS ==> %s" % (vm.nic[0].ipaddress, result))
    +        res = str(result)
    +        
    +        self.assertEqual(
    +            res.count(vm.nic[0].ipaddress),
    +            1,
    +            "Password file is empty or doesn't exist!")
    --- End diff --
    
    Ohh... yes! Thanks for the review, @serbaut !
    
    I will update and push it again.
    
    Cheers,
    Wilder


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by remibergsma <gi...@git.apache.org>.
Github user remibergsma commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152203550
  
    LGTM
    
    Run this:
    ```
    nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=true test/integration/component/test_router_dhcphosts.py
    ```
    
    Result:
    ```
    [root@cs1 cloudstack]# cat /tmp//MarvinLogs/test_router_dhcphosts_7W9M1B/results.txt 
    Check that the /etc/dhcphosts.txt doesn't contain duplicate IPs ... === TestName: test_router_dhcphosts | Status : SUCCESS ===
    ok
    
    ----------------------------------------------------------------------
    Ran 1 test in 481.194s
    
    OK
    ```



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by wilderrodrigues <gi...@git.apache.org>.
Github user wilderrodrigues commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152220381
  
    It says test failures 0. I have no idea why it's red! In addition, no Java code was changed!
    
    ![image](https://cloud.githubusercontent.com/assets/5129209/10823481/2c2d2d30-7e5c-11e5-9c23-a1cd6c5aa1fd.png)
    
    Not related, please merge once it get a second LGTM.
    
    Cheers,
    Wilder


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by wilderrodrigues <gi...@git.apache.org>.
Github user wilderrodrigues commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152122575
  
    Ping @remibergsma @DaanHoogland @karuturi @bhaisaab @serbaut @borisroman 
    
    Test results
    
    * Management Server + MySQL on CentOS 7.1
    * One KVM host on CentOS 7.1
    * ACS Agent + Common RPMs built from source
    
    ```
    Check that the /etc/dhcphosts.txt doesn't contain duplicate IPs ... === TestName: test_router_dhcphosts | Status : SUCCESS ===
    ok
    
    ----------------------------------------------------------------------
    Ran 1 test in 532.907s
    
    OK
    /tmp//MarvinLogs/test_dhcp_YIVHZS/results.txt (END)
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by remibergsma <gi...@git.apache.org>.
Github user remibergsma commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152208845
  
    @serbaut If you think this should go into master, please comment LGTM (Looks Good To Me) with any testing / verification you did. We need 2 LGTMs before we can merge.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by remibergsma <gi...@git.apache.org>.
Github user remibergsma commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152286968
  
    Agree that the Jenkins failure is unrelated. Will soon merge.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by wilderrodrigues <gi...@git.apache.org>.
Github user wilderrodrigues commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152127063
  
    Ping @serbaut
    
    I just executed the test against Master and got the following error:
    
    ```
    cat /etc/dhcphosts.txt | grep 10.1.1.50 | sed 's/\,/ /g' | awk '{print $2}' RESULT IS ==> [u'10.1.1.50', u'10.1.1.50']
    === TestName: test_router_dhcphosts | Status : FAILED ===
    
    Check that the /etc/dhcphosts.txt doesn't contain duplicate IPs ... === TestName: test_router_dhcphosts | Status : FAILED ===
    FAIL
    
    ======================================================================
    FAIL: Check that the /etc/dhcphosts.txt doesn't contain duplicate IPs
    ----------------------------------------------------------------------
    ```
    
    It proves that @serbaut's fix is more than fine!
    
    @remibergsma we need to get PR #981 merged. 
    
    Cheers,
    Wilder


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by borisroman <gi...@git.apache.org>.
Github user borisroman commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152264912
  
    @remibergsma @wilderrodrigues Also ran the test against PR #981 => LGTM :+1: 
    
    ```
    === TestName: test_router_dhcphosts | Status : SUCCESS ===
    ok
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/cloudstack/pull/1002


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request: CLOUDSTACK-9007 - Write test to check tha...

Posted by remibergsma <gi...@git.apache.org>.
Github user remibergsma commented on the pull request:

    https://github.com/apache/cloudstack/pull/1002#issuecomment-152194820
  
    @wilderrodrigues Testing this now


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---