)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"6c22c45054e9841ff484511461303513d12eb7e9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ade Lee \u003calee@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-16 22:46:41 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Second commit for Common Cert API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds the plugin contract changes and code needed"},{"line_number":10,"context_line":"to pass the new cert request types to the plugins."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_931f25b7","line":7,"updated":"2014-12-17 06:54:31.000000000","message":"Same as the previous nitpick - \"Second commit\" means that someone trying to track down a bug for reverting is going to have a bad day.","commit_id":"2e8f174a1e9cf44b46a22be6fe2cd6ddb85ef060"}],"barbican/plugin/interface/certificate_manager.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"924ffa63060e527dc1acbb5a6b9cc0ff69bf4a4d","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        The current defined capabilities are:"},{"line_number":283,"context_line":"            REQUEST_TYPE -- which defaults to CUSTOM_REQUEST"},{"line_number":284,"context_line":"        \"\"\""},{"line_number":285,"context_line":"        return {REQUEST_TYPE, [CUSTOM_REQUEST]}"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"class CertificateStatus(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_363bcaec","line":285,"updated":"2014-12-16 23:33:41.000000000","message":"Typo (comma -\u003e semicolon):\n\nreturn {REQUEST_TYPE: [CUSTOM_REQUEST]}","commit_id":"d5b7729bde7746b579cc94fed7021aa7e01d16e0"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"f5ba73141d9a4a4974c69e82a86de2791335b621","unresolved":false,"context_lines":[{"line_number":83,"context_line":"CA_TYPE \u003d \"ca_type\""},{"line_number":84,"context_line":"CA_SUBJECT_KEY_IDENTIFIER \u003d \"ca_subject_key_identifier\""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"# certificate request types"},{"line_number":87,"context_line":"REQUEST_TYPE \u003d \"request_type\""},{"line_number":88,"context_line":"CUSTOM_REQUEST \u003d \"custom\""},{"line_number":89,"context_line":"FULL_CMC_REQUEST \u003d \"full-cmc\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_16d6a7f1","line":86,"updated":"2014-12-18 00:05:21.000000000","message":"Please use a constants class, like here: https://github.com/openstack/barbican/blob/master/barbican/plugin/interface/secret_store.py#L155","commit_id":"2e8f174a1e9cf44b46a22be6fe2cd6ddb85ef060"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"6c22c45054e9841ff484511461303513d12eb7e9","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        \"\"\""},{"line_number":274,"context_line":"        raise NotImplementedError  # pragma: no cover"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def provides(self):"},{"line_number":277,"context_line":"        \"\"\"Returns the capabilities supported by this plugin."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        :returns: dict containing Barbican-core defined capabilities"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_2e5d2aea","line":276,"updated":"2014-12-17 06:54:31.000000000","message":"Can we please change this name. We also have a method called supports, and somehow a dev is expected to distinguish between the two methods \"supports\" and \"provides\" in some meaningful way.\n\nAre there any other use cases than request_type? I am having a hard time thinking of one which makes me think this is just a case of over-abstracting too early. How about just having a field called supported_request_types and if we think of a use case later we can abstract away then.","commit_id":"2e8f174a1e9cf44b46a22be6fe2cd6ddb85ef060"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"f5ba73141d9a4a4974c69e82a86de2791335b621","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        \"\"\""},{"line_number":274,"context_line":"        raise NotImplementedError  # pragma: no cover"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def provides(self):"},{"line_number":277,"context_line":"        \"\"\"Returns the capabilities supported by this plugin."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        :returns: dict containing Barbican-core defined capabilities"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_f61f5bb5","line":276,"in_reply_to":"3a961159_2e5d2aea","updated":"2014-12-18 00:05:21.000000000","message":"I think provides() was also envisioned to (eventually) return the sub-CAs this plugin supports. Having a more direct-to-purpose method like \u0027supported_request_types()\u0027 would simplify things a bit though....that dict does scare me a tad. :)","commit_id":"2e8f174a1e9cf44b46a22be6fe2cd6ddb85ef060"}],"barbican/plugin/simple_certificate_manager.py":[{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"f5ba73141d9a4a4974c69e82a86de2791335b621","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        :returns: dict containing Barbican-core defined capabilities"},{"line_number":105,"context_line":"                  of this plugin."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        The current defined capabilities are:"},{"line_number":108,"context_line":"            REQUEST_TYPE -- which defaults to CUSTOM_REQUEST"},{"line_number":109,"context_line":"        \"\"\""},{"line_number":110,"context_line":"        provides_list \u003d [cert.CUSTOM_REQUEST, cert.SIMPLE_CMC_REQUEST,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_965d377c","line":107,"updated":"2014-12-18 00:05:21.000000000","message":"This sentence only applied to the base/abstract impl, not this one.","commit_id":"2e8f174a1e9cf44b46a22be6fe2cd6ddb85ef060"}],"barbican/tasks/certificate_resources.py":[{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"f5ba73141d9a4a4974c69e82a86de2791335b621","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    # Locate a suitable plugin to issue a certificate."},{"line_number":76,"context_line":"    cert_plugin \u003d cert.CertificatePluginManager().get_plugin(order_model.meta)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    request_type \u003d order_model.get(cert.REQUEST_TYPE)"},{"line_number":79,"context_line":"    if request_type \u003d\u003d cert.STORED_KEY_REQUEST:"},{"line_number":80,"context_line":"        _generate_csr(order_model, repos)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_369563e4","line":78,"updated":"2014-12-18 00:05:21.000000000","message":"I think \u0027meta\u0027 needs to be added after \u0027order_model\u0027.","commit_id":"2e8f174a1e9cf44b46a22be6fe2cd6ddb85ef060"}]}
