)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"430ecf99771a432799d4f55f935f3be38de2e9d3","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"        super(OrchestrationScenarioTest, cls).setUpClass()"},{"line_number":1178,"context_line":"        if not CONF.service_available.heat:"},{"line_number":1179,"context_line":"            raise cls.skipException(\"Heat support is required\")"},{"line_number":1180,"context_line":"        cls.stack_name \u003d cls._stack_rand_name()"},{"line_number":1181,"context_line":"        cls.client \u003d cls.orchestration_client"},{"line_number":1182,"context_line":""},{"line_number":1183,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_9a754c9a","line":1180,"updated":"2014-07-03 09:57:15.000000000","message":"This name needs to be per instance, not per class (e.g in a setUp method)","commit_id":"31d8906b2151f1072ad04ea98344e2a42761b44a"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"430ecf99771a432799d4f55f935f3be38de2e9d3","unresolved":false,"context_lines":[{"line_number":1305,"context_line":"            self.keypair_name \u003d CONF.orchestration.keypair_name"},{"line_number":1306,"context_line":"        else:"},{"line_number":1307,"context_line":"            self.keypair \u003d self.create_keypair()"},{"line_number":1308,"context_line":"            self.keypair_name \u003d self.keypair.id"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"    def create_stack(self, stack_name, template, parameters\u003d{},"},{"line_number":1311,"context_line":"                     adopt_stack_data\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_df45f670","line":1308,"updated":"2014-07-03 09:57:15.000000000","message":"I don\u0027t think this function is required any more, as you\u0027re not creating an instance.  Personally I\u0027d prefer to see the addition of these two helper functions in a separate refactoring patch (which converts existing tests to use them)","commit_id":"31d8906b2151f1072ad04ea98344e2a42761b44a"}],"tempest/scenario/orchestration/templates/test_stack_abandon_and_adopt.yaml":[{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"1dcf477fed2ccae510ab539a8f40b09855446e22","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      cidr: 22.22.22.0/24"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  instance:"},{"line_number":39,"context_line":"    type: OS::Nova::Server"},{"line_number":40,"context_line":"    properties:"},{"line_number":41,"context_line":"      image: { get_param: image_id }"},{"line_number":42,"context_line":"      flavor: { get_param: instance_type }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"baada198_cc72dde2","line":39,"updated":"2014-07-02 12:57:45.000000000","message":"Considering booting a VM is expensive, and you\u0027re not doing anything inside the user_data, could you create a stack containing only non-instance resources instead?\n\nThis would make the test much faster, and remove any need to run it in heat-slow.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"}],"tempest/scenario/orchestration/test_autoscaling.py":[{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"fe962933de9141d8347f98efdb09d08745998623","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        if not CONF.orchestration.image_ref:"},{"line_number":28,"context_line":"            raise self.skipException(\"No image available to test\")"},{"line_number":29,"context_line":"        self.client \u003d self.orchestration_client"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def launch_stack(self):"},{"line_number":32,"context_line":"        net \u003d self._get_default_network()"},{"line_number":33,"context_line":"        self.parameters \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_b7b641da","line":30,"updated":"2014-06-30 08:17:11.000000000","message":"Minor refactorings are okay but this change seems to touch other files that aren\u0027t related to this patch. So I suggest you file a separate bug for this and submit a new patch for this and rebase the current patch.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":6498,"name":"Divakar Padiyar Nandavar","email":"divakar.padiyar-nandavar@hpe.com","username":"divakar-padiyar-nandavar"},"change_message_id":"c9a71453877dc929fdd4d36fe06569442ce17920","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        if not CONF.orchestration.image_ref:"},{"line_number":28,"context_line":"            raise self.skipException(\"No image available to test\")"},{"line_number":29,"context_line":"        self.client \u003d self.orchestration_client"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def launch_stack(self):"},{"line_number":32,"context_line":"        net \u003d self._get_default_network()"},{"line_number":33,"context_line":"        self.parameters \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_d52c40ae","line":30,"in_reply_to":"1ae5cdf2_b7b641da","updated":"2014-07-01 17:36:17.000000000","message":"I see that this is part of the change attempting to move the common methods to the test base class and is in preparation for the new tests being added.  IMHO this should be ok to address this here.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"}],"tempest/scenario/orchestration/test_stack_abandon_and_adopt.py":[{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"fe962933de9141d8347f98efdb09d08745998623","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class StackAbandonAdoptScenarioTest(manager.OrchestrationScenarioTest):"},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    This test case tests the stack-abandon and stack-adopt"},{"line_number":27,"context_line":"    features of heat."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    Following is the test case scenario:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_d792ed49","line":26,"updated":"2014-06-30 08:17:11.000000000","message":"It will be nice to have the two tests separately. One for abandon and one for adopt. I don\u0027t insist though because they are related. So you can say you also fixed bug #add-tempest-test-for-stack-adopt in launchpad in your commit message.\n\nAlternatively, IMO, I think you should split the patch into two and test these independently because although they are related, they still are independent.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":6498,"name":"Divakar Padiyar Nandavar","email":"divakar.padiyar-nandavar@hpe.com","username":"divakar-padiyar-nandavar"},"change_message_id":"c9a71453877dc929fdd4d36fe06569442ce17920","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class StackAbandonAdoptScenarioTest(manager.OrchestrationScenarioTest):"},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    This test case tests the stack-abandon and stack-adopt"},{"line_number":27,"context_line":"    features of heat."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    Following is the test case scenario:"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_60749499","line":26,"in_reply_to":"1ae5cdf2_d792ed49","updated":"2014-07-01 17:36:17.000000000","message":"Since this is the scenario based test,  this looks correct to me.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":11956,"name":"Ishant Tyagi","email":"ityagi@infoblox.com","username":"ishant"},"change_message_id":"5ce5f2c3d05ec24837f4c0f2365f7eab8c1abfe8","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class StackAbandonAdoptScenarioTest(manager.OrchestrationScenarioTest):"},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    This test case tests the stack-abandon and stack-adopt"},{"line_number":27,"context_line":"    features of heat."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    Following is the test case scenario:"},{"line_number":30,"context_line":"    1) Create a stack with multiple resources i.e server, volume,"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_4a4cfc70","line":27,"updated":"2014-07-02 06:38:14.000000000","message":"This test does not tests adopt completely. This test tests abandon and as it is a scenario test basic adopt was added.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"1dcf477fed2ccae510ab539a8f40b09855446e22","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def setUp(self):"},{"line_number":42,"context_line":"        super(StackAbandonAdoptScenarioTest, self).setUp()"},{"line_number":43,"context_line":"        if not CONF.compute.image_ref:"},{"line_number":44,"context_line":"            raise self.skipException(\"Image is required to run the test.\")"},{"line_number":45,"context_line":"        if not CONF.service_available.cinder:"},{"line_number":46,"context_line":"            raise self.skipException(\u0027Cinder support is required to run \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e71dfa67","line":43,"updated":"2014-07-02 12:57:45.000000000","message":"You\u0027re testing compute.image_ref, but using orchestration.image_ref","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"1dcf477fed2ccae510ab539a8f40b09855446e22","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            self._load_template(\u0027test_stack_abandon_and_adopt.yaml\u0027)"},{"line_number":56,"context_line":"        self.parameters \u003d {"},{"line_number":57,"context_line":"            \u0027instance_type\u0027: CONF.orchestration.instance_type,"},{"line_number":58,"context_line":"            \u0027image_id\u0027: CONF.orchestration.image_ref,"},{"line_number":59,"context_line":"            \u0027network_name\u0027: \"%s-network\" % self.stack_name"},{"line_number":60,"context_line":"        }"},{"line_number":61,"context_line":"        self.create_stack(self.stack_name, self.template,"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_ec2fa19f","line":58,"updated":"2014-07-02 12:57:45.000000000","message":"We\u0027re booting a full fedora cfntools image here, when IMO it could either be a minimal cirros image, or you could write the template so it doesn\u0027t even contain any instance resource.  This would make the test much faster and avoid the need to tag it for the slow job below.\n\nIf you go with the cirros approach, see this patch:\n\nhttps://review.openstack.org/#/c/90143/\n\nWhere there\u0027s been some discussion on how to expose the minimal image ref in the config.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"fe962933de9141d8347f98efdb09d08745998623","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        self.assertIsNotNone(network_id)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Abandon the stack"},{"line_number":86,"context_line":"        response \u003d self.client.stacks.abandon(self.stack_identifier)"},{"line_number":87,"context_line":"        self._wait_for_stack_status(self.stack_identifier, \u0027DELETE_COMPLETE\u0027)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # verify all resources exists"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_12caa39f","line":86,"updated":"2014-06-30 08:17:11.000000000","message":"This response must be tested. It needs to be validated against the state of the stack before it was abandoned. That should tell us if Heat gave us the appropriate data after abandoning the stack.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":11956,"name":"Ishant Tyagi","email":"ityagi@infoblox.com","username":"ishant"},"change_message_id":"5ce5f2c3d05ec24837f4c0f2365f7eab8c1abfe8","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        self.assertIsNotNone(network_id)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Abandon the stack"},{"line_number":86,"context_line":"        response \u003d self.client.stacks.abandon(self.stack_identifier)"},{"line_number":87,"context_line":"        self._wait_for_stack_status(self.stack_identifier, \u0027DELETE_COMPLETE\u0027)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # verify all resources exists"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_0a14c442","line":86,"in_reply_to":"1ae5cdf2_12caa39f","updated":"2014-07-02 06:38:14.000000000","message":"I will do that","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"1dcf477fed2ccae510ab539a8f40b09855446e22","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        volume \u003d self.volume_client.volumes.get(volume_id)"},{"line_number":91,"context_line":"        self.assertIsNotNone(volume)"},{"line_number":92,"context_line":"        self.assertEqual(\"in-use\", volume.status)"},{"line_number":93,"context_line":"        self.assertEqual(1, volume.size)"},{"line_number":94,"context_line":"        self.assertEqual(volume.attachments[0][\u0027server_id\u0027], instance_id)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        server \u003d self.compute_client.servers.get(instance_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e74b3a57","line":93,"updated":"2014-07-02 12:57:45.000000000","message":"As was noted in my patch https://review.openstack.org/#/c/90143/ review comments, there\u0027s a configuration option for volume size - which defaults to 1, you could pass that as a parameter and use it here (assuming you keep the instance/volume resources in the template)","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"fe962933de9141d8347f98efdb09d08745998623","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        self._wait_for_resource_status(self.stack_identifier,"},{"line_number":125,"context_line":"                                       \u0027volume_attachment\u0027,"},{"line_number":126,"context_line":"                                       \u0027ADOPT_COMPLETE\u0027)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Delete the stack and verify all the resources are deleted."},{"line_number":129,"context_line":"        self.client.stacks.delete(self.stack_identifier)"},{"line_number":130,"context_line":"        self._wait_for_stack_status(self.stack_identifier, \u0027DELETE_COMPLETE\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_12262367","line":127,"updated":"2014-06-30 08:17:11.000000000","message":"Needs more testing, for one, you want to find out if the resource in heat actually points to the resource you specified in your adopt_data.","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":11956,"name":"Ishant Tyagi","email":"ityagi@infoblox.com","username":"ishant"},"change_message_id":"5ce5f2c3d05ec24837f4c0f2365f7eab8c1abfe8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        self._wait_for_resource_status(self.stack_identifier,"},{"line_number":125,"context_line":"                                       \u0027volume_attachment\u0027,"},{"line_number":126,"context_line":"                                       \u0027ADOPT_COMPLETE\u0027)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Delete the stack and verify all the resources are deleted."},{"line_number":129,"context_line":"        self.client.stacks.delete(self.stack_identifier)"},{"line_number":130,"context_line":"        self._wait_for_stack_status(self.stack_identifier, \u0027DELETE_COMPLETE\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_aa783890","line":127,"in_reply_to":"1ae5cdf2_12262367","updated":"2014-07-02 06:38:14.000000000","message":"I will that the asserts","commit_id":"b8e6664afbe5089082d31602b58a4c8927be805b"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"9499bfa6590f8fe50c9cec71211cf70748c8ddd1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.volume_size \u003d 1"},{"line_number":51,"context_line":"        self.subnet_cidr \u003d \"20.20.20.0/24\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _launch_stack(self):"},{"line_number":54,"context_line":"        self.template \u003d\\"},{"line_number":55,"context_line":"            self._load_template(\u0027test_stack_abandon_and_adopt.yaml\u0027)"},{"line_number":56,"context_line":"        self.parameters \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_bae03f97","line":53,"updated":"2014-07-03 16:16:04.000000000","message":"adopt_data as parameter would make this code more follow-able.","commit_id":"5f77b219b650280b03fbe8e085050eff1c45e90c"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"dedb536712d005799859be3b4593d8840925fa4d","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _launch_stack(self, adopt_data\u003dNone):"},{"line_number":53,"context_line":"        self.template \u003d\\"},{"line_number":54,"context_line":"            self._load_template(\u0027test_stack_abandon_and_adopt.yaml\u0027)"},{"line_number":55,"context_line":"        self.parameters \u003d {"},{"line_number":56,"context_line":"            \u0027network_name\u0027: \"%s-network\" % self.stack_name,"},{"line_number":57,"context_line":"            \u0027subnet_cidr\u0027: self.subnet_cidr,"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_1639e6d6","line":54,"updated":"2014-07-04 11:55:34.000000000","message":"nit: It\u0027s better to avoid using backslash when possible. You can write it like this:\n\nself.template \u003d self._load_template(\n    \u0027test_stack_abandon_and_adopt.yaml\u0027)","commit_id":"cb46c097b9cd8ef4cd972da9d3e347d95e0ae749"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"dedb536712d005799859be3b4593d8840925fa4d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                         json.dumps(response_data[\u0027template\u0027]))"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @test.services(\u0027orchestration\u0027, \u0027volume\u0027, \u0027network\u0027)"},{"line_number":75,"context_line":"    def test_stack_abandon_and_adopt(self):"},{"line_number":76,"context_line":"        # Create the stack"},{"line_number":77,"context_line":"        self._launch_stack()"},{"line_number":78,"context_line":"        self._wait_for_stack_status(self.stack_identifier, \u0027CREATE_COMPLETE\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_96a8968e","line":75,"updated":"2014-07-04 11:55:34.000000000","message":"IMHO, it might be better if you reorganized the code in this huge test_ function into a set of helper methods, so that the test layout could be obvious like it\u0027s done here https://github.com/openstack/tempest/blob/master/tempest/scenario/orchestration/test_server_cfn_init.py\n\nAs you already have some logical blocks here (create stack, abandon stack, etc) it shouldn\u0027t be a problem. But that are just my thoughts :)","commit_id":"cb46c097b9cd8ef4cd972da9d3e347d95e0ae749"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"fd6a3e9e5cd8c97569c3211cc613d41418da73e8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    5) Delete the adopted stack and verify all the resources are also"},{"line_number":37,"context_line":"       deleted."},{"line_number":38,"context_line":"    \"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def setUp(self):"},{"line_number":41,"context_line":"        super(StackAbandonAdoptScenarioTest, self).setUp()"},{"line_number":42,"context_line":"        if not CONF.service_available.cinder:"}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_87581033","line":39,"updated":"2014-07-29 06:26:38.000000000","message":"If you are creating your own network resources, please disable the ones created by isolated_creds:\n\ndef setUpClass(cls):\n    # Create no network resources for these tests.\n    cls.set_network_resources()\n    super(StackAbandonAdoptScenarioTest, cls).setUpClass()","commit_id":"30e4124fa8c84f1006583e23eca169193c9e8f92"}]}
