)]}'
{"tempest/api/orchestration/stacks/templates/nova_floatingip.yaml":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"35b6d9d37850881b65f8dfdb10dae120712c523a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  FloatingIP:"},{"line_number":16,"context_line":"    type: OS::Nova::FloatingIP"},{"line_number":17,"context_line":"    properties:"},{"line_number":18,"context_line":"      pool: public"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  FloatingIPAssoc:"},{"line_number":21,"context_line":"    type: OS::Nova::FloatingIPAssociation"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9ad9bd40_6567de4d","line":18,"updated":"2014-05-06 18:17:06.000000000","message":"I have a concern that this is devstack-specific. Shouldn\u0027t the name of a/the floating ip pool be a tempest config?","commit_id":"3177493f0b3443af9e031251b3e6924533892e07"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"bd4594d521df63e1fd23f0c485ec1a08bcfca1ca","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  FloatingIP:"},{"line_number":16,"context_line":"    type: OS::Nova::FloatingIP"},{"line_number":17,"context_line":"    properties:"},{"line_number":18,"context_line":"      pool: public"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  FloatingIPAssoc:"},{"line_number":21,"context_line":"    type: OS::Nova::FloatingIPAssociation"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7adec928_56b9432d","line":18,"in_reply_to":"9ad9bd40_6567de4d","updated":"2014-05-08 06:22:08.000000000","message":"Good catch","commit_id":"3177493f0b3443af9e031251b3e6924533892e07"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"4fdcce83841d431c9e832f97282aef71d4e47d98","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    type: string"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"resources:"},{"line_number":15,"context_line":"  FloatingIP:"},{"line_number":16,"context_line":"    type: OS::Nova::FloatingIP"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  FloatingIPAssoc:"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1ae5cdf2_89c43741","line":15,"updated":"2014-06-10 19:28:16.000000000","message":"Since this template intends to follow the HOT Template syntax and by looking at example templates here -\u003e http://docs.openstack.org/developer/heat/template_guide/openstack.html, these resource names must be all_lower_case with words separated by underscores, right?","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"0753bb3dc3cca0bdb0ce21a20874cab00bb2e2d8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    type: string"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"resources:"},{"line_number":15,"context_line":"  FloatingIP:"},{"line_number":16,"context_line":"    type: OS::Nova::FloatingIP"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  FloatingIPAssoc:"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1ae5cdf2_bb30f59e","line":15,"in_reply_to":"1ae5cdf2_89c43741","updated":"2014-06-20 07:38:55.000000000","message":"Thanks for catching this. I\u0027ve modified all the resource names.","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"4fdcce83841d431c9e832f97282aef71d4e47d98","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  FloatingIP:"},{"line_number":16,"context_line":"    type: OS::Nova::FloatingIP"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  FloatingIPAssoc:"},{"line_number":19,"context_line":"    type: OS::Nova::FloatingIPAssociation"},{"line_number":20,"context_line":"    properties:"},{"line_number":21,"context_line":"      floating_ip: {get_resource: FloatingIP}"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1ae5cdf2_09e827b3","line":18,"updated":"2014-06-10 19:28:16.000000000","message":"ditto","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"4fdcce83841d431c9e832f97282aef71d4e47d98","unresolved":false,"context_lines":[{"line_number":21,"context_line":"      floating_ip: {get_resource: FloatingIP}"},{"line_number":22,"context_line":"      server_id: {get_resource: Server}"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  Server:"},{"line_number":25,"context_line":"    type: OS::Nova::Server"},{"line_number":26,"context_line":"    properties:"},{"line_number":27,"context_line":"      image: {get_param: image}"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1ae5cdf2_69cc4b62","line":24,"updated":"2014-06-10 19:28:16.000000000","message":"ditto","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"}],"tempest/api/orchestration/stacks/test_nova_floatingip_resources.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d7a550c1e447cee217fdcb43ed2d85c604053cac","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      server_id: {get_resource: Server}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"  Server:"},{"line_number":51,"context_line":"    type: AWS::EC2::Instance"},{"line_number":52,"context_line":"    properties:"},{"line_number":53,"context_line":"      ImageId: {get_param: ImageId}"},{"line_number":54,"context_line":"      InstanceType: {get_param: InstanceType}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1c8%3D","line":51,"updated":"2014-03-23 19:56:22.000000000","message":"Please switch this to OS::Nova::Server","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"92706e626aa85ebad1614ea26e335649a29ae144","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      server_id: {get_resource: Server}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"  Server:"},{"line_number":51,"context_line":"    type: AWS::EC2::Instance"},{"line_number":52,"context_line":"    properties:"},{"line_number":53,"context_line":"      ImageId: {get_param: ImageId}"},{"line_number":54,"context_line":"      InstanceType: {get_param: InstanceType}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BuZ0%3D","line":51,"in_reply_to":"AAAAWH%2F%2B1c8%3D","updated":"2014-03-24 20:02:46.000000000","message":"Done","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d7a550c1e447cee217fdcb43ed2d85c604053cac","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            cls.template,"},{"line_number":75,"context_line":"            parameters\u003d{"},{"line_number":76,"context_line":"                \u0027KeyName\u0027: cls.keypair_name,"},{"line_number":77,"context_line":"                \u0027InstanceType\u0027: CONF.orchestration.instance_type,"},{"line_number":78,"context_line":"                \u0027ImageId\u0027: CONF.orchestration.image_ref,"},{"line_number":79,"context_line":"            })"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1cU%3D","line":77,"updated":"2014-03-23 19:56:22.000000000","message":"orchestration.instance_type is fedora 20. I would recommend getting this test to work on cirros instead. Otherwise you\u0027ll need to change @attr(type\u003d\u0027gate\u0027) below to @attr(type\u003d\u0027slow\u0027)","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"92706e626aa85ebad1614ea26e335649a29ae144","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            cls.template,"},{"line_number":75,"context_line":"            parameters\u003d{"},{"line_number":76,"context_line":"                \u0027KeyName\u0027: cls.keypair_name,"},{"line_number":77,"context_line":"                \u0027InstanceType\u0027: CONF.orchestration.instance_type,"},{"line_number":78,"context_line":"                \u0027ImageId\u0027: CONF.orchestration.image_ref,"},{"line_number":79,"context_line":"            })"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BuYs%3D","line":77,"in_reply_to":"AAAAWH%2F%2B1cU%3D","updated":"2014-03-24 20:02:46.000000000","message":"I switched the flavor and image to CONF.compute.flavor_ref and CONF.computer.image_ref respectively, which, from my understanding, is m1.nano and the cirros image.","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d7a550c1e447cee217fdcb43ed2d85c604053cac","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            cls.test_resources[resource[\u0027logical_resource_id\u0027]] \u003d resource"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":89,"context_line":"    def test_created_resources(self):"},{"line_number":90,"context_line":"        \"\"\"Verifies created Floating IP resources.\"\"\""},{"line_number":91,"context_line":"        resources \u003d [(\u0027FloatingIP\u0027, \u0027OS::Nova::FloatingIP\u0027),"},{"line_number":92,"context_line":"                     (\u0027FloatingIPAssoc\u0027, \u0027OS::Nova::FloatingIPAssociation\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1bc%3D","line":89,"updated":"2014-03-23 19:56:22.000000000","message":"If line 82 fails then this test will never be run, and you won\u0027t find out which resource caused the stack to fail. I would recommend not having a test_created_resources method, and move this code above line 82 so you\u0027re asserting each resource is created before asserting the stack is created.","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"92706e626aa85ebad1614ea26e335649a29ae144","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            cls.test_resources[resource[\u0027logical_resource_id\u0027]] \u003d resource"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":89,"context_line":"    def test_created_resources(self):"},{"line_number":90,"context_line":"        \"\"\"Verifies created Floating IP resources.\"\"\""},{"line_number":91,"context_line":"        resources \u003d [(\u0027FloatingIP\u0027, \u0027OS::Nova::FloatingIP\u0027),"},{"line_number":92,"context_line":"                     (\u0027FloatingIPAssoc\u0027, \u0027OS::Nova::FloatingIPAssociation\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BuXY%3D","line":89,"in_reply_to":"AAAAWH%2F%2B1bc%3D","updated":"2014-03-24 20:02:46.000000000","message":"Alright, I added a loop in the setUpClass that calls wait_for_resource_status on all the resources, and got rid of the test_created_resources method. The added loop should be sufficient for verifying the successful creation of each resource.","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d7a550c1e447cee217fdcb43ed2d85c604053cac","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_created_resources(self):"},{"line_number":90,"context_line":"        \"\"\"Verifies created Floating IP resources.\"\"\""},{"line_number":91,"context_line":"        resources \u003d [(\u0027FloatingIP\u0027, \u0027OS::Nova::FloatingIP\u0027),"},{"line_number":92,"context_line":"                     (\u0027FloatingIPAssoc\u0027, \u0027OS::Nova::FloatingIPAssociation\u0027),"},{"line_number":93,"context_line":"                     (\u0027Server\u0027, \u0027AWS::EC2::Instance\u0027)]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        for resource_name, resource_type in resources:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1c4%3D","line":92,"updated":"2014-03-23 19:56:22.000000000","message":"This should be in dependency order, so move FloatingIPAssoc after Server","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"92706e626aa85ebad1614ea26e335649a29ae144","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_created_resources(self):"},{"line_number":90,"context_line":"        \"\"\"Verifies created Floating IP resources.\"\"\""},{"line_number":91,"context_line":"        resources \u003d [(\u0027FloatingIP\u0027, \u0027OS::Nova::FloatingIP\u0027),"},{"line_number":92,"context_line":"                     (\u0027FloatingIPAssoc\u0027, \u0027OS::Nova::FloatingIPAssociation\u0027),"},{"line_number":93,"context_line":"                     (\u0027Server\u0027, \u0027AWS::EC2::Instance\u0027)]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        for resource_name, resource_type in resources:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BuYg%3D","line":92,"in_reply_to":"AAAAWH%2F%2B1c4%3D","updated":"2014-03-24 20:02:46.000000000","message":"Done","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d7a550c1e447cee217fdcb43ed2d85c604053cac","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                     (\u0027FloatingIPAssoc\u0027, \u0027OS::Nova::FloatingIPAssociation\u0027),"},{"line_number":93,"context_line":"                     (\u0027Server\u0027, \u0027AWS::EC2::Instance\u0027)]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        for resource_name, resource_type in resources:"},{"line_number":96,"context_line":"            resource \u003d self.test_resources.get(resource_name, None)"},{"line_number":97,"context_line":"            self.assertIsInstance(resource, dict)"},{"line_number":98,"context_line":"            self.assertEqual(resource_name, resource[\u0027logical_resource_id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1bg%3D","line":95,"updated":"2014-03-23 19:56:22.000000000","message":"self.client.wait_for_resource_status(\n            self.stack_id, resource_name, \u0027CREATE_COMPLETE\u0027)","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d7a550c1e447cee217fdcb43ed2d85c604053cac","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        self.assertEqual(body[\u0027ip\u0027], server[\u0027addresses\u0027][\u0027private\u0027][1][\u0027addr\u0027])"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class NovaFloatingIpResourcesAWSTest(NovaFloatingIpResourcesYAMLTest):"},{"line_number":140,"context_line":"    template \u003d \"\"\""},{"line_number":141,"context_line":"{"},{"line_number":142,"context_line":"  \"AWSTemplateFormatVersion\" : \"2010-09-09\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1b8%3D","line":139,"updated":"2014-03-23 19:56:22.000000000","message":"I don\u0027t think this test is necessary, the intent of this test is to exercise the nova floating IP resources, not the different template formats.","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"92706e626aa85ebad1614ea26e335649a29ae144","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        self.assertEqual(body[\u0027ip\u0027], server[\u0027addresses\u0027][\u0027private\u0027][1][\u0027addr\u0027])"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class NovaFloatingIpResourcesAWSTest(NovaFloatingIpResourcesYAMLTest):"},{"line_number":140,"context_line":"    template \u003d \"\"\""},{"line_number":141,"context_line":"{"},{"line_number":142,"context_line":"  \"AWSTemplateFormatVersion\" : \"2010-09-09\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BuWc%3D","line":139,"in_reply_to":"AAAAWH%2F%2B1b8%3D","updated":"2014-03-24 20:02:46.000000000","message":"Got rid of this test class. Was basing the need off of other tempest bug descriptions which said that the test cases should test both YAML and CFN format.","commit_id":"78dba56b3beaa60d6ead2a30ec2b7238ff4fae47"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"5a71d798de79a4494beece0c9fe805f86ca80c92","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                \u0027image\u0027: CONF.compute.image_ref,"},{"line_number":79,"context_line":"            })"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        resources \u003d [\u0027Server\u0027, \u0027FloatingIP\u0027, \u0027FloatingIPAssoc\u0027]"},{"line_number":82,"context_line":"        # Check that each resource reaches the CREATE_COMPLETE status."},{"line_number":83,"context_line":"        for resource_name in resources:"},{"line_number":84,"context_line":"            cls.client.wait_for_resource_status(cls.stack_identifier,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BuWw%3D","line":81,"updated":"2014-03-24 19:59:48.000000000","message":"The dependency order is correct, but you could always move Server after FloatingIP just because it will take longer to boot.","commit_id":"7b914d8d802faf0daee924b519861bb9f20e7cb5"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"ea08cfd29a9d1dcabf927491ba2247c30915c533","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                \u0027image\u0027: CONF.compute.image_ref,"},{"line_number":79,"context_line":"            })"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        resources \u003d [\u0027Server\u0027, \u0027FloatingIP\u0027, \u0027FloatingIPAssoc\u0027]"},{"line_number":82,"context_line":"        # Check that each resource reaches the CREATE_COMPLETE status."},{"line_number":83,"context_line":"        for resource_name in resources:"},{"line_number":84,"context_line":"            cls.client.wait_for_resource_status(cls.stack_identifier,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BuUU%3D","line":81,"in_reply_to":"AAAAWH%2F%2BuWw%3D","updated":"2014-03-24 20:06:28.000000000","message":"Done","commit_id":"7b914d8d802faf0daee924b519861bb9f20e7cb5"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"1890ce6b56ca20b6bbb2908b625cc3486f56a197","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        # Make sure that the server\u0027s floating IP address matches the address"},{"line_number":92,"context_line":"        # given by the FloatingIP resource."},{"line_number":93,"context_line":"        ip_id \u003d self.test_resources.get(\u0027FloatingIP\u0027)[\u0027physical_resource_id\u0027]"},{"line_number":94,"context_line":"        resp, body \u003d self.floating_ips_client.get_floating_ip_details(ip_id)"},{"line_number":95,"context_line":"        self.assertEqual(body[\u0027ip\u0027], server[\u0027addresses\u0027][\u0027private\u0027][1][\u0027addr\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F93qI%3D","line":94,"updated":"2014-04-01 14:37:58.000000000","message":"unused variable \"resp\"","commit_id":"eedb6dad55f35d4def683d1d3b29cf1048b98580"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"23482404b429c5b396cd5132d030e59bfce78ca1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from tempest.api.orchestration import base"},{"line_number":14,"context_line":"from tempest.common.utils import data_utils"},{"line_number":15,"context_line":"from tempest import config"},{"line_number":16,"context_line":"from tempest.test import attr"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"CONF \u003d config.CONF"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2Fklg%3D","line":16,"updated":"2014-04-12 07:40:32.000000000","message":"Could you import a module not a object?\nSo this should be \n\n from tempest import test\n\nhttp://docs.openstack.org/developer/hacking/#imports","commit_id":"e8ea0c05cfbe4f381aa251e98af301ad4276f825"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"46f344193277b4b282f28e1b3c9f7286c8224069","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from tempest.api.orchestration import base"},{"line_number":14,"context_line":"from tempest.common.utils import data_utils"},{"line_number":15,"context_line":"from tempest import config"},{"line_number":16,"context_line":"from tempest.test import attr"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"CONF \u003d config.CONF"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FY%2BQ%3D","line":16,"in_reply_to":"AAAAW3%2F%2Fklg%3D","updated":"2014-04-14 22:48:37.000000000","message":"Done. Thanks.","commit_id":"e8ea0c05cfbe4f381aa251e98af301ad4276f825"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a5fa6e001b551d90d241c3146a127c9a12f632e5","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        cls.floating_ips_client \u003d cls.os.floating_ips_client"},{"line_number":30,"context_line":"        template \u003d cls.load_template(\u0027nova_floatingip\u0027)"},{"line_number":31,"context_line":"        cls.stack_name \u003d data_utils.rand_name(\u0027heat\u0027)"},{"line_number":32,"context_line":"        cls.keypair_name \u003d (CONF.orchestration.keypair_name or"},{"line_number":33,"context_line":"                            cls._create_keypair()[\u0027name\u0027])"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_2ecc1335","line":31,"updated":"2014-05-13 10:02:34.000000000","message":"There is no need to use cls.stack_name variable here. You use cls.stack_name variable in setUpClass method only. You can just use stack_name variable.","commit_id":"595aafd65fc738867ea35a246aa98e2b6c486d60"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"8d1b05ab3268e4c642f2d0e3933a88995bb06dfe","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        cls.floating_ips_client \u003d cls.os.floating_ips_client"},{"line_number":30,"context_line":"        template \u003d cls.load_template(\u0027nova_floatingip\u0027)"},{"line_number":31,"context_line":"        cls.stack_name \u003d data_utils.rand_name(\u0027heat\u0027)"},{"line_number":32,"context_line":"        cls.keypair_name \u003d (CONF.orchestration.keypair_name or"},{"line_number":33,"context_line":"                            cls._create_keypair()[\u0027name\u0027])"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_d5689789","line":31,"in_reply_to":"7adec928_2ecc1335","updated":"2014-05-13 17:08:28.000000000","message":"Done","commit_id":"595aafd65fc738867ea35a246aa98e2b6c486d60"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a5fa6e001b551d90d241c3146a127c9a12f632e5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                            cls._create_keypair()[\u0027name\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # Create the stack"},{"line_number":36,"context_line":"        cls.stack_identifier \u003d cls.create_stack("},{"line_number":37,"context_line":"            cls.stack_name,"},{"line_number":38,"context_line":"            template,"},{"line_number":39,"context_line":"            parameters\u003d{"}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_4ed31fd6","line":36,"updated":"2014-05-13 10:02:34.000000000","message":"ditto","commit_id":"595aafd65fc738867ea35a246aa98e2b6c486d60"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"8d1b05ab3268e4c642f2d0e3933a88995bb06dfe","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                            cls._create_keypair()[\u0027name\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # Create the stack"},{"line_number":36,"context_line":"        cls.stack_identifier \u003d cls.create_stack("},{"line_number":37,"context_line":"            cls.stack_name,"},{"line_number":38,"context_line":"            template,"},{"line_number":39,"context_line":"            parameters\u003d{"}],"source_content_type":"text/x-python","patch_set":10,"id":"7adec928_f50673cd","line":36,"in_reply_to":"7adec928_4ed31fd6","updated":"2014-05-13 17:08:28.000000000","message":"Done","commit_id":"595aafd65fc738867ea35a246aa98e2b6c486d60"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b76cf256f251f9bec3bb4431cf3f0d0f83041800","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @classmethod"},{"line_number":24,"context_line":"    def setUpClass(cls):"},{"line_number":25,"context_line":"        super(NovaFloatingIpResourcesYAMLTest, cls).setUpClass()"},{"line_number":26,"context_line":"        if not CONF.compute.image_ref:"},{"line_number":27,"context_line":"            raise cls.skipException(\"No image available to test\")"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        cls.floating_ips_client \u003d cls.os.floating_ips_client"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_4644ba1a","line":26,"updated":"2014-06-11 14:16:33.000000000","message":"You might want to use CONF.orchestration.image_ref ?","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"0753bb3dc3cca0bdb0ce21a20874cab00bb2e2d8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    @classmethod"},{"line_number":24,"context_line":"    def setUpClass(cls):"},{"line_number":25,"context_line":"        super(NovaFloatingIpResourcesYAMLTest, cls).setUpClass()"},{"line_number":26,"context_line":"        if not CONF.compute.image_ref:"},{"line_number":27,"context_line":"            raise cls.skipException(\"No image available to test\")"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        cls.floating_ips_client \u003d cls.os.floating_ips_client"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_1bcba953","line":26,"in_reply_to":"1ae5cdf2_4644ba1a","updated":"2014-06-20 07:38:55.000000000","message":"The value of orchestration.image_ref seems to be a fedora image while compute.image_ref is a cirros image. So hopefully using the cirros image would speed up the instance boot time.","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"4fdcce83841d431c9e832f97282aef71d4e47d98","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            cls.test_resources[resource[\u0027logical_resource_id\u0027]] \u003d resource"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":61,"context_line":"    def test_created_floatingip(self):"},{"line_number":62,"context_line":"        \"\"\"Verifies the floating IP was correctly allocated and associated.\"\"\""},{"line_number":63,"context_line":"        ip_id \u003d self.test_resources.get(\u0027FloatingIP\u0027)[\u0027physical_resource_id\u0027]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_ccbacde0","line":61,"updated":"2014-06-10 19:28:16.000000000","message":"This function name seems misleading. This function not only tests the creation of a floating IP but also tests the association. Either, split the relevant logic into a separate function or rename it.","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"0753bb3dc3cca0bdb0ce21a20874cab00bb2e2d8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            cls.test_resources[resource[\u0027logical_resource_id\u0027]] \u003d resource"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":61,"context_line":"    def test_created_floatingip(self):"},{"line_number":62,"context_line":"        \"\"\"Verifies the floating IP was correctly allocated and associated.\"\"\""},{"line_number":63,"context_line":"        ip_id \u003d self.test_resources.get(\u0027FloatingIP\u0027)[\u0027physical_resource_id\u0027]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_3b1ce512","line":61,"in_reply_to":"1ae5cdf2_46291a36","updated":"2014-06-20 07:38:55.000000000","message":"Done","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b76cf256f251f9bec3bb4431cf3f0d0f83041800","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            cls.test_resources[resource[\u0027logical_resource_id\u0027]] \u003d resource"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":61,"context_line":"    def test_created_floatingip(self):"},{"line_number":62,"context_line":"        \"\"\"Verifies the floating IP was correctly allocated and associated.\"\"\""},{"line_number":63,"context_line":"        ip_id \u003d self.test_resources.get(\u0027FloatingIP\u0027)[\u0027physical_resource_id\u0027]"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_46291a36","line":61,"in_reply_to":"1ae5cdf2_ccbacde0","updated":"2014-06-11 14:16:33.000000000","message":"I agree. You should rename it to something lije test_created_and_associated_floatingip()","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b76cf256f251f9bec3bb4431cf3f0d0f83041800","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        # Make sure that the number of private addresses is two to account for"},{"line_number":85,"context_line":"        # the associated floating IP."},{"line_number":86,"context_line":"        self.assertEqual(2, len(server[\u0027addresses\u0027][\u0027private\u0027]))"},{"line_number":87,"context_line":"        self.assertEqual(\"floating\","},{"line_number":88,"context_line":"                         server[\u0027addresses\u0027][\u0027private\u0027][1][\u0027OS-EXT-IPS:type\u0027])"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Make sure that the server\u0027s floating IP address matches the address"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_465d9a78","line":87,"updated":"2014-06-11 14:16:33.000000000","message":"This is fragile. There\u0027s no guarantee, neither in Nova-API, nor in the nova client, that the floating IP is the second element of the list server[\u0027addresses\u0027][\u0027private\u0027].","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b76cf256f251f9bec3bb4431cf3f0d0f83041800","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        ip_id \u003d self.test_resources.get(\u0027FloatingIP\u0027)[\u0027physical_resource_id\u0027]"},{"line_number":93,"context_line":"        resp, body \u003d self.floating_ips_client.get_floating_ip_details(ip_id)"},{"line_number":94,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":95,"context_line":"        self.assertEqual(body[\u0027ip\u0027], server[\u0027addresses\u0027][\u0027private\u0027][1][\u0027addr\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_26cfae2a","line":95,"updated":"2014-06-11 14:16:33.000000000","message":"This is fragile. There\u0027s no guarantee, neither in Nova-API, nor in the nova client, that the floating IP is the second element of the list server[\u0027addresses\u0027][\u0027private\u0027].","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"0753bb3dc3cca0bdb0ce21a20874cab00bb2e2d8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        ip_id \u003d self.test_resources.get(\u0027FloatingIP\u0027)[\u0027physical_resource_id\u0027]"},{"line_number":93,"context_line":"        resp, body \u003d self.floating_ips_client.get_floating_ip_details(ip_id)"},{"line_number":94,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":95,"context_line":"        self.assertEqual(body[\u0027ip\u0027], server[\u0027addresses\u0027][\u0027private\u0027][1][\u0027addr\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_9bbb39e4","line":95,"in_reply_to":"1ae5cdf2_26cfae2a","updated":"2014-06-20 07:38:55.000000000","message":"I\u0027ve modified the code to just check if the address given by the FloatingIP resource exists in server[\u0027addresses\u0027][\u0027private\u0027].","commit_id":"7bbc1e39e931c06e94a8d8bbede5f7269b71020d"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"4ab5ce5b02f61925dc32593d5f1f52c10cf3b247","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        # Make sure that the number of private addresses is two to account for"},{"line_number":85,"context_line":"        # the associated floating IP."},{"line_number":86,"context_line":"        self.assertEqual(2, len(server[\u0027addresses\u0027][\u0027private\u0027]))"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Make sure that the address given by the Nova::FloatingIP resource is"},{"line_number":89,"context_line":"        # one of the addresses associated with the server."}],"source_content_type":"text/x-python","patch_set":12,"id":"1ae5cdf2_1bdba9ed","line":86,"updated":"2014-06-27 20:37:39.000000000","message":"This \u0027private\u0027 is another devstack-ism. I think you should use CONF.compute.fixed_network_name","commit_id":"33f441d538ce6863726d5be55270e156f8792665"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"4ab5ce5b02f61925dc32593d5f1f52c10cf3b247","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        ip_id \u003d self.test_resources.get(\u0027floating_ip\u0027)[\u0027physical_resource_id\u0027]"},{"line_number":91,"context_line":"        resp, body \u003d self.floating_ips_client.get_floating_ip_details(ip_id)"},{"line_number":92,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":93,"context_line":"        self.assertIn(body[\u0027ip\u0027], str(server[\u0027addresses\u0027][\u0027private\u0027]))"}],"source_content_type":"text/x-python","patch_set":12,"id":"1ae5cdf2_3bd6a5c3","line":93,"updated":"2014-06-27 20:37:39.000000000","message":"Ditto","commit_id":"33f441d538ce6863726d5be55270e156f8792665"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a5924ab8d2cffc405cf79f7ef8dcc7cf98f80f2e","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        cls.floating_ips_client \u003d cls.os.floating_ips_client"},{"line_number":30,"context_line":"        stack_name \u003d data_utils.rand_name(\u0027heat\u0027)"},{"line_number":31,"context_line":"        template \u003d cls.load_template(\u0027nova_floatingip\u0027)"},{"line_number":32,"context_line":"        cls.keypair_name \u003d (CONF.orchestration.keypair_name or"},{"line_number":33,"context_line":"                            cls._create_keypair()[\u0027name\u0027])"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_2f39afa3","line":31,"updated":"2014-07-30 04:09:32.000000000","message":"Use read_template() here -https://review.openstack.org/#/c/98676/","commit_id":"452d7f4e35bbc050a839edd331c798c0e39f4924"},{"author":{"_account_id":10090,"name":"Amit Ugol","email":"augol@redhat.com","username":"cmyster"},"change_message_id":"0be97982f17da82e5800cb96654d23c208fb3d9f","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # Check that the floating IP exists according to nova."},{"line_number":66,"context_line":"        resp, body \u003d self.floating_ips_client.get_floating_ip_details(ip_id)"},{"line_number":67,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":68,"context_line":"        self.assertIsInstance(body, dict)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # Check that it is associated with our server."}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_e89934d1","line":67,"updated":"2014-07-24 05:36:44.000000000","message":"assertEqual 200 should go in the client, not in the test.\nSame is true for the rest of the asserts below","commit_id":"452d7f4e35bbc050a839edd331c798c0e39f4924"}]}
