)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c824f4bac316a501ca4d3a9322299cfbdefeb45","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Thrivikram Mudunuri \u003cmthrivikram+opendev@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-10-28 19:56:58 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Switch server image create to SDK."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Switch the server image create command from novaclient to SDK."},{"line_number":10,"context_line":"Use the SDK versions of test fakes to support fake Server resources."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"801d531a_86f27a7f","line":7,"range":{"start_line":7,"start_character":33,"end_line":7,"end_character":34},"updated":"2021-11-03 10:43:22.000000000","message":"style nit: we don\u0027t typically end commit message summaries with periods","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"eca858a1eb41b013e8d0319a99cc94bdde404c7b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Thrivikram Mudunuri \u003cmthrivikram+opendev@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-10-28 19:56:58 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Switch server image create to SDK."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Switch the server image create command from novaclient to SDK."},{"line_number":10,"context_line":"Use the SDK versions of test fakes to support fake Server resources."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"d732d72f_bd91e6ee","line":7,"range":{"start_line":7,"start_character":33,"end_line":7,"end_character":34},"in_reply_to":"801d531a_86f27a7f","updated":"2021-11-13 04:48:21.000000000","message":"Done","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0b3fa50e50c0ff3294708f93dd456c861fcecaf1","unresolved":true,"context_lines":[{"line_number":12,"context_line":"we wait (--wait) for a server image to become active before returning,"},{"line_number":13,"context_line":"then we should probably return the final image. If we don\u0027t then"},{"line_number":14,"context_line":"the image can appear to be in a non-active state when"},{"line_number":15,"context_line":"it fact."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I83a403c035add9ab041ed6d59b5b29e42267f143"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"cc90fa52_dc9482bc","line":15,"updated":"2021-11-16 16:21:58.000000000","message":"It looks like you dropped some words here?\n\nAlso, it\u0027s not hugely important but the wrapping is kind of weird. Vim can wrap paragraphs for you if you select some text and type \u0027gq\u0027 in command mode (i.e. without pressing \u0027i\u0027 to go into insert mode). More here [1]\n\n[1] https://coderwall.com/p/qh5tag/vim-paragraph-formatting-to-wrap-at-80-characters","commit_id":"2832982d6db655dc6178c046e80da6573d01d2c3"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"cc140af8879e82081fdfb7c481085c3742f9a4f8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"we wait (--wait) for a server image to become active before returning,"},{"line_number":13,"context_line":"then we should probably return the final image. If we don\u0027t then"},{"line_number":14,"context_line":"the image can appear to be in a non-active state when"},{"line_number":15,"context_line":"it fact."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I83a403c035add9ab041ed6d59b5b29e42267f143"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"c65d6bcb_338afa20","line":15,"in_reply_to":"cc90fa52_dc9482bc","updated":"2021-11-16 21:43:37.000000000","message":"I intended to get a build to pass before \u0027replying\u0027 to your feedback. Looks like you were notified anyway. Also, I believe you meant we ought to wrap at 72 and not 80 char[1]. I\u0027ve been using Sublime and found an easy way to do this (Edit -\u003e Wrap -\u003e Wrap paragraph at 72 characters).\n\n[1]https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"2832982d6db655dc6178c046e80da6573d01d2c3"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"ef98c5e9885944774328ad51b0c665bc9d8c3948","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"36d10425_73709401","updated":"2021-10-28 22:23:06.000000000","message":"Hello team,\n\nHere\u0027s a commit to migrate `server create image` from novaclient to SDK.\nGleaned off all the feedback from prior work. I hope I got it all.\n\nRegards,\nThrivikram","commit_id":"8429dfaa79ef3d454f435f8213e2c724f5f74974"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c824f4bac316a501ca4d3a9322299cfbdefeb45","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b0ed18ef_d94a12ea","updated":"2021-11-03 10:43:22.000000000","message":"This isn\u0027t working currently. Notes inline, along with a few style comments (you can ignore these if you want, hence why they\u0027re prefixed with \"style nit\")","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"eca858a1eb41b013e8d0319a99cc94bdde404c7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"35b5fa4c_363e9a9d","updated":"2021-11-13 04:48:21.000000000","message":"Addressed feedback.","commit_id":"0367c4043e6980350f483c1378f42c609b976052"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4eca0cdf66640dc20d0232973571aca698f935bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"21cf3e32_98559310","updated":"2021-11-15 12:31:39.000000000","message":"There\u0027s a small TODO here but it\u0027s unrelated to your specific changes. This looks good to me now and \"Works on my Machine (TM)\"","commit_id":"0367c4043e6980350f483c1378f42c609b976052"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c2aa95c2983550d16efff6e821d8caeec0f356c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"889abbd7_64dfbfc3","updated":"2021-11-08 17:23:06.000000000","message":"recheck","commit_id":"0367c4043e6980350f483c1378f42c609b976052"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"cc140af8879e82081fdfb7c481085c3742f9a4f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9dd9a4c0_325070dd","in_reply_to":"21cf3e32_98559310","updated":"2021-11-16 21:43:37.000000000","message":"Done.","commit_id":"0367c4043e6980350f483c1378f42c609b976052"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0b3fa50e50c0ff3294708f93dd456c861fcecaf1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"25287c0f_b1ddfde6","updated":"2021-11-16 16:21:58.000000000","message":"Smallest of nits in the commit message","commit_id":"2832982d6db655dc6178c046e80da6573d01d2c3"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"cc140af8879e82081fdfb7c481085c3742f9a4f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e12e58c5_6ac7a321","updated":"2021-11-16 21:43:37.000000000","message":"Looking for one more review.","commit_id":"9acbd3e1052d533c1395eb59de4274170baed67b"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"7063bc66305041400ab50b12acba511ecd4de393","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"98b41abf_6f33ce45","updated":"2021-11-16 20:49:25.000000000","message":"recheck","commit_id":"9acbd3e1052d533c1395eb59de4274170baed67b"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"0b8b71649bc5befc91d0681a66b31e82011904f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f71370dd_b138b0fa","updated":"2021-11-16 18:10:26.000000000","message":"recheck","commit_id":"9acbd3e1052d533c1395eb59de4274170baed67b"}],"openstackclient/compute/v2/server_image.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c824f4bac316a501ca4d3a9322299cfbdefeb45","unresolved":true,"context_lines":[{"line_number":76,"context_line":"        compute_client \u003d self.app.client_manager.sdk_connection.compute"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        server \u003d compute_client.find_server(parsed_args.server,"},{"line_number":79,"context_line":"                                            ignore_missing\u003dFalse)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        if parsed_args.name:"},{"line_number":82,"context_line":"            image_name \u003d parsed_args.name"}],"source_content_type":"text/x-python","patch_set":3,"id":"a027c57a_740e56e2","line":79,"updated":"2021-11-03 10:43:22.000000000","message":"style nit:\n\n  server \u003d compute_client.find_server(\n      parsed_args.server, ignore_missing\u003dFalse,\n  )","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"eca858a1eb41b013e8d0319a99cc94bdde404c7b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        compute_client \u003d self.app.client_manager.sdk_connection.compute"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        server \u003d compute_client.find_server(parsed_args.server,"},{"line_number":79,"context_line":"                                            ignore_missing\u003dFalse)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        if parsed_args.name:"},{"line_number":82,"context_line":"            image_name \u003d parsed_args.name"}],"source_content_type":"text/x-python","patch_set":3,"id":"baf488a8_8c1b56f3","line":79,"in_reply_to":"a027c57a_740e56e2","updated":"2021-11-13 04:48:21.000000000","message":"Done","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c824f4bac316a501ca4d3a9322299cfbdefeb45","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            image_name \u003d server.name"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        image_id \u003d compute_client.create_server_image("},{"line_number":87,"context_line":"            server.id,"},{"line_number":88,"context_line":"            image_name,"},{"line_number":89,"context_line":"            parsed_args.properties,"}],"source_content_type":"text/x-python","patch_set":3,"id":"086d9de5_54cb99a3","line":86,"updated":"2021-11-03 10:43:22.000000000","message":"This variable is called \u0027image_id\u0027, but \u0027create_server_image\u0027 returns an Image object, not an ID. You need to either rename the variable or modify what you\u0027re saving to it","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"eca858a1eb41b013e8d0319a99cc94bdde404c7b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        else:"},{"line_number":84,"context_line":"            image_name \u003d server.name"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        image_id \u003d compute_client.create_server_image("},{"line_number":87,"context_line":"            server.id,"},{"line_number":88,"context_line":"            image_name,"},{"line_number":89,"context_line":"            parsed_args.properties,"}],"source_content_type":"text/x-python","patch_set":3,"id":"f59e0cf8_57692302","line":86,"in_reply_to":"086d9de5_54cb99a3","updated":"2021-11-13 04:48:21.000000000","message":"Done","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c824f4bac316a501ca4d3a9322299cfbdefeb45","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        )"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":93,"context_line":"        image \u003d image_client.find_image(image_id, ignore_missing\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if parsed_args.wait:"},{"line_number":96,"context_line":"            if utils.wait_for_status("}],"source_content_type":"text/x-python","patch_set":3,"id":"685ba5bf_8f583b25","line":93,"updated":"2021-11-03 10:43:22.000000000","message":"This is failing for me with the following error message:\n\n  $ openstack server image create dee08e72-e870-442a-b9ce-ed5df26b2b30                                                                                                                                               \n  No Image found for Munch({\u0027location\u0027: ..., \u0027minRam\u0027: 0})\n\nThis is because of the above. To be honest, I don\u0027t think we actually need this call anymore since \u0027create_server_image\u0027 returns an Image object but you should evaluate that by testing the command under various conditions (i.e. with and without different CLI flags)\n\nAs an aside, did you test this? Please test commands against your DevStack deployment or ensure you have functional tests in the gate to ensure obvious things like this don\u0027t slip through","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"eca858a1eb41b013e8d0319a99cc94bdde404c7b","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        )"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":93,"context_line":"        image \u003d image_client.find_image(image_id, ignore_missing\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if parsed_args.wait:"},{"line_number":96,"context_line":"            if utils.wait_for_status("}],"source_content_type":"text/x-python","patch_set":3,"id":"9e273791_30e7e27a","line":93,"in_reply_to":"685ba5bf_8f583b25","updated":"2021-11-13 04:48:21.000000000","message":"`create_server_image` is returning an object of type `\u003cclass \u0027munch.Munch\u0027\u003e`\nand `find_image` is returning an object of type `\u003cclass \u0027openstack.image.v2.image.Image\u0027\u003e`\nI\u0027m not sure what the distinction is and retained both the calls.\n\nI\u0027ve updated what is being saved to `image_id`.","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4eca0cdf66640dc20d0232973571aca698f935bc","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        )"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":93,"context_line":"        image \u003d image_client.find_image(image_id, ignore_missing\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if parsed_args.wait:"},{"line_number":96,"context_line":"            if utils.wait_for_status("}],"source_content_type":"text/x-python","patch_set":3,"id":"f5782da0_5e6aa406","line":93,"in_reply_to":"9e273791_30e7e27a","updated":"2021-11-15 12:31:39.000000000","message":"Ah, fair. The former is basically a dictionary wrapped up in a munch object, which allows you to do e.g.\n\n  image.id\n\nin addition to the standard\n\n  image[\u0027id\u0027]\n\nThere\u0027s more info on this topic here [1]. I guess the SDK should convert this to a proper Image object but that\u0027s not your problem.\n\n[1] https://github.com/Infinidat/munch","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"cc140af8879e82081fdfb7c481085c3742f9a4f8","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        )"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":93,"context_line":"        image \u003d image_client.find_image(image_id, ignore_missing\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if parsed_args.wait:"},{"line_number":96,"context_line":"            if utils.wait_for_status("}],"source_content_type":"text/x-python","patch_set":3,"id":"2a29d360_4200c86a","line":93,"in_reply_to":"f5782da0_5e6aa406","updated":"2021-11-16 21:43:37.000000000","message":"Ack. We decided to leave this as is after looking into what is being returned in both cases.","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4eca0cdf66640dc20d0232973571aca698f935bc","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            parsed_args.properties,"},{"line_number":91,"context_line":"        ).id"},{"line_number":92,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":93,"context_line":"        image \u003d image_client.find_image(image_id, ignore_missing\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if parsed_args.wait:"},{"line_number":96,"context_line":"            if utils.wait_for_status("}],"source_content_type":"text/x-python","patch_set":4,"id":"0c805cb4_91f39fab","line":93,"updated":"2021-11-15 12:31:39.000000000","message":"Ah, this is in the wrong place. It should be placed _after_ the potential wait call. If you don\u0027t do this, we fetch the image before the wait which means e.g. the status we show could be wrong (\u0027pending\u0027 instead of \u0027active\u0027).\n\nYou didn\u0027t break this so I\u0027m okay doing this as a follow-up.","commit_id":"0367c4043e6980350f483c1378f42c609b976052"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"aa5f89c657c7c9dec00c5f682779f5bbf627d6ea","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            parsed_args.properties,"},{"line_number":91,"context_line":"        ).id"},{"line_number":92,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":93,"context_line":"        image \u003d image_client.find_image(image_id, ignore_missing\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if parsed_args.wait:"},{"line_number":96,"context_line":"            if utils.wait_for_status("}],"source_content_type":"text/x-python","patch_set":4,"id":"aa6f1ccd_218ae38b","line":93,"in_reply_to":"0c805cb4_91f39fab","updated":"2021-11-15 12:32:32.000000000","message":"I posted a follow-up to address this [1]\n\n[1] https://review.opendev.org/c/openstack/python-openstackclient/+/817935/1","commit_id":"0367c4043e6980350f483c1378f42c609b976052"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"cc140af8879e82081fdfb7c481085c3742f9a4f8","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            parsed_args.properties,"},{"line_number":91,"context_line":"        ).id"},{"line_number":92,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":93,"context_line":"        image \u003d image_client.find_image(image_id, ignore_missing\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if parsed_args.wait:"},{"line_number":96,"context_line":"            if utils.wait_for_status("}],"source_content_type":"text/x-python","patch_set":4,"id":"85328141_6fb47e1e","line":93,"in_reply_to":"aa6f1ccd_218ae38b","updated":"2021-11-16 21:43:37.000000000","message":"I\u0027ve addressed this within the same patch for convenience (along with your commit summary).","commit_id":"0367c4043e6980350f483c1378f42c609b976052"}],"releasenotes/notes/migrate-create-server-image-to-sdk-e3d8077ffe05bb3d.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c824f4bac316a501ca4d3a9322299cfbdefeb45","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Migrate openstack server image create from novaclient to sdk."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ae2c8eb9_475e698b","line":4,"updated":"2021-11-03 10:43:22.000000000","message":"nit: You\u0027re missing a newline in this file. Not a big issue, but it\u0027s usually best practice to include one. Editors like vim will do so automatically if using the default configuration. More at [1]\n\n[1] https://thoughtbot.com/blog/no-newline-at-end-of-file","commit_id":"df2186e594e80556f89611690d60b2c400c34658"},{"author":{"_account_id":34045,"name":"Thrivikram Mudunuri","email":"mthrivikram+opendev@gmail.com","username":"tmudunuri"},"change_message_id":"eca858a1eb41b013e8d0319a99cc94bdde404c7b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Migrate openstack server image create from novaclient to sdk."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"f86fed20_c776bc76","line":4,"in_reply_to":"ae2c8eb9_475e698b","updated":"2021-11-13 04:48:21.000000000","message":"Done","commit_id":"df2186e594e80556f89611690d60b2c400c34658"}]}
