)]}'
{"glance/async/flows/api_image_import.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"825d68226a60bff50ac43f9b3a1e144650ac6222","unresolved":false,"context_lines":[{"line_number":369,"context_line":"    flow \u003d lf.Flow(task_type, retry\u003dretry.AlwaysRevert())"},{"line_number":370,"context_line":"    flow.add(_VerifyStaging(task_id, task_type, task_repo, uri))"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    for plugin in import_plugins.get_import_plugins(**kwargs):"},{"line_number":373,"context_line":"        flow.add(plugin)"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    import_to_store \u003d _ImportToStore(task_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_1339c0d5","line":372,"range":{"start_line":372,"start_character":33,"end_line":372,"end_character":51},"updated":"2017-12-19 10:52:06.000000000","message":"this should be _get_import_plugins","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1ddd770fe4dce18a19a9112bc8d0f7575fc6a294","unresolved":false,"context_lines":[{"line_number":66,"context_line":"\"\"\")),"},{"line_number":67,"context_line":"]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"CONF.register_opts(api_import_opts, group\u003d\u0027image_import_opts\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"# TODO(jokke): We should refactor the task implementations so that we do not"},{"line_number":72,"context_line":"# need to duplicate what we have already for example in base_import.py."}],"source_content_type":"text/x-python","patch_set":11,"id":"9f91af0f_f06e69c7","line":69,"range":{"start_line":69,"start_character":36,"end_line":69,"end_character":61},"updated":"2018-01-10 03:18:02.000000000","message":"Not sure these need to go into a group given that they\u0027re the general image import options and they\u0027ll be in their own file.","commit_id":"1231fb5f6e24d21bb0dee338c22d319915325620"}],"glance/async/flows/plugins/__init__.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"825d68226a60bff50ac43f9b3a1e144650ac6222","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def _get_import_plugins(**kwargs):"},{"line_number":24,"context_line":"    task_list \u003d CONF.image_import_opts.image_import_plugins"},{"line_number":25,"context_line":"    extensions \u003d named.NamedExtensionManager(\u0027glance.async.flows.plugins\u0027,"},{"line_number":26,"context_line":"                                             names\u003dtask_list,"},{"line_number":27,"context_line":"                                             name_order\u003dTrue,"},{"line_number":28,"context_line":"                                             invoke_on_load\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_d343583e","line":25,"range":{"start_line":25,"start_character":46,"end_line":25,"end_character":73},"updated":"2017-12-19 10:52:06.000000000","message":"it is required to add in setup.cfg otherwise it will never load the plugin.\n\nReference:\nhttps://github.com/openstack/glance/blob/master/setup.cfg#L69","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"}],"glance/async/flows/plugins/no-op.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"825d68226a60bff50ac43f9b3a1e144650ac6222","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_config import cfg"},{"line_number":17,"context_line":"from oslo_log import log as logging"},{"line_number":18,"context_line":"from taskflow.patterns import linear_flow as lf"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_33a164f8","line":15,"updated":"2017-12-19 10:52:06.000000000","message":"The module name should be no_op and no-op otherwise it will fail while starting the service with error \n\nValueError: (\"EntryPoint must be in \u0027name\u003dmodule:attrs [extras]\u0027 format\", \u0027no-op\u003dglance.async.flows.plugins.no-op:get_flow\u0027)","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"825d68226a60bff50ac43f9b3a1e144650ac6222","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(_Noop, self).__init__("},{"line_number":33,"context_line":"            name\u003d\u0027%s-Noop-%s\u0027 % (task_type, task_id))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def execute(self, image_id, file_path):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        LOG.debug(\"No-op import plugin\")"},{"line_number":38,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_d3b11846","line":35,"range":{"start_line":35,"start_character":20,"end_line":35,"end_character":41},"updated":"2017-12-19 10:52:06.000000000","message":"no need of this values as they are unused.","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"96f9cb00e1b3c38669e53ffee82cc3bd4ab9c619","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(_Noop, self).__init__("},{"line_number":33,"context_line":"            name\u003d\u0027%s-Noop-%s\u0027 % (task_type, task_id))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def execute(self, image_id, file_path):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        LOG.debug(\"No-op import plugin\")"},{"line_number":38,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_5ccd15b5","line":35,"range":{"start_line":35,"start_character":20,"end_line":35,"end_character":41},"in_reply_to":"df87a7cf_d3b11846","updated":"2017-12-19 13:08:22.000000000","message":"yeah, I change it to **kwargs as indeed we do not specifically need those","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"825d68226a60bff50ac43f9b3a1e144650ac6222","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        LOG.debug(\"No-op import plugin\")"},{"line_number":38,"context_line":"        return"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def revert(self, image_id, result\u003dNone, **kwargs):"},{"line_number":41,"context_line":"        # NOTE(flaper87): If result is None, it probably"},{"line_number":42,"context_line":"        # means this task failed. Otherwise, we would have"},{"line_number":43,"context_line":"        # a result from its execution."}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_7384cc5e","line":40,"range":{"start_line":40,"start_character":21,"end_line":40,"end_character":30},"updated":"2017-12-19 10:52:06.000000000","message":"ditto","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"}],"glance/async/flows/plugins/no_op.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f99a7db4c032cffd7b0339f224566198f2f3e247","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def execute(self, **kwargs):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        LOG.debug(\"No_op import plugin\")"},{"line_number":38,"context_line":"        return"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def revert(self, result\u003dNone, **kwargs):"},{"line_number":41,"context_line":"        # NOTE(flaper87): If result is None, it probably"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf8cb3f7_bb1399b8","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":14},"updated":"2017-12-21 04:04:23.000000000","message":"No need of this :)","commit_id":"b96391db3eed89e126ddce5de096d022af241ec2"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f99a7db4c032cffd7b0339f224566198f2f3e247","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        # a result from its execution."},{"line_number":44,"context_line":"        if result is not None:"},{"line_number":45,"context_line":"            LOG.debug(\"No_op import plugin failed\")"},{"line_number":46,"context_line":"            return"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def get_flow(**kwargs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf8cb3f7_7b0d118f","line":46,"range":{"start_line":46,"start_character":13,"end_line":46,"end_character":18},"updated":"2017-12-21 04:04:23.000000000","message":"ditto","commit_id":"b96391db3eed89e126ddce5de096d022af241ec2"}],"glance/opts.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3c43197b6c72ec5eddd21cd9d9ba6aa0fdc123f4","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"import glance.api.middleware.context"},{"line_number":30,"context_line":"import glance.api.versions"},{"line_number":31,"context_line":"import glance.async.flows.convert"},{"line_number":32,"context_line":"import glance.async.taskflow_executor"},{"line_number":33,"context_line":"import glance.common.config"},{"line_number":34,"context_line":"import glance.common.location_strategy"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_cd43b53e","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":33},"updated":"2017-12-19 09:31:10.000000000","message":"you need to import \u0027glance.async.flows.api_image_import\u0027 here to avoid zuul failure.\n\nBut after that docs is failing with error,\nWarning, treated as error:\n/opt/stack/glance/doc/source/contributor/api/glance.async.flows.plugins.no-op.rst:4:invalid signature for automodule (u\u0027glance.async.flows.plugins.no-op\u0027)","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"96f9cb00e1b3c38669e53ffee82cc3bd4ab9c619","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"import glance.api.middleware.context"},{"line_number":30,"context_line":"import glance.api.versions"},{"line_number":31,"context_line":"import glance.async.flows.convert"},{"line_number":32,"context_line":"import glance.async.taskflow_executor"},{"line_number":33,"context_line":"import glance.common.config"},{"line_number":34,"context_line":"import glance.common.location_strategy"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_fcdc2975","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":33},"in_reply_to":"df87a7cf_cd43b53e","updated":"2017-12-19 13:08:22.000000000","message":"Thanks! I was banging my head agaist the wall a lot due to this and wondering what did I miss. fortunately it was a simple import!","commit_id":"6e2d19ca9e2db2f5df68551055253ca6df09903d"},{"author":{"_account_id":20182,"name":"Bhagyashri Shewale","email":"bshewale@redhat.com","username":"bhagyashris"},"change_message_id":"47b1bb09054e781c970af9c6ce1704caf8bd76dc","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    (None, [])"},{"line_number":111,"context_line":"]"},{"line_number":112,"context_line":"_image_import_opts \u003d ["},{"line_number":113,"context_line":"    (\u0027image_import_opts\u0027, glance.async.flows.api_image_import.api_import_opts)"},{"line_number":114,"context_line":"]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_419ffe4f","line":113,"range":{"start_line":113,"start_character":5,"end_line":113,"end_character":24},"updated":"2017-12-21 06:32:03.000000000","message":"Hi Erno,\n\nI have made this change to generate etc/glance-image-import.conf.sample file successfuly including this group name and \u0027image_import_plugins\u0027 parameter\nFor reference please refer: https://review.openstack.org/#/c/527635/4/etc/glance-image-import.conf.sample\n\nIf we don\u0027t make this changes or if keep the change like https://review.openstack.org/#/c/528754/6/glance/opts.py then it\u0027s given error (as below) to generate the sample glance-image-import.conf after tox -e genconfig\n\nError:\n\ngenconfig runtests: commands[5] | oslo-config-generator --config-file etc/oslo-config-generator/glance-image-import.conf\nTraceback (most recent call last):\n  File \"/opt/stack/glance/.tox/genconfig/bin/oslo-config-generator\", line 11, in \u003cmodule\u003e\n    sys.exit(main())\n  File \"/opt/stack/glance/.tox/genconfig/local/lib/python2.7/site-packages/oslo_config/generator.py\", line 758, in main\n    generate(conf)\n  File \"/opt/stack/glance/.tox/genconfig/local/lib/python2.7/site-packages/oslo_config/generator.py\", line 719, in generate\n    groups \u003d _get_groups(_list_opts(conf.namespace))\n  File \"/opt/stack/glance/.tox/genconfig/local/lib/python2.7/site-packages/oslo_config/generator.py\", line 482, in _list_opts\n    for group, group_opts in loader():\n  File \"/opt/stack/glance/glance/opts.py\", line 165, in list_image_import_opts\n    return [g. copy.deepcopy(o) for g, o in _image_import_opts]\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027copy\u0027","commit_id":"5e6d56e1dbf3cc3de2d4bc97501169d7920c4972"},{"author":{"_account_id":20182,"name":"Bhagyashri Shewale","email":"bshewale@redhat.com","username":"bhagyashris"},"change_message_id":"47b1bb09054e781c970af9c6ce1704caf8bd76dc","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def list_image_import_opts():"},{"line_number":164,"context_line":"    \"\"\"Return a list of oslo_config options available for Image Import\"\"\""},{"line_number":165,"context_line":"    return [(g, copy.deepcopy(o)) for g, o in _image_import_opts]"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_a1b7ead8","line":165,"range":{"start_line":165,"start_character":12,"end_line":165,"end_character":33},"updated":"2017-12-21 06:32:03.000000000","message":"Same reason as mention above to this make change.","commit_id":"5e6d56e1dbf3cc3de2d4bc97501169d7920c4972"},{"author":{"_account_id":20182,"name":"Bhagyashri Shewale","email":"bshewale@redhat.com","username":"bhagyashris"},"change_message_id":"5ab26d3cba5088f08f126321fbba93d754bc81a1","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    (None, [])"},{"line_number":111,"context_line":"]"},{"line_number":112,"context_line":"_image_import_opts \u003d ["},{"line_number":113,"context_line":"    (\u0027image_import_plugins\u0027, glance.async.flows.api_image_import.api_import_opts)"},{"line_number":114,"context_line":"]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf8cb3f7_6d73fe81","line":113,"range":{"start_line":113,"start_character":6,"end_line":113,"end_character":26},"updated":"2017-12-22 04:11:53.000000000","message":"Hi Erno, This should be the group name \u0027image_import_opts\u0027 that we have given while registering the opts at (https://review.openstack.org/#/c/528754/8/glance/async/flows/api_image_import.py).\n\nJust checked why pep8 is failing? \nReason : ./glance/opts.py:113:80: E501 line too long (81 \u003e 79 characters)","commit_id":"b07a8058f097895a8b13ea981c96fe4b286365ef"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"fa457fff9ecfed6c66c4bda91402ebf4f5abeb53","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    (None, [])"},{"line_number":111,"context_line":"]"},{"line_number":112,"context_line":"_image_import_opts \u003d ["},{"line_number":113,"context_line":"    (\u0027image_import_plugins\u0027, glance.async.flows.api_image_import.api_import_opts)"},{"line_number":114,"context_line":"]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf8cb3f7_3440da56","line":113,"range":{"start_line":113,"start_character":6,"end_line":113,"end_character":26},"in_reply_to":"bf8cb3f7_6d73fe81","updated":"2017-12-22 12:19:05.000000000","message":"ofc, thanks. Don\u0027t know what I was thinking when typing that ;)","commit_id":"b07a8058f097895a8b13ea981c96fe4b286365ef"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1ddd770fe4dce18a19a9112bc8d0f7575fc6a294","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    (None, [])"},{"line_number":111,"context_line":"]"},{"line_number":112,"context_line":"_image_import_opts \u003d ["},{"line_number":113,"context_line":"    (\u0027image_import_opts\u0027, glance.async.flows.api_image_import.api_import_opts)"},{"line_number":114,"context_line":"]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9f91af0f_10598d33","line":113,"range":{"start_line":113,"start_character":6,"end_line":113,"end_character":23},"updated":"2018-01-10 03:18:02.000000000","message":"Do we want these is a group, or should they just show up in the [DEFAULT] section (since they\u0027re going into their own file)?","commit_id":"1231fb5f6e24d21bb0dee338c22d319915325620"}]}
