)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-03-27 15:09:35 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support for --overwrite flag for nova-manage placement heal_allocations command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I54147d522c86d858f938df509b333b6af3189e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"df33271e_08647e21","line":8,"updated":"2020-03-27 14:25:29.000000000","message":"You had a bug for this - did you close that because if not you want to link that in here using:\n\nCloses-Bug: #xxxxxx","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff9ef4a997493bc00818b456359842c8d3783e2a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-04-07 12:05:51 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support for --overwrite flag for nova-manage placement heal_allocations command"},{"line_number":8,"context_line":"Closes-Bug:#1868997"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I54147d522c86d858f938df509b333b6af3189e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_2e6a05ec","line":8,"updated":"2020-04-09 15:39:00.000000000","message":"You need a space between this and the title. Ideally, it should be under the \u0027Change-Id\u0027 line. Also, space before #","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"22cb998bfc830b09d1750a9b89619b5db34c776b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-04-07 12:05:51 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support for --overwrite flag for nova-manage placement heal_allocations command"},{"line_number":8,"context_line":"Closes-Bug:#1868997"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I54147d522c86d858f938df509b333b6af3189e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f4c43b2_8ff0e592","line":8,"in_reply_to":"df33271e_2e6a05ec","updated":"2020-04-15 09:11:32.000000000","message":"Done","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dabddb732adb14847cd8a9c1307f83d829f3c5f4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-04-14 10:41:40 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support for --force flag for nova-manage placement heal_allocations command"},{"line_number":8,"context_line":"Closes-Bug:#1868997"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I54147d522c86d858f938df509b333b6af3189e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f4c43b2_46d7eac0","line":8,"updated":"2020-04-14 09:43:31.000000000","message":"You\u0027re still missing a space between the title and this line [1] \n\n[1] https://review.opendev.org/#/c/715395/7//COMMIT_MSG@8","commit_id":"91878d6ef9b8dca011d9087ba7a4510b453e540f"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5be469bdfac7dd69bcc5f6419e8d02c100a61c22","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-04-26 21:33:48 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support for --force flag for nova-manage placement heal_allocations command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1868997"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I54147d522c86d858f938df509b333b6af3189e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1f493fa4_9810a850","line":8,"updated":"2020-04-28 13:28:17.000000000","message":"A body here would be nice, to provide context and give more details.","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"1903a8d26cf47713eec66d07abc978c30aab8b77","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-04-26 21:33:48 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support for --force flag for nova-manage placement heal_allocations command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1868997"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I54147d522c86d858f938df509b333b6af3189e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1f493fa4_d7f5c458","line":8,"in_reply_to":"1f493fa4_9810a850","updated":"2020-04-29 11:31:22.000000000","message":"Done","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"49d6a073237e86f0d09fa4b4e11f48524a1bb2f9","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-04-29 13:27:40 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support for --force flag for nova-manage placement heal_allocations command"},{"line_number":8,"context_line":"use this flag to forcefully call heal allocation for a specific instance"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Closes-Bug: #1868997"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1f493fa4_2a8bc367","line":8,"updated":"2020-04-30 12:34:29.000000000","message":"nit: blank line above this - and in my previous comment I meant more like examples of situations where this would be useful, but I guess that\u0027s kinda self-evident? Anyways, I\u0027m not dying on this hill ;)","commit_id":"c30aa8a58917eada25be3ad2f448278477bd6ca5"}],"doc/source/cli/nova-manage.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d9810e443b24c144d544657b33b78c25dba21fe4","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    Specify ``--cell`` to  process heal allocations within a specific cell."},{"line_number":607,"context_line":"    This is mutually exclusive with the ``--instance`` option."},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"    specify ``--overwrite`` to overwrite single instance allocation. This"},{"line_number":610,"context_line":"    option needs to be passed with ``--instance``."},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    This command requires that the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df33271e_2271cc0d","line":609,"range":{"start_line":609,"start_character":4,"end_line":609,"end_character":5},"updated":"2020-04-07 09:47:06.000000000","message":"S","commit_id":"5eb54750fa3418b7a2b9f6a6faa348d4a55bdbeb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"46af0e4683ebc9f0332e244ec628451e87be8d50","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    Specify ``--cell`` to  process heal allocations within a specific cell."},{"line_number":607,"context_line":"    This is mutually exclusive with the ``--instance`` option."},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"    Specify ``--overwrite`` to overwrite single instance allocation. This"},{"line_number":610,"context_line":"    option needs to be passed with ``--instance``."},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    This command requires that the"},{"line_number":613,"context_line":"    :oslo.config:option:`api_database.connection` and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df33271e_b3fa0240","line":610,"range":{"start_line":609,"start_character":4,"end_line":610,"end_character":50},"updated":"2020-04-09 14:55:44.000000000","message":"based on what this does i think this should be called force if we add it not overrite.\n\nas we are forceign the healing of the allocation even if we dont think it needs to be healed.","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"22cb998bfc830b09d1750a9b89619b5db34c776b","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    Specify ``--cell`` to  process heal allocations within a specific cell."},{"line_number":607,"context_line":"    This is mutually exclusive with the ``--instance`` option."},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"    Specify ``--overwrite`` to overwrite single instance allocation. This"},{"line_number":610,"context_line":"    option needs to be passed with ``--instance``."},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    This command requires that the"},{"line_number":613,"context_line":"    :oslo.config:option:`api_database.connection` and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f4c43b2_5aab401c","line":610,"range":{"start_line":609,"start_character":4,"end_line":610,"end_character":50},"in_reply_to":"df33271e_b3fa0240","updated":"2020-04-15 09:11:32.000000000","message":"I agree. I will change it to force instead of overwrite.","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"}],"nova/cmd/manage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":1827,"context_line":"    def _heal_allocations_for_instance(self, ctxt, instance, node_cache,"},{"line_number":1828,"context_line":"                                       output, placement, dry_run,"},{"line_number":1829,"context_line":"                                       heal_port_allocations, neutron,"},{"line_number":1830,"context_line":"                                       overwrite):"},{"line_number":1831,"context_line":"        \"\"\"Checks the given instance to see if it needs allocation healing"},{"line_number":1832,"context_line":""},{"line_number":1833,"context_line":"        :param ctxt: cell-targeted nova.context.RequestContext"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_2887c2d9","line":1830,"updated":"2020-03-27 14:25:29.000000000","message":"Document this parameter in the docstring.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":1920,"context_line":"            allocations[\u0027allocations\u0027] \u003d self._merge_allocations("},{"line_number":1921,"context_line":"                allocations[\u0027allocations\u0027], port_allocations)"},{"line_number":1922,"context_line":""},{"line_number":1923,"context_line":"        if overwrite:"},{"line_number":1924,"context_line":"            need_healing \u003d True"},{"line_number":1925,"context_line":"            output(_(\u0027Overwrite flag passed\u0027))            "},{"line_number":1926,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_48a04644","line":1923,"updated":"2020-03-27 14:25:29.000000000","message":"I would probably only output anything about overwriting allocations for an instance if need_healing was otherwise False, because that\u0027s the only time it\u0027s interesting. If we\u0027re not overwriting anything then it doesn\u0027t matter what the value of overwrite is since we were going to heal anyway.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":1922,"context_line":""},{"line_number":1923,"context_line":"        if overwrite:"},{"line_number":1924,"context_line":"            need_healing \u003d True"},{"line_number":1925,"context_line":"            output(_(\u0027Overwrite flag passed\u0027))            "},{"line_number":1926,"context_line":""},{"line_number":1927,"context_line":"        if need_healing:"},{"line_number":1928,"context_line":"            if dry_run:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_886d2e34","line":1925,"updated":"2020-03-27 14:25:29.000000000","message":"gah more whitespace\n\nAlso, it would probably be good to include the instance uuid in the output message - are users allowed to overwrite only for a specific instance or all of them?","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"22cb998bfc830b09d1750a9b89619b5db34c776b","unresolved":false,"context_lines":[{"line_number":1922,"context_line":""},{"line_number":1923,"context_line":"        if overwrite:"},{"line_number":1924,"context_line":"            need_healing \u003d True"},{"line_number":1925,"context_line":"            output(_(\u0027Overwrite flag passed\u0027))            "},{"line_number":1926,"context_line":""},{"line_number":1927,"context_line":"        if need_healing:"},{"line_number":1928,"context_line":"            if dry_run:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_c3ec382b","line":1925,"in_reply_to":"df33271e_886d2e34","updated":"2020-04-15 09:11:32.000000000","message":"only for specific instance.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":1981,"context_line":"    def _heal_instances_in_cell(self, ctxt, max_count, unlimited, output,"},{"line_number":1982,"context_line":"                                placement, dry_run, instance_uuid,"},{"line_number":1983,"context_line":"                                heal_port_allocations, neutron,"},{"line_number":1984,"context_line":"                                overwrite):"},{"line_number":1985,"context_line":"        \"\"\"Checks for instances to heal in a given cell."},{"line_number":1986,"context_line":""},{"line_number":1987,"context_line":"        :param ctxt: cell-targeted nova.context.RequestContext"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_28bce267","line":1984,"updated":"2020-03-27 14:25:29.000000000","message":"include this param in the docstring","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":2104,"context_line":"               \u0027not use such a feature then the performance impact of \u0027"},{"line_number":2105,"context_line":"               \u0027querying neutron ports for each instance can be avoided with \u0027"},{"line_number":2106,"context_line":"               \u0027this flag.\u0027)"},{"line_number":2107,"context_line":"    @args(\u0027--overwrite\u0027, action\u003d\u0027store_true\u0027, dest\u003d\u0027overwrite\u0027, default\u003dFalse,"},{"line_number":2108,"context_line":"            help\u003d\u0027Provide option to overwrite instance allocation.\u0027)"},{"line_number":2109,"context_line":"    def heal_allocations(self, max_count\u003dNone, verbose\u003dFalse, dry_run\u003dFalse,"},{"line_number":2110,"context_line":"                         instance_uuid\u003dNone, skip_port_allocations\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_68ad4a30","line":2107,"updated":"2020-03-27 14:25:29.000000000","message":"Is this intended to be used with a single instance because that\u0027s not what the code is enforcing. It might be OK to do it in the general multi-instance case as well, but just making sure.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"22cb998bfc830b09d1750a9b89619b5db34c776b","unresolved":false,"context_lines":[{"line_number":2104,"context_line":"               \u0027not use such a feature then the performance impact of \u0027"},{"line_number":2105,"context_line":"               \u0027querying neutron ports for each instance can be avoided with \u0027"},{"line_number":2106,"context_line":"               \u0027this flag.\u0027)"},{"line_number":2107,"context_line":"    @args(\u0027--overwrite\u0027, action\u003d\u0027store_true\u0027, dest\u003d\u0027overwrite\u0027, default\u003dFalse,"},{"line_number":2108,"context_line":"            help\u003d\u0027Provide option to overwrite instance allocation.\u0027)"},{"line_number":2109,"context_line":"    def heal_allocations(self, max_count\u003dNone, verbose\u003dFalse, dry_run\u003dFalse,"},{"line_number":2110,"context_line":"                         instance_uuid\u003dNone, skip_port_allocations\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_c39ef8b6","line":2107,"in_reply_to":"df33271e_68ad4a30","updated":"2020-04-15 09:11:32.000000000","message":"yes it\u0027s supposed to be run with single instance only. I forgot to write a check if instance_id is provided or not. \nSo usage is like this \nnova-manage placement heal_allocations  --instance \u003cid-here\u003e --overwrite","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d9810e443b24c144d544657b33b78c25dba21fe4","unresolved":false,"context_lines":[{"line_number":2114,"context_line":"          help\u003d\u0027Heal allocations within a specific cell. \u0027"},{"line_number":2115,"context_line":"               \u0027The --cell and --instance options are mutually exclusive.\u0027)"},{"line_number":2116,"context_line":"    @args(\u0027--overwrite\u0027, action\u003d\u0027store_true\u0027, dest\u003d\u0027overwrite\u0027, default\u003dFalse,"},{"line_number":2117,"context_line":"            help\u003d\u0027Provide option to overwrite single instance allocation.\u0027"},{"line_number":2118,"context_line":"                \u0027Usage : --instance \u003cinstance_uuid\u003e --overwrite\u0027)"},{"line_number":2119,"context_line":"    def heal_allocations(self, max_count\u003dNone, verbose\u003dFalse, dry_run\u003dFalse,"},{"line_number":2120,"context_line":"                         instance_uuid\u003dNone, skip_port_allocations\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_0255a850","line":2117,"range":{"start_line":2117,"start_character":10,"end_line":2117,"end_character":12},"updated":"2020-04-07 09:47:06.000000000","message":"indentation is off","commit_id":"5eb54750fa3418b7a2b9f6a6faa348d4a55bdbeb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d9810e443b24c144d544657b33b78c25dba21fe4","unresolved":false,"context_lines":[{"line_number":2155,"context_line":"            print(_(\u0027The --cell and --instance options \u0027"},{"line_number":2156,"context_line":"                    \u0027are mutually exclusive.\u0027))"},{"line_number":2157,"context_line":"            return 127"},{"line_number":2158,"context_line":""},{"line_number":2159,"context_line":"        # TODO(mriedem): Rather than --max-count being both a total and batch"},{"line_number":2160,"context_line":"        # count, should we have separate options to be specific, i.e. --total"},{"line_number":2161,"context_line":"        # and --batch-size? Then --batch-size defaults to 50 and --total"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_a2d31cd5","line":2158,"updated":"2020-04-07 09:47:06.000000000","message":"Could you add another check here\n\n  if overwrite and not instance_uuid:\n\n?","commit_id":"5eb54750fa3418b7a2b9f6a6faa348d4a55bdbeb"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"22cb998bfc830b09d1750a9b89619b5db34c776b","unresolved":false,"context_lines":[{"line_number":2155,"context_line":"            print(_(\u0027The --cell and --instance options \u0027"},{"line_number":2156,"context_line":"                    \u0027are mutually exclusive.\u0027))"},{"line_number":2157,"context_line":"            return 127"},{"line_number":2158,"context_line":""},{"line_number":2159,"context_line":"        # TODO(mriedem): Rather than --max-count being both a total and batch"},{"line_number":2160,"context_line":"        # count, should we have separate options to be specific, i.e. --total"},{"line_number":2161,"context_line":"        # and --batch-size? Then --batch-size defaults to 50 and --total"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_4d1b611a","line":2158,"in_reply_to":"df33271e_a2d31cd5","updated":"2020-04-15 09:11:32.000000000","message":"Yeah, I forgot that. Thanks","commit_id":"5eb54750fa3418b7a2b9f6a6faa348d4a55bdbeb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff9ef4a997493bc00818b456359842c8d3783e2a","unresolved":false,"context_lines":[{"line_number":2159,"context_line":"        if overwrite and not instance_uuid:"},{"line_number":2160,"context_line":"            print(_(\u0027You must specify instance_uuid \u0027"},{"line_number":2161,"context_line":"                    \u0027when using overwrite flag.\u0027))"},{"line_number":2162,"context_line":""},{"line_number":2163,"context_line":"        # TODO(mriedem): Rather than --max-count being both a total and batch"},{"line_number":2164,"context_line":"        # count, should we have separate options to be specific, i.e. --total"},{"line_number":2165,"context_line":"        # and --batch-size? Then --batch-size defaults to 50 and --total"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_ee4c9d9f","line":2162,"updated":"2020-04-09 15:39:00.000000000","message":"You\u0027re missing a \u0027return 127\u0027 statement","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dabddb732adb14847cd8a9c1307f83d829f3c5f4","unresolved":false,"context_lines":[{"line_number":2114,"context_line":"          help\u003d\u0027Heal allocations within a specific cell. \u0027"},{"line_number":2115,"context_line":"               \u0027The --cell and --instance options are mutually exclusive.\u0027)"},{"line_number":2116,"context_line":"    @args(\u0027--force\u0027, action\u003d\u0027store_true\u0027, dest\u003d\u0027force\u0027, default\u003dFalse,"},{"line_number":2117,"context_line":"          help\u003d\u0027Provide option to force healing of specific instance. \u0027"},{"line_number":2118,"context_line":"               \u0027Forces heal allocation even when not needed. \u0027"},{"line_number":2119,"context_line":"                \u0027Usage : --instance \u003cinstance_uuid\u003e --force.\u0027)"},{"line_number":2120,"context_line":"    def heal_allocations(self, max_count\u003dNone, verbose\u003dFalse, dry_run\u003dFalse,"},{"line_number":2121,"context_line":"                         instance_uuid\u003dNone, skip_port_allocations\u003dFalse,"},{"line_number":2122,"context_line":"                         cell_uuid\u003dNone, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4c43b2_e69436eb","line":2119,"range":{"start_line":2117,"start_character":16,"end_line":2119,"end_character":61},"updated":"2020-04-14 09:43:31.000000000","message":"Try:\n\n  Force heal allocations. Requires the \u0027--instance\u0027 argument.","commit_id":"91878d6ef9b8dca011d9087ba7a4510b453e540f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e7bcec7f69c16a76f891351519e7516d2990449","unresolved":false,"context_lines":[{"line_number":2156,"context_line":"            return 127"},{"line_number":2157,"context_line":""},{"line_number":2158,"context_line":"        if force and not instance_uuid:"},{"line_number":2159,"context_line":"            print(_(\u0027You must specify instance_uuid \u0027"},{"line_number":2160,"context_line":"                    \u0027when using force flag.\u0027))"},{"line_number":2161,"context_line":"            return 127"},{"line_number":2162,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_a74f7390","line":2159,"range":{"start_line":2159,"start_character":38,"end_line":2159,"end_character":51},"updated":"2020-04-18 13:15:53.000000000","message":"Use --instance here since that\u0027s what the user sees, \"instance_uuid\" is a code variable.","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcafc099dc4391ddb27ce3c48d824e89d297b277","unresolved":false,"context_lines":[{"line_number":2205,"context_line":"                print(_(\u0027Cell with uuid %s was not found.\u0027) % cell_uuid)"},{"line_number":2206,"context_line":"                return 127"},{"line_number":2207,"context_line":"        else:"},{"line_number":2208,"context_line":"            cells \u003d objects.CellMappingList.get_all(ctxt)"},{"line_number":2209,"context_line":"            if not cells:"},{"line_number":2210,"context_line":"                output(_(\u0027No cells to process.\u0027))"},{"line_number":2211,"context_line":"                return 4"},{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"        placement \u003d report.SchedulerReportClient()"},{"line_number":2214,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_c0d1175a","line":2211,"range":{"start_line":2208,"start_character":8,"end_line":2211,"end_character":24},"updated":"2020-04-14 13:46:51.000000000","message":"is this why the test later returns 4 or are there other cases?","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"22cb998bfc830b09d1750a9b89619b5db34c776b","unresolved":false,"context_lines":[{"line_number":2205,"context_line":"                print(_(\u0027Cell with uuid %s was not found.\u0027) % cell_uuid)"},{"line_number":2206,"context_line":"                return 127"},{"line_number":2207,"context_line":"        else:"},{"line_number":2208,"context_line":"            cells \u003d objects.CellMappingList.get_all(ctxt)"},{"line_number":2209,"context_line":"            if not cells:"},{"line_number":2210,"context_line":"                output(_(\u0027No cells to process.\u0027))"},{"line_number":2211,"context_line":"                return 4"},{"line_number":2212,"context_line":""},{"line_number":2213,"context_line":"        placement \u003d report.SchedulerReportClient()"},{"line_number":2214,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_802eefa2","line":2211,"range":{"start_line":2208,"start_character":8,"end_line":2211,"end_character":24},"in_reply_to":"3f4c43b2_c0d1175a","updated":"2020-04-15 09:11:32.000000000","message":"No, this statement is not related to my test case. This one is for when there are simply no cells to process. We return 4 when the command was successful but nothing was done.","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"084f11245317a0292ff0d58a103d0de69691e093","unresolved":false,"context_lines":[{"line_number":1926,"context_line":"        if force:"},{"line_number":1927,"context_line":"            output(_(\u0027Force flag passed for instance %s\u0027) % instance.uuid)"},{"line_number":1928,"context_line":"            need_healing \u003d True"},{"line_number":1929,"context_line":"            #get default allocations"},{"line_number":1930,"context_line":"            alloc \u003d self._heal_missing_alloc(ctxt, instance, node_cache)"},{"line_number":1931,"context_line":"            # set consumer generation of existing allocations"},{"line_number":1932,"context_line":"            alloc[\"consumer_generation\"] \u003d allocations[\"consumer_generation\"]"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493fa4_7c497ace","line":1929,"updated":"2020-04-26 15:06:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"5e82b283d004ea6ae8be53231258884dd7de7d6d"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5be469bdfac7dd69bcc5f6419e8d02c100a61c22","unresolved":false,"context_lines":[{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"        if force:"},{"line_number":1927,"context_line":"            output(_(\u0027Force flag passed for instance %s\u0027) % instance.uuid)"},{"line_number":1928,"context_line":"            need_healing \u003d True"},{"line_number":1929,"context_line":"            # get default allocations"},{"line_number":1930,"context_line":"            alloc \u003d self._heal_missing_alloc(ctxt, instance, node_cache)"},{"line_number":1931,"context_line":"            # set consumer generation of existing allocations"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_d8b99015","line":1928,"updated":"2020-04-28 13:28:17.000000000","message":"You\u0027re later setting this to _UPDATE on L1954, but missing the dry-run case. So shouldn\u0027t this be set to _UPDATE directly here, and then you don\u0027t need L1952-1954?","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"1903a8d26cf47713eec66d07abc978c30aab8b77","unresolved":false,"context_lines":[{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"        if force:"},{"line_number":1927,"context_line":"            output(_(\u0027Force flag passed for instance %s\u0027) % instance.uuid)"},{"line_number":1928,"context_line":"            need_healing \u003d True"},{"line_number":1929,"context_line":"            # get default allocations"},{"line_number":1930,"context_line":"            alloc \u003d self._heal_missing_alloc(ctxt, instance, node_cache)"},{"line_number":1931,"context_line":"            # set consumer generation of existing allocations"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_b7d91823","line":1928,"in_reply_to":"1f493fa4_b8fac471","updated":"2020-04-29 11:31:22.000000000","message":"Done","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"96a96ccc31b70e68ed0a37d594ff130402a7ad9c","unresolved":false,"context_lines":[{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"        if force:"},{"line_number":1927,"context_line":"            output(_(\u0027Force flag passed for instance %s\u0027) % instance.uuid)"},{"line_number":1928,"context_line":"            need_healing \u003d True"},{"line_number":1929,"context_line":"            # get default allocations"},{"line_number":1930,"context_line":"            alloc \u003d self._heal_missing_alloc(ctxt, instance, node_cache)"},{"line_number":1931,"context_line":"            # set consumer generation of existing allocations"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_b8fac471","line":1928,"in_reply_to":"1f493fa4_d8b99015","updated":"2020-04-28 13:29:06.000000000","message":"Ah, and it means you\u0027re missing a test for the dry run case.","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5be469bdfac7dd69bcc5f6419e8d02c100a61c22","unresolved":false,"context_lines":[{"line_number":2165,"context_line":"            return 127"},{"line_number":2166,"context_line":""},{"line_number":2167,"context_line":"        if force and not instance_uuid:"},{"line_number":2168,"context_line":"            print(_(\u0027You must specify --instance \u0027"},{"line_number":2169,"context_line":"                    \u0027when using force flag.\u0027))"},{"line_number":2170,"context_line":"            return 127"},{"line_number":2171,"context_line":""},{"line_number":2172,"context_line":"        # TODO(mriedem): Rather than --max-count being both a total and batch"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_1890184a","line":2169,"range":{"start_line":2168,"start_character":20,"end_line":2169,"end_character":45},"updated":"2020-04-28 13:28:17.000000000","message":"nit: wording: \"The --instance flag is required when using --force.\"","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"1903a8d26cf47713eec66d07abc978c30aab8b77","unresolved":false,"context_lines":[{"line_number":2165,"context_line":"            return 127"},{"line_number":2166,"context_line":""},{"line_number":2167,"context_line":"        if force and not instance_uuid:"},{"line_number":2168,"context_line":"            print(_(\u0027You must specify --instance \u0027"},{"line_number":2169,"context_line":"                    \u0027when using force flag.\u0027))"},{"line_number":2170,"context_line":"            return 127"},{"line_number":2171,"context_line":""},{"line_number":2172,"context_line":"        # TODO(mriedem): Rather than --max-count being both a total and batch"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_17e9ecb5","line":2169,"range":{"start_line":2168,"start_character":20,"end_line":2169,"end_character":45},"in_reply_to":"1f493fa4_1890184a","updated":"2020-04-29 11:31:22.000000000","message":"Done","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df1cb422d62fc5a0e3b48ee0bbf6ed18b1d43b09","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"            # set consumer generation of existing allocations"},{"line_number":1932,"context_line":"            alloc[\"consumer_generation\"] \u003d allocations[\"consumer_generation\"]"},{"line_number":1933,"context_line":"            # set allocations"},{"line_number":1934,"context_line":"            allocations \u003d alloc"},{"line_number":1935,"context_line":""},{"line_number":1936,"context_line":"        if need_healing:"},{"line_number":1937,"context_line":"            if dry_run:"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f493fa4_33bf60fc","line":1934,"range":{"start_line":1934,"start_character":12,"end_line":1934,"end_character":31},"updated":"2020-05-06 08:03:13.000000000","message":"This will override the port allocations....so why we don\u0027t move this before the line 1913","commit_id":"5d3774a759efb8eae8804c5b29dc5e748c332766"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"485adaf1a5479d7e5ff2ac487995bd47d90fa2d9","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"            # set consumer generation of existing allocations"},{"line_number":1932,"context_line":"            alloc[\"consumer_generation\"] \u003d allocations[\"consumer_generation\"]"},{"line_number":1933,"context_line":"            # set allocations"},{"line_number":1934,"context_line":"            allocations \u003d alloc"},{"line_number":1935,"context_line":""},{"line_number":1936,"context_line":"        if need_healing:"},{"line_number":1937,"context_line":"            if dry_run:"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f493fa4_bc6cdd08","line":1934,"range":{"start_line":1934,"start_character":12,"end_line":1934,"end_character":31},"in_reply_to":"1f493fa4_33bf60fc","updated":"2020-05-06 11:30:07.000000000","message":"True, need to fix it","commit_id":"5d3774a759efb8eae8804c5b29dc5e748c332766"}],"nova/tests/functional/test_nova_manage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":768,"context_line":"            ]"},{"line_number":769,"context_line":"        }"},{"line_number":770,"context_line":"        self.placement_api.put(\u0027/allocations/%s\u0027 % server[\u0027id\u0027], alloc_body)"},{"line_number":771,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor, server[\u0027id\u0027], rp_uuid)"},{"line_number":772,"context_line":"        "},{"line_number":773,"context_line":"        # First do a dry run."},{"line_number":774,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue, dry_run\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_430ae920","line":771,"updated":"2020-03-27 14:25:29.000000000","message":"Since you\u0027re not actually changing the allocations to not match the flavor you could remove the call to PUT /allocations on the line above and this assertion would still pass.\n\nI think what you want to do is mess up the allocations, e.g. remove one of the resources (DISK_GB for example) and double one of the others (VCPU for example). You\u0027d assert that the instance allocations don\u0027t match the flavor because you messed them up on purpose. Then after running heal_allocations with overwrite\u003dTrue you assert that the instance allocations match the flavor.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":769,"context_line":"        }"},{"line_number":770,"context_line":"        self.placement_api.put(\u0027/allocations/%s\u0027 % server[\u0027id\u0027], alloc_body)"},{"line_number":771,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor, server[\u0027id\u0027], rp_uuid)"},{"line_number":772,"context_line":"        "},{"line_number":773,"context_line":"        # First do a dry run."},{"line_number":774,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue, dry_run\u003dTrue)"},{"line_number":775,"context_line":"        # Nothing changed so the return code should be 4."}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_e87cbaec","line":772,"updated":"2020-03-27 14:25:29.000000000","message":"Remove this whitespace - run `tox -e pep8` or `tox -e fast8` before pushing up changes.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        # call heal"},{"line_number":779,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue,"},{"line_number":780,"context_line":"        instance_uuid\u003dserver[\u0027id\u0027])"},{"line_number":781,"context_line":"        self.assertEqual(0, result, self.output.getvalue())"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        # call heal without overwrite flag"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_084d9e99","line":780,"updated":"2020-03-27 14:25:29.000000000","message":"This should be aligned with verbose\u003dTrue. You must be using VSCode because I\u0027ve noticed it doesn\u0027t automatically wrap and align nicely like PyCharm does.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        # call heal without overwrite flag"},{"line_number":784,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue,"},{"line_number":785,"context_line":"        instance_uuid\u003dserver[\u0027id\u0027])"},{"line_number":786,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        # call heal with overwrite flag"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_284a227f","line":785,"updated":"2020-03-27 14:25:29.000000000","message":"same","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        # call heal with overwrite flag"},{"line_number":789,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue,"},{"line_number":790,"context_line":"        instance_uuid\u003dserver[\u0027id\u0027], overwrite\u003dTrue)"},{"line_number":791,"context_line":"        self.assertEqual(0, result, self.output.getvalue())"},{"line_number":792,"context_line":"        self.assertIn(\u0027Overwrite flag passed\u0027, self.output.getvalue())"},{"line_number":793,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_c85a964d","line":790,"updated":"2020-03-27 14:25:29.000000000","message":"same","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff9ef4a997493bc00818b456359842c8d3783e2a","unresolved":false,"context_lines":[{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        # call heal"},{"line_number":812,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue,"},{"line_number":813,"context_line":"        instance_uuid\u003dserver[\u0027id\u0027])"},{"line_number":814,"context_line":"        self.assertEqual(0, result, self.output.getvalue())"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"        # call heal without overwrite flag"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_ce36f903","line":813,"range":{"start_line":813,"start_character":8,"end_line":813,"end_character":35},"updated":"2020-04-09 15:39:00.000000000","message":"This indentation is off. Try:\n\n  result \u003d self.cli.heal_allocations(\n      verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027],\n  )","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff9ef4a997493bc00818b456359842c8d3783e2a","unresolved":false,"context_lines":[{"line_number":815,"context_line":""},{"line_number":816,"context_line":"        # call heal without overwrite flag"},{"line_number":817,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue,"},{"line_number":818,"context_line":"        instance_uuid\u003dserver[\u0027id\u0027])"},{"line_number":819,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        # call heal with overwrite flag"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_2e3845ec","line":818,"updated":"2020-04-09 15:39:00.000000000","message":"ditto","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff9ef4a997493bc00818b456359842c8d3783e2a","unresolved":false,"context_lines":[{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        # call heal with overwrite flag"},{"line_number":822,"context_line":"        result \u003d self.cli.heal_allocations(verbose\u003dTrue,"},{"line_number":823,"context_line":"        instance_uuid\u003dserver[\u0027id\u0027], overwrite\u003dTrue)"},{"line_number":824,"context_line":"        self.assertEqual(0, result, self.output.getvalue())"},{"line_number":825,"context_line":"        self.assertIn(\u0027Overwrite flag passed for instance\u0027,"},{"line_number":826,"context_line":"                    self.output.getvalue())"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_0e3d81dc","line":823,"updated":"2020-04-09 15:39:00.000000000","message":"ditto","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff9ef4a997493bc00818b456359842c8d3783e2a","unresolved":false,"context_lines":[{"line_number":823,"context_line":"        instance_uuid\u003dserver[\u0027id\u0027], overwrite\u003dTrue)"},{"line_number":824,"context_line":"        self.assertEqual(0, result, self.output.getvalue())"},{"line_number":825,"context_line":"        self.assertIn(\u0027Overwrite flag passed for instance\u0027,"},{"line_number":826,"context_line":"                    self.output.getvalue())"},{"line_number":827,"context_line":"        self.assertIn(\u0027Successfully updated allocations\u0027,"},{"line_number":828,"context_line":"                    self.output.getvalue())"},{"line_number":829,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_ce1f196a","line":826,"range":{"start_line":826,"start_character":19,"end_line":826,"end_character":20},"updated":"2020-04-09 15:39:00.000000000","message":"indentation","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff9ef4a997493bc00818b456359842c8d3783e2a","unresolved":false,"context_lines":[{"line_number":825,"context_line":"        self.assertIn(\u0027Overwrite flag passed for instance\u0027,"},{"line_number":826,"context_line":"                    self.output.getvalue())"},{"line_number":827,"context_line":"        self.assertIn(\u0027Successfully updated allocations\u0027,"},{"line_number":828,"context_line":"                    self.output.getvalue())"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":""},{"line_number":831,"context_line":"class TestNovaManagePlacementHealPortAllocations("}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_2e11655e","line":828,"range":{"start_line":828,"start_character":19,"end_line":828,"end_character":20},"updated":"2020-04-09 15:39:00.000000000","message":"indentation","commit_id":"79281391c5f8ecbe445bdc20cda158876be11797"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e7bcec7f69c16a76f891351519e7516d2990449","unresolved":false,"context_lines":[{"line_number":813,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":814,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027]"},{"line_number":815,"context_line":"        )"},{"line_number":816,"context_line":"        self.assertEqual(0, result, self.output.getvalue())"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"        # call heal without force flag"},{"line_number":819,"context_line":"        result \u003d self.cli.heal_allocations("}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_c731df0d","line":816,"updated":"2020-04-18 13:15:53.000000000","message":"So this is 0 because....it created allocations? But why if it already had allocations that you created \"out of band\" above? Is it because there is no consumer information with those allocations? IOW, I\u0027m not sure this is helping to show how things work. I mean, if you compare the allocations on the instance after this the MEMORY_MB should match the flavor rather than the fake 500 value you set above. So this is a case where you wouldn\u0027t need to use --force in the first place, right?","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcafc099dc4391ddb27ce3c48d824e89d297b277","unresolved":false,"context_lines":[{"line_number":819,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":820,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027]"},{"line_number":821,"context_line":"        )"},{"line_number":822,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        # call heal with force flag"},{"line_number":825,"context_line":"        result \u003d self.cli.heal_allocations("}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_7dc54c3c","line":822,"range":{"start_line":822,"start_character":25,"end_line":822,"end_character":27},"updated":"2020-04-14 13:46:51.000000000","message":"why is this 4 again?\n\nit would be nice to use a constant here or leave a comment.\n\nas far as i can tell 4 is related to cell errors so im not sure this is testing what we want it to test.","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"22cb998bfc830b09d1750a9b89619b5db34c776b","unresolved":false,"context_lines":[{"line_number":819,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":820,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027]"},{"line_number":821,"context_line":"        )"},{"line_number":822,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        # call heal with force flag"},{"line_number":825,"context_line":"        result \u003d self.cli.heal_allocations("}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_00993f6d","line":822,"range":{"start_line":822,"start_character":25,"end_line":822,"end_character":27},"in_reply_to":"3f4c43b2_7dc54c3c","updated":"2020-04-15 09:11:32.000000000","message":"well 4 is for when command run successfully but nothing was processed i.e. no allocations were created.","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e7bcec7f69c16a76f891351519e7516d2990449","unresolved":false,"context_lines":[{"line_number":821,"context_line":"        )"},{"line_number":822,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        # call heal with force flag"},{"line_number":825,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":826,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":827,"context_line":"            force\u003dTrue"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_672a8b90","line":824,"updated":"2020-04-18 13:15:53.000000000","message":"Per above, this is just going to overwrite the allocations with the same thing they already were, right? A more useful test IMO would be to:\n\n1. create server without allocations\n2. heal allocations without forcing them - assert the allocations match the flavor\n3. update the allocations to change MEMORY_MB to not match the flavor\n4. run heal allocations without --force and assert the allocations still have the bogus MEMORY_MB value since they were not forcefully updated (rc\u003d4 in this case)\n5. run heal allocations with --force and assert the allocations match the flavor again\n6. run heal allocations again and you should get rc\u003d4 back since nothing changed.","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"468669bab35ea0e6a44dd9d5eb164f510700da8d","unresolved":false,"context_lines":[{"line_number":821,"context_line":"        )"},{"line_number":822,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        # call heal with force flag"},{"line_number":825,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":826,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":827,"context_line":"            force\u003dTrue"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_21a21a4c","line":824,"in_reply_to":"3f4c43b2_672a8b90","updated":"2020-04-20 13:31:28.000000000","message":"Hey I made changes according to the steps that you laid out :) . I am facing issue that even after force flag the memory won\u0027t match the flavor memory. even with normal heal allocations the bogus memory won\u0027t fix :/","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5be469bdfac7dd69bcc5f6419e8d02c100a61c22","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        self.assertIn(\u0027Found 1 candidate instances\u0027, output)"},{"line_number":786,"context_line":"        self.assertIn(\u0027Processed 0 instances.\u0027, output)"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"    def test_heal_allocations_force_allocation(self):"},{"line_number":789,"context_line":"        \"\"\"Tests the case that a specific instance allocations are"},{"line_number":790,"context_line":"        forcefully changed."},{"line_number":791,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_38deb410","line":788,"updated":"2020-04-28 13:28:17.000000000","message":"This whole test seems like a lot of hoops to jump through? I know we don\u0027t like to mock in func tests, but could we not mock _heal_missing_alloc() to return some fake allocations, call heal with force, and make sure we\u0027ve updated the allocations to the fake ones?","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"1903a8d26cf47713eec66d07abc978c30aab8b77","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        self.assertIn(\u0027Found 1 candidate instances\u0027, output)"},{"line_number":786,"context_line":"        self.assertIn(\u0027Processed 0 instances.\u0027, output)"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"    def test_heal_allocations_force_allocation(self):"},{"line_number":789,"context_line":"        \"\"\"Tests the case that a specific instance allocations are"},{"line_number":790,"context_line":"        forcefully changed."},{"line_number":791,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_57aff428","line":788,"in_reply_to":"1f493fa4_38deb410","updated":"2020-04-29 11:31:22.000000000","message":"I am not sure. In patch set 9 matt left a note explaining how the test case should be for this patch. I have tried to follow it.\n\nTo summarize the idea behind this test case is to first get an instance with no allocation and then set wrong allocations. Use force flag to correct those allocations to the instance flavor.","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"1adf3d3412341eec17afc77852be23940cd3b99b","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        self.assertIn(\u0027Found 1 candidate instances\u0027, output)"},{"line_number":786,"context_line":"        self.assertIn(\u0027Processed 0 instances.\u0027, output)"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"    def test_heal_allocations_force_allocation(self):"},{"line_number":789,"context_line":"        \"\"\"Tests the case that a specific instance allocations are"},{"line_number":790,"context_line":"        forcefully changed."},{"line_number":791,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1f493fa4_8a2ad77b","line":788,"in_reply_to":"1f493fa4_57aff428","updated":"2020-04-30 12:28:40.000000000","message":"Ah, I see Matt\u0027s point.","commit_id":"5474022ba707079c06bfcd2894c0b1275c8207dd"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"1adf3d3412341eec17afc77852be23940cd3b99b","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        self.assertIn(\u0027Found 1 candidate instances\u0027, output)"},{"line_number":786,"context_line":"        self.assertIn(\u0027Processed 0 instances.\u0027, output)"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"    def test_heal_allocations_force_allocation(self):"},{"line_number":789,"context_line":"        \"\"\"Tests the case that a specific instance allocations are"},{"line_number":790,"context_line":"        forcefully changed."},{"line_number":791,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_8a4f7769","line":788,"updated":"2020-04-30 12:28:40.000000000","message":"If possible I\u0027d like Matt\u0027s comment on PS9 as a docstring here, it provides nice context for the complexity of this text, and then in your comments throughout the test, re-use the step numbers that he wrote.","commit_id":"c30aa8a58917eada25be3ad2f448278477bd6ca5"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"1adf3d3412341eec17afc77852be23940cd3b99b","unresolved":false,"context_lines":[{"line_number":840,"context_line":"          server[\u0027id\u0027])[rp_uuid][\u0027resources\u0027]"},{"line_number":841,"context_line":"        self.assertEqual(1024, allocs[\u0027MEMORY_MB\u0027])"},{"line_number":842,"context_line":""},{"line_number":843,"context_line":"        # call heal without force flag"},{"line_number":844,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":845,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027]"},{"line_number":846,"context_line":"        )"},{"line_number":847,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":848,"context_line":""},{"line_number":849,"context_line":"        # call heal with force flag and dry run"},{"line_number":850,"context_line":"        result \u003d self.cli.heal_allocations("}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_2a2f4388","line":847,"range":{"start_line":843,"start_character":0,"end_line":847,"end_character":59},"updated":"2020-04-30 12:28:40.000000000","message":"Why are we doing this here again?","commit_id":"c30aa8a58917eada25be3ad2f448278477bd6ca5"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"1adf3d3412341eec17afc77852be23940cd3b99b","unresolved":false,"context_lines":[{"line_number":855,"context_line":"        self.assertEqual(4, result, self.output.getvalue())"},{"line_number":856,"context_line":"        self.assertIn("},{"line_number":857,"context_line":"            \u0027[dry-run] Update allocations for instance\u0027,"},{"line_number":858,"context_line":"            self.output.getvalue())"},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"        # call heal with force flag"},{"line_number":861,"context_line":"        result \u003d self.cli.heal_allocations("}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_aa587330","line":858,"updated":"2020-04-30 12:28:40.000000000","message":"Ideally we\u0027d assert that the output matches the allocations that we expect, not just that it ran.","commit_id":"c30aa8a58917eada25be3ad2f448278477bd6ca5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ecc40ce83e38f9427081c957464e78033a00c176","unresolved":false,"context_lines":[{"line_number":788,"context_line":"    def test_heal_allocations_force_allocation(self):"},{"line_number":789,"context_line":"        \"\"\"Tests the case that a specific instance allocations are"},{"line_number":790,"context_line":"        forcefully changed."},{"line_number":791,"context_line":"        1. create server without allocations"},{"line_number":792,"context_line":"        2. heal allocations without forcing them."},{"line_number":793,"context_line":"           Assert the allocations match the flavor"},{"line_number":794,"context_line":"        3. update the allocations to change MEMORY_MB to not match the flavor"},{"line_number":795,"context_line":"        4. run heal allocations without --force."},{"line_number":796,"context_line":"           Assert the allocations still have the bogus"},{"line_number":797,"context_line":"           MEMORY_MB value since they were not forcefully updated."},{"line_number":798,"context_line":"        5. run heal allocations with --force."},{"line_number":799,"context_line":"           Assert the allocations match the flavor again"},{"line_number":800,"context_line":"        6. run heal allocations again."},{"line_number":801,"context_line":"           You should get rc\u003d4 back since nothing changed."},{"line_number":802,"context_line":"        \"\"\""},{"line_number":803,"context_line":"        # 1. Create server that we will forcefully heal specifically."},{"line_number":804,"context_line":"        server, rp_uuid \u003d self._boot_and_assert_no_allocations("}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_d718bb85","line":801,"range":{"start_line":791,"start_character":0,"end_line":801,"end_character":58},"updated":"2020-05-05 12:19:32.000000000","message":"nit: you don\u0027t really need this since you\u0027ve given comments inline (which is much better too)","commit_id":"e29d30f7b387f8b3ed81963b47238b4b7b720aaf"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a5250190a4b0b28aa61057e1837be3fe76a923a0","unresolved":false,"context_lines":[{"line_number":788,"context_line":"    def test_heal_allocations_force_allocation(self):"},{"line_number":789,"context_line":"        \"\"\"Tests the case that a specific instance allocations are"},{"line_number":790,"context_line":"        forcefully changed."},{"line_number":791,"context_line":"        1. create server without allocations"},{"line_number":792,"context_line":"        2. heal allocations without forcing them."},{"line_number":793,"context_line":"           Assert the allocations match the flavor"},{"line_number":794,"context_line":"        3. update the allocations to change MEMORY_MB to not match the flavor"},{"line_number":795,"context_line":"        4. run heal allocations without --force."},{"line_number":796,"context_line":"           Assert the allocations still have the bogus"},{"line_number":797,"context_line":"           MEMORY_MB value since they were not forcefully updated."},{"line_number":798,"context_line":"        5. run heal allocations with --force."},{"line_number":799,"context_line":"           Assert the allocations match the flavor again"},{"line_number":800,"context_line":"        6. run heal allocations again."},{"line_number":801,"context_line":"           You should get rc\u003d4 back since nothing changed."},{"line_number":802,"context_line":"        \"\"\""},{"line_number":803,"context_line":"        # 1. Create server that we will forcefully heal specifically."},{"line_number":804,"context_line":"        server, rp_uuid \u003d self._boot_and_assert_no_allocations("}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_32d64dc5","line":801,"range":{"start_line":791,"start_character":0,"end_line":801,"end_character":58},"in_reply_to":"1f493fa4_d718bb85","updated":"2020-05-05 12:55:46.000000000","message":"I asked for this - it\u0027s a nice overview of what the test does in a single place, makes it easier to grok than the step by step comments only. It came out of me wondering why we need this big complex test, and Jay pointing out that Matt R asked for it. Matt\u0027s comment was basically those steps, and helped me make sense of why this test needs to jump through all those hoops.","commit_id":"e29d30f7b387f8b3ed81963b47238b4b7b720aaf"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a5250190a4b0b28aa61057e1837be3fe76a923a0","unresolved":false,"context_lines":[{"line_number":855,"context_line":"        self.assertEqual(1024, allocs[\u0027MEMORY_MB\u0027])"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"        # call heal without force flag"},{"line_number":858,"context_line":"        # rc should be 4 since force flag was not used."},{"line_number":859,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":860,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027]"},{"line_number":861,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f493fa4_f2a2254b","line":858,"updated":"2020-05-05 12:55:46.000000000","message":"Oh, to answer my question on PS13 here, I guess it\u0027s to check that heal return 4 if we run it without force? But then why not do that in the paragraph under #4?","commit_id":"5d3774a759efb8eae8804c5b29dc5e748c332766"},{"author":{"_account_id":31733,"name":"jayaditya gupta","email":"jayadityagupta11@gmail.com","username":"jgupta"},"change_message_id":"485adaf1a5479d7e5ff2ac487995bd47d90fa2d9","unresolved":false,"context_lines":[{"line_number":855,"context_line":"        self.assertEqual(1024, allocs[\u0027MEMORY_MB\u0027])"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"        # call heal without force flag"},{"line_number":858,"context_line":"        # rc should be 4 since force flag was not used."},{"line_number":859,"context_line":"        result \u003d self.cli.heal_allocations("},{"line_number":860,"context_line":"            verbose\u003dTrue, instance_uuid\u003dserver[\u0027id\u0027]"},{"line_number":861,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f493fa4_7c4b7586","line":858,"in_reply_to":"1f493fa4_f2a2254b","updated":"2020-05-06 11:30:07.000000000","message":"Exactly, also to show that without force the allocations are not changed. They remain same. It\u0027s still part of step 4","commit_id":"5d3774a759efb8eae8804c5b29dc5e748c332766"}],"releasenotes/notes/force-heal-allocations-7834f3156be90c94.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e7bcec7f69c16a76f891351519e7516d2990449","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add ``--force`` option to the ``nova-manage placement heal_allocations``"},{"line_number":4,"context_line":"    to forcefully call heal allocation for a specific instance."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f4c43b2_c71a7f7b","line":4,"range":{"start_line":3,"start_character":27,"end_line":4,"end_character":38},"updated":"2020-04-18 13:15:53.000000000","message":"to the ``nova-manage...`` command to forcefully heal allocations for a specific...","commit_id":"d53ed8ad719c639e07d18500268bd1d8837d128e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ecc40ce83e38f9427081c957464e78033a00c176","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add ``--force`` option to the ``nova-manage placement heal_allocations``"},{"line_number":4,"context_line":"    command to forcefully call heal allocation for a specific instance."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1f493fa4_f717b750","line":4,"range":{"start_line":4,"start_character":26,"end_line":4,"end_character":30},"updated":"2020-05-05 12:19:32.000000000","message":"drop this","commit_id":"e29d30f7b387f8b3ed81963b47238b4b7b720aaf"}],"releasenotes/notes/overwrite-allocations-7834f3156be90c94.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add ``--overwrite`` option to the ``nova-manage placement heal_allocations``"},{"line_number":4,"context_line":"    to overwrite allocation for a specific instance."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"df33271e_e8179aa2","line":1,"updated":"2020-03-27 14:25:29.000000000","message":"You should also be updating the man page docs for the heal_allocations command when adding a new option.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add ``--overwrite`` option to the ``nova-manage placement heal_allocations``"},{"line_number":4,"context_line":"    to overwrite allocation for a specific instance."},{"line_number":5,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":3,"id":"df33271e_c8229600","line":3,"updated":"2020-03-27 14:25:29.000000000","message":"...to the ``...`` command to overwrite...","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"926dda2ff6cf86245656308210a600f5b367cd1c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add ``--overwrite`` option to the ``nova-manage placement heal_allocations``"},{"line_number":4,"context_line":"    to overwrite allocation for a specific instance."},{"line_number":5,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":3,"id":"df33271e_c849f6d0","line":5,"updated":"2020-03-27 14:25:29.000000000","message":"Remove this whitespace.","commit_id":"bed459ff35a9331eab869e74dc6b54ef40aa0554"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d9810e443b24c144d544657b33b78c25dba21fe4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add ``--overwrite`` option to the ``nova-manage placement heal_allocations``"},{"line_number":4,"context_line":"    to overwrite allocation for a specific instance."},{"line_number":5,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":6,"id":"df33271e_22df0cd7","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":4},"updated":"2020-04-07 09:47:06.000000000","message":"Whoops","commit_id":"5eb54750fa3418b7a2b9f6a6faa348d4a55bdbeb"}]}
