)]}'
{"barbican/api/controllers/consumers.py":[{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"35db53e9b443c489783d91a62e9f9892a384da77","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self.consumer_repo.create_from(new_consumer)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        pecan.response.headers[\u0027Location\u0027] \u003d ("},{"line_number":136,"context_line":"            \u0027/{0}/containers/{1}/consumers\u0027.format(keystone_id,"},{"line_number":137,"context_line":"                                                   new_consumer.container_id)"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_3bc89b21","line":136,"updated":"2014-08-28 14:48:08.000000000","message":"I think the keystone ID is no longer part of the URLs","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self.consumer_repo.create_from(new_consumer)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        pecan.response.headers[\u0027Location\u0027] \u003d ("},{"line_number":136,"context_line":"            \u0027/{0}/containers/{1}/consumers\u0027.format(keystone_id,"},{"line_number":137,"context_line":"                                                   new_consumer.container_id)"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_e942d8a9","line":136,"in_reply_to":"1abeadc6_3bc89b21","updated":"2014-08-28 16:51:23.000000000","message":"Oh, yeah... I guess this didn\u0027t get fixed as part of that commit, I guess I\u0027ll do it here even though this CR is supposed to be non-impacting changes just for hacking. :P","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":8004,"name":"Paul Kehrer","email":"paul.l.kehrer@gmail.com","username":"reaperhulk"},"change_message_id":"c875a1d9842494f84983636b51faca13f5705248","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self.consumer_repo.create_from(new_consumer)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        pecan.response.headers[\u0027Location\u0027] \u003d ("},{"line_number":136,"context_line":"            \u0027/containers/{0}/consumers\u0027.format(new_consumer.container_id)"},{"line_number":137,"context_line":"        )"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        return self._return_container_data(self.container_id, keystone_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_5107391c","line":136,"updated":"2014-09-02 20:19:46.000000000","message":"This looks like a fix for when we switched away from having the keystone project ID in the URI, but I\u0027d like to see a test since this fixes a bug.","commit_id":"289f590b87b3e79c6c60653128ec1f8a724a1066"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"ace416db9fbb4edd635339aa1f10d6d47edb481a","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self.consumer_repo.create_from(new_consumer)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        pecan.response.headers[\u0027Location\u0027] \u003d ("},{"line_number":136,"context_line":"            \u0027/containers/{0}/consumers\u0027.format(new_consumer.container_id)"},{"line_number":137,"context_line":"        )"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        return self._return_container_data(self.container_id, keystone_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_a0f2c96c","line":136,"in_reply_to":"fa98f980_5107391c","updated":"2014-09-02 22:30:37.000000000","message":"Now even my formatting CRs need tests! :P\n\nI\u0027ll get this done in a few minutes and we can get this change in.","commit_id":"289f590b87b3e79c6c60653128ec1f8a724a1066"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"5aa4b854a546491f06f957cb3c88956076482725","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self.consumer_repo.create_from(new_consumer)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        pecan.response.headers[\u0027Location\u0027] \u003d ("},{"line_number":136,"context_line":"            \u0027/containers/{0}/consumers\u0027.format(new_consumer.container_id)"},{"line_number":137,"context_line":"        )"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        return self._return_container_data(self.container_id, keystone_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_d1387ef1","line":136,"updated":"2014-09-03 02:01:44.000000000","message":"There is a line now that tests this in the main consumer creation test. I\u0027ll point it out.","commit_id":"63889dd3c3326abb2ff581b6a4558b716f417335"}],"barbican/api/controllers/containers.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"5aa4b854a546491f06f957cb3c88956076482725","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.container_repo.create_from(new_container)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        pecan.response.status \u003d 201"},{"line_number":168,"context_line":"        pecan.response.headers[\u0027Location\u0027] \u003d \u0027/containers/{0}\u0027.format("},{"line_number":169,"context_line":"            new_container.id"},{"line_number":170,"context_line":"        )"},{"line_number":171,"context_line":"        url \u003d controllers.hrefs.convert_container_to_href(new_container.id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_510bae29","line":168,"updated":"2014-09-03 02:01:44.000000000","message":"Discovered this also while I was looking around, I know this isn\u0027t supposed to be a bugfix CR at all, but since I fixed the other one in Consumers, it seemed silly to not do this as well. I also added a test line for this.","commit_id":"63889dd3c3326abb2ff581b6a4558b716f417335"}],"barbican/api/controllers/orders.py":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        result \u003d (self.order_repo.get_by_create_date("},{"line_number":109,"context_line":"            keystone_id, offset_arg\u003dkw.get(\u0027offset\u0027, 0),"},{"line_number":110,"context_line":"            limit_arg\u003dkw.get(\u0027limit\u0027, None), suppress_exception\u003dTrue))"},{"line_number":111,"context_line":"        orders, offset, limit, total \u003d result"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if not orders:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_ed64b223","line":110,"updated":"2014-08-28 11:36:12.000000000","message":"why is this extra parenthesis needed? couldn\u0027t it be just:\n\n        result \u003d self.order_repo.get_by_create_date(\n            keystone_id, offset_arg\u003dkw.get(\u0027offset\u0027, 0),\n            limit_arg\u003dkw.get(\u0027limit\u0027, None), suppress_exception\u003dTrue)","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        result \u003d (self.order_repo.get_by_create_date("},{"line_number":109,"context_line":"            keystone_id, offset_arg\u003dkw.get(\u0027offset\u0027, 0),"},{"line_number":110,"context_line":"            limit_arg\u003dkw.get(\u0027limit\u0027, None), suppress_exception\u003dTrue))"},{"line_number":111,"context_line":"        orders, offset, limit, total \u003d result"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if not orders:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_49e58ca2","line":110,"in_reply_to":"1abeadc6_ed64b223","updated":"2014-08-28 16:51:23.000000000","message":"lol yes, I believe you are correct.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"}],"barbican/api/controllers/secrets.py":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                    \u0027total\u0027: total}"},{"line_number":249,"context_line":"        else:"},{"line_number":250,"context_line":"            secret_fields \u003d lambda sf: (putil.mime_types"},{"line_number":251,"context_line":"                                        .augment_fields_with_content_types(sf))"},{"line_number":252,"context_line":"            secrets_resp \u003d ["},{"line_number":253,"context_line":"                hrefs.convert_to_hrefs(secret_fields(s))"},{"line_number":254,"context_line":"                for s in secrets"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_c85c441c","line":251,"updated":"2014-08-28 11:36:12.000000000","message":"why not instead of adding this parentheses, change this so, that \"secret_fields\" stops being defined by a lambda, and is instead defined as an actual function? preferably with a name that would actually state what it\u0027s actually doing. I would be happy even if it\u0027s defined inside this function.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                    \u0027total\u0027: total}"},{"line_number":249,"context_line":"        else:"},{"line_number":250,"context_line":"            secret_fields \u003d lambda sf: (putil.mime_types"},{"line_number":251,"context_line":"                                        .augment_fields_with_content_types(sf))"},{"line_number":252,"context_line":"            secrets_resp \u003d ["},{"line_number":253,"context_line":"                hrefs.convert_to_hrefs(secret_fields(s))"},{"line_number":254,"context_line":"                for s in secrets"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_49382cee","line":251,"in_reply_to":"1abeadc6_c85c441c","updated":"2014-08-28 16:51:23.000000000","message":"Sounds legit.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"}],"barbican/common/validators.py":[{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"35db53e9b443c489783d91a62e9f9892a384da77","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def _assert_expiration_is_valid(self, expiration, schema_name):"},{"line_number":192,"context_line":"        \"\"\"Asserts that the given expiration date is valid."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        Expiration dates should be in the future, not the past."},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":"        if expiration:"},{"line_number":197,"context_line":"            # Verify not already expired."}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_1b003f01","line":194,"updated":"2014-08-28 14:48:08.000000000","message":"actually its MUST not SHOULD","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def _assert_expiration_is_valid(self, expiration, schema_name):"},{"line_number":192,"context_line":"        \"\"\"Asserts that the given expiration date is valid."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        Expiration dates should be in the future, not the past."},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":"        if expiration:"},{"line_number":197,"context_line":"            # Verify not already expired."}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_0919d487","line":194,"in_reply_to":"1abeadc6_1b003f01","updated":"2014-08-28 16:51:23.000000000","message":"Done","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"}],"barbican/plugin/crypto/simple_crypto.py":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        crypto lib."},{"line_number":108,"context_line":"        \"\"\""},{"line_number":109,"context_line":"        if(generate_dto.algorithm is None or generate_dto"},{"line_number":110,"context_line":"                .algorithm.lower() \u003d\u003d \u0027rsa\u0027):"},{"line_number":111,"context_line":"            private_key \u003d RSA.generate("},{"line_number":112,"context_line":"                generate_dto.bit_length, None, None, 65537)"},{"line_number":113,"context_line":"        elif generate_dto.algorithm.lower() \u003d\u003d \u0027dsa\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_6897b090","line":110,"updated":"2014-08-28 11:36:12.000000000","message":"What about:\n\n        if (generate_dto.algorithm is None or\n                generate_dto.algorithm.lower() \u003d\u003d \u0027rsa\u0027):\n\n??","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        crypto lib."},{"line_number":108,"context_line":"        \"\"\""},{"line_number":109,"context_line":"        if(generate_dto.algorithm is None or generate_dto"},{"line_number":110,"context_line":"                .algorithm.lower() \u003d\u003d \u0027rsa\u0027):"},{"line_number":111,"context_line":"            private_key \u003d RSA.generate("},{"line_number":112,"context_line":"                generate_dto.bit_length, None, None, 65537)"},{"line_number":113,"context_line":"        elif generate_dto.algorithm.lower() \u003d\u003d \u0027dsa\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_6406ef1d","line":110,"in_reply_to":"1abeadc6_6897b090","updated":"2014-08-28 16:51:23.000000000","message":"It thinks that\u0027s an over-indent. :( This one was really tricky. I think I have to leave it as-is.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if (algorithm.lower() in"},{"line_number":194,"context_line":"                c.PluginSupportTypes.SYMMETRIC_ALGORITHMS and bit_length in"},{"line_number":195,"context_line":"                c.PluginSupportTypes.SYMMETRIC_KEY_LENGTHS):"},{"line_number":196,"context_line":"            return True"},{"line_number":197,"context_line":"        elif (algorithm.lower() in c.PluginSupportTypes.ASYMMETRIC_ALGORITHMS"},{"line_number":198,"context_line":"              and bit_length in c.PluginSupportTypes.ASYMMETRIC_KEY_LENGTHS):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_48cd94b6","line":195,"updated":"2014-08-28 11:36:12.000000000","message":"What about:\n\n        if (algorithm.lower() in c.PluginSupportTypes.SYMMETRIC_ALGORITHMS and\n                bit_length in c.PluginSupportTypes.SYMMETRIC_KEY_LENGTHS):\n\n\nor\n\n        if (algorithm.lower() in c.PluginSupportTypes.SYMMETRIC_ALGORITHMS\n                and bit_length in c.PluginSupportTypes.SYMMETRIC_KEY_LENGTHS):\n\n??","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if (algorithm.lower() in"},{"line_number":194,"context_line":"                c.PluginSupportTypes.SYMMETRIC_ALGORITHMS and bit_length in"},{"line_number":195,"context_line":"                c.PluginSupportTypes.SYMMETRIC_KEY_LENGTHS):"},{"line_number":196,"context_line":"            return True"},{"line_number":197,"context_line":"        elif (algorithm.lower() in c.PluginSupportTypes.ASYMMETRIC_ALGORITHMS"},{"line_number":198,"context_line":"              and bit_length in c.PluginSupportTypes.ASYMMETRIC_KEY_LENGTHS):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_04453b42","line":195,"in_reply_to":"1abeadc6_48cd94b6","updated":"2014-08-28 16:51:23.000000000","message":"Visual indent is the same as the following line, and visual-over-indent, respectively. These also were super tricky. I tried a ton of combinations, and those are what I\u0027d prefer personally too, but neither work.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"}],"barbican/plugin/resources.py":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        # plugin with transport key is found"},{"line_number":25,"context_line":"        store_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":26,"context_line":"                        .get_plugin_store(key_spec\u003dkey_spec,"},{"line_number":27,"context_line":"                                          transport_key_needed\u003dTrue))"},{"line_number":28,"context_line":"        plugin_name \u003d utils.generate_fullname_for(store_plugin)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        key_repo \u003d repos.transport_key_repo"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_a800e8ab","line":27,"updated":"2014-08-28 11:36:12.000000000","message":"What about:\n\n        plugin_manager \u003d secret_store.SecretStorePluginManager()\n        store_plugin \u003d plugin_manager.get_plugin_store(\n            key_spec\u003dkey_spec, transport_key_needed\u003dTrue)\n\nIt\u0027s the same amount of lines of code and actually a bit more readable.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        # plugin with transport key is found"},{"line_number":25,"context_line":"        store_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":26,"context_line":"                        .get_plugin_store(key_spec\u003dkey_spec,"},{"line_number":27,"context_line":"                                          transport_key_needed\u003dTrue))"},{"line_number":28,"context_line":"        plugin_name \u003d utils.generate_fullname_for(store_plugin)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        key_repo \u003d repos.transport_key_repo"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_245f97e6","line":27,"in_reply_to":"1abeadc6_a800e8ab","updated":"2014-08-28 16:51:23.000000000","message":"Yeah, I wasn\u0027t really \"refactoring\" when i went through this the first time (was going for the lightest touch possible), but I think maybe these deserve to be looked at a little deeper (like this). I\u0027ll make this change and in the future I\u0027ll look more at doing things like this.\n\nI am tempted to actually put that plugin_manager into the global scope here, but I don\u0027t know if there would be any bad side-effects to that, so I\u0027ll do it inside each function for now.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    # Locate a suitable plugin to store the secret."},{"line_number":96,"context_line":"    store_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":97,"context_line":"                    .get_plugin_store(key_spec\u003dkey_spec,"},{"line_number":98,"context_line":"                                      plugin_name\u003dplugin_name))"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # Normalize inputs prior to storage."},{"line_number":101,"context_line":"    # TODO(john-wood-w) Normalize all secrets to base64, so we don\u0027t have to"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_88c88c56","line":98,"updated":"2014-08-28 11:36:12.000000000","message":"Same comment as in line 27, since it seems to be the same pattern.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    # Locate a suitable plugin to store the secret."},{"line_number":96,"context_line":"    store_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":97,"context_line":"                    .get_plugin_store(key_spec\u003dkey_spec,"},{"line_number":98,"context_line":"                                      plugin_name\u003dplugin_name))"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # Normalize inputs prior to storage."},{"line_number":101,"context_line":"    # TODO(john-wood-w) Normalize all secrets to base64, so we don\u0027t have to"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_84114b06","line":98,"in_reply_to":"1abeadc6_88c88c56","updated":"2014-08-28 16:51:23.000000000","message":"Done","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    # Locate a suitable plugin to store the secret."},{"line_number":143,"context_line":"    retrieve_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":144,"context_line":"                       .get_plugin_retrieve_delete(secret_metadata"},{"line_number":145,"context_line":"                                                   .get(\u0027plugin_name\u0027)))"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    # Retrieve the secret."},{"line_number":148,"context_line":"    # TODO(john-wood-w) Remove the SecretStoreContext once repository factory"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_a8c1c830","line":145,"updated":"2014-08-28 11:36:12.000000000","message":"Same comment as in line 27","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    # Locate a suitable plugin to store the secret."},{"line_number":143,"context_line":"    retrieve_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":144,"context_line":"                       .get_plugin_retrieve_delete(secret_metadata"},{"line_number":145,"context_line":"                                                   .get(\u0027plugin_name\u0027)))"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    # Retrieve the secret."},{"line_number":148,"context_line":"    # TODO(john-wood-w) Remove the SecretStoreContext once repository factory"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_c41d0311","line":145,"in_reply_to":"1abeadc6_a8c1c830","updated":"2014-08-28 16:51:23.000000000","message":"Done","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    retrieve_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":170,"context_line":"                       .get_plugin_retrieve_delete(secret_metadata"},{"line_number":171,"context_line":"                                                   .get(\u0027plugin_name\u0027)))"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    transport_key_id \u003d retrieve_plugin.get_transport_key()"},{"line_number":174,"context_line":"    return transport_key_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_e8b740d6","line":171,"updated":"2014-08-28 11:36:12.000000000","message":"Same comment as in line 27","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    retrieve_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":170,"context_line":"                       .get_plugin_retrieve_delete(secret_metadata"},{"line_number":171,"context_line":"                                                   .get(\u0027plugin_name\u0027)))"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    transport_key_id \u003d retrieve_plugin.get_transport_key()"},{"line_number":174,"context_line":"    return transport_key_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_24d4f71e","line":171,"in_reply_to":"1abeadc6_e8b740d6","updated":"2014-08-28 16:51:23.000000000","message":"Done","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    # Locate a suitable plugin to delete the secret from."},{"line_number":225,"context_line":"    delete_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":226,"context_line":"                     .get_plugin_retrieve_delete(secret_metadata"},{"line_number":227,"context_line":"                                                 .get(\u0027plugin_name\u0027)))"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    # Delete the secret from plugin storage."},{"line_number":230,"context_line":"    delete_plugin.delete_secret(secret_metadata)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_48b3d4e8","line":227,"updated":"2014-08-28 11:36:12.000000000","message":"Same comment as in line 27","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    # Locate a suitable plugin to delete the secret from."},{"line_number":225,"context_line":"    delete_plugin \u003d (secret_store.SecretStorePluginManager()"},{"line_number":226,"context_line":"                     .get_plugin_retrieve_delete(secret_metadata"},{"line_number":227,"context_line":"                                                 .get(\u0027plugin_name\u0027)))"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    # Delete the secret from plugin storage."},{"line_number":230,"context_line":"    delete_plugin.delete_secret(secret_metadata)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_e4ed9ff1","line":227,"in_reply_to":"1abeadc6_48b3d4e8","updated":"2014-08-28 16:51:23.000000000","message":"Done","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"}],"barbican/plugin/store_crypto.py":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"787628c81241d6538f3134afe35a78ca65d3a3ed","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                          key_spec.mode, None)"},{"line_number":144,"context_line":"        # Create the encrypted meta."},{"line_number":145,"context_line":"        response_dto \u003d (generating_plugin.generate_symmetric("},{"line_number":146,"context_line":"            generate_dto, kek_meta_dto, context.tenant_model.keystone_id))"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # Convert binary data into a text-based format."},{"line_number":149,"context_line":"        # TODO(jwood) Figure out by storing binary (BYTEA) data in Postgres"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_28fcd871","line":146,"updated":"2014-08-28 11:36:12.000000000","message":"Why not have:\n\n        response_dto \u003d generating_plugin.generate_symmetric(\n            generate_dto, kek_meta_dto, context.tenant_model.keystone_id)\n\n??","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"041fd793c1eeae4a9725ea1da5511fabba476d10","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                          key_spec.mode, None)"},{"line_number":144,"context_line":"        # Create the encrypted meta."},{"line_number":145,"context_line":"        response_dto \u003d (generating_plugin.generate_symmetric("},{"line_number":146,"context_line":"            generate_dto, kek_meta_dto, context.tenant_model.keystone_id))"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # Convert binary data into a text-based format."},{"line_number":149,"context_line":"        # TODO(jwood) Figure out by storing binary (BYTEA) data in Postgres"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_04e1bb29","line":146,"in_reply_to":"1abeadc6_28fcd871","updated":"2014-08-28 16:51:23.000000000","message":"Yep, correct.","commit_id":"a3ea2c95792bc0a2fab0f0d1656fb75e4237d1af"}],"barbican/tests/api/test_resources.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"5aa4b854a546491f06f957cb3c88956076482725","unresolved":false,"context_lines":[{"line_number":1861,"context_line":"            self.container_req"},{"line_number":1862,"context_line":"        )"},{"line_number":1863,"context_line":"        self.assertEqual(resp.status_int, 201)"},{"line_number":1864,"context_line":"        self.assertNotIn(self.tenant_keystone_id, resp.headers[\u0027Location\u0027])"},{"line_number":1865,"context_line":""},{"line_number":1866,"context_line":"        args, kwargs \u003d self.container_repo.create_from.call_args"},{"line_number":1867,"context_line":"        container \u003d args[0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_fc071916","line":1864,"updated":"2014-09-03 02:01:44.000000000","message":"Here and a few lines down are the two additional asserts for making sure the keystone ID isn\u0027t returned as part of the header URL (I wasn\u0027t sure if I should be testing the EXACT return URL or just to be positive that the particular bug was fixed).","commit_id":"63889dd3c3326abb2ff581b6a4558b716f417335"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"36ea99f042977fec4bf09f770699ffd9f67150b5","unresolved":false,"context_lines":[{"line_number":1861,"context_line":"            self.container_req"},{"line_number":1862,"context_line":"        )"},{"line_number":1863,"context_line":"        self.assertEqual(resp.status_int, 201)"},{"line_number":1864,"context_line":"        self.assertNotIn(self.tenant_keystone_id, resp.headers[\u0027Location\u0027])"},{"line_number":1865,"context_line":""},{"line_number":1866,"context_line":"        args, kwargs \u003d self.container_repo.create_from.call_args"},{"line_number":1867,"context_line":"        container \u003d args[0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_ab5c1e4c","line":1864,"in_reply_to":"fa98f980_8f3dad2d","updated":"2014-09-04 19:10:46.000000000","message":"Yeah, honestly I think it\u0027s probably pretty close to the same -- I might opt to just stick with this unless you have a serious objection or something that is CLEARLY better. :)","commit_id":"63889dd3c3326abb2ff581b6a4558b716f417335"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"f868e84f43d23808971c5f6dd295373b4f834dc9","unresolved":false,"context_lines":[{"line_number":1861,"context_line":"            self.container_req"},{"line_number":1862,"context_line":"        )"},{"line_number":1863,"context_line":"        self.assertEqual(resp.status_int, 201)"},{"line_number":1864,"context_line":"        self.assertNotIn(self.tenant_keystone_id, resp.headers[\u0027Location\u0027])"},{"line_number":1865,"context_line":""},{"line_number":1866,"context_line":"        args, kwargs \u003d self.container_repo.create_from.call_args"},{"line_number":1867,"context_line":"        container \u003d args[0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_8f3dad2d","line":1864,"in_reply_to":"fa98f980_fc071916","updated":"2014-09-04 15:14:40.000000000","message":"howsabout checking for location startswith /containers - then if it has /\u003ctenantID\u003e/containers then that would fail - unless of course the tenant ID is \"containers\" :-)","commit_id":"63889dd3c3326abb2ff581b6a4558b716f417335"}]}
