)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-08-31 10:56:43 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend ServerMovingTests with custom resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related-Bug: #1713739"},{"line_number":10,"context_line":"Change-Id: Iade57aa2d4e563670bc8c54e4c10c776d090a7da"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7f287b81_ddc7a563","line":8,"updated":"2017-08-31 10:19:02.000000000","message":"I would mention that this test modification uncovers a bug in the custom resource handling and therefore the test contains assertions for the wrong behavior.","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"11d80550b014faa774694cccde537449057b95ba","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-09-08 14:21:22 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend ServerMovingTests with custom resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related-Bug: #1713739"},{"line_number":10,"context_line":"Change-Id: Iade57aa2d4e563670bc8c54e4c10c776d090a7da"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7f287b81_4ddb40ec","line":8,"updated":"2017-11-08 11:02:58.000000000","message":"I think it is worth to mention that you uncovered some failures and therefore the test contains asserts for the wrong behaviors.","commit_id":"2cfa3759283f9dd9195df99ff606e2a384c7651d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8c39b2eb4368e3d21512394f2de842b5aca12eb2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-09-08 14:21:22 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend ServerMovingTests with custom resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related-Bug: #1713739"},{"line_number":10,"context_line":"Change-Id: Iade57aa2d4e563670bc8c54e4c10c776d090a7da"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1f485f77_513231f3","line":8,"in_reply_to":"7f287b81_4ddb40ec","updated":"2017-11-13 12:19:04.000000000","message":"Done","commit_id":"2cfa3759283f9dd9195df99ff606e2a384c7651d"}],"nova/tests/fixtures.py":[{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"0409af35d2faac41db037885e38fe5e64c870e2c","unresolved":false,"context_lines":[{"line_number":1485,"context_line":"    def put_resource_provider_aggregates(self, rp_id, aggregate_uuid):"},{"line_number":1486,"context_line":"        self.put(\u0027/resource_providers/%s/aggregates\u0027 % rp_id, [aggregate_uuid])"},{"line_number":1487,"context_line":""},{"line_number":1488,"context_line":"    def put_resource_provider_traits(self, rp_id):"},{"line_number":1489,"context_line":"        generation \u003d self.get_traits_generation(rp_id)"},{"line_number":1490,"context_line":"        self.put("},{"line_number":1491,"context_line":"            \u0027/resource_providers/%s/traits\u0027 % rp_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f4e5783_dc611fab","line":1488,"range":{"start_line":1488,"start_character":8,"end_line":1488,"end_character":36},"updated":"2017-10-16 16:19:42.000000000","message":"Actually, what this method does is that it gives the MISC_SHARES_VIA_AGGREGATE trait to a resource provider. \n(See: https://github.com/openstack/os-traits/blob/master/os_traits/misc/__init__.py)\n\nI think the name of the method could be more precise.\n\nOne more question: the PUT request below nulls out every other traits of the resource provider and only sets the MISC_SHARES trait if I\u0027m not mistaken, am I? (Right now we don\u0027t use other traits and this is enough for our tests, of course)","commit_id":"e0754052f0f071a318bcc60c2c63ca4fecd9232e"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"227835c80766a262450224128f6be6b0469a8c44","unresolved":false,"context_lines":[{"line_number":1926,"context_line":"        self.compute2_magic_provider_id \u003d uuids.compute2_magic_provider_id"},{"line_number":1927,"context_line":"        self._create_resource_provider("},{"line_number":1928,"context_line":"            \u0027compute2_magic_provider\u0027,"},{"line_number":1929,"context_line":"            self.compute2_magic_provider_id)"},{"line_number":1930,"context_line":""},{"line_number":1931,"context_line":"        # Report available resources for magic provider:"},{"line_number":1932,"context_line":"        inventory \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_5204694a","line":1929,"updated":"2017-08-24 14:33:57.000000000","message":"Here you are creating a resource provider and below you add inventory to it. The only inventory you are adding, though, is for the custom resource class. The created resource doesn\u0027t have any VCPU, DISK_GB, or RAM_MB.\n\nSo when you request GET /placement/allocation_candidates?resources\u003dCUSTOM_MAGIC%3A256%2CDISK_GB%3A1%2CMEMORY_MB%3A512%2CVCPU%3A1\n\nthere is no single resource provider which has all of those resources.\n\nInstead of creating a resource provider like this, what you want to do is compute node as done in the super class and then extend its inventory to add the custom resource class. There are two ways to do that, one is to get the existing inventories, add to them and put them back. The other is to update a single class of inventory as described at: https://developer.openstack.org/api-ref/placement/#update-resource-provider-inventory\n\nKeep in mind, however, that the compute node may call get_inventory and reset the inventory, so you\u0027ll  need to watch for that.","commit_id":"2a8b066251fdd733b32a22518852d8a6f6a35338"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2099,"context_line":"                \u0027name\u0027: name,"},{"line_number":2100,"context_line":"                \u0027uuid\u0027: id,"},{"line_number":2101,"context_line":"            },"},{"line_number":2102,"context_line":"            **self.version_header)"},{"line_number":2103,"context_line":""},{"line_number":2104,"context_line":"    def _report_available_resources_for_class(self,"},{"line_number":2105,"context_line":"                                              rp_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_2262040b","line":2102,"range":{"start_line":2102,"start_character":13,"end_line":2102,"end_character":33},"updated":"2017-08-31 10:19:02.000000000","message":"I think we can make the placement api client to take a single version parameter in __init__ and we can even default that to latest. This way you can remove the explicit header passing below","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2099,"context_line":"                \u0027name\u0027: name,"},{"line_number":2100,"context_line":"                \u0027uuid\u0027: id,"},{"line_number":2101,"context_line":"            },"},{"line_number":2102,"context_line":"            **self.version_header)"},{"line_number":2103,"context_line":""},{"line_number":2104,"context_line":"    def _report_available_resources_for_class(self,"},{"line_number":2105,"context_line":"                                              rp_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_50524969","line":2102,"range":{"start_line":2102,"start_character":13,"end_line":2102,"end_character":33},"in_reply_to":"7f287b81_2262040b","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2109,"context_line":"        self.placement_api.post("},{"line_number":2110,"context_line":"            \u0027/resource_providers/%s/inventories\u0027 % rp_id,"},{"line_number":2111,"context_line":"            inventory,"},{"line_number":2112,"context_line":"            **self.version_header"},{"line_number":2113,"context_line":"        )"},{"line_number":2114,"context_line":""},{"line_number":2115,"context_line":"    def _connect_provider_to_aggregate(self, rp_id, aggregate_uuid):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_025dc845","line":2112,"range":{"start_line":2112,"start_character":12,"end_line":2112,"end_character":33},"updated":"2017-08-31 10:19:02.000000000","message":"ditto","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2109,"context_line":"        self.placement_api.post("},{"line_number":2110,"context_line":"            \u0027/resource_providers/%s/inventories\u0027 % rp_id,"},{"line_number":2111,"context_line":"            inventory,"},{"line_number":2112,"context_line":"            **self.version_header"},{"line_number":2113,"context_line":"        )"},{"line_number":2114,"context_line":""},{"line_number":2115,"context_line":"    def _connect_provider_to_aggregate(self, rp_id, aggregate_uuid):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_304fbdbe","line":2112,"range":{"start_line":2112,"start_character":12,"end_line":2112,"end_character":33},"in_reply_to":"7f287b81_025dc845","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2115,"context_line":"    def _connect_provider_to_aggregate(self, rp_id, aggregate_uuid):"},{"line_number":2116,"context_line":"        self.placement_api.put(\u0027/resource_providers/%s/aggregates\u0027 % rp_id,"},{"line_number":2117,"context_line":"                               [aggregate_uuid],"},{"line_number":2118,"context_line":"                               **self.version_header)"},{"line_number":2119,"context_line":""},{"line_number":2120,"context_line":"    def _get_traits_generation(self, rp_id):"},{"line_number":2121,"context_line":"        return self.placement_api.get("}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_e2575c25","line":2118,"range":{"start_line":2118,"start_character":31,"end_line":2118,"end_character":52},"updated":"2017-08-31 10:19:02.000000000","message":"ditto","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2115,"context_line":"    def _connect_provider_to_aggregate(self, rp_id, aggregate_uuid):"},{"line_number":2116,"context_line":"        self.placement_api.put(\u0027/resource_providers/%s/aggregates\u0027 % rp_id,"},{"line_number":2117,"context_line":"                               [aggregate_uuid],"},{"line_number":2118,"context_line":"                               **self.version_header)"},{"line_number":2119,"context_line":""},{"line_number":2120,"context_line":"    def _get_traits_generation(self, rp_id):"},{"line_number":2121,"context_line":"        return self.placement_api.get("}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_d0cbd91b","line":2118,"range":{"start_line":2118,"start_character":31,"end_line":2118,"end_character":52},"in_reply_to":"7f287b81_e2575c25","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2120,"context_line":"    def _get_traits_generation(self, rp_id):"},{"line_number":2121,"context_line":"        return self.placement_api.get("},{"line_number":2122,"context_line":"            \u0027/resource_providers/%s/traits\u0027 % rp_id,"},{"line_number":2123,"context_line":"            **self.version_header).body[\u0027resource_provider_generation\u0027]"},{"line_number":2124,"context_line":""},{"line_number":2125,"context_line":"    def _add_misc_shares_trait_to_provider(self, rp_id):"},{"line_number":2126,"context_line":"        generation \u003d self._get_traits_generation(rp_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_82365802","line":2123,"range":{"start_line":2123,"start_character":12,"end_line":2123,"end_character":33},"updated":"2017-08-31 10:19:02.000000000","message":"ditto","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2120,"context_line":"    def _get_traits_generation(self, rp_id):"},{"line_number":2121,"context_line":"        return self.placement_api.get("},{"line_number":2122,"context_line":"            \u0027/resource_providers/%s/traits\u0027 % rp_id,"},{"line_number":2123,"context_line":"            **self.version_header).body[\u0027resource_provider_generation\u0027]"},{"line_number":2124,"context_line":""},{"line_number":2125,"context_line":"    def _add_misc_shares_trait_to_provider(self, rp_id):"},{"line_number":2126,"context_line":"        generation \u003d self._get_traits_generation(rp_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_b0d04dcb","line":2123,"range":{"start_line":2123,"start_character":12,"end_line":2123,"end_character":33},"in_reply_to":"7f287b81_82365802","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2130,"context_line":"                \u0027traits\u0027: [\u0027MISC_SHARES_VIA_AGGREGATE\u0027],"},{"line_number":2131,"context_line":"                \u0027resource_provider_generation\u0027: generation,"},{"line_number":2132,"context_line":"            },"},{"line_number":2133,"context_line":"            **self.version_header"},{"line_number":2134,"context_line":"        )"},{"line_number":2135,"context_line":""},{"line_number":2136,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_62392cf0","line":2133,"range":{"start_line":2133,"start_character":12,"end_line":2133,"end_character":33},"updated":"2017-08-31 10:19:02.000000000","message":"ditto","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2130,"context_line":"                \u0027traits\u0027: [\u0027MISC_SHARES_VIA_AGGREGATE\u0027],"},{"line_number":2131,"context_line":"                \u0027resource_provider_generation\u0027: generation,"},{"line_number":2132,"context_line":"            },"},{"line_number":2133,"context_line":"            **self.version_header"},{"line_number":2134,"context_line":"        )"},{"line_number":2135,"context_line":""},{"line_number":2136,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_50d7e9c0","line":2133,"range":{"start_line":2133,"start_character":12,"end_line":2133,"end_character":33},"in_reply_to":"7f287b81_62392cf0","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2136,"context_line":"    def setUp(self):"},{"line_number":2137,"context_line":"        super(ServerMovingTestsWithCustomResources, self).setUp()"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"        self.version_header \u003d {"},{"line_number":2140,"context_line":"            \u0027version\u0027: \u0027latest\u0027,"},{"line_number":2141,"context_line":"        }"},{"line_number":2142,"context_line":"        self.custom_magic_name \u003d \u0027CUSTOM_MAGIC\u0027"},{"line_number":2143,"context_line":"        # Create a resource class: CUSTOM_MAGIC"},{"line_number":2144,"context_line":"        self.placement_api.put("}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_a21cb477","line":2141,"range":{"start_line":2139,"start_character":8,"end_line":2141,"end_character":9},"updated":"2017-08-31 10:19:02.000000000","message":"This can be made as default behavior of the placement client","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2136,"context_line":"    def setUp(self):"},{"line_number":2137,"context_line":"        super(ServerMovingTestsWithCustomResources, self).setUp()"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"        self.version_header \u003d {"},{"line_number":2140,"context_line":"            \u0027version\u0027: \u0027latest\u0027,"},{"line_number":2141,"context_line":"        }"},{"line_number":2142,"context_line":"        self.custom_magic_name \u003d \u0027CUSTOM_MAGIC\u0027"},{"line_number":2143,"context_line":"        # Create a resource class: CUSTOM_MAGIC"},{"line_number":2144,"context_line":"        self.placement_api.put("}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_30e45dac","line":2141,"range":{"start_line":2139,"start_character":8,"end_line":2141,"end_character":9},"in_reply_to":"7f287b81_a21cb477","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"f20cc7853ce8dca2d533333a1eaf59fe9a847f83","unresolved":false,"context_lines":[{"line_number":2139,"context_line":"        self.version_header \u003d {"},{"line_number":2140,"context_line":"            \u0027version\u0027: \u0027latest\u0027,"},{"line_number":2141,"context_line":"        }"},{"line_number":2142,"context_line":"        self.custom_magic_name \u003d \u0027CUSTOM_MAGIC\u0027"},{"line_number":2143,"context_line":"        # Create a resource class: CUSTOM_MAGIC"},{"line_number":2144,"context_line":"        self.placement_api.put("},{"line_number":2145,"context_line":"            \u0027/resource_classes/%s\u0027 % self.custom_magic_name, {},"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_443b55c7","line":2142,"range":{"start_line":2142,"start_character":13,"end_line":2142,"end_character":30},"updated":"2017-09-06 16:30:07.000000000","message":"maybe the variable name could be more general, like \u0027custom_resource\u0027 or \u0027custom_resource_class\u0027","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2139,"context_line":"        self.version_header \u003d {"},{"line_number":2140,"context_line":"            \u0027version\u0027: \u0027latest\u0027,"},{"line_number":2141,"context_line":"        }"},{"line_number":2142,"context_line":"        self.custom_magic_name \u003d \u0027CUSTOM_MAGIC\u0027"},{"line_number":2143,"context_line":"        # Create a resource class: CUSTOM_MAGIC"},{"line_number":2144,"context_line":"        self.placement_api.put("},{"line_number":2145,"context_line":"            \u0027/resource_classes/%s\u0027 % self.custom_magic_name, {},"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_d0f4f95d","line":2142,"range":{"start_line":2142,"start_character":13,"end_line":2142,"end_character":30},"in_reply_to":"7f287b81_443b55c7","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"f20cc7853ce8dca2d533333a1eaf59fe9a847f83","unresolved":false,"context_lines":[{"line_number":2146,"context_line":"            **self.version_header)"},{"line_number":2147,"context_line":""},{"line_number":2148,"context_line":"        # Create a resource provider: magic_provider"},{"line_number":2149,"context_line":"        self.compute1_magic_provider_id \u003d uuids.compute1_magic_provider_id"},{"line_number":2150,"context_line":"        self._create_resource_provider("},{"line_number":2151,"context_line":"            \u0027compute1_magic_provider\u0027,"},{"line_number":2152,"context_line":"            self.compute1_magic_provider_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_c43985a3","line":2149,"range":{"start_line":2149,"start_character":13,"end_line":2149,"end_character":39},"updated":"2017-09-06 16:30:07.000000000","message":"maybe this variable name could also be more general, like \u0027compute1_custom_resource_provider_id\u0027, or \u0027compute1_custom_rp_id\u0027 (even shorter, since there is the comment above, which makes it clear)\n\nand the same for compute2_...","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2146,"context_line":"            **self.version_header)"},{"line_number":2147,"context_line":""},{"line_number":2148,"context_line":"        # Create a resource provider: magic_provider"},{"line_number":2149,"context_line":"        self.compute1_magic_provider_id \u003d uuids.compute1_magic_provider_id"},{"line_number":2150,"context_line":"        self._create_resource_provider("},{"line_number":2151,"context_line":"            \u0027compute1_magic_provider\u0027,"},{"line_number":2152,"context_line":"            self.compute1_magic_provider_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_b0e96d81","line":2149,"range":{"start_line":2149,"start_character":13,"end_line":2149,"end_character":39},"in_reply_to":"7f287b81_c43985a3","updated":"2017-09-11 19:45:09.000000000","message":"Done","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2206,"context_line":"        self.api.post_extra_spec(self.flavor1[\u0027id\u0027], extra_specs)"},{"line_number":2207,"context_line":"        self.api.post_extra_spec(self.flavor2[\u0027id\u0027], extra_specs)"},{"line_number":2208,"context_line":""},{"line_number":2209,"context_line":"        flavors \u003d self.api.get_flavors()"},{"line_number":2210,"context_line":"        self.flavor1 \u003d flavors[0]"},{"line_number":2211,"context_line":"        self.flavor2 \u003d flavors[1]"},{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"    def assertFlavorExtraSpecMatchesAllocation(self, flavor, allocation):"},{"line_number":2214,"context_line":"        # Get extraspec for the flavor:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_fd66e1ec","line":2211,"range":{"start_line":2209,"start_character":0,"end_line":2211,"end_character":33},"updated":"2017-08-31 10:19:02.000000000","message":"Is it needed to refresh the already fetched self.flavor1 and self.flavor2 to contain the extra_spec you added above?","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2206,"context_line":"        self.api.post_extra_spec(self.flavor1[\u0027id\u0027], extra_specs)"},{"line_number":2207,"context_line":"        self.api.post_extra_spec(self.flavor2[\u0027id\u0027], extra_specs)"},{"line_number":2208,"context_line":""},{"line_number":2209,"context_line":"        flavors \u003d self.api.get_flavors()"},{"line_number":2210,"context_line":"        self.flavor1 \u003d flavors[0]"},{"line_number":2211,"context_line":"        self.flavor2 \u003d flavors[1]"},{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"    def assertFlavorExtraSpecMatchesAllocation(self, flavor, allocation):"},{"line_number":2214,"context_line":"        # Get extraspec for the flavor:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_90a31150","line":2211,"range":{"start_line":2209,"start_character":0,"end_line":2211,"end_character":33},"in_reply_to":"7f287b81_fd66e1ec","updated":"2017-09-11 19:45:09.000000000","message":"True, I removed it, as I just add extra_spec.","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2210,"context_line":"        self.flavor1 \u003d flavors[0]"},{"line_number":2211,"context_line":"        self.flavor2 \u003d flavors[1]"},{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"    def assertFlavorExtraSpecMatchesAllocation(self, flavor, allocation):"},{"line_number":2214,"context_line":"        # Get extraspec for the flavor:"},{"line_number":2215,"context_line":"        extra_specs \u003d self.api.get_extra_specs(flavor[\u0027id\u0027])[\u0027extra_specs\u0027]"},{"line_number":2216,"context_line":"        # Compare the extra_spec resource values from the flavor with the"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_ddb6853e","line":2213,"range":{"start_line":2213,"start_character":8,"end_line":2213,"end_character":46},"updated":"2017-08-31 10:19:02.000000000","message":"Can we made the existing assertFlavorMatchesAllocation generic? I mean you can try to extend the existing assertFlavorMatchesAllocation to try to match custom resources if the passed in flavor has custom resource in the extra_spec.\n\nSo the caller would pass in the flavor and all the allocations. Then if the flavor has no extra spec then all the allocations needs to match the falvor\u0027s direct resources. If the flavor has extra spec with some resources then those should also match somewhere with the allocation somehow. For that you have know which rp_id the custom resource is provided (or which is the compute rp_id) so that has to be passed in to this function as well.","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2210,"context_line":"        self.flavor1 \u003d flavors[0]"},{"line_number":2211,"context_line":"        self.flavor2 \u003d flavors[1]"},{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"    def assertFlavorExtraSpecMatchesAllocation(self, flavor, allocation):"},{"line_number":2214,"context_line":"        # Get extraspec for the flavor:"},{"line_number":2215,"context_line":"        extra_specs \u003d self.api.get_extra_specs(flavor[\u0027id\u0027])[\u0027extra_specs\u0027]"},{"line_number":2216,"context_line":"        # Compare the extra_spec resource values from the flavor with the"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_505c894a","line":2213,"range":{"start_line":2213,"start_character":8,"end_line":2213,"end_character":46},"in_reply_to":"7f287b81_ddb6853e","updated":"2017-09-11 19:45:09.000000000","message":"I make this called from assertFlavorMatchesAllocation, so this assertion is unified between the ServerMovingTestsWithCustomResources and ServerMovingTests.","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"    def assertFlavorExtraSpecMatchesAllocation(self, flavor, allocation):"},{"line_number":2214,"context_line":"        # Get extraspec for the flavor:"},{"line_number":2215,"context_line":"        extra_specs \u003d self.api.get_extra_specs(flavor[\u0027id\u0027])[\u0027extra_specs\u0027]"},{"line_number":2216,"context_line":"        # Compare the extra_spec resource values from the flavor with the"},{"line_number":2217,"context_line":"        # same resource allocation"},{"line_number":2218,"context_line":"        for spec_resource, spec_value in extra_specs.items():"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_3d7fc966","line":2215,"updated":"2017-08-31 10:19:02.000000000","message":"Now I got confused why the flavor was refetched at line 2209-2211 if we have to fetch the extra_spec here anyhow","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"    def assertFlavorExtraSpecMatchesAllocation(self, flavor, allocation):"},{"line_number":2214,"context_line":"        # Get extraspec for the flavor:"},{"line_number":2215,"context_line":"        extra_specs \u003d self.api.get_extra_specs(flavor[\u0027id\u0027])[\u0027extra_specs\u0027]"},{"line_number":2216,"context_line":"        # Compare the extra_spec resource values from the flavor with the"},{"line_number":2217,"context_line":"        # same resource allocation"},{"line_number":2218,"context_line":"        for spec_resource, spec_value in extra_specs.items():"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_d03519f9","line":2215,"in_reply_to":"7f287b81_3d7fc966","updated":"2017-09-11 19:45:09.000000000","message":"I removed the flavor refresh lines as useless.","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2372,"context_line":"        allocation \u003d allocations[rp_id][\u0027resources\u0027]"},{"line_number":2373,"context_line":"        self.assertFlavorsMatchAllocation(old_flavor, new_flavor, allocation)"},{"line_number":2374,"context_line":"        self.assertFlavorExtraSpecMatchesAllocation(new_flavor, allocation)"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"    # Note(lajos katona): test duplication can be removed after solving"},{"line_number":2377,"context_line":"    # bug #1713739"},{"line_number":2378,"context_line":"    def test_resize_confirm_same_host(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_bde979e3","line":2375,"updated":"2017-08-31 10:19:02.000000000","message":"I\u0027m wondering if we can avoid this many different but similar util functions if we somehow make the assertFlavorMatchesAllocation smart enough to match custom resources if they are present in the flavor extra_spec. See my comment in L2213","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0532a0166a153a301b01a0d2d537e27df0895ba5","unresolved":false,"context_lines":[{"line_number":2372,"context_line":"        allocation \u003d allocations[rp_id][\u0027resources\u0027]"},{"line_number":2373,"context_line":"        self.assertFlavorsMatchAllocation(old_flavor, new_flavor, allocation)"},{"line_number":2374,"context_line":"        self.assertFlavorExtraSpecMatchesAllocation(new_flavor, allocation)"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"    # Note(lajos katona): test duplication can be removed after solving"},{"line_number":2377,"context_line":"    # bug #1713739"},{"line_number":2378,"context_line":"    def test_resize_confirm_same_host(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_500a4926","line":2375,"in_reply_to":"7f287b81_bde979e3","updated":"2017-09-11 19:45:09.000000000","message":"For that I need some extra check, and perhaps refactoring these methods to have the numbers of allocations for example defined at class level variables.","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c9efc434448ada09ee114c2d5801f04a92179119","unresolved":false,"context_lines":[{"line_number":2373,"context_line":"        self.assertFlavorsMatchAllocation(old_flavor, new_flavor, allocation)"},{"line_number":2374,"context_line":"        self.assertFlavorExtraSpecMatchesAllocation(new_flavor, allocation)"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"    # Note(lajos katona): test duplication can be removed after solving"},{"line_number":2377,"context_line":"    # bug #1713739"},{"line_number":2378,"context_line":"    def test_resize_confirm_same_host(self):"},{"line_number":2379,"context_line":"        # make sure that the test only uses a single host"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_dd6b2582","line":2376,"updated":"2017-08-31 10:19:02.000000000","message":"I would note here that we need to duplicate the test only to be able to assert the wrong behavior and after the behavior is fixed this test will look like as the one in the base class.","commit_id":"b1a4cd8c2ef07d27e796744399169d583f8b774d"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"57fc10988b91ada2027c73b96bd20dd2203bd144","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"        # new_extra_specs \u003d self.api.get_extra_specs("},{"line_number":1139,"context_line":"        #     new_flavor[\u0027id\u0027])[\u0027extra_specs\u0027]"},{"line_number":1140,"context_line":""},{"line_number":1141,"context_line":"        # Note(lajos katona): Here I assume that the we have the same resources"},{"line_number":1142,"context_line":"        # in the extra_specs, in this case resource:CUSTOM_MAGIC"},{"line_number":1143,"context_line":"        for resource in old_extra_specs.keys():"},{"line_number":1144,"context_line":"            resource_name \u003d resource.split(\u0027:\u0027)[1]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_b97ec416","line":1141,"range":{"start_line":1141,"start_character":49,"end_line":1141,"end_character":52},"updated":"2017-09-26 14:33:27.000000000","message":"nit: \u0027the\u0027 is not needed","commit_id":"d230eac958297fbb5554568f0d2c21e9bc47aa31"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8256d016170880e2ec04290090ff40e841a6e8ea","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"        # new_extra_specs \u003d self.api.get_extra_specs("},{"line_number":1139,"context_line":"        #     new_flavor[\u0027id\u0027])[\u0027extra_specs\u0027]"},{"line_number":1140,"context_line":""},{"line_number":1141,"context_line":"        # Note(lajos katona): Here I assume that the we have the same resources"},{"line_number":1142,"context_line":"        # in the extra_specs, in this case resource:CUSTOM_MAGIC"},{"line_number":1143,"context_line":"        for resource in old_extra_specs.keys():"},{"line_number":1144,"context_line":"            resource_name \u003d resource.split(\u0027:\u0027)[1]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_6c292835","line":1141,"range":{"start_line":1141,"start_character":49,"end_line":1141,"end_character":52},"in_reply_to":"7f515b1d_b97ec416","updated":"2017-10-02 11:30:38.000000000","message":"Done","commit_id":"d230eac958297fbb5554568f0d2c21e9bc47aa31"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"57fc10988b91ada2027c73b96bd20dd2203bd144","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"                         \u0027The source host still has usages after the \u0027"},{"line_number":1242,"context_line":"                         \u0027resize has been confirmed\u0027)"},{"line_number":1243,"context_line":""},{"line_number":1244,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1245,"context_line":"        self.assertFlavorMatchesAllocation(new_flavor, dest_usages,"},{"line_number":1246,"context_line":"                                           source_rp_id)"},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        self.assertFlavorMatchesAllocation(new_flavor, allocations, dest_rp_id)"},{"line_number":1249,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_8d785e2a","line":1246,"range":{"start_line":1244,"start_character":8,"end_line":1246,"end_character":56},"updated":"2017-09-26 14:33:27.000000000","message":"The comment is the same as above, is that intentional?\nIs the check here correct? dest_usages against source_rp_id?","commit_id":"d230eac958297fbb5554568f0d2c21e9bc47aa31"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8256d016170880e2ec04290090ff40e841a6e8ea","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"                         \u0027The source host still has usages after the \u0027"},{"line_number":1242,"context_line":"                         \u0027resize has been confirmed\u0027)"},{"line_number":1243,"context_line":""},{"line_number":1244,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1245,"context_line":"        self.assertFlavorMatchesAllocation(new_flavor, dest_usages,"},{"line_number":1246,"context_line":"                                           source_rp_id)"},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        self.assertFlavorMatchesAllocation(new_flavor, allocations, dest_rp_id)"},{"line_number":1249,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_aca600c0","line":1246,"range":{"start_line":1244,"start_character":8,"end_line":1246,"end_character":56},"in_reply_to":"7f515b1d_8d785e2a","updated":"2017-10-02 11:30:38.000000000","message":"Good catch.\nIt seems that the same repetition is on the master, so I just copied it:\nhttps://github.com/openstack/nova/blob/master/nova/tests/functional/test_servers.py#L1417","commit_id":"d230eac958297fbb5554568f0d2c21e9bc47aa31"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"57fc10988b91ada2027c73b96bd20dd2203bd144","unresolved":false,"context_lines":[{"line_number":1532,"context_line":"        allocations \u003d self.placement_api.get_allocations_by_server("},{"line_number":1533,"context_line":"            server[\u0027id\u0027])"},{"line_number":1534,"context_line":""},{"line_number":1535,"context_line":"        # and the server allocates only from the target host"},{"line_number":1536,"context_line":"        # self.assertEqual(1, len(allocations))"},{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"        # source_usages \u003d self.placement_api.get_resource_providers_usages("},{"line_number":1539,"context_line":"        #     source_rp_uuid)"},{"line_number":1540,"context_line":"        # dest_usages \u003d self.placement_api.get_resource_providers_usages("},{"line_number":1541,"context_line":"        #     dest_rp_uuid)"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1544,"context_line":"        # self.assertFlavorMatchesAllocation(self.flavor2, dest_usages)"},{"line_number":1545,"context_line":"        # self.assertEqual({\u0027VCPU\u0027: 0,"},{"line_number":1546,"context_line":"        #                   \u0027MEMORY_MB\u0027: 0,"},{"line_number":1547,"context_line":"        #                   \u0027DISK_GB\u0027: 0}, source_usages,"},{"line_number":1548,"context_line":"        #                  \u0027The source host %s still has usages after the \u0027"},{"line_number":1549,"context_line":"        #                  \u0027resize has been confirmed\u0027 % source_hostname)"},{"line_number":1550,"context_line":""},{"line_number":1551,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1552,"context_line":"        # self.assertFlavorMatchesAllocation(self.flavor2, dest_usages)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"        # dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1555,"context_line":"        # self.assertFlavorMatchesAllocation(self.flavor2, dest_allocation)"},{"line_number":1556,"context_line":"        self._check_allocations_resize_confirm("},{"line_number":1557,"context_line":"            self.flavor1, self.flavor2, allocations, source_rp_uuid,"},{"line_number":1558,"context_line":"            dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_add67ac2","line":1555,"range":{"start_line":1535,"start_character":8,"end_line":1555,"end_character":75},"updated":"2017-09-26 14:33:27.000000000","message":"This needs to be deleted, because it is moved to the _check_allocations_resize_confirm if I\u0027m not mistaken.","commit_id":"d230eac958297fbb5554568f0d2c21e9bc47aa31"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8256d016170880e2ec04290090ff40e841a6e8ea","unresolved":false,"context_lines":[{"line_number":1532,"context_line":"        allocations \u003d self.placement_api.get_allocations_by_server("},{"line_number":1533,"context_line":"            server[\u0027id\u0027])"},{"line_number":1534,"context_line":""},{"line_number":1535,"context_line":"        # and the server allocates only from the target host"},{"line_number":1536,"context_line":"        # self.assertEqual(1, len(allocations))"},{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"        # source_usages \u003d self.placement_api.get_resource_providers_usages("},{"line_number":1539,"context_line":"        #     source_rp_uuid)"},{"line_number":1540,"context_line":"        # dest_usages \u003d self.placement_api.get_resource_providers_usages("},{"line_number":1541,"context_line":"        #     dest_rp_uuid)"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1544,"context_line":"        # self.assertFlavorMatchesAllocation(self.flavor2, dest_usages)"},{"line_number":1545,"context_line":"        # self.assertEqual({\u0027VCPU\u0027: 0,"},{"line_number":1546,"context_line":"        #                   \u0027MEMORY_MB\u0027: 0,"},{"line_number":1547,"context_line":"        #                   \u0027DISK_GB\u0027: 0}, source_usages,"},{"line_number":1548,"context_line":"        #                  \u0027The source host %s still has usages after the \u0027"},{"line_number":1549,"context_line":"        #                  \u0027resize has been confirmed\u0027 % source_hostname)"},{"line_number":1550,"context_line":""},{"line_number":1551,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1552,"context_line":"        # self.assertFlavorMatchesAllocation(self.flavor2, dest_usages)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"        # dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1555,"context_line":"        # self.assertFlavorMatchesAllocation(self.flavor2, dest_allocation)"},{"line_number":1556,"context_line":"        self._check_allocations_resize_confirm("},{"line_number":1557,"context_line":"            self.flavor1, self.flavor2, allocations, source_rp_uuid,"},{"line_number":1558,"context_line":"            dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_6cac889e","line":1555,"range":{"start_line":1535,"start_character":8,"end_line":1555,"end_character":75},"in_reply_to":"7f515b1d_add67ac2","updated":"2017-10-02 11:30:38.000000000","message":"Done","commit_id":"d230eac958297fbb5554568f0d2c21e9bc47aa31"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"11d80550b014faa774694cccde537449057b95ba","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"            self.assertEqual(match_count, 2, \u0027No allocations in flavor extra\u0027"},{"line_number":1141,"context_line":"                             \u0027specs!\u0027)"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"    def assertFlavorMatchesAllocation(self, flavor, allocation,"},{"line_number":1144,"context_line":"                                      expected_match\u003d1):"},{"line_number":1145,"context_line":"        is_usage \u003d True"},{"line_number":1146,"context_line":"        match_count \u003d 0"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_c777c03b","line":1143,"range":{"start_line":1143,"start_character":8,"end_line":1143,"end_character":37},"updated":"2017-11-08 11:02:58.000000000","message":"Let\u0027s rename this to assertFlavorMatchesAllocations and the allocation param also to allocations as it handle a list of allocations","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8c39b2eb4368e3d21512394f2de842b5aca12eb2","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"            self.assertEqual(match_count, 2, \u0027No allocations in flavor extra\u0027"},{"line_number":1141,"context_line":"                             \u0027specs!\u0027)"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"    def assertFlavorMatchesAllocation(self, flavor, allocation,"},{"line_number":1144,"context_line":"                                      expected_match\u003d1):"},{"line_number":1145,"context_line":"        is_usage \u003d True"},{"line_number":1146,"context_line":"        match_count \u003d 0"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_314d7572","line":1143,"range":{"start_line":1143,"start_character":8,"end_line":1143,"end_character":37},"in_reply_to":"3f4b6375_c777c03b","updated":"2017-11-13 12:19:04.000000000","message":"Done","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"11d80550b014faa774694cccde537449057b95ba","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"                                      expected_match\u003d1):"},{"line_number":1145,"context_line":"        is_usage \u003d True"},{"line_number":1146,"context_line":"        match_count \u003d 0"},{"line_number":1147,"context_line":"        # Find out if the passed in allocation is really an allocation, or"},{"line_number":1148,"context_line":"        # allocations, or usage for a resource_provider:"},{"line_number":1149,"context_line":"        for alloc in six.itervalues(allocation):"},{"line_number":1150,"context_line":"            if isinstance(alloc, dict):"},{"line_number":1151,"context_line":"                # the passed in allocation is really an allocation dict"},{"line_number":1152,"context_line":"                is_usage \u003d False"},{"line_number":1153,"context_line":"                break"},{"line_number":1154,"context_line":"        if is_usage:"},{"line_number":1155,"context_line":"            self.assertEqual(flavor[\u0027vcpus\u0027], allocation[\u0027VCPU\u0027])"},{"line_number":1156,"context_line":"            self.assertEqual(flavor[\u0027ram\u0027], allocation[\u0027MEMORY_MB\u0027])"},{"line_number":1157,"context_line":"            self.assertEqual(flavor[\u0027disk\u0027], allocation[\u0027DISK_GB\u0027])"},{"line_number":1158,"context_line":"        else:"},{"line_number":1159,"context_line":"            for rp_id, alloc in allocation.items():"},{"line_number":1160,"context_line":"                resources \u003d alloc[\u0027resources\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_6787ec14","line":1157,"range":{"start_line":1147,"start_character":1,"end_line":1157,"end_character":67},"updated":"2017-11-08 11:02:58.000000000","message":"I suggest to keep the original assertFlavorMatchesAllocation() implementation for asserting the usages values. Simply rename the original to assertFlavorMatchesUsages() and keep the implementation. This way the new assertFlavorMatchesAllocation could be a lot simpler","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"                                      expected_match\u003d1):"},{"line_number":1145,"context_line":"        is_usage \u003d True"},{"line_number":1146,"context_line":"        match_count \u003d 0"},{"line_number":1147,"context_line":"        # Find out if the passed in allocation is really an allocation, or"},{"line_number":1148,"context_line":"        # allocations, or usage for a resource_provider:"},{"line_number":1149,"context_line":"        for alloc in six.itervalues(allocation):"},{"line_number":1150,"context_line":"            if isinstance(alloc, dict):"},{"line_number":1151,"context_line":"                # the passed in allocation is really an allocation dict"},{"line_number":1152,"context_line":"                is_usage \u003d False"},{"line_number":1153,"context_line":"                break"},{"line_number":1154,"context_line":"        if is_usage:"},{"line_number":1155,"context_line":"            self.assertEqual(flavor[\u0027vcpus\u0027], allocation[\u0027VCPU\u0027])"},{"line_number":1156,"context_line":"            self.assertEqual(flavor[\u0027ram\u0027], allocation[\u0027MEMORY_MB\u0027])"},{"line_number":1157,"context_line":"            self.assertEqual(flavor[\u0027disk\u0027], allocation[\u0027DISK_GB\u0027])"},{"line_number":1158,"context_line":"        else:"},{"line_number":1159,"context_line":"            for rp_id, alloc in allocation.items():"},{"line_number":1160,"context_line":"                resources \u003d alloc[\u0027resources\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff82abbf_d482d54f","line":1157,"range":{"start_line":1147,"start_character":1,"end_line":1157,"end_character":67},"in_reply_to":"1f485f77_b1404537","updated":"2017-11-21 14:46:45.000000000","message":"It is a bit confusing to call [..]MatchesUsage, with \u0027allocation\u0027... Nevertheless, it\u0027s only a couple of places, and on those places, it is actually \u0027usage out of allocations\u0027, so there are two options:\n- either rename the \u0027source/dest_allocation\u0027 to e.g. usage_from_source_allocation (or something like that)\n- or assert with assertFlavorMatchesAllocations (we can express that we need allocation on source or dest explicitly)\n\nSee example in my other comment.","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8c39b2eb4368e3d21512394f2de842b5aca12eb2","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"                                      expected_match\u003d1):"},{"line_number":1145,"context_line":"        is_usage \u003d True"},{"line_number":1146,"context_line":"        match_count \u003d 0"},{"line_number":1147,"context_line":"        # Find out if the passed in allocation is really an allocation, or"},{"line_number":1148,"context_line":"        # allocations, or usage for a resource_provider:"},{"line_number":1149,"context_line":"        for alloc in six.itervalues(allocation):"},{"line_number":1150,"context_line":"            if isinstance(alloc, dict):"},{"line_number":1151,"context_line":"                # the passed in allocation is really an allocation dict"},{"line_number":1152,"context_line":"                is_usage \u003d False"},{"line_number":1153,"context_line":"                break"},{"line_number":1154,"context_line":"        if is_usage:"},{"line_number":1155,"context_line":"            self.assertEqual(flavor[\u0027vcpus\u0027], allocation[\u0027VCPU\u0027])"},{"line_number":1156,"context_line":"            self.assertEqual(flavor[\u0027ram\u0027], allocation[\u0027MEMORY_MB\u0027])"},{"line_number":1157,"context_line":"            self.assertEqual(flavor[\u0027disk\u0027], allocation[\u0027DISK_GB\u0027])"},{"line_number":1158,"context_line":"        else:"},{"line_number":1159,"context_line":"            for rp_id, alloc in allocation.items():"},{"line_number":1160,"context_line":"                resources \u003d alloc[\u0027resources\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_b1404537","line":1157,"range":{"start_line":1147,"start_character":1,"end_line":1157,"end_character":67},"in_reply_to":"3f4b6375_6787ec14","updated":"2017-11-13 12:19:04.000000000","message":"I renamed to asserFlavorMatchesUsage() as it receives on usage record always. What perhaps worth to think about is that no it is sometimes called with one allocation, so as previously it was called assery...blahh..allocation, and was called with usages as well, now the method is called assert..blah...usage and called sometimes with usage.\nBut I think we can leave with it, and keep us away from line long method names.","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"                                      expected_match\u003d1):"},{"line_number":1145,"context_line":"        is_usage \u003d True"},{"line_number":1146,"context_line":"        match_count \u003d 0"},{"line_number":1147,"context_line":"        # Find out if the passed in allocation is really an allocation, or"},{"line_number":1148,"context_line":"        # allocations, or usage for a resource_provider:"},{"line_number":1149,"context_line":"        for alloc in six.itervalues(allocation):"},{"line_number":1150,"context_line":"            if isinstance(alloc, dict):"},{"line_number":1151,"context_line":"                # the passed in allocation is really an allocation dict"},{"line_number":1152,"context_line":"                is_usage \u003d False"},{"line_number":1153,"context_line":"                break"},{"line_number":1154,"context_line":"        if is_usage:"},{"line_number":1155,"context_line":"            self.assertEqual(flavor[\u0027vcpus\u0027], allocation[\u0027VCPU\u0027])"},{"line_number":1156,"context_line":"            self.assertEqual(flavor[\u0027ram\u0027], allocation[\u0027MEMORY_MB\u0027])"},{"line_number":1157,"context_line":"            self.assertEqual(flavor[\u0027disk\u0027], allocation[\u0027DISK_GB\u0027])"},{"line_number":1158,"context_line":"        else:"},{"line_number":1159,"context_line":"            for rp_id, alloc in allocation.items():"},{"line_number":1160,"context_line":"                resources \u003d alloc[\u0027resources\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff82abbf_cd04f81a","line":1157,"range":{"start_line":1147,"start_character":1,"end_line":1157,"end_character":67},"in_reply_to":"ff82abbf_d482d54f","updated":"2017-11-28 08:36:49.000000000","message":"I tried to fix all the misused method, to call MatchUsage with usage, and MatchAllocations with allocations","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"11d80550b014faa774694cccde537449057b95ba","unresolved":false,"context_lines":[{"line_number":1787,"context_line":"        dest_usages \u003d self._get_provider_usages(dest_rp_uuid)"},{"line_number":1788,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, dest_usages)"},{"line_number":1789,"context_line":""},{"line_number":1790,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1791,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, allocations, 2)"},{"line_number":1792,"context_line":""},{"line_number":1793,"context_line":"        # restart the source compute"},{"line_number":1794,"context_line":"        self.restart_compute_service(self.compute1)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_0a9b9f66","line":1791,"range":{"start_line":1790,"start_character":0,"end_line":1791,"end_character":72},"updated":"2017-11-08 11:02:58.000000000","message":"I would keep the separated assertion for source and destination allocation as this is the only place we need this so the is an unnecessary complication in the assertFlavorMatchesAllocation()","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8c39b2eb4368e3d21512394f2de842b5aca12eb2","unresolved":false,"context_lines":[{"line_number":1787,"context_line":"        dest_usages \u003d self._get_provider_usages(dest_rp_uuid)"},{"line_number":1788,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, dest_usages)"},{"line_number":1789,"context_line":""},{"line_number":1790,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1791,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, allocations, 2)"},{"line_number":1792,"context_line":""},{"line_number":1793,"context_line":"        # restart the source compute"},{"line_number":1794,"context_line":"        self.restart_compute_service(self.compute1)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_b1972591","line":1791,"range":{"start_line":1790,"start_character":0,"end_line":1791,"end_character":72},"in_reply_to":"3f4b6375_0a9b9f66","updated":"2017-11-13 12:19:04.000000000","message":"Done","commit_id":"1925bae701ffc743cd191cf55ba2e7a77898aeb7"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"        # The migration should own the old_flavor allocation against the"},{"line_number":1352,"context_line":"        # source host created by conductor"},{"line_number":1353,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"},{"line_number":1354,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1355,"context_line":"        source_alloc \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1356,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, source_alloc)"},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"        self._run_periodics()"},{"line_number":1359,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_74dae9e9","line":1356,"range":{"start_line":1354,"start_character":8,"end_line":1356,"end_character":63},"updated":"2017-11-21 14:46:45.000000000","message":"So here we compare the allocations actually, not the usage (we query the allocations). So it\u0027s a bit extra effort, but maybe more readable if we use the MatchesAllocations, e.g. like this:\n\nallocations \u003d self._get_allocations_by_server_uuid(migration_uuid)\nself.assertIn(source_rp_uuid, allocations)\nsource_alloc \u003d  {source_rp_uuid: allocations[source_rp_uuid]}\nself.assertFlavorMatchesAllocations(old_flavor, source_alloc)\n\n(Also we could simply check against the allocations, it works as well, since in normal behavior we have only allocation on the source_rp_uuid with the old_flavor resource needs, however this does not show in a clear way, that it\u0027s the allocation on the source host! ...so maybe should avoid:\n\nallocations \u003d self._get_allocations_by_server_uuid(migration_uuid)\nself.assertFlavorMatchesAllocations(old_flavor, allocations)\n)","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"        # The migration should own the old_flavor allocation against the"},{"line_number":1352,"context_line":"        # source host created by conductor"},{"line_number":1353,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"},{"line_number":1354,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1355,"context_line":"        source_alloc \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1356,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, source_alloc)"},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"        self._run_periodics()"},{"line_number":1359,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_e88bea64","line":1356,"range":{"start_line":1354,"start_character":8,"end_line":1356,"end_character":63},"in_reply_to":"ff82abbf_74dae9e9","updated":"2017-11-28 08:36:49.000000000","message":"I went to the direction of checking allocations, please check.","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"        # The migration should own the old_flavor allocation against the"},{"line_number":1375,"context_line":"        # source host"},{"line_number":1376,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"},{"line_number":1377,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1378,"context_line":"        source_alloc \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1379,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, source_alloc)"},{"line_number":1380,"context_line":""},{"line_number":1381,"context_line":"    def _delete_and_check_allocations(self, server, source_rp_uuid,"},{"line_number":1382,"context_line":"                                      dest_rp_uuid):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_2fdaca16","line":1379,"range":{"start_line":1377,"start_character":8,"end_line":1379,"end_character":63},"updated":"2017-11-21 14:46:45.000000000","message":"same as above","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"        # The migration should own the old_flavor allocation against the"},{"line_number":1375,"context_line":"        # source host"},{"line_number":1376,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"},{"line_number":1377,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1378,"context_line":"        source_alloc \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1379,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, source_alloc)"},{"line_number":1380,"context_line":""},{"line_number":1381,"context_line":"    def _delete_and_check_allocations(self, server, source_rp_uuid,"},{"line_number":1382,"context_line":"                                      dest_rp_uuid):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_88ea5e0c","line":1379,"range":{"start_line":1377,"start_character":8,"end_line":1379,"end_character":63},"in_reply_to":"ff82abbf_2fdaca16","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"        # Check that the server only allocates resource from the original host"},{"line_number":1438,"context_line":"        self.assertEqual(1, len(allocations))"},{"line_number":1439,"context_line":""},{"line_number":1440,"context_line":"        source_allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1441,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, source_allocation)"},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":"        self._delete_and_check_allocations("},{"line_number":1444,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_ef2aa2e5","line":1441,"range":{"start_line":1440,"start_character":8,"end_line":1441,"end_character":70},"updated":"2017-11-21 14:46:45.000000000","message":"same as above","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"        # Check that the server only allocates resource from the original host"},{"line_number":1438,"context_line":"        self.assertEqual(1, len(allocations))"},{"line_number":1439,"context_line":""},{"line_number":1440,"context_line":"        source_allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1441,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, source_allocation)"},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":"        self._delete_and_check_allocations("},{"line_number":1444,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_a8ef221c","line":1441,"range":{"start_line":1440,"start_character":8,"end_line":1441,"end_character":70},"in_reply_to":"ff82abbf_ef2aa2e5","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"                         \u0027resize has been confirmed\u0027 % source_hostname)"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1479,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1480,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, dest_allocation)"},{"line_number":1481,"context_line":""},{"line_number":1482,"context_line":"        self._run_periodics()"},{"line_number":1483,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_8f3bd636","line":1480,"range":{"start_line":1479,"start_character":8,"end_line":1480,"end_character":68},"updated":"2017-11-21 14:46:45.000000000","message":"same as above","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"                         \u0027resize has been confirmed\u0027 % source_hostname)"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        # and the target host allocation should be according to the new flavor"},{"line_number":1479,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1480,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, dest_allocation)"},{"line_number":1481,"context_line":""},{"line_number":1482,"context_line":"        self._run_periodics()"},{"line_number":1483,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_08de4e6c","line":1480,"range":{"start_line":1479,"start_character":8,"end_line":1480,"end_character":68},"in_reply_to":"ff82abbf_8f3bd636","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1496,"context_line":""},{"line_number":1497,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1500,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, dest_allocation)"},{"line_number":1501,"context_line":""},{"line_number":1502,"context_line":"        self._delete_and_check_allocations("},{"line_number":1503,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_4f45ceb2","line":1500,"range":{"start_line":1499,"start_character":8,"end_line":1500,"end_character":68},"updated":"2017-11-21 14:46:45.000000000","message":"same as above","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1496,"context_line":""},{"line_number":1497,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1500,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, dest_allocation)"},{"line_number":1501,"context_line":""},{"line_number":1502,"context_line":"        self._delete_and_check_allocations("},{"line_number":1503,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_28db127c","line":1500,"range":{"start_line":1499,"start_character":8,"end_line":1500,"end_character":68},"in_reply_to":"ff82abbf_4f45ceb2","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1520,"context_line":""},{"line_number":1521,"context_line":"        # The instance should hold a new_flavor allocation"},{"line_number":1522,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1523,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1524,"context_line":"        self.assertFlavorMatchesUsage(new_flavor, allocation)"},{"line_number":1525,"context_line":""},{"line_number":1526,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1527,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_6f6c5236","line":1524,"range":{"start_line":1523,"start_character":8,"end_line":1524,"end_character":61},"updated":"2017-11-21 14:46:45.000000000","message":"same","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1520,"context_line":""},{"line_number":1521,"context_line":"        # The instance should hold a new_flavor allocation"},{"line_number":1522,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1523,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1524,"context_line":"        self.assertFlavorMatchesUsage(new_flavor, allocation)"},{"line_number":1525,"context_line":""},{"line_number":1526,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1527,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_c8e38633","line":1524,"range":{"start_line":1523,"start_character":8,"end_line":1524,"end_character":61},"in_reply_to":"ff82abbf_6f6c5236","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1527,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"},{"line_number":1528,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1529,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1530,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, allocation)"},{"line_number":1531,"context_line":""},{"line_number":1532,"context_line":"        # We\u0027ve resized to the same host and have doubled allocations for both"},{"line_number":1533,"context_line":"        # the old and new flavor on the same host. Run the periodic on the"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_2f764a08","line":1530,"range":{"start_line":1529,"start_character":8,"end_line":1530,"end_character":61},"updated":"2017-11-21 14:46:45.000000000","message":"same","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1527,"context_line":"        migration_uuid \u003d self.get_migration_uuid_for_instance(server[\u0027id\u0027])"},{"line_number":1528,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1529,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1530,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, allocation)"},{"line_number":1531,"context_line":""},{"line_number":1532,"context_line":"        # We\u0027ve resized to the same host and have doubled allocations for both"},{"line_number":1533,"context_line":"        # the old and new flavor on the same host. Run the periodic on the"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_e8e0ca28","line":1530,"range":{"start_line":1529,"start_character":8,"end_line":1530,"end_character":61},"in_reply_to":"ff82abbf_2f764a08","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1543,"context_line":""},{"line_number":1544,"context_line":"        # The instance should hold a new_flavor allocation"},{"line_number":1545,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1546,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1547,"context_line":"        self.assertFlavorMatchesUsage(new_flavor, allocation)"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1550,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_4f738e16","line":1547,"range":{"start_line":1546,"start_character":8,"end_line":1547,"end_character":61},"updated":"2017-11-21 14:46:45.000000000","message":"same","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1543,"context_line":""},{"line_number":1544,"context_line":"        # The instance should hold a new_flavor allocation"},{"line_number":1545,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1546,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1547,"context_line":"        self.assertFlavorMatchesUsage(new_flavor, allocation)"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1550,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_48c9b6a9","line":1547,"range":{"start_line":1546,"start_character":8,"end_line":1547,"end_character":61},"in_reply_to":"ff82abbf_4f738e16","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1550,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1551,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1552,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, allocation)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"    def test_resize_revert_same_host(self):"},{"line_number":1555,"context_line":"        # make sure that the test only uses a single host"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_0f67c64f","line":1552,"range":{"start_line":1551,"start_character":8,"end_line":1552,"end_character":61},"updated":"2017-11-21 14:46:45.000000000","message":"same","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        # The migration should hold an old_flavor allocation"},{"line_number":1550,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(migration_uuid)"},{"line_number":1551,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1552,"context_line":"        self.assertFlavorMatchesUsage(old_flavor, allocation)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"    def test_resize_revert_same_host(self):"},{"line_number":1555,"context_line":"        # make sure that the test only uses a single host"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_08c72e98","line":1552,"range":{"start_line":1551,"start_character":8,"end_line":1552,"end_character":61},"in_reply_to":"ff82abbf_0f67c64f","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1577,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, usages)"},{"line_number":1578,"context_line":""},{"line_number":1579,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1580,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1581,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, allocation)"},{"line_number":1582,"context_line":""},{"line_number":1583,"context_line":"        self._delete_and_check_allocations(server, rp_uuid, rp_uuid)"},{"line_number":1584,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_cf60fe35","line":1581,"range":{"start_line":1580,"start_character":8,"end_line":1581,"end_character":63},"updated":"2017-11-21 14:46:45.000000000","message":"same","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1577,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, usages)"},{"line_number":1578,"context_line":""},{"line_number":1579,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1580,"context_line":"        allocation \u003d allocations[rp_uuid][\u0027resources\u0027]"},{"line_number":1581,"context_line":"        self.assertFlavorMatchesUsage(self.flavor2, allocation)"},{"line_number":1582,"context_line":""},{"line_number":1583,"context_line":"        self._delete_and_check_allocations(server, rp_uuid, rp_uuid)"},{"line_number":1584,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_c8bce607","line":1581,"range":{"start_line":1580,"start_character":8,"end_line":1581,"end_character":63},"in_reply_to":"ff82abbf_cf60fe35","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1662,"context_line":"        # Check that the server only allocates resource from the host it is"},{"line_number":1663,"context_line":"        # booted on"},{"line_number":1664,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1665,"context_line":"        allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1666,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, allocation)"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":"        self._delete_and_check_allocations("},{"line_number":1669,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_4f4ceec6","line":1666,"range":{"start_line":1665,"start_character":8,"end_line":1666,"end_character":63},"updated":"2017-11-21 14:46:45.000000000","message":"same","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1662,"context_line":"        # Check that the server only allocates resource from the host it is"},{"line_number":1663,"context_line":"        # booted on"},{"line_number":1664,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1665,"context_line":"        allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1666,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, allocation)"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":"        self._delete_and_check_allocations("},{"line_number":1669,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_483e968b","line":1666,"range":{"start_line":1665,"start_character":8,"end_line":1666,"end_character":63},"in_reply_to":"ff82abbf_4f4ceec6","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1704,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_usages)"},{"line_number":1705,"context_line":""},{"line_number":1706,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1707,"context_line":"        source_allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1708,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, source_allocation)"},{"line_number":1709,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1710,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_allocation)"},{"line_number":1711,"context_line":""},{"line_number":1712,"context_line":"        # restart the source compute"},{"line_number":1713,"context_line":"        self.restart_compute_service(self.compute1)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_8fd756c0","line":1710,"range":{"start_line":1707,"start_character":8,"end_line":1710,"end_character":68},"updated":"2017-11-21 14:46:45.000000000","message":"same x2","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1704,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_usages)"},{"line_number":1705,"context_line":""},{"line_number":1706,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1707,"context_line":"        source_allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1708,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, source_allocation)"},{"line_number":1709,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1710,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_allocation)"},{"line_number":1711,"context_line":""},{"line_number":1712,"context_line":"        # restart the source compute"},{"line_number":1713,"context_line":"        self.restart_compute_service(self.compute1)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_2849d22f","line":1710,"range":{"start_line":1707,"start_character":8,"end_line":1710,"end_character":68},"in_reply_to":"ff82abbf_8fd756c0","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a7afef54601d7504083884922e093d4f58875500","unresolved":false,"context_lines":[{"line_number":1779,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_usages)"},{"line_number":1780,"context_line":""},{"line_number":1781,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1782,"context_line":"        source_allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1783,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, source_allocation)"},{"line_number":1784,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1785,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_allocation)"},{"line_number":1786,"context_line":""},{"line_number":1787,"context_line":"        # restart the source compute"},{"line_number":1788,"context_line":"        self.restart_compute_service(self.compute1)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_4fe14e9a","line":1785,"range":{"start_line":1782,"start_character":8,"end_line":1785,"end_character":68},"updated":"2017-11-21 14:46:45.000000000","message":"same","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fbae5108adb7675ab8b050f21d382734b151ef72","unresolved":false,"context_lines":[{"line_number":1779,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_usages)"},{"line_number":1780,"context_line":""},{"line_number":1781,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1782,"context_line":"        source_allocation \u003d allocations[source_rp_uuid][\u0027resources\u0027]"},{"line_number":1783,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, source_allocation)"},{"line_number":1784,"context_line":"        dest_allocation \u003d allocations[dest_rp_uuid][\u0027resources\u0027]"},{"line_number":1785,"context_line":"        self.assertFlavorMatchesUsage(self.flavor1, dest_allocation)"},{"line_number":1786,"context_line":""},{"line_number":1787,"context_line":"        # restart the source compute"},{"line_number":1788,"context_line":"        self.restart_compute_service(self.compute1)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_c85146db","line":1785,"range":{"start_line":1782,"start_character":8,"end_line":1785,"end_character":68},"in_reply_to":"ff82abbf_4fe14e9a","updated":"2017-11-28 08:36:49.000000000","message":"Done","commit_id":"0901258d3d3f18afd1ef286e6b28e208022b8039"}]}
