)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6042ad9d622a634ac2dad0a33fe965f46f452443","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-06-02 14:15:23 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add share notifications"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patchset adds notifications to share operations"},{"line_number":10,"context_line":"in manila."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"df140735_3cb92214","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":9},"updated":"2017-06-05 18:34:11.000000000","message":"create/delete share","commit_id":"5ae3bd3e82c78f8cfa6ad93d52dae0cc7e7343e3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6042ad9d622a634ac2dad0a33fe965f46f452443","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add share notifications"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patchset adds notifications to share operations"},{"line_number":10,"context_line":"in manila."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"blueprint ceilometer-integration"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"df140735_9cc82ea6","line":10,"updated":"2017-06-05 18:34:11.000000000","message":"Please specify that this patch adds notifications for create/delete share.  Other notifications planned in the spec will be added in later patches.","commit_id":"5ae3bd3e82c78f8cfa6ad93d52dae0cc7e7343e3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6042ad9d622a634ac2dad0a33fe965f46f452443","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patchset adds notifications to share operations"},{"line_number":10,"context_line":"in manila."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"blueprint ceilometer-integration"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I48324cf45536392576a2c29734b8f62a1f5676c9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"df140735_5ce5f636","line":12,"updated":"2017-06-05 18:34:11.000000000","message":"Should be \"Partially-Implements: blueprint xxxx\".","commit_id":"5ae3bd3e82c78f8cfa6ad93d52dae0cc7e7343e3"}],"manila/share/manager.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ec2b217a47ddf70b51d07483a23bd30f818a0a37","unresolved":false,"context_lines":[{"line_number":1547,"context_line":"        context \u003d context.elevated()"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":1550,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027, None)"},{"line_number":1551,"context_line":"        share_network_id \u003d share_instance.get(\u0027share_network_id\u0027, None)"},{"line_number":1552,"context_line":""},{"line_number":1553,"context_line":"        share \u003d self.db.share_get(context, share_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_297a7487","line":1550,"range":{"start_line":1550,"start_character":8,"end_line":1550,"end_character":55},"updated":"2017-06-01 03:24:50.000000000","message":"The default value is None. s/ share_instance.get(\u0027share_id\u0027, None)/share_instance.get(\u0027share_id\u0027)","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"577d5d327b424649ef2e41f331f5c0882e39893c","unresolved":false,"context_lines":[{"line_number":1547,"context_line":"        context \u003d context.elevated()"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":1550,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027, None)"},{"line_number":1551,"context_line":"        share_network_id \u003d share_instance.get(\u0027share_network_id\u0027, None)"},{"line_number":1552,"context_line":""},{"line_number":1553,"context_line":"        share \u003d self.db.share_get(context, share_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_5909e42e","line":1550,"range":{"start_line":1550,"start_character":8,"end_line":1550,"end_character":55},"in_reply_to":"df140735_297a7487","updated":"2017-06-01 18:14:34.000000000","message":"+1","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ec2b217a47ddf70b51d07483a23bd30f818a0a37","unresolved":false,"context_lines":[{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":1550,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027, None)"},{"line_number":1551,"context_line":"        share_network_id \u003d share_instance.get(\u0027share_network_id\u0027, None)"},{"line_number":1552,"context_line":""},{"line_number":1553,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":1554,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_e9735cb0","line":1551,"range":{"start_line":1551,"start_character":45,"end_line":1551,"end_character":71},"updated":"2017-06-01 03:24:50.000000000","message":"above","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"577d5d327b424649ef2e41f331f5c0882e39893c","unresolved":false,"context_lines":[{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":1550,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027, None)"},{"line_number":1551,"context_line":"        share_network_id \u003d share_instance.get(\u0027share_network_id\u0027, None)"},{"line_number":1552,"context_line":""},{"line_number":1553,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":1554,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_19036c11","line":1551,"range":{"start_line":1551,"start_character":45,"end_line":1551,"end_character":71},"in_reply_to":"df140735_e9735cb0","updated":"2017-06-01 18:14:34.000000000","message":"+1","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ec2b217a47ddf70b51d07483a23bd30f818a0a37","unresolved":false,"context_lines":[{"line_number":2548,"context_line":"        \"\"\"Delete a share instance.\"\"\""},{"line_number":2549,"context_line":"        context \u003d context.elevated()"},{"line_number":2550,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":2551,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027, None)"},{"line_number":2552,"context_line":"        share_server \u003d self._get_share_server(context, share_instance)"},{"line_number":2553,"context_line":""},{"line_number":2554,"context_line":"        share \u003d self.db.share_get(context, share_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_292cb497","line":2551,"range":{"start_line":2551,"start_character":19,"end_line":2551,"end_character":55},"updated":"2017-06-01 03:24:50.000000000","message":"The default value is None. s/ share_instance.get(\u0027share_id\u0027, None)/share_instance.get(\u0027share_id\u0027)","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"577d5d327b424649ef2e41f331f5c0882e39893c","unresolved":false,"context_lines":[{"line_number":2548,"context_line":"        \"\"\"Delete a share instance.\"\"\""},{"line_number":2549,"context_line":"        context \u003d context.elevated()"},{"line_number":2550,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":2551,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027, None)"},{"line_number":2552,"context_line":"        share_server \u003d self._get_share_server(context, share_instance)"},{"line_number":2553,"context_line":""},{"line_number":2554,"context_line":"        share \u003d self.db.share_get(context, share_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_c9052113","line":2551,"range":{"start_line":2551,"start_character":19,"end_line":2551,"end_character":55},"in_reply_to":"df140735_292cb497","updated":"2017-06-01 18:14:34.000000000","message":"+1","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"934a21bdb4b1e605387bfaed3a2142b85a818326","unresolved":false,"context_lines":[{"line_number":1551,"context_line":"        share_network_id \u003d share_instance.get(\u0027share_network_id\u0027)"},{"line_number":1552,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"        extra_kw \u003d {\u0027created_at\u0027: share[\u0027created_at\u0027] or timeutils.utcnow}"},{"line_number":1555,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":1556,"context_line":"                                       share_instance, \"create.start\","},{"line_number":1557,"context_line":"                                       extra_kw)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df140735_c7457d45","line":1554,"range":{"start_line":1554,"start_character":57,"end_line":1554,"end_character":73},"updated":"2017-06-07 02:10:32.000000000","message":"timeutils.utcnow or timeutils.utcnow()?\n\nI see that you using timeutils.utcnow() at line 2561","commit_id":"dabab1bd3aba04751ca784d485d6a8384623a7a0"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"a5d2abede2f886e518f92394ff6fed3e1e026849","unresolved":false,"context_lines":[{"line_number":1551,"context_line":"        share_network_id \u003d share_instance.get(\u0027share_network_id\u0027)"},{"line_number":1552,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"        extra_kw \u003d {\u0027created_at\u0027: share[\u0027created_at\u0027] or timeutils.utcnow}"},{"line_number":1555,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":1556,"context_line":"                                       share_instance, \"create.start\","},{"line_number":1557,"context_line":"                                       extra_kw)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df140735_2803ca11","line":1554,"range":{"start_line":1554,"start_character":57,"end_line":1554,"end_character":73},"in_reply_to":"df140735_c7457d45","updated":"2017-06-07 20:00:54.000000000","message":"Done","commit_id":"dabab1bd3aba04751ca784d485d6a8384623a7a0"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"8237df8fc4a31cf79ab579bc9f644fd48c178c8b","unresolved":false,"context_lines":[{"line_number":1552,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"        extra_kw \u003d {\u0027created_at\u0027: share[\u0027created_at\u0027] or timeutils.utcnow}"},{"line_number":1555,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":1556,"context_line":"                                       share_instance, \"create.start\","},{"line_number":1557,"context_line":"                                       extra_kw)"},{"line_number":1558,"context_line":""},{"line_number":1559,"context_line":"        if not share_instance[\u0027availability_zone\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"df140735_6781104b","line":1556,"range":{"start_line":1555,"start_character":48,"end_line":1556,"end_character":54},"updated":"2017-06-07 02:52:47.000000000","message":"In code line 1549. We can get share instance info with share info from _get_share_instance. Because we always set with_share_data to true. Please take a look: self.db.share_instance_get(context, id, with_share_data\u003dTrue). So we could not need to get share (code line 1552) again, and only set one parameter(such as: share_info) in _notify_about_share_usage and notify_about_share_usage.","commit_id":"dabab1bd3aba04751ca784d485d6a8384623a7a0"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"a5d2abede2f886e518f92394ff6fed3e1e026849","unresolved":false,"context_lines":[{"line_number":1552,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"        extra_kw \u003d {\u0027created_at\u0027: share[\u0027created_at\u0027] or timeutils.utcnow}"},{"line_number":1555,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":1556,"context_line":"                                       share_instance, \"create.start\","},{"line_number":1557,"context_line":"                                       extra_kw)"},{"line_number":1558,"context_line":""},{"line_number":1559,"context_line":"        if not share_instance[\u0027availability_zone\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"df140735_0688f61c","line":1556,"range":{"start_line":1555,"start_character":48,"end_line":1556,"end_character":54},"in_reply_to":"df140735_6781104b","updated":"2017-06-07 20:00:54.000000000","message":"Good catch! I\u0027m not sure if all the fields in the DB for shares are retrieved. I checked out the code and it looks like it should behave like that, but I\u0027m not getting fields such as user_id. I\u0027ll keep debugging this.","commit_id":"dabab1bd3aba04751ca784d485d6a8384623a7a0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ba8fd5a530702b57886d573c136b8c490519f3e1","unresolved":false,"context_lines":[{"line_number":1551,"context_line":"        share_network_id \u003d share_instance.get(\u0027share_network_id\u0027)"},{"line_number":1552,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":1553,"context_line":""},{"line_number":1554,"context_line":"        extra_kw \u003d {\u0027created_at\u0027: share[\u0027created_at\u0027] or timeutils.utcnow()}"},{"line_number":1555,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":1556,"context_line":"                                       share_instance, \"create.start\","},{"line_number":1557,"context_line":"                                       extra_kw)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f231b9d_d1663cee","line":1554,"range":{"start_line":1554,"start_character":8,"end_line":1554,"end_character":76},"updated":"2017-06-12 15:01:58.000000000","message":"This seems unnecessary as a share will always have a created_at field.","commit_id":"72db52701f363b3b0ddce558290e0c08e3c162aa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ba8fd5a530702b57886d573c136b8c490519f3e1","unresolved":false,"context_lines":[{"line_number":1656,"context_line":""},{"line_number":1657,"context_line":"            self.db.share_instance_update(context, share_instance_id, updates)"},{"line_number":1658,"context_line":""},{"line_number":1659,"context_line":"            extra_kw \u003d {\u0027created_at\u0027: share[\u0027created_at\u0027]}"},{"line_number":1660,"context_line":"            self._notify_about_share_usage(context, share,"},{"line_number":1661,"context_line":"                                           share_instance, \"create.end\","},{"line_number":1662,"context_line":"                                           extra_kw)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f231b9d_317e906b","line":1659,"range":{"start_line":1659,"start_character":12,"end_line":1659,"end_character":58},"updated":"2017-06-12 15:01:58.000000000","message":"Same here.  If you pass in share, there\u0027s no need to pass this field of share in extra_kw.","commit_id":"72db52701f363b3b0ddce558290e0c08e3c162aa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ba8fd5a530702b57886d573c136b8c490519f3e1","unresolved":false,"context_lines":[{"line_number":2558,"context_line":"        share_server \u003d self._get_share_server(context, share_instance)"},{"line_number":2559,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":2560,"context_line":""},{"line_number":2561,"context_line":"        extra_kw \u003d {\u0027deleted_at\u0027: share[\u0027deleted_at\u0027] or timeutils.utcnow()}"},{"line_number":2562,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":2563,"context_line":"                                       share_instance, \"delete.start\","},{"line_number":2564,"context_line":"                                       extra_kw)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f231b9d_918e8476","line":2561,"updated":"2017-06-12 15:01:58.000000000","message":"Same comment here.","commit_id":"72db52701f363b3b0ddce558290e0c08e3c162aa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ba8fd5a530702b57886d573c136b8c490519f3e1","unresolved":false,"context_lines":[{"line_number":2615,"context_line":""},{"line_number":2616,"context_line":"        self._check_delete_share_server(context, share_instance)"},{"line_number":2617,"context_line":""},{"line_number":2618,"context_line":"        extra_kw \u003d {\u0027deleted_at\u0027: share[\u0027deleted_at\u0027]}"},{"line_number":2619,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":2620,"context_line":"                                       share_instance, \"delete.end\","},{"line_number":2621,"context_line":"                                       extra_kw)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f231b9d_31f3300d","line":2618,"updated":"2017-06-12 15:01:58.000000000","message":"Same","commit_id":"72db52701f363b3b0ddce558290e0c08e3c162aa"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"eb68bffc1411e58241edb98b8c3edffb6eca3523","unresolved":false,"context_lines":[{"line_number":1644,"context_line":"        else:"},{"line_number":1645,"context_line":"            LOG.info(\"Share instance %s created successfully.\","},{"line_number":1646,"context_line":"                     share_instance_id)"},{"line_number":1647,"context_line":"            share \u003d self.db.share_get(context, share_instance[\u0027share_id\u0027])"},{"line_number":1648,"context_line":"            updates \u003d {"},{"line_number":1649,"context_line":"                \u0027status\u0027: constants.STATUS_AVAILABLE,"},{"line_number":1650,"context_line":"                \u0027launched_at\u0027: timeutils.utcnow(),"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f201791_29070385","line":1647,"updated":"2017-06-23 17:34:28.000000000","message":"This can be removed because you get the share already in line 1552 now. Or am I missing something?","commit_id":"cd2f411ad2e2c038d3096f7d5fe53ad47692394f"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"096b990093ec711b571247c3fed1061d3564aa64","unresolved":false,"context_lines":[{"line_number":1644,"context_line":"        else:"},{"line_number":1645,"context_line":"            LOG.info(\"Share instance %s created successfully.\","},{"line_number":1646,"context_line":"                     share_instance_id)"},{"line_number":1647,"context_line":"            share \u003d self.db.share_get(context, share_instance[\u0027share_id\u0027])"},{"line_number":1648,"context_line":"            updates \u003d {"},{"line_number":1649,"context_line":"                \u0027status\u0027: constants.STATUS_AVAILABLE,"},{"line_number":1650,"context_line":"                \u0027launched_at\u0027: timeutils.utcnow(),"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f201791_cf47454c","line":1647,"in_reply_to":"5f201791_18001201","updated":"2017-06-26 17:02:43.000000000","message":"Yes, you are right. I think it\u0027s safe enough to remove this line.","commit_id":"cd2f411ad2e2c038d3096f7d5fe53ad47692394f"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9d1a61c1e3b7889d95a39ac85622b47c816595bb","unresolved":false,"context_lines":[{"line_number":1644,"context_line":"        else:"},{"line_number":1645,"context_line":"            LOG.info(\"Share instance %s created successfully.\","},{"line_number":1646,"context_line":"                     share_instance_id)"},{"line_number":1647,"context_line":"            share \u003d self.db.share_get(context, share_instance[\u0027share_id\u0027])"},{"line_number":1648,"context_line":"            updates \u003d {"},{"line_number":1649,"context_line":"                \u0027status\u0027: constants.STATUS_AVAILABLE,"},{"line_number":1650,"context_line":"                \u0027launched_at\u0027: timeutils.utcnow(),"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f201791_18001201","line":1647,"in_reply_to":"5f201791_29070385","updated":"2017-06-23 18:29:39.000000000","message":"I think that\u0027s right: although share_instance is updated in between those lines this field isn\u0027t changed (and really never should be).","commit_id":"cd2f411ad2e2c038d3096f7d5fe53ad47692394f"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"80d03e2004fb580ee928670cc38fb281dc613e33","unresolved":false,"context_lines":[{"line_number":2553,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":2554,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027)"},{"line_number":2555,"context_line":"        share_server \u003d self._get_share_server(context, share_instance)"},{"line_number":2556,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":2557,"context_line":""},{"line_number":2558,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":2559,"context_line":"                                       share_instance, \"delete.start\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_c4b1dfe3","line":2556,"range":{"start_line":2556,"start_character":8,"end_line":2556,"end_character":52},"updated":"2017-06-30 09:28:58.000000000","message":"In case notification is disabled we do redundant DB call here. Better to delegate it to \"notify\" logic providing there share ID, not share object.","commit_id":"5bb153399b32ea208abed5701caff4795cbff11c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"0503ae59c2bf368f11a8425a5291c76462538009","unresolved":false,"context_lines":[{"line_number":2553,"context_line":"        share_instance \u003d self._get_share_instance(context, share_instance_id)"},{"line_number":2554,"context_line":"        share_id \u003d share_instance.get(\u0027share_id\u0027)"},{"line_number":2555,"context_line":"        share_server \u003d self._get_share_server(context, share_instance)"},{"line_number":2556,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":2557,"context_line":""},{"line_number":2558,"context_line":"        self._notify_about_share_usage(context, share,"},{"line_number":2559,"context_line":"                                       share_instance, \"delete.start\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_74873663","line":2556,"range":{"start_line":2556,"start_character":8,"end_line":2556,"end_character":52},"in_reply_to":"3f1d235d_c4b1dfe3","updated":"2017-07-02 18:30:16.000000000","message":"Done","commit_id":"5bb153399b32ea208abed5701caff4795cbff11c"}],"manila/share/utils.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0d68b566e61a445f5827d8e0c661d6f15d7b6148","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    share_status \u003d share_ref[\u0027status\u0027]"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    usage_info \u003d dict("},{"line_number":136,"context_line":"        links\u003dshare_ref[\u0027links\u0027],"},{"line_number":137,"context_line":"        availability_zone\u003dshare_ref[\u0027availability_zone\u0027],"},{"line_number":138,"context_line":"        share_network_id\u003dshare_ref[\u0027share_network_id\u0027],"},{"line_number":139,"context_line":"        export_locations\u003dshare_ref[\u0027export_locations\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff0f0b1f_29af922a","line":136,"range":{"start_line":136,"start_character":14,"end_line":136,"end_character":32},"updated":"2017-05-25 02:53:27.000000000","message":"The \u0027links\u0027 value is not exist in share_ref. It is better to use share_ref.get(\u0027links\u0027)","commit_id":"0eaeb3e148d94ba382fc194ade98175a096d1138"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0d68b566e61a445f5827d8e0c661d6f15d7b6148","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        export_locations\u003dshare_ref[\u0027export_locations\u0027],"},{"line_number":140,"context_line":"        share_server_id\u003dshare_ref[\u0027share_server_id\u0027],"},{"line_number":141,"context_line":"        snapshot_id\u003dshare_ref[\u0027snapshot_id\u0027],"},{"line_number":142,"context_line":"        share_id\u003dshare_ref[\u0027id\u0027],"},{"line_number":143,"context_line":"        size\u003dshare_ref[\u0027size\u0027],"},{"line_number":144,"context_line":"        share_type\u003dshare_ref[\u0027share_type\u0027],"},{"line_number":145,"context_line":"        share_type_name\u003dshare_ref[\u0027share_type_name\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff0f0b1f_c965b61f","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":33},"updated":"2017-05-25 02:53:27.000000000","message":"In self._notify_about_share_usage(context, share_instance, \"create.start\")(https://review.openstack.org/#/c/466586/3/manila/share/manager.py)\nThe share_ref[\u0027id\u0027] is share instance id.\n\nThe share id is share_instance[\u0027share_id\u0027](share_ref[\u0027share_id\u0027]).","commit_id":"0eaeb3e148d94ba382fc194ade98175a096d1138"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0d68b566e61a445f5827d8e0c661d6f15d7b6148","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        metadata\u003dshare_ref.get(\u0027metadata\u0027),"},{"line_number":150,"context_line":"        status\u003dshare_status,"},{"line_number":151,"context_line":"        description\u003dshare_ref.get(\u0027description\u0027),"},{"line_number":152,"context_line":"        host\u003dshare_ref[\u0027host\u0027],"},{"line_number":153,"context_line":"        access_rules_status\u003dshare_ref.get(\u0027access_rules_status\u0027),"},{"line_number":154,"context_line":"        has_replicas\u003dshare_ref.get(\u0027has_replicas\u0027),"},{"line_number":155,"context_line":"        replication_type\u003dshare_ref.get(\u0027replication_type\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff0f0b1f_492766cb","line":152,"range":{"start_line":152,"start_character":13,"end_line":152,"end_character":30},"updated":"2017-05-25 02:53:27.000000000","message":"Better to use get instead of share_ref[\u0027host\u0027].","commit_id":"0eaeb3e148d94ba382fc194ade98175a096d1138"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0d68b566e61a445f5827d8e0c661d6f15d7b6148","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        snapshot_support\u003dshare_ref.get(\u0027snapshot_support\u0027),"},{"line_number":159,"context_line":"        share_name\u003dshare_ref[\u0027name\u0027],"},{"line_number":160,"context_line":"        created_at\u003dcreated_at.isoformat(),"},{"line_number":161,"context_line":"        share_proto\u003dshare_ref[\u0027share_proto\u0027],"},{"line_number":162,"context_line":"        volume_type\u003dshare_ref[\u0027volume_type\u0027],"},{"line_number":163,"context_line":"        source_cgsnapshot_member_id\u003dshare_ref.get("},{"line_number":164,"context_line":"            \u0027source_cgsnapshot_member_id\u0027)"},{"line_number":165,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff0f0b1f_e9275ac6","line":162,"range":{"start_line":161,"start_character":7,"end_line":162,"end_character":45},"updated":"2017-05-25 02:53:27.000000000","message":"above","commit_id":"0eaeb3e148d94ba382fc194ade98175a096d1138"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ec2b217a47ddf70b51d07483a23bd30f818a0a37","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        name\u003dshare_ref[\u0027display_name\u0027],"},{"line_number":141,"context_line":"        description\u003dshare_ref[\u0027display_description\u0027],"},{"line_number":142,"context_line":"        proto\u003dshare_ref[\u0027share_proto\u0027],"},{"line_number":143,"context_line":"        is_public\u003dshare_ref[\u0027is_public\u0027],"},{"line_number":144,"context_line":"    )"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    usage_info.update(kw)"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_8693affa","line":144,"range":{"start_line":143,"start_character":40,"end_line":144,"end_character":5},"updated":"2017-06-01 03:24:50.000000000","message":"I agree with you: this would provide more useful info.I think availability_zone, status, host are useful info for user. The user will quickly know where is the share and what is the share status. We could discuss about other info, such as: share_type_id .share_network_id. ?","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"577d5d327b424649ef2e41f331f5c0882e39893c","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        name\u003dshare_ref[\u0027display_name\u0027],"},{"line_number":141,"context_line":"        description\u003dshare_ref[\u0027display_description\u0027],"},{"line_number":142,"context_line":"        proto\u003dshare_ref[\u0027share_proto\u0027],"},{"line_number":143,"context_line":"        is_public\u003dshare_ref[\u0027is_public\u0027],"},{"line_number":144,"context_line":"    )"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    usage_info.update(kw)"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df140735_a96aede9","line":144,"range":{"start_line":143,"start_character":40,"end_line":144,"end_character":5},"in_reply_to":"df140735_8693affa","updated":"2017-06-01 18:14:34.000000000","message":"So cinder has host, availability_zone, volume_type, and status.  Any reason the corresponding manila share/share_instance properties aren\u0027t included here?","commit_id":"0f0629a4ab7f5feefc339f3cee07bf881e26b06e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6042ad9d622a634ac2dad0a33fe965f46f452443","unresolved":false,"context_lines":[{"line_number":128,"context_line":"def _usage_from_share(context, share_ref, share_instance_ref,"},{"line_number":129,"context_line":"                      **extra_usage_info):"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    usage_info \u003d dict("},{"line_number":132,"context_line":"        share_id\u003dshare_ref[\u0027id\u0027],"},{"line_number":133,"context_line":"        user_id\u003dshare_ref[\u0027user_id\u0027],"},{"line_number":134,"context_line":"        project_id\u003dshare_ref[\u0027project_id\u0027],"},{"line_number":135,"context_line":"        snapshot_id\u003dshare_ref[\u0027snapshot_id\u0027],"},{"line_number":136,"context_line":"        share_group_id\u003dshare_ref[\u0027share_group_id\u0027],"},{"line_number":137,"context_line":"        size\u003dshare_ref[\u0027size\u0027],"},{"line_number":138,"context_line":"        name\u003dshare_ref[\u0027display_name\u0027],"},{"line_number":139,"context_line":"        description\u003dshare_ref[\u0027display_description\u0027],"},{"line_number":140,"context_line":"        proto\u003dshare_ref[\u0027share_proto\u0027],"},{"line_number":141,"context_line":"        is_public\u003dshare_ref[\u0027is_public\u0027],"},{"line_number":142,"context_line":"        availability_zone\u003dshare_instance_ref[\u0027availability_zone\u0027],"},{"line_number":143,"context_line":"        host\u003dshare_instance_ref[\u0027host\u0027],"},{"line_number":144,"context_line":"        status\u003dshare_instance_ref[\u0027status\u0027]"},{"line_number":145,"context_line":"    )"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    usage_info.update(extra_usage_info)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"df140735_dc6ea6c7","line":145,"range":{"start_line":131,"start_character":17,"end_line":145,"end_character":5},"updated":"2017-06-05 18:34:11.000000000","message":"Use dict comprehension {} which has better performance than dict().","commit_id":"5ae3bd3e82c78f8cfa6ad93d52dae0cc7e7343e3"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"8237df8fc4a31cf79ab579bc9f644fd48c178c8b","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        \u0027is_public\u0027: share_ref[\u0027is_public\u0027],"},{"line_number":142,"context_line":"        \u0027availability_zone\u0027: share_instance_ref[\u0027availability_zone\u0027],"},{"line_number":143,"context_line":"        \u0027host\u0027: share_instance_ref[\u0027host\u0027],"},{"line_number":144,"context_line":"        \u0027status\u0027: share_instance_ref[\u0027status\u0027]"},{"line_number":145,"context_line":"    }"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    usage_info.update(extra_usage_info)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df140735_c74b3c5d","line":144,"range":{"start_line":144,"start_character":45,"end_line":144,"end_character":46},"updated":"2017-06-07 02:52:47.000000000","message":"Add \u0027,\u0027 in the end.","commit_id":"dabab1bd3aba04751ca784d485d6a8384623a7a0"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"e1873c1406f542d3b0e21552f1d18c60ac50a522","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                         usage_info)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"def _usage_from_share(context, share_ref, share_instance_ref,"},{"line_number":129,"context_line":"                      **extra_usage_info):"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    usage_info \u003d {"},{"line_number":132,"context_line":"        \u0027share_id\u0027: share_ref[\u0027id\u0027],"},{"line_number":133,"context_line":"        \u0027user_id\u0027: share_ref[\u0027user_id\u0027],"},{"line_number":134,"context_line":"        \u0027project_id\u0027: share_ref[\u0027project_id\u0027],"},{"line_number":135,"context_line":"        \u0027snapshot_id\u0027: share_ref[\u0027snapshot_id\u0027],"},{"line_number":136,"context_line":"        \u0027share_group_id\u0027: share_ref[\u0027share_group_id\u0027],"},{"line_number":137,"context_line":"        \u0027size\u0027: share_ref[\u0027size\u0027],"},{"line_number":138,"context_line":"        \u0027name\u0027: share_ref[\u0027display_name\u0027],"},{"line_number":139,"context_line":"        \u0027description\u0027: share_ref[\u0027display_description\u0027],"},{"line_number":140,"context_line":"        \u0027proto\u0027: share_ref[\u0027share_proto\u0027],"},{"line_number":141,"context_line":"        \u0027is_public\u0027: share_ref[\u0027is_public\u0027],"},{"line_number":142,"context_line":"        \u0027availability_zone\u0027: share_instance_ref[\u0027availability_zone\u0027],"},{"line_number":143,"context_line":"        \u0027host\u0027: share_instance_ref[\u0027host\u0027],"},{"line_number":144,"context_line":"        \u0027status\u0027: share_instance_ref[\u0027status\u0027],"},{"line_number":145,"context_line":"    }"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    usage_info.update(extra_usage_info)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9f0e0f27_fa02653e","line":145,"range":{"start_line":128,"start_character":42,"end_line":145,"end_character":5},"updated":"2017-06-09 08:01:31.000000000","message":"We can get all of info from share_instance_ref.\n{\u0027share_id\u0027: u\u00273df11a63-b42a-477c-892e-b0fc20e77632\u0027, \u0027terminated_at\u0027: datetime.datetime(2017, 6, 9, 0, 11, \n16),\n\n \u0027availability_zone_id\u0027: u\u00277bd55081-1dc1-4487-9f53-5d3beef439f4\u0027, \u0027updated_at\u0027: datetime.datetime(2017, 6,\n 9, 0, 11, 16), \n\n \u0027share_network_id\u0027: None, \u0027export_locations\u0027: \n[\u003cmanila.db.sqlalchemy.models.ShareInstanceExportLocation\ns object at 0x7f7776acd4d0\u003e, \n\n \u003cmanila.db.sqlalchemy.models.ShareInstanceExportLocation\n\ns object at 0x7f7776acd850\u003e, \n\u003cmanila.db.sqlalchemy.models.ShareInstanceExportLocations\n object at 0x7f7776acd590\u003e],\n\n \u0027share_server_id\u0027: None, \u0027snapshot_id\u0027: None, \u0027deleted_at\u0027: None, \u0027id\u0027: u\u0027501d5276-a00f-4702-b895-\ne9135bcf564f\u0027, \u0027size\u0027: 1, \u0027replica_state\u0027: None, \n\u0027user_id\u0027: u\u0027553df7659ab44eba88228610c2a28be1\u0027,\n\n \u0027share_type\u0027: \u003cmanila.db.sqlalchemy.models.ShareTypes \nobject at 0x7f7776acd6d0\u003e, \u0027display_description\u0027: None,\n \u0027project_id\u0027: u\u0027e63898ff636c41d2891d8595aebe0f8e\u0027, \n \u0027launched_at\u0027: datetime.datetime(2017, 6, 6, 0, 31, 37),\n\n \u0027scheduled_at\u0027: datetime.datetime(2017, 6, 6, 0, 31,\n \n32), \u0027status\u0027: u\u0027deleting\u0027, \u0027share_type_id\u0027: u\u0027559086f8-\n2ed8-4bbd-870b-bf4589c57d00\u0027, \n\n \u0027_sa_instance_state\u0027: \u003csqlalchemy.orm.state.InstanceState object at \n0x7f7776b4fa90\u003e, \u0027deleted\u0027: u\u0027False\u0027, \n\u0027cast_rules_to_readonly\u0027: False, \u0027share_group_id\u0027: None,\n \u0027host\u0027:\n u\u0027ubuntu@generic1#fake_pool_for_GENERIC1\u0027, \n\u0027access_rules_status\u0027: \u0027active\u0027, \u0027display_name\u0027: \nu\u0027zhongjun\u0027, \u0027source_share_group_snapshot_member_id\u0027: \nNone, \u0027replication_type\u0027: None,\n\n \u0027created_at\u0027: datetime.datetime(2017, 6, 6, 0, 31, 32),\n \u0027share_proto\u0027: u\u0027NFS\u0027, \u0027is_public\u0027: False, \n\u0027_availability_zone\u0027: \u003cmanila.db.sqlalchemy.models.AvailabilityZone object at\n 0x7f7776babf10\u003e, \n\n \u0027mount_snapshot_support\u0027: False}","commit_id":"72db52701f363b3b0ddce558290e0c08e3c162aa"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d6cb9bf3d38a45393d9db446ffead2e11a4dc3cc","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                             event_suffix, extra_usage_info\u003dNone, host\u003dNone):"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    if not host:"},{"line_number":116,"context_line":"        host \u003d CONF.cfg"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    if not extra_usage_info:"},{"line_number":119,"context_line":"        extra_usage_info \u003d {}"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f201791_8f8e8925","line":116,"range":{"start_line":116,"start_character":20,"end_line":116,"end_character":23},"updated":"2017-06-20 15:47:05.000000000","message":"Maybe it should be host?","commit_id":"244b0338a7af02a25278f2b160542df24e321683"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c3ead1124c7a536bb27008f913533ffa705fade2","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                             event_suffix, extra_usage_info\u003dNone, host\u003dNone):"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    if not host:"},{"line_number":116,"context_line":"        host \u003d CONF.cfg"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    if not extra_usage_info:"},{"line_number":119,"context_line":"        extra_usage_info \u003d {}"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f201791_de01d4b1","line":116,"range":{"start_line":116,"start_character":20,"end_line":116,"end_character":23},"in_reply_to":"5f201791_8f8e8925","updated":"2017-06-20 16:40:16.000000000","message":"+1","commit_id":"244b0338a7af02a25278f2b160542df24e321683"},{"author":{"_account_id":21698,"name":"Raissa Sarmento","email":"raissaa@gmail.com","username":"raissa"},"change_message_id":"9aedf863c4eaf18b91f30728c41ce14e8fa76b6e","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                         usage_info)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"def _usage_from_share(context, share_ref, share_instance_ref,"},{"line_number":129,"context_line":"                      **extra_usage_info):"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    usage_info \u003d {"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f231b9d_2042f10f","line":128,"updated":"2017-06-19 16:44:07.000000000","message":"\"context\" param is not being used here","commit_id":"244b0338a7af02a25278f2b160542df24e321683"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d91d4847048fc610aa10b5a4827009cd6ad625e9","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                         usage_info)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"def _usage_from_share(context, share_ref, share_instance_ref,"},{"line_number":129,"context_line":"                      **extra_usage_info):"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    usage_info \u003d {"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f231b9d_5c8dd52f","line":128,"in_reply_to":"7f231b9d_2042f10f","updated":"2017-06-19 19:10:09.000000000","message":"Good catch, thanks Raissa!","commit_id":"244b0338a7af02a25278f2b160542df24e321683"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"66df6c914e0ab98cfee106cbc0957531d5b68875","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                             event_suffix, extra_usage_info\u003dNone, host\u003dNone):"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    if not host:"},{"line_number":116,"context_line":"        host \u003d CONF.host"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    if not extra_usage_info:"},{"line_number":119,"context_line":"        extra_usage_info \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f201791_f4868ddb","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":24},"updated":"2017-06-23 12:49:20.000000000","message":"Would be great to see that thing covered with unit tests. \nSee http://logs.openstack.org/86/466586/13/check/manila-coverage-ubuntu-xenial-nv/21a1be8/cover/manila_share_utils_py.html","commit_id":"cd2f411ad2e2c038d3096f7d5fe53ad47692394f"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"096b990093ec711b571247c3fed1061d3564aa64","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                             event_suffix, extra_usage_info\u003dNone, host\u003dNone):"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    if not host:"},{"line_number":116,"context_line":"        host \u003d CONF.host"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    if not extra_usage_info:"},{"line_number":119,"context_line":"        extra_usage_info \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f201791_dd049f1a","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":24},"in_reply_to":"5f201791_f4868ddb","updated":"2017-06-26 17:02:43.000000000","message":"Done","commit_id":"cd2f411ad2e2c038d3096f7d5fe53ad47692394f"}],"manila/test.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"78b7d2a5bb453713aa14506d934e166b6cf507b2","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                api_version.APIVersionRequest(right))"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def assert_notify_called(self, mock_notify, calls):"},{"line_number":368,"context_line":"        for i in range(0, len(calls)):"},{"line_number":369,"context_line":"            mock_call \u003d mock_notify.call_args_list[i]"},{"line_number":370,"context_line":"            call \u003d calls[i]"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            posargs \u003d mock_call[0]"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"            self.assertEqual(call[0], posargs[0])"},{"line_number":375,"context_line":"            self.assertEqual(call[1], posargs[2])"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_04bc77da","line":375,"range":{"start_line":368,"start_character":8,"end_line":375,"end_character":49},"updated":"2017-06-30 09:24:55.000000000","message":"In case of empty list of calls I expect to see \"assert_not_called()\" here.","commit_id":"5bb153399b32ea208abed5701caff4795cbff11c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"0503ae59c2bf368f11a8425a5291c76462538009","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                api_version.APIVersionRequest(right))"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def assert_notify_called(self, mock_notify, calls):"},{"line_number":368,"context_line":"        for i in range(0, len(calls)):"},{"line_number":369,"context_line":"            mock_call \u003d mock_notify.call_args_list[i]"},{"line_number":370,"context_line":"            call \u003d calls[i]"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            posargs \u003d mock_call[0]"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"            self.assertEqual(call[0], posargs[0])"},{"line_number":375,"context_line":"            self.assertEqual(call[1], posargs[2])"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_f492269f","line":375,"range":{"start_line":368,"start_character":8,"end_line":375,"end_character":49},"in_reply_to":"3f1d235d_04bc77da","updated":"2017-07-02 18:30:16.000000000","message":"If we get an empty list of calls, then we shouldn\u0027t reach this point.","commit_id":"5bb153399b32ea208abed5701caff4795cbff11c"}]}
