)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yuriy Nesenenko \u003cynesenenko@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-01-08 18:05:10 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"PEP8(E265): block comment should start with \u0027# \u0027"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ic51f80210becc375b30f0f4e9eeb54995775c817"},{"line_number":10,"context_line":"Partial-Bug: #1407162"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_0d260dce","line":7,"updated":"2015-01-08 16:36:59.000000000","message":"Please update commit message to be a little more descriptive.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"8a19858d911657f939284eb49c8280208795a6d7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix comments style according to the Hacking Rules"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to the PEP8(E265) there should be at least one space before block comment."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ic51f80210becc375b30f0f4e9eeb54995775c817"},{"line_number":12,"context_line":"Partial-Bug: #1407162"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"da86d52c_3a8f2877","line":9,"updated":"2015-02-16 12:54:39.000000000","message":"Could you have a look to [1]:\n\nSubsequent lines should be wrapped at 72 characters.\n\n[1]: https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"326dc4b6cc2f9f94aeb04ecf9c51a23aa78b20ca"}],"cinder/api/contrib/qos_specs_manage.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        force \u003d req.params.get(\u0027force\u0027, None)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        # convert string to bool type in strict manner"},{"line_number":221,"context_line":"        force \u003d strutils.bool_from_string(force)"},{"line_number":222,"context_line":"        LOG.debug(\"Delete qos_spec: %(id)s, force: %(force)s\" %"},{"line_number":223,"context_line":"                  {\u0027id\u0027: id, \u0027force\u0027: force})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cd6b25b7","line":220,"updated":"2015-01-08 16:36:59.000000000","message":"Should also start with an uppercase letter while you\u0027re at it.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae920513c5bc9326e6864fe90e6ed211b8b40b18","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        force \u003d req.params.get(\u0027force\u0027, None)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        # convert string to bool type in strict manner"},{"line_number":221,"context_line":"        force \u003d strutils.bool_from_string(force)"},{"line_number":222,"context_line":"        LOG.debug(\"Delete qos_spec: %(id)s, force: %(force)s\" %"},{"line_number":223,"context_line":"                  {\u0027id\u0027: id, \u0027force\u0027: force})"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_92c93e28","line":220,"updated":"2015-02-12 19:13:32.000000000","message":"It will be nice if you also make the first letter capital. There are lots of comments you changed starts the sentence in lower case.","commit_id":"ca9ab5af5d0b9dc0b889dba724fc88fe28cc0228"}],"cinder/api/middleware/sizelimit.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from cinder import wsgi"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# default request size is 112k"},{"line_number":30,"context_line":"max_request_body_size_opt \u003d cfg.IntOpt(\u0027osapi_max_request_body_size\u0027,"},{"line_number":31,"context_line":"                                       default\u003d114688,"},{"line_number":32,"context_line":"                                       help\u003d\u0027Max size for body of a request\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d5f350f","line":29,"updated":"2015-01-08 16:36:59.000000000","message":"Upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/api/v1/snapshots.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        \"\"\"Returns a list of snapshots, transformed through entity_maker.\"\"\""},{"line_number":141,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # pop out limit and offset , they are not search_opts"},{"line_number":144,"context_line":"        search_opts \u003d req.GET.copy()"},{"line_number":145,"context_line":"        search_opts.pop(\u0027limit\u0027, None)"},{"line_number":146,"context_line":"        search_opts.pop(\u0027offset\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0db0cd41","line":143,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        search_opts.pop(\u0027limit\u0027, None)"},{"line_number":146,"context_line":"        search_opts.pop(\u0027offset\u0027, None)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # filter out invalid option"},{"line_number":149,"context_line":"        allowed_search_options \u003d (\u0027status\u0027, \u0027volume_id\u0027, \u0027display_name\u0027)"},{"line_number":150,"context_line":"        utils.remove_invalid_filter_options(context, search_opts,"},{"line_number":151,"context_line":"                                            allowed_search_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6db15143","line":148,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/api/v1/volumes.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    def _items(self, req, entity_maker):"},{"line_number":266,"context_line":"        \"\"\"Returns a list of volumes, transformed through entity_maker.\"\"\""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        # pop out limit and offset , they are not search_opts"},{"line_number":269,"context_line":"        search_opts \u003d req.GET.copy()"},{"line_number":270,"context_line":"        search_opts.pop(\u0027limit\u0027, None)"},{"line_number":271,"context_line":"        search_opts.pop(\u0027offset\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8d83dd54","line":268,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/api/v2/snapshots.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        \"\"\"Returns a list of snapshots, transformed through entity_maker.\"\"\""},{"line_number":144,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        # pop out limit and offset , they are not search_opts"},{"line_number":147,"context_line":"        search_opts \u003d req.GET.copy()"},{"line_number":148,"context_line":"        search_opts.pop(\u0027limit\u0027, None)"},{"line_number":149,"context_line":"        search_opts.pop(\u0027offset\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed7c6173","line":146,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        search_opts.pop(\u0027limit\u0027, None)"},{"line_number":149,"context_line":"        search_opts.pop(\u0027offset\u0027, None)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        # filter out invalid option"},{"line_number":152,"context_line":"        allowed_search_options \u003d (\u0027status\u0027, \u0027volume_id\u0027, \u0027name\u0027)"},{"line_number":153,"context_line":"        utils.remove_invalid_filter_options(context, search_opts,"},{"line_number":154,"context_line":"                                            allowed_search_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2d92e99e","line":151,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/brick/initiator/connector.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        device_info \u003d {\u0027type\u0027: \u0027block\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        if self.use_multipath:"},{"line_number":207,"context_line":"            # multipath installed, discovering other targets if available"},{"line_number":208,"context_line":"            target_portal \u003d connection_properties[\u0027target_portal\u0027]"},{"line_number":209,"context_line":"            out \u003d self._run_iscsiadm_bare([\u0027-m\u0027,"},{"line_number":210,"context_line":"                                           \u0027discovery\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4de4953b","line":207,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":436,"context_line":"                                  \"node.session.auth.password\","},{"line_number":437,"context_line":"                                  connection_properties[\u0027auth_password\u0027])"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        # duplicate logins crash iscsiadm after load,"},{"line_number":440,"context_line":"        # so we scan active sessions to see if the node is logged in."},{"line_number":441,"context_line":"        out \u003d self._run_iscsiadm_bare([\"-m\", \"session\"],"},{"line_number":442,"context_line":"                                      run_as_root\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6ddf9166","line":439,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":458,"context_line":"                                   (\"--login\",),"},{"line_number":459,"context_line":"                                   check_exit_code\u003d[0, 255])"},{"line_number":460,"context_line":"            except putils.ProcessExecutionError as err:"},{"line_number":461,"context_line":"                # as this might be one of many paths,"},{"line_number":462,"context_line":"                # only set successful logins to startup automatically"},{"line_number":463,"context_line":"                if err.exit_code in [15]:"},{"line_number":464,"context_line":"                    self._iscsiadm_update(connection_properties,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8dd11d59","line":461,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/exception.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"551ebc14977cb81654361624cff8f09c8da52d8f","unresolved":false,"context_lines":[{"line_number":389,"context_line":"    message \u003d _(\"File %(file_path)s could not be found.\")"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"# TODO(bcwaldon): EOL this exception!"},{"line_number":393,"context_line":"class Duplicate(CinderException):"},{"line_number":394,"context_line":"    pass"},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_91bce907","line":392,"updated":"2015-02-12 15:37:07.000000000","message":"After limited discussion on IRC we don\u0027t think this comment applies. Would you mind removing it as part of this patch?","commit_id":"3f65ab32eb3cbe89973dc2a8410acd947e6e5cfc"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad753b817aea552776aadf0d036b2d420a726363","unresolved":false,"context_lines":[{"line_number":389,"context_line":"    message \u003d _(\"File %(file_path)s could not be found.\")"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"# TODO(bcwaldon): EOL this exception!"},{"line_number":393,"context_line":"class Duplicate(CinderException):"},{"line_number":394,"context_line":"    pass"},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_c67e386a","line":392,"updated":"2015-02-16 12:23:42.000000000","message":"How did this get added back in? We had discussed on IRC that this wasn\u0027t necessarily true and it was removed.","commit_id":"ca2aa3063be5352fc11681ca77556b1c8f03c745"}],"cinder/tests/api/contrib/test_backups.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":548,"context_line":"        test_host \u003d \u0027test_host\u0027"},{"line_number":549,"context_line":"        alt_host \u003d \u0027strange_host\u0027"},{"line_number":550,"context_line":"        empty_service \u003d []"},{"line_number":551,"context_line":"        # service host not match with volume\u0027s host"},{"line_number":552,"context_line":"        host_not_match \u003d [{\u0027availability_zone\u0027: \"fake_az\", \u0027host\u0027: alt_host,"},{"line_number":553,"context_line":"                           \u0027disabled\u0027: 0, \u0027updated_at\u0027: timeutils.utcnow()}]"},{"line_number":554,"context_line":"        # service az not match with volume\u0027s az"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d52d5de","line":551,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":551,"context_line":"        # service host not match with volume\u0027s host"},{"line_number":552,"context_line":"        host_not_match \u003d [{\u0027availability_zone\u0027: \"fake_az\", \u0027host\u0027: alt_host,"},{"line_number":553,"context_line":"                           \u0027disabled\u0027: 0, \u0027updated_at\u0027: timeutils.utcnow()}]"},{"line_number":554,"context_line":"        # service az not match with volume\u0027s az"},{"line_number":555,"context_line":"        az_not_match \u003d [{\u0027availability_zone\u0027: \"strange_az\", \u0027host\u0027: test_host,"},{"line_number":556,"context_line":"                         \u0027disabled\u0027: 0, \u0027updated_at\u0027: timeutils.utcnow()}]"},{"line_number":557,"context_line":"        # service disabled"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8d5f5de4","line":554,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        # service az not match with volume\u0027s az"},{"line_number":555,"context_line":"        az_not_match \u003d [{\u0027availability_zone\u0027: \"strange_az\", \u0027host\u0027: test_host,"},{"line_number":556,"context_line":"                         \u0027disabled\u0027: 0, \u0027updated_at\u0027: timeutils.utcnow()}]"},{"line_number":557,"context_line":"        # service disabled"},{"line_number":558,"context_line":"        disabled_service \u003d []"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        # dead service that last reported at 20th century"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad6259aa","line":557,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":557,"context_line":"        # service disabled"},{"line_number":558,"context_line":"        disabled_service \u003d []"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        # dead service that last reported at 20th century"},{"line_number":561,"context_line":"        dead_service \u003d [{\u0027availability_zone\u0027: \"fake_az\", \u0027host\u0027: alt_host,"},{"line_number":562,"context_line":"                         \u0027disabled\u0027: 0, \u0027updated_at\u0027: \u00271989-04-16 02:55:44\u0027}]"},{"line_number":563,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cd55e5c2","line":560,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        dead_service \u003d [{\u0027availability_zone\u0027: \"fake_az\", \u0027host\u0027: alt_host,"},{"line_number":562,"context_line":"                         \u0027disabled\u0027: 0, \u0027updated_at\u0027: \u00271989-04-16 02:55:44\u0027}]"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        # first service\u0027s host not match but second one works."},{"line_number":565,"context_line":"        multi_services \u003d [{\u0027availability_zone\u0027: \"fake_az\", \u0027host\u0027: alt_host,"},{"line_number":566,"context_line":"                           \u0027disabled\u0027: 0, \u0027updated_at\u0027: timeutils.utcnow()},"},{"line_number":567,"context_line":"                          {\u0027availability_zone\u0027: \"fake_az\", \u0027host\u0027: test_host,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed58e1fa","line":564,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":579,"context_line":"                                        host\u003dtest_host)[\u0027id\u0027]"},{"line_number":580,"context_line":"        volume \u003d self.volume_api.get(context.get_admin_context(), volume_id)"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        # test empty service"},{"line_number":583,"context_line":"        self.assertEqual(self.backup_api._is_backup_service_enabled(volume,"},{"line_number":584,"context_line":"                                                                    test_host),"},{"line_number":585,"context_line":"                         False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0d736d80","line":582,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":584,"context_line":"                                                                    test_host),"},{"line_number":585,"context_line":"                         False)"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"        # test host not match service"},{"line_number":588,"context_line":"        self.assertEqual(self.backup_api._is_backup_service_enabled(volume,"},{"line_number":589,"context_line":"                                                                    test_host),"},{"line_number":590,"context_line":"                         False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2d6e6996","line":587,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":589,"context_line":"                                                                    test_host),"},{"line_number":590,"context_line":"                         False)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"        # test az not match service"},{"line_number":593,"context_line":"        self.assertEqual(self.backup_api._is_backup_service_enabled(volume,"},{"line_number":594,"context_line":"                                                                    test_host),"},{"line_number":595,"context_line":"                         False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d69f58a","line":592,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                                                                    test_host),"},{"line_number":595,"context_line":"                         False)"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"        # test disabled service"},{"line_number":598,"context_line":"        self.assertEqual(self.backup_api._is_backup_service_enabled(volume,"},{"line_number":599,"context_line":"                                                                    test_host),"},{"line_number":600,"context_line":"                         False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6d64f1b2","line":597,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                                                                    test_host),"},{"line_number":600,"context_line":"                         False)"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"        # test dead service"},{"line_number":603,"context_line":"        self.assertEqual(self.backup_api._is_backup_service_enabled(volume,"},{"line_number":604,"context_line":"                                                                    test_host),"},{"line_number":605,"context_line":"                         False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cd0c05ef","line":602,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":604,"context_line":"                                                                    test_host),"},{"line_number":605,"context_line":"                         False)"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"        # test multi services and the last service matches"},{"line_number":608,"context_line":"        self.assertEqual(self.backup_api._is_backup_service_enabled(volume,"},{"line_number":609,"context_line":"                                                                    test_host),"},{"line_number":610,"context_line":"                         True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed0f01de","line":607,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1071,"context_line":"        self.assertEqual(export.item(0).getAttribute(\u0027backup_url\u0027),"},{"line_number":1072,"context_line":"                         backup_url)"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"        # db.backup_destroy(context.get_admin_context(), backup_id)"},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"    def test_export_record_with_bad_backup_id(self):"},{"line_number":1077,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6dfb11be","line":1074,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1266,"context_line":"        backup_service \u003d \u0027fake\u0027"},{"line_number":1267,"context_line":"        backup_url \u003d \u0027fake\u0027"},{"line_number":1268,"context_line":""},{"line_number":1269,"context_line":"        # test with no backup_service"},{"line_number":1270,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/backups/import_record\u0027)"},{"line_number":1271,"context_line":"        body \u003d {\u0027backup-record\u0027: {\u0027backup_url\u0027: backup_url}}"},{"line_number":1272,"context_line":"        req.body \u003d json.dumps(body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8d2d9d48","line":1269,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1279,"context_line":"        self.assertEqual(res_dict[\u0027badRequest\u0027][\u0027message\u0027],"},{"line_number":1280,"context_line":"                         \u0027Incorrect request body format.\u0027)"},{"line_number":1281,"context_line":""},{"line_number":1282,"context_line":"        # test with no backup_url"},{"line_number":1283,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/backups/import_record\u0027)"},{"line_number":1284,"context_line":"        body \u003d {\u0027backup-record\u0027: {\u0027backup_service\u0027: backup_service}}"},{"line_number":1285,"context_line":"        req.body \u003d json.dumps(body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad30999e","line":1282,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1293,"context_line":"        self.assertEqual(res_dict[\u0027badRequest\u0027][\u0027message\u0027],"},{"line_number":1294,"context_line":"                         \u0027Incorrect request body format.\u0027)"},{"line_number":1295,"context_line":""},{"line_number":1296,"context_line":"        # test with no backup_url and backup_url"},{"line_number":1297,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/backups/import_record\u0027)"},{"line_number":1298,"context_line":"        body \u003d {\u0027backup-record\u0027: {}}"},{"line_number":1299,"context_line":"        req.body \u003d json.dumps(body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cd232556","line":1296,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/contrib/test_qos_specs_manage.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        self.flags(host\u003d\u0027fake\u0027)"},{"line_number":146,"context_line":"        self.controller \u003d qos_specs_manage.QoSSpecsController()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # reset notifier drivers left over from other api/contrib tests"},{"line_number":149,"context_line":"        # NOTE(flaper87) WTF? ^^^^ Cleanups should happen in each test,"},{"line_number":150,"context_line":"        # not the purpose of this patch, though."},{"line_number":151,"context_line":"        fake_notifier.reset()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6d1231fe","line":148,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v1/test_limits.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":855,"context_line":"        root \u003d etree.XML(output)"},{"line_number":856,"context_line":"        xmlutil.validate_schema(root, \u0027limits\u0027)"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"        # verify absolute limits"},{"line_number":859,"context_line":"        absolutes \u003d root.xpath(\u0027ns:absolute/ns:limit\u0027, namespaces\u003dNS)"},{"line_number":860,"context_line":"        self.assertEqual(len(absolutes), 4)"},{"line_number":861,"context_line":"        for limit in absolutes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8dbbdde3","line":858,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":863,"context_line":"            value \u003d limit.get(\u0027value\u0027)"},{"line_number":864,"context_line":"            self.assertEqual(value, str(fixture[\u0027limits\u0027][\u0027absolute\u0027][name]))"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"        # verify rate limits"},{"line_number":867,"context_line":"        rates \u003d root.xpath(\u0027ns:rates/ns:rate\u0027, namespaces\u003dNS)"},{"line_number":868,"context_line":"        self.assertEqual(len(rates), 2)"},{"line_number":869,"context_line":"        for i, rate in enumerate(rates):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cdb16502","line":866,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":890,"context_line":"        root \u003d etree.XML(output)"},{"line_number":891,"context_line":"        xmlutil.validate_schema(root, \u0027limits\u0027)"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"        # verify absolute limits"},{"line_number":894,"context_line":"        absolutes \u003d root.xpath(\u0027ns:absolute/ns:limit\u0027, namespaces\u003dNS)"},{"line_number":895,"context_line":"        self.assertEqual(len(absolutes), 0)"},{"line_number":896,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_edb461f2","line":893,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":894,"context_line":"        absolutes \u003d root.xpath(\u0027ns:absolute/ns:limit\u0027, namespaces\u003dNS)"},{"line_number":895,"context_line":"        self.assertEqual(len(absolutes), 0)"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"        # verify rate limits"},{"line_number":898,"context_line":"        rates \u003d root.xpath(\u0027ns:rates/ns:rate\u0027, namespaces\u003dNS)"},{"line_number":899,"context_line":"        self.assertEqual(len(rates), 0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0dcfed7f","line":897,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v1/test_snapshot_metadata.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":536,"context_line":"        req.method \u003d \u0027POST\u0027"},{"line_number":537,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"        # test for long key"},{"line_number":540,"context_line":"        data \u003d {\"metadata\": {\"a\" * 260: \"value1\"}}"},{"line_number":541,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":542,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6dc0714a","line":539,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":542,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":543,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        # test for long value"},{"line_number":546,"context_line":"        data \u003d {\"metadata\": {\"key\": \"v\" * 260}}"},{"line_number":547,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":548,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8da2fdab","line":545,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":548,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":549,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"        # test for empty key."},{"line_number":552,"context_line":"        data \u003d {\"metadata\": {\"\": \"value1\"}}"},{"line_number":553,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":554,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cda8858e","line":551,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v1/test_snapshots.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":349,"context_line":"            self.assertEqual(1, len(res[\u0027snapshots\u0027]))"},{"line_number":350,"context_line":"            self.assertEqual(2, res[\u0027snapshots\u0027][0][\u0027id\u0027])"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        # admin case"},{"line_number":353,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dTrue)"},{"line_number":354,"context_line":"        # non_admin case"},{"line_number":355,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_edab8185","line":352,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        # admin case"},{"line_number":353,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dTrue)"},{"line_number":354,"context_line":"        # non_admin case"},{"line_number":355,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dFalse)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def test_admin_list_snapshots_all_tenants(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0d960d4c","line":354,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v1/test_volume_metadata.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        req.method \u003d \u0027POST\u0027"},{"line_number":520,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"        # test for long key"},{"line_number":523,"context_line":"        data \u003d {\"metadata\": {\"a\" * 260: \"value1\"}}"},{"line_number":524,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":525,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2d910952","line":522,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":526,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        # test for long value"},{"line_number":529,"context_line":"        data \u003d {\"metadata\": {\"key\": \"v\" * 260}}"},{"line_number":530,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":531,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d9c956a","line":528,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":531,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":532,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        # test for empty key."},{"line_number":535,"context_line":"        data \u003d {\"metadata\": {\"\": \"value1\"}}"},{"line_number":536,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":537,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6d979145","line":534,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v1/test_volumes.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":645,"context_line":"            self.assertEqual(len(volumes), 1)"},{"line_number":646,"context_line":"            self.assertEqual(volumes[0][\u0027id\u0027], 2)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"        # admin case"},{"line_number":649,"context_line":"        volume_detail_limit_offset(is_admin\u003dTrue)"},{"line_number":650,"context_line":"        # non_admin case"},{"line_number":651,"context_line":"        volume_detail_limit_offset(is_admin\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad8c1936","line":648,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":"        # admin case"},{"line_number":649,"context_line":"        volume_detail_limit_offset(is_admin\u003dTrue)"},{"line_number":650,"context_line":"        # non_admin case"},{"line_number":651,"context_line":"        volume_detail_limit_offset(is_admin\u003dFalse)"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"    def test_volume_show_with_admin_metadata(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed82a1fd","line":650,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v2/test_limits.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":856,"context_line":"        root \u003d etree.XML(output)"},{"line_number":857,"context_line":"        xmlutil.validate_schema(root, \u0027limits\u0027)"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        # verify absolute limits"},{"line_number":860,"context_line":"        absolutes \u003d root.xpath(\u0027ns:absolute/ns:limit\u0027, namespaces\u003dNS)"},{"line_number":861,"context_line":"        self.assertEqual(len(absolutes), 4)"},{"line_number":862,"context_line":"        for limit in absolutes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6d6eb165","line":859,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":864,"context_line":"            value \u003d limit.get(\u0027value\u0027)"},{"line_number":865,"context_line":"            self.assertEqual(value, str(fixture[\u0027limits\u0027][\u0027absolute\u0027][name]))"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"        # verify rate limits"},{"line_number":868,"context_line":"        rates \u003d root.xpath(\u0027ns:rates/ns:rate\u0027, namespaces\u003dNS)"},{"line_number":869,"context_line":"        self.assertEqual(len(rates), 2)"},{"line_number":870,"context_line":"        for i, rate in enumerate(rates):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8d903d44","line":867,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":891,"context_line":"        root \u003d etree.XML(output)"},{"line_number":892,"context_line":"        xmlutil.validate_schema(root, \u0027limits\u0027)"},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"        # verify absolute limits"},{"line_number":895,"context_line":"        absolutes \u003d root.xpath(\u0027ns:absolute/ns:limit\u0027, namespaces\u003dNS)"},{"line_number":896,"context_line":"        self.assertEqual(len(absolutes), 0)"},{"line_number":897,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed99c16d","line":894,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        absolutes \u003d root.xpath(\u0027ns:absolute/ns:limit\u0027, namespaces\u003dNS)"},{"line_number":896,"context_line":"        self.assertEqual(len(absolutes), 0)"},{"line_number":897,"context_line":""},{"line_number":898,"context_line":"        # verify rate limits"},{"line_number":899,"context_line":"        rates \u003d root.xpath(\u0027ns:rates/ns:rate\u0027, namespaces\u003dNS)"},{"line_number":900,"context_line":"        self.assertEqual(len(rates), 0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2d9f4951","line":898,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v2/test_snapshot_metadata.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":534,"context_line":"        req.method \u003d \u0027POST\u0027"},{"line_number":535,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"        # test for long key"},{"line_number":538,"context_line":"        data \u003d {\"metadata\": {\"a\" * 260: \"value1\"}}"},{"line_number":539,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":540,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8db75dd7","line":537,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":540,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":541,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        # test for long value"},{"line_number":544,"context_line":"        data \u003d {\"metadata\": {\"key\": \"v\" * 260}}"},{"line_number":545,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":546,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_adba59bd","line":543,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":547,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"        # test for empty key."},{"line_number":550,"context_line":"        data \u003d {\"metadata\": {\"\": \"value1\"}}"},{"line_number":551,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":552,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cdade585","line":549,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v2/test_snapshots.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":360,"context_line":"            self.assertEqual(1, len(res[\u0027snapshots\u0027]))"},{"line_number":361,"context_line":"            self.assertEqual(2, res[\u0027snapshots\u0027][0][\u0027id\u0027])"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        # admin case"},{"line_number":364,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dTrue)"},{"line_number":365,"context_line":"        # non_admin case"},{"line_number":366,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_edb0e1dd","line":363,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        # admin case"},{"line_number":364,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dTrue)"},{"line_number":365,"context_line":"        # non_admin case"},{"line_number":366,"context_line":"        list_snapshots_with_limit_and_offset(is_admin\u003dFalse)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def test_admin_list_snapshots_all_tenants(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2dc66949","line":365,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/api/v2/test_volume_metadata.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":520,"context_line":"        req.method \u003d \u0027POST\u0027"},{"line_number":521,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        # test for long key"},{"line_number":524,"context_line":"        data \u003d {\"metadata\": {\"a\" * 260: \"value1\"}}"},{"line_number":525,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":526,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8dde7d0f","line":523,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":527,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        # test for long value"},{"line_number":530,"context_line":"        data \u003d {\"metadata\": {\"key\": \"v\" * 260}}"},{"line_number":531,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":532,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cde405e2","line":529,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":532,"context_line":"        self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,"},{"line_number":533,"context_line":"                          self.controller.create, req, self.req_id, data)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        # test for empty key."},{"line_number":536,"context_line":"        data \u003d {\"metadata\": {\"\": \"value1\"}}"},{"line_number":537,"context_line":"        req.body \u003d jsonutils.dumps(data)"},{"line_number":538,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2dcd895d","line":535,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/image/test_glance.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def setUp(self):"},{"line_number":99,"context_line":"        super(TestGlanceImageService, self).setUp()"},{"line_number":100,"context_line":"        # fakes.stub_out_compute_api_snapshot(self.stubs)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        client \u003d glance_stubs.StubGlanceClient()"},{"line_number":103,"context_line":"        self.service \u003d self._create_image_service(client)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6dd31101","line":100,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"551ebc14977cb81654361624cff8f09c8da52d8f","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def setUp(self):"},{"line_number":99,"context_line":"        super(TestGlanceImageService, self).setUp()"},{"line_number":100,"context_line":"        # fakes.stub_out_compute_api_snapshot(self.stubs)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        client \u003d glance_stubs.StubGlanceClient()"},{"line_number":103,"context_line":"        self.service \u003d self._create_image_service(client)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_0e81b4fa","line":100,"updated":"2015-02-12 15:37:07.000000000","message":"Commented out code. This shouldn\u0027t have been merged in the first place. Could you just remove this line?","commit_id":"3f65ab32eb3cbe89973dc2a8410acd947e6e5cfc"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad753b817aea552776aadf0d036b2d420a726363","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def setUp(self):"},{"line_number":99,"context_line":"        super(TestGlanceImageService, self).setUp()"},{"line_number":100,"context_line":"        # fakes.stub_out_compute_api_snapshot(self.stubs)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        client \u003d glance_stubs.StubGlanceClient()"},{"line_number":103,"context_line":"        self.service \u003d self._create_image_service(client)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_06905095","line":100,"updated":"2015-02-16 12:23:42.000000000","message":"Please remove commented out code.","commit_id":"ca2aa3063be5352fc11681ca77556b1c8f03c745"}],"cinder/tests/test_backup_ceph.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":716,"context_line":"            self.service.delete(self.backup)"},{"line_number":717,"context_line":"            self.assertTrue(mock_del_backup_snap.called)"},{"line_number":718,"context_line":""},{"line_number":719,"context_line":"        # self.assertFalse(self.mock_rbd.ImageNotFound.called)"},{"line_number":720,"context_line":"        self.assertTrue(self.mock_rbd.RBD.return_value.list.called)"},{"line_number":721,"context_line":"        self.assertTrue(self.mock_rbd.RBD.return_value.remove.called)"},{"line_number":722,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_edfe2169","line":719,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"551ebc14977cb81654361624cff8f09c8da52d8f","unresolved":false,"context_lines":[{"line_number":718,"context_line":"            self.service.delete(self.backup)"},{"line_number":719,"context_line":"            self.assertTrue(mock_del_backup_snap.called)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        # self.assertFalse(self.mock_rbd.ImageNotFound.called)"},{"line_number":722,"context_line":"        self.assertTrue(self.mock_rbd.RBD.return_value.list.called)"},{"line_number":723,"context_line":"        self.assertTrue(self.mock_rbd.RBD.return_value.remove.called)"},{"line_number":724,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_ae6fc85e","line":721,"updated":"2015-02-12 15:37:07.000000000","message":"Commented out code, please remove.","commit_id":"3f65ab32eb3cbe89973dc2a8410acd947e6e5cfc"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad753b817aea552776aadf0d036b2d420a726363","unresolved":false,"context_lines":[{"line_number":718,"context_line":"            self.service.delete(self.backup)"},{"line_number":719,"context_line":"            self.assertTrue(mock_del_backup_snap.called)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        # self.assertFalse(self.mock_rbd.ImageNotFound.called)"},{"line_number":722,"context_line":"        self.assertTrue(self.mock_rbd.RBD.return_value.list.called)"},{"line_number":723,"context_line":"        self.assertTrue(self.mock_rbd.RBD.return_value.remove.called)"},{"line_number":724,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_268f1477","line":721,"updated":"2015-02-16 12:23:42.000000000","message":"Please remove.","commit_id":"ca2aa3063be5352fc11681ca77556b1c8f03c745"}],"cinder/tests/test_dellsc.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":835,"context_line":"                                     mock_init):"},{"line_number":836,"context_line":"        context \u003d {}"},{"line_number":837,"context_line":"        volume \u003d {\u0027id\u0027: self.VOLUME.get(u\u0027name\u0027)}"},{"line_number":838,"context_line":"        # self.driver.ensure_export(context, volume)"},{"line_number":839,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":840,"context_line":"                          self.driver.ensure_export,"},{"line_number":841,"context_line":"                          context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0df9ad7f","line":838,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"551ebc14977cb81654361624cff8f09c8da52d8f","unresolved":false,"context_lines":[{"line_number":835,"context_line":"                                     mock_init):"},{"line_number":836,"context_line":"        context \u003d {}"},{"line_number":837,"context_line":"        volume \u003d {\u0027id\u0027: self.VOLUME.get(u\u0027name\u0027)}"},{"line_number":838,"context_line":"        # self.driver.ensure_export(context, volume)"},{"line_number":839,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":840,"context_line":"                          self.driver.ensure_export,"},{"line_number":841,"context_line":"                          context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_6ea07090","line":838,"updated":"2015-02-12 15:37:07.000000000","message":"Commented out code, please remove.","commit_id":"3f65ab32eb3cbe89973dc2a8410acd947e6e5cfc"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad753b817aea552776aadf0d036b2d420a726363","unresolved":false,"context_lines":[{"line_number":835,"context_line":"                                     mock_init):"},{"line_number":836,"context_line":"        context \u003d {}"},{"line_number":837,"context_line":"        volume \u003d {\u0027id\u0027: self.VOLUME.get(u\u0027name\u0027)}"},{"line_number":838,"context_line":"        # self.driver.ensure_export(context, volume)"},{"line_number":839,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":840,"context_line":"                          self.driver.ensure_export,"},{"line_number":841,"context_line":"                          context,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_86eb6011","line":838,"updated":"2015-02-16 12:23:42.000000000","message":"Remove.","commit_id":"ca2aa3063be5352fc11681ca77556b1c8f03c745"}],"cinder/tests/test_emc_vnxdirect.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":654,"context_line":"        self.configuration.storage_vnx_pool_name \u003d \u0027unit_test_pool\u0027"},{"line_number":655,"context_line":"        self.configuration.san_login \u003d \u0027sysadmin\u0027"},{"line_number":656,"context_line":"        self.configuration.san_password \u003d \u0027sysadmin\u0027"},{"line_number":657,"context_line":"        # set the timeout to 0.012s \u003d 0.0002 * 60 \u003d 1.2ms"},{"line_number":658,"context_line":"        self.configuration.default_timeout \u003d 0.0002"},{"line_number":659,"context_line":"        self.configuration.initiator_auto_registration \u003d True"},{"line_number":660,"context_line":"        self.stubs.Set(self.configuration, \u0027safe_get\u0027, self.fake_safe_get)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4def35b1","line":657,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":750,"context_line":"                                    \u0027-Deduplication\u0027,"},{"line_number":751,"context_line":"                                    \u0027-ThinProvisioning\u0027,"},{"line_number":752,"context_line":"                                    \u0027-FAST\u0027]"},{"line_number":753,"context_line":"        # case"},{"line_number":754,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":755,"context_line":"        # verification"},{"line_number":756,"context_line":"        expect_cmd \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2d3bc938","line":753,"updated":"2015-01-08 16:36:59.000000000","message":"upper\n\n(Not sure of the value of this comment.)","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":752,"context_line":"                                    \u0027-FAST\u0027]"},{"line_number":753,"context_line":"        # case"},{"line_number":754,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":755,"context_line":"        # verification"},{"line_number":756,"context_line":"        expect_cmd \u003d ["},{"line_number":757,"context_line":"            mock.call(*self.testData.LUN_CREATION_CMD("},{"line_number":758,"context_line":"                \u0027vol_with_type\u0027, 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad16d9a4","line":755,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":784,"context_line":"                                    \u0027-Deduplication\u0027,"},{"line_number":785,"context_line":"                                    \u0027-ThinProvisioning\u0027,"},{"line_number":786,"context_line":"                                    \u0027-FAST\u0027]"},{"line_number":787,"context_line":"        # case"},{"line_number":788,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":"        # verification"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d1d75bd","line":787,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":787,"context_line":"        # case"},{"line_number":788,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":"        # verification"},{"line_number":791,"context_line":"        expect_cmd \u003d ["},{"line_number":792,"context_line":"            mock.call(*self.testData.LUN_CREATION_CMD("},{"line_number":793,"context_line":"                \u0027vol_with_type\u0027, 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8d7afdee","line":790,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":818,"context_line":"                                    \u0027-Deduplication\u0027,"},{"line_number":819,"context_line":"                                    \u0027-ThinProvisioning\u0027,"},{"line_number":820,"context_line":"                                    \u0027-FAST\u0027]"},{"line_number":821,"context_line":"        # case"},{"line_number":822,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        # verification"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cd8085c1","line":821,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":821,"context_line":"        # case"},{"line_number":822,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        # verification"},{"line_number":825,"context_line":"        expect_cmd \u003d ["},{"line_number":826,"context_line":"            mock.call(*self.testData.LUN_CREATION_CMD("},{"line_number":827,"context_line":"                \u0027vol_with_type\u0027, 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed8381c8","line":824,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":846,"context_line":"                                    \u0027-Deduplication\u0027,"},{"line_number":847,"context_line":"                                    \u0027-ThinProvisioning\u0027,"},{"line_number":848,"context_line":"                                    \u0027-FAST\u0027]"},{"line_number":849,"context_line":"        # case"},{"line_number":850,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"        # verification"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0d6e0d2f","line":849,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":849,"context_line":"        # case"},{"line_number":850,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"        # verification"},{"line_number":853,"context_line":"        expect_cmd \u003d ["},{"line_number":854,"context_line":"            mock.call(*self.testData.LUN_CREATION_CMD("},{"line_number":855,"context_line":"                \u0027vol_with_type\u0027, 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d7495fd","line":852,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":935,"context_line":"                                    \u0027-Deduplication\u0027,"},{"line_number":936,"context_line":"                                    \u0027-ThinProvisioning\u0027,"},{"line_number":937,"context_line":"                                    \u0027-FAST\u0027]"},{"line_number":938,"context_line":"        # case"},{"line_number":939,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":940,"context_line":"        # verification"},{"line_number":941,"context_line":"        expect_cmd \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6d6f9128","line":938,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":937,"context_line":"                                    \u0027-FAST\u0027]"},{"line_number":938,"context_line":"        # case"},{"line_number":939,"context_line":"        self.driver.create_volume(self.testData.test_volume_with_type)"},{"line_number":940,"context_line":"        # verification"},{"line_number":941,"context_line":"        expect_cmd \u003d ["},{"line_number":942,"context_line":"            mock.call(*self.testData.LUN_CREATION_CMD("},{"line_number":943,"context_line":"                \u0027vol_with_type\u0027, 1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8d611d3b","line":940,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":952,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":953,"context_line":""},{"line_number":954,"context_line":"    def test_get_volume_stats(self):"},{"line_number":955,"context_line":"        # expect_result \u003d [POOL_PROPERTY]"},{"line_number":956,"context_line":"        self.driverSetup()"},{"line_number":957,"context_line":"        stats \u003d self.driver.get_volume_stats(True)"},{"line_number":958,"context_line":"        self.assertTrue(stats[\u0027driver_version\u0027] is not None,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad641949","line":955,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"        ret \u003d self.driver.migrate_volume(None, self.testData.test_volume,"},{"line_number":1023,"context_line":"                                         fakehost)[0]"},{"line_number":1024,"context_line":"        self.assertTrue(ret)"},{"line_number":1025,"context_line":"        # verification"},{"line_number":1026,"context_line":"        expect_cmd \u003d [mock.call(*self.testData.MIGRATION_CMD(1, 1),"},{"line_number":1027,"context_line":"                                retry_disable\u003dTrue),"},{"line_number":1028,"context_line":"                      mock.call(*self.testData.MIGRATION_VERIFY_CMD(1)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed5aa180","line":1025,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1066,"context_line":"        ret \u003d self.driver.migrate_volume(None, self.testData.test_volume,"},{"line_number":1067,"context_line":"                                         fakehost)[0]"},{"line_number":1068,"context_line":"        self.assertTrue(ret)"},{"line_number":1069,"context_line":"        # verification"},{"line_number":1070,"context_line":"        expect_cmd \u003d [mock.call(*self.testData.MIGRATION_CMD(),"},{"line_number":1071,"context_line":"                                retry_disable\u003dTrue),"},{"line_number":1072,"context_line":"                      mock.call(*self.testData.MIGRATION_VERIFY_CMD(1)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d4bb5b0","line":1069,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1106,"context_line":"        ret \u003d self.driver.migrate_volume(None, self.testData.test_volume5,"},{"line_number":1107,"context_line":"                                         fakehost)[0]"},{"line_number":1108,"context_line":"        self.assertTrue(ret)"},{"line_number":1109,"context_line":"        # verification"},{"line_number":1110,"context_line":"        expect_cmd \u003d [mock.call(*self.testData.MIGRATION_CMD(5, 5),"},{"line_number":1111,"context_line":"                                retry_disable\u003dTrue),"},{"line_number":1112,"context_line":"                      mock.call(*self.testData.MIGRATION_VERIFY_CMD(5)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8dc83d23","line":1109,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1135,"context_line":"        ret \u003d self.driver.migrate_volume(None, self.testData.test_volume,"},{"line_number":1136,"context_line":"                                         fakehost)[0]"},{"line_number":1137,"context_line":"        self.assertFalse(ret)"},{"line_number":1138,"context_line":"        # verification"},{"line_number":1139,"context_line":"        expect_cmd \u003d [mock.call(*self.testData.MIGRATION_CMD(),"},{"line_number":1140,"context_line":"                                retry_disable\u003dTrue)]"},{"line_number":1141,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cdcec52c","line":1138,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"    def test_create_destroy_volume_snapshot(self):"},{"line_number":1144,"context_line":"        fake_cli \u003d self.driverSetup()"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"        # case"},{"line_number":1147,"context_line":"        self.driver.create_snapshot(self.testData.test_snapshot)"},{"line_number":1148,"context_line":"        self.driver.delete_snapshot(self.testData.test_snapshot)"},{"line_number":1149,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0ddc4de3","line":1146,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"        self.driver.create_snapshot(self.testData.test_snapshot)"},{"line_number":1148,"context_line":"        self.driver.delete_snapshot(self.testData.test_snapshot)"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"        # verification"},{"line_number":1151,"context_line":"        expect_cmd \u003d [mock.call(*self.testData.LUN_PROPERTY_ALL_CMD(\u0027vol1\u0027)),"},{"line_number":1152,"context_line":"                      mock.call(*self.testData.SNAP_CREATE_CMD(\u0027snapshot1\u0027)),"},{"line_number":1153,"context_line":"                      mock.call(*self.testData.SNAP_DELETE_CMD(\u0027snapshot1\u0027))]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2dd749c0","line":1150,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1284,"context_line":"        results \u003d [FAKE_ERROR_RETURN]"},{"line_number":1285,"context_line":"        fake_cli \u003d self.driverSetup(commands, results)"},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        # case"},{"line_number":1288,"context_line":"        self.assertRaises(EMCVnxCLICmdError,"},{"line_number":1289,"context_line":"                          self.driver.create_snapshot,"},{"line_number":1290,"context_line":"                          self.testData.test_failed_snapshot)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4de2d5a0","line":1287,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1289,"context_line":"                          self.driver.create_snapshot,"},{"line_number":1290,"context_line":"                          self.testData.test_failed_snapshot)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":"        # verification"},{"line_number":1293,"context_line":"        expect_cmd \u003d ["},{"line_number":1294,"context_line":"            mock.call("},{"line_number":1295,"context_line":"                *self.testData.LUN_PROPERTY_ALL_CMD("}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6dddd1dc","line":1292,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":1302,"context_line":""},{"line_number":1303,"context_line":"    def test_create_volume_from_snapshot(self):"},{"line_number":1304,"context_line":"        # set up"},{"line_number":1305,"context_line":"        cmd_smp \u003d (\u0027lun\u0027, \u0027-list\u0027, \u0027-name\u0027, \u0027vol2\u0027, \u0027-attachedSnapshot\u0027)"},{"line_number":1306,"context_line":"        output_smp \u003d (\"\"\"LOGICAL UNIT NUMBER 1"},{"line_number":1307,"context_line":"                     Name:  vol2"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_adf2596c","line":1304,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1500,"context_line":"            self.testData.test_pool_name"},{"line_number":1501,"context_line":"        self.driver \u003d EMCCLIISCSIDriver(configuration\u003dself.configuration)"},{"line_number":1502,"context_line":"        assert isinstance(self.driver.cli, emc_vnx_cli.EMCVnxCliPool)"},{"line_number":1503,"context_line":"        # mock the command executor"},{"line_number":1504,"context_line":"        fake_command_execute \u003d self.get_command_execute_simulator("},{"line_number":1505,"context_line":"            commands, results)"},{"line_number":1506,"context_line":"        fake_cli \u003d mock.MagicMock(side_effect\u003dfake_command_execute)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ede8e17c","line":1503,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1527,"context_line":"        self.configuration.storage_vnx_pool_name \u003d invalid_pool_name"},{"line_number":1528,"context_line":"        self.driver \u003d EMCCLIISCSIDriver(configuration\u003dself.configuration)"},{"line_number":1529,"context_line":"        assert isinstance(self.driver.cli, emc_vnx_cli.EMCVnxCliPool)"},{"line_number":1530,"context_line":"        # mock the command executor"},{"line_number":1531,"context_line":"        fake_command_execute \u003d self.get_command_execute_simulator("},{"line_number":1532,"context_line":"            commands, results)"},{"line_number":1533,"context_line":"        fake_cli \u003d mock.MagicMock(side_effect\u003dfake_command_execute)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2dfe6938","line":1530,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1559,"context_line":"        self.driver \u003d EMCCLIISCSIDriver(configuration\u003dself.configuration)"},{"line_number":1560,"context_line":"        assert isinstance(self.driver.cli, emc_vnx_cli.EMCVnxCliPool)"},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        # mock the command executor"},{"line_number":1563,"context_line":"        fake_command_execute \u003d self.get_command_execute_simulator("},{"line_number":1564,"context_line":"            commands, results)"},{"line_number":1565,"context_line":"        fake_cli \u003d mock.MagicMock(side_effect\u003dfake_command_execute)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4df9f54c","line":1562,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1597,"context_line":"        config.iscsi_initiators \u003d \u0027{\"fakehost\": [\"10.0.0.2\"]}\u0027"},{"line_number":1598,"context_line":"        self.driver \u003d EMCCLIISCSIDriver(configuration\u003dconfig)"},{"line_number":1599,"context_line":"        assert isinstance(self.driver.cli, emc_vnx_cli.EMCVnxCliArray)"},{"line_number":1600,"context_line":"        # mock the command executor"},{"line_number":1601,"context_line":"        lun_rename_cmd \u003d (\u0027lun\u0027, \u0027-modify\u0027, \u0027-l\u0027, self.testData.test_lun_id,"},{"line_number":1602,"context_line":"                          \u0027-newName\u0027, \u0027vol_with_type\u0027, \u0027-o\u0027)"},{"line_number":1603,"context_line":"        commands \u003d [lun_rename_cmd]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_8d967dee","line":1600,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":1602,"context_line":"                          \u0027-newName\u0027, \u0027vol_with_type\u0027, \u0027-o\u0027)"},{"line_number":1603,"context_line":"        commands \u003d [lun_rename_cmd]"},{"line_number":1604,"context_line":"        results \u003d [SUCCEED]"},{"line_number":1605,"context_line":"        # mock the command executor"},{"line_number":1606,"context_line":"        fake_command_execute \u003d self.get_command_execute_simulator("},{"line_number":1607,"context_line":"            commands, results)"},{"line_number":1608,"context_line":"        fake_cli \u003d mock.MagicMock(side_effect\u003dfake_command_execute)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad997920","line":1605,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":2385,"context_line":"        self.configuration.storage_vnx_pool_name \u003d \u0027unit_test_pool\u0027"},{"line_number":2386,"context_line":"        self.configuration.san_login \u003d \u0027sysadmin\u0027"},{"line_number":2387,"context_line":"        self.configuration.san_password \u003d \u0027sysadmin\u0027"},{"line_number":2388,"context_line":"        # set the timeout to 0.012s \u003d 0.0002 * 60 \u003d 1.2ms"},{"line_number":2389,"context_line":"        self.configuration.default_timeout \u003d 0.0002"},{"line_number":2390,"context_line":"        self.configuration.initiator_auto_registration \u003d True"},{"line_number":2391,"context_line":"        self.configuration.zoning_mode \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_0d8a8dbe","line":2388,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":2674,"context_line":"                         EMCVNXCLIDriverTestData.i_t_map)"},{"line_number":2675,"context_line":""},{"line_number":2676,"context_line":"    def test_get_volume_stats(self):"},{"line_number":2677,"context_line":"        # expect_result \u003d [POOL_PROPERTY]"},{"line_number":2678,"context_line":"        self.driverSetup()"},{"line_number":2679,"context_line":"        stats \u003d self.driver.get_volume_stats(True)"},{"line_number":2680,"context_line":"        self.assertTrue(stats[\u0027driver_version\u0027] is not None,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4d9015ed","line":2677,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/test_prophetstor_dpl.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"INITIATOR \u003d \u0027iqn.2013-08.org.debian:01:aaaaaaaa\u0027"},{"line_number":32,"context_line":"DATA_IN_VOLUME \u003d {\u0027id\u0027: VOLUMEUUID}"},{"line_number":33,"context_line":"DATA_IN_CONNECTOR \u003d {\u0027initiator\u0027: INITIATOR}"},{"line_number":34,"context_line":"# dpl.getpool"},{"line_number":35,"context_line":"DATA_SERVER_INFO \u003d 0, {"},{"line_number":36,"context_line":"    \u0027metadata\u0027: {\u0027vendor\u0027: \u0027ProphetStor\u0027,"},{"line_number":37,"context_line":"                 \u0027version\u0027: \u00271.5\u0027}}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_adc099e0","line":34,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    \u0027objectType\u0027: \u0027application/cdmi-container\u0027,"},{"line_number":68,"context_line":"    \u0027percentComplete\u0027: 100}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# dpl.assignvdev"},{"line_number":71,"context_line":"DATA_ASSIGNVDEV \u003d 0, {"},{"line_number":72,"context_line":"    \u0027children\u0027: [],"},{"line_number":73,"context_line":"    \u0027childrenrange\u0027: \u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cdb32598","line":70,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/test_rbd.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                          self.driver.manage_existing,"},{"line_number":240,"context_line":"                          self.volume, existing_ref)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        # make sure the exception was raised"},{"line_number":243,"context_line":"        self.assertEqual(RAISED_EXCEPTIONS,"},{"line_number":244,"context_line":"                         [self.mock_rbd.ImageExists])"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4da73550","line":242,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/test_utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":785,"context_line":""},{"line_number":786,"context_line":"    def setUp(self):"},{"line_number":787,"context_line":"        super(AuditPeriodTest, self).setUp()"},{"line_number":788,"context_line":"        # a fairly random time to test with"},{"line_number":789,"context_line":"        test_time \u003d datetime.datetime(second\u003d23,"},{"line_number":790,"context_line":"                                      minute\u003d12,"},{"line_number":791,"context_line":"                                      hour\u003d8,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6da23140","line":788,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/test_volume.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            mock_trace_cls.return_value \u003d mock_decorator"},{"line_number":107,"context_line":"            self.volume \u003d importutils.import_object(CONF.volume_manager)"},{"line_number":108,"context_line":"        self.configuration \u003d mock.Mock(conf.Configuration)"},{"line_number":109,"context_line":"        # self.configuration \u003d conf.Configuration(fake_opts, \u0027fake_group\u0027)"},{"line_number":110,"context_line":"        self.context \u003d context.get_admin_context()"},{"line_number":111,"context_line":"        self.context.user_id \u003d \u0027fake\u0027"},{"line_number":112,"context_line":"        self.context.project_id \u003d \u0027fake\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad67b923","line":109,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/test_volume_transfer.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        self.assertEqual(len(ts), 0, \u0027Unexpected transfers listed.\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_delete_transfer_with_deleted_volume(self):"},{"line_number":126,"context_line":"        # create a volume"},{"line_number":127,"context_line":"        volume \u003d utils.create_volume(self.ctxt, id\u003d\u00271\u0027,"},{"line_number":128,"context_line":"                                     updated_at\u003dself.updated_at)"},{"line_number":129,"context_line":"        # create a transfer"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed6d4104","line":126,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        # create a volume"},{"line_number":127,"context_line":"        volume \u003d utils.create_volume(self.ctxt, id\u003d\u00271\u0027,"},{"line_number":128,"context_line":"                                     updated_at\u003dself.updated_at)"},{"line_number":129,"context_line":"        # create a transfer"},{"line_number":130,"context_line":"        tx_api \u003d transfer_api.API()"},{"line_number":131,"context_line":"        transfer \u003d tx_api.create(self.ctxt, volume[\u0027id\u0027], \u0027Description\u0027)"},{"line_number":132,"context_line":"        t \u003d tx_api.get(self.ctxt, transfer[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2d73c9e7","line":129,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        transfer \u003d tx_api.create(self.ctxt, volume[\u0027id\u0027], \u0027Description\u0027)"},{"line_number":132,"context_line":"        t \u003d tx_api.get(self.ctxt, transfer[\u0027id\u0027])"},{"line_number":133,"context_line":"        self.assertEqual(t[\u0027id\u0027], transfer[\u0027id\u0027], \u0027Unexpected transfer id\u0027)"},{"line_number":134,"context_line":"        # force delete volume"},{"line_number":135,"context_line":"        db.volume_destroy(context.get_admin_context(), volume[\u0027id\u0027])"},{"line_number":136,"context_line":"        # Make sure transfer has been deleted."},{"line_number":137,"context_line":"        self.assertRaises(exception.TransferNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6d7951c4","line":134,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/tests/test_zadara.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            if vol_name \u003d\u003d vol:"},{"line_number":194,"context_line":"                attachments \u003d params[\u0027attachments\u0027]"},{"line_number":195,"context_line":"                if srv in attachments:"},{"line_number":196,"context_line":"                    # already attached - ok"},{"line_number":197,"context_line":"                    return RUNTIME_VARS[\u0027good\u0027]"},{"line_number":198,"context_line":"                else:"},{"line_number":199,"context_line":"                    attachments.append(srv)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cd416564","line":196,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            if params[\u0027cg-name\u0027] \u003d\u003d cg_name:"},{"line_number":248,"context_line":"                snapshots \u003d params[\u0027snapshots\u0027]"},{"line_number":249,"context_line":"                if snap_name in snapshots:"},{"line_number":250,"context_line":"                    # already attached"},{"line_number":251,"context_line":"                    return RUNTIME_VARS[\u0027bad_volume\u0027]"},{"line_number":252,"context_line":"                else:"},{"line_number":253,"context_line":"                    snapshots.append(snap_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ed446174","line":250,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"cinder/volume/drivers/hds/nfs.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        nfs_info \u003d self._get_nfs_info()"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        for share in self.shares:"},{"line_number":450,"context_line":"            # export \u003d share.split(\u0027:\u0027)[1]"},{"line_number":451,"context_line":"            if share in nfs_info.keys():"},{"line_number":452,"context_line":"                LOG.info(\"share: %s -\u003e %s\" % (share, nfs_info[share][\u0027path\u0027]))"},{"line_number":453,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2d5ae94f","line":450,"updated":"2015-01-08 16:36:59.000000000","message":"Please remove.","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"551ebc14977cb81654361624cff8f09c8da52d8f","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        nfs_info \u003d self._get_nfs_info()"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        for share in self.shares:"},{"line_number":447,"context_line":"            # export \u003d share.split(\u0027:\u0027)[1]"},{"line_number":448,"context_line":"            if share in nfs_info.keys():"},{"line_number":449,"context_line":"                LOG.info(_LI(\"share: %(share)s -\u003e %(info)s\"),"},{"line_number":450,"context_line":"                         {\u0027share\u0027: share, \u0027info\u0027: nfs_info[share][\u0027path\u0027]})"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_713775e3","line":447,"updated":"2015-02-12 15:37:07.000000000","message":"Please remove commented code.","commit_id":"3f65ab32eb3cbe89973dc2a8410acd947e6e5cfc"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad753b817aea552776aadf0d036b2d420a726363","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        nfs_info \u003d self._get_nfs_info()"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        for share in self.shares:"},{"line_number":447,"context_line":"            # export \u003d share.split(\u0027:\u0027)[1]"},{"line_number":448,"context_line":"            if share in nfs_info.keys():"},{"line_number":449,"context_line":"                LOG.info(_LI(\"share: %(share)s -\u003e %(info)s\"),"},{"line_number":450,"context_line":"                         {\u0027share\u0027: share, \u0027info\u0027: nfs_info[share][\u0027path\u0027]})"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_06d77050","line":447,"updated":"2015-02-16 12:23:42.000000000","message":"Remove","commit_id":"ca2aa3063be5352fc11681ca77556b1c8f03c745"}],"cinder/volume/drivers/sheepdog.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae920513c5bc9326e6864fe90e6ed211b8b40b18","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Return error if prerequisites aren\u0027t met.\"\"\""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            # NOTE(francois-charlier) Since 0.24 \u0027collie cluster info -r\u0027"},{"line_number":54,"context_line":"            #  gives short output, but for compatibility reason we won\u0027t"},{"line_number":55,"context_line":"            #  use it and just check if \u0027running\u0027 is in the output."},{"line_number":56,"context_line":"            (out, _err) \u003d self._execute(\u0027collie\u0027, \u0027cluster\u0027, \u0027info\u0027)"},{"line_number":57,"context_line":"            if \u0027status: running\u0027 not in out:"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_f236fa4f","line":54,"updated":"2015-02-12 19:13:32.000000000","message":"This has 2 spaces instead of 1.","commit_id":"ca9ab5af5d0b9dc0b889dba724fc88fe28cc0228"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae920513c5bc9326e6864fe90e6ed211b8b40b18","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            # NOTE(francois-charlier) Since 0.24 \u0027collie cluster info -r\u0027"},{"line_number":54,"context_line":"            #  gives short output, but for compatibility reason we won\u0027t"},{"line_number":55,"context_line":"            #  use it and just check if \u0027running\u0027 is in the output."},{"line_number":56,"context_line":"            (out, _err) \u003d self._execute(\u0027collie\u0027, \u0027cluster\u0027, \u0027info\u0027)"},{"line_number":57,"context_line":"            if \u0027status: running\u0027 not in out:"},{"line_number":58,"context_line":"                exception_message \u003d (_(\"Sheepdog is not working: %s\") % out)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_1241cea8","line":55,"updated":"2015-02-12 19:13:32.000000000","message":"Same here.","commit_id":"ca9ab5af5d0b9dc0b889dba724fc88fe28cc0228"}],"cinder/volume/flows/api/create_volume.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ca577076e941397a027150c9c340282df2c71c4e","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        # exist, this is expected as it signals that the image_id is missing."},{"line_number":232,"context_line":"        image_meta \u003d self.image_service.show(context, image_id)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # check whether image is active"},{"line_number":235,"context_line":"        if image_meta[\u0027status\u0027] !\u003d \u0027active\u0027:"},{"line_number":236,"context_line":"            msg \u003d _(\u0027Image %(image_id)s is not active.\u0027)\\"},{"line_number":237,"context_line":"                % {\u0027image_id\u0027: image_id}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ad35f9f7","line":234,"updated":"2015-01-08 16:36:59.000000000","message":"upper","commit_id":"b3af2c4e29a3a164e65c9f3037c1107b4fb2b108"}],"tox.ini":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"62d5dee0133dacea3c8c611573fefdfe4e835a4e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#"},{"line_number":58,"context_line":"# E265 block comment should start with \u0027# \u0027"},{"line_number":59,"context_line":"# reason: no improvement in readability"},{"line_number":60,"context_line":"#"},{"line_number":61,"context_line":"# H402 one line docstring needs punctuation"},{"line_number":62,"context_line":"# reason: removed in hacking (https://review.openstack.org/#/c/101497/)"},{"line_number":63,"context_line":"#"}],"source_content_type":"text/x-properties","patch_set":7,"id":"da86d52c_f7a627aa","side":"PARENT","line":60,"updated":"2015-02-11 17:01:00.000000000","message":"I don\u0027t agree that this does not improve readability. But what changed that this is now improving?","commit_id":"d8c67fd99dee803c3045bad6b3ac492a4f3f8af7"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"02c286913179ee4f6b9328b96d3904290a0edfb4","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#"},{"line_number":58,"context_line":"# E265 block comment should start with \u0027# \u0027"},{"line_number":59,"context_line":"# reason: no improvement in readability"},{"line_number":60,"context_line":"#"},{"line_number":61,"context_line":"# H402 one line docstring needs punctuation"},{"line_number":62,"context_line":"# reason: removed in hacking (https://review.openstack.org/#/c/101497/)"},{"line_number":63,"context_line":"#"}],"source_content_type":"text/x-properties","patch_set":7,"id":"da86d52c_347a5988","side":"PARENT","line":60,"in_reply_to":"da86d52c_f7a627aa","updated":"2015-02-12 10:58:57.000000000","message":"According excluding E265 from ignore list, no need to have this comment left.","commit_id":"d8c67fd99dee803c3045bad6b3ac492a4f3f8af7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6992e775ca815d418cdf24e0f2ac79ed73051009","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#"},{"line_number":58,"context_line":"# E265 block comment should start with \u0027# \u0027"},{"line_number":59,"context_line":"# reason: no improvement in readability"},{"line_number":60,"context_line":"#"},{"line_number":61,"context_line":"# H402 one line docstring needs punctuation"},{"line_number":62,"context_line":"# reason: removed in hacking (https://review.openstack.org/#/c/101497/)"},{"line_number":63,"context_line":"#"}],"source_content_type":"text/x-properties","patch_set":7,"id":"da86d52c_febd00b2","side":"PARENT","line":60,"in_reply_to":"da86d52c_f7a627aa","updated":"2015-02-12 10:22:06.000000000","message":"IMHO, the fewer exception to flake8+hacking we have, the better.","commit_id":"d8c67fd99dee803c3045bad6b3ac492a4f3f8af7"}]}
