)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"b06d8d61c42ae1af9a18b9394f041cbed3c7da16","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Refactor BarbicanAuth to allow for configurable auth method"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is now a new configuration option \"barbican_auth\" in the"},{"line_number":10,"context_line":"certificates section, to specify with auth plugin to use when"},{"line_number":11,"context_line":"communicating with Barbican. This is because the default option (using"},{"line_number":12,"context_line":"ACLs inside Barbican to control access) should be ok as a default"},{"line_number":13,"context_line":"workflow, but it might be required to use other methods depending on"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa80f949_4a91bb98","line":10,"updated":"2015-11-04 15:48:51.000000000","message":"s/with/which/ ?","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"98b2ab7eb23e210b58ef351c876aad36d4112b53","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Refactor BarbicanAuth to allow for configurable auth method"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is now a new configuration option \"barbican_auth\" in the"},{"line_number":10,"context_line":"certificates section, to specify with auth plugin to use when"},{"line_number":11,"context_line":"communicating with Barbican. This is because the default option (using"},{"line_number":12,"context_line":"ACLs inside Barbican to control access) should be ok as a default"},{"line_number":13,"context_line":"workflow, but it might be required to use other methods depending on"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa80f949_f0a8a0dd","line":10,"in_reply_to":"fa80f949_4a91bb98","updated":"2015-11-04 16:29:06.000000000","message":"Done","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"4a79ad65ce46bbc76cf1110cbf1d7edf5583a6fd","unresolved":false,"context_lines":[{"line_number":14,"context_line":"your deployment. For example, another possible auth method would be"},{"line_number":15,"context_line":"BarbicanTrustAuth, utilizing Keystone Trusts."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Rackspace will be using an internal auth method that does not exist in"},{"line_number":18,"context_line":"upstream Keystone, and will need its own Auth plugin. This should be in line"},{"line_number":19,"context_line":"with the way Octavia\u0027s network and compute drivers work already."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa80f949_f135ff45","line":17,"updated":"2015-11-04 19:02:20.000000000","message":"Is it worth mentioning?","commit_id":"903b0c2d82d9a3af341c2de5563320e7e57f1502"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"95291219a9e0687bbb368c33d181fca252a56389","unresolved":false,"context_lines":[{"line_number":14,"context_line":"your deployment. For example, another possible auth method would be"},{"line_number":15,"context_line":"BarbicanTrustAuth, utilizing Keystone Trusts."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Rackspace will be using an internal auth method that does not exist in"},{"line_number":18,"context_line":"upstream Keystone, and will need its own Auth plugin. This should be in line"},{"line_number":19,"context_line":"with the way Octavia\u0027s network and compute drivers work already."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa80f949_8dea360e","line":17,"in_reply_to":"fa80f949_f135ff45","updated":"2015-11-05 13:19:53.000000000","message":"Not necessarily? Though I have gotten questions in the past like \"why do we need this, please justify making this an interface\" so I just put it in from the beginning. Maybe the answer should be \"some deployers\", not necessarily Rackspace, since that is really true too.","commit_id":"903b0c2d82d9a3af341c2de5563320e7e57f1502"}],"octavia/certificates/common/barbican.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"98b04d1d3016db41354b93920b9d54298dc68f0c","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":66,"context_line":"class BarbicanAuth(object):"},{"line_number":67,"context_line":"    _barbican_client \u003d None"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @classmethod"},{"line_number":70,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_5d553e1b","line":67,"updated":"2015-11-07 07:30:29.000000000","message":"no need to define this attribute in this class","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"3d16ae47784f8c795f1d32498c1b986a78973a21","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":66,"context_line":"class BarbicanAuth(object):"},{"line_number":67,"context_line":"    _barbican_client \u003d None"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @classmethod"},{"line_number":70,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_4140d0a5","line":67,"in_reply_to":"da85f559_5d553e1b","updated":"2015-11-09 14:10:58.000000000","message":"Moved this, as it\u0027s technically an implementation detail.","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"98b04d1d3016db41354b93920b9d54298dc68f0c","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @classmethod"},{"line_number":70,"context_line":"    @abc.abstractmethod"},{"line_number":71,"context_line":"    def get_barbican_client(cls):"},{"line_number":72,"context_line":"        \"\"\"Creates a Barbican client object."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :return: a Barbican Client object"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_1d36d603","line":71,"updated":"2015-11-07 07:30:29.000000000","message":"ABCMeta metaclass checks if abstractmethods are overloaded on class instantiation, it seems there is no reason to instantiate its subclasses as they provide a classmethod. \n\nbarbican module loads the barbican auth using invoke_on_load\u003dTrue which means you can transform this abstract class method into an abstract instance method in order to enforce the check","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"3d16ae47784f8c795f1d32498c1b986a78973a21","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @classmethod"},{"line_number":70,"context_line":"    @abc.abstractmethod"},{"line_number":71,"context_line":"    def get_barbican_client(cls):"},{"line_number":72,"context_line":"        \"\"\"Creates a Barbican client object."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :return: a Barbican Client object"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_a1117cae","line":71,"in_reply_to":"da85f559_1d36d603","updated":"2015-11-09 14:10:58.000000000","message":"I think I\u0027ve fixed this the way you meant.","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"98b04d1d3016db41354b93920b9d54298dc68f0c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        :return: a Barbican Client object"},{"line_number":75,"context_line":"        :raises Exception: if the client cannot be created"},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        pass"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class BarbicanACLAuth(BarbicanAuth):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_3d587a56","line":77,"updated":"2015-11-07 07:30:29.000000000","message":"No need to add pass, coverage tools will consider it as uncovered by tests","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"3d16ae47784f8c795f1d32498c1b986a78973a21","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        :return: a Barbican Client object"},{"line_number":75,"context_line":"        :raises Exception: if the client cannot be created"},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        pass"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"class BarbicanACLAuth(BarbicanAuth):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_012168fb","line":77,"in_reply_to":"da85f559_3d587a56","updated":"2015-11-09 14:10:58.000000000","message":"Ah yeah, I thought you had to have SOMETHING here, I guess not.","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"6a9098903469801a9b0fc74abcc3557e0b53f15b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":66,"context_line":"class BarbicanAuth(object):"},{"line_number":67,"context_line":"    @abc.abstractmethod"},{"line_number":68,"context_line":"    def get_barbican_client(cls):"},{"line_number":69,"context_line":"        \"\"\"Creates a Barbican client object."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        :return: a Barbican Client object"}],"source_content_type":"text/x-python","patch_set":10,"id":"da85f559_1d98b2bf","line":68,"updated":"2015-11-10 12:50:35.000000000","message":"it should be self instead of cls","commit_id":"3f19c278693c6bad124a42ef326a15932336549c"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"406a79dd7654d4de1c12e9e9138f7bfd2cf27a48","unresolved":false,"context_lines":[{"line_number":65,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":66,"context_line":"class BarbicanAuth(object):"},{"line_number":67,"context_line":"    @abc.abstractmethod"},{"line_number":68,"context_line":"    def get_barbican_client(cls):"},{"line_number":69,"context_line":"        \"\"\"Creates a Barbican client object."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        :return: a Barbican Client object"}],"source_content_type":"text/x-python","patch_set":10,"id":"da85f559_bc40da36","line":68,"in_reply_to":"da85f559_1d98b2bf","updated":"2015-11-14 15:10:57.000000000","message":"Ah, yeah technically doesn\u0027t matter but you are correct.","commit_id":"3f19c278693c6bad124a42ef326a15932336549c"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"6a9098903469801a9b0fc74abcc3557e0b53f15b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    _barbican_client \u003d None"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get_barbican_client(self):"},{"line_number":80,"context_line":"        if not self._barbican_client:"},{"line_number":81,"context_line":"            try:"},{"line_number":82,"context_line":"                self._barbican_client \u003d barbican_client.Client("},{"line_number":83,"context_line":"                    session\u003dkeystone.get_session()"}],"source_content_type":"text/x-python","patch_set":10,"id":"da85f559_9d06e2cc","line":80,"updated":"2015-11-10 12:50:35.000000000","message":"barbican client will be instantiated once per BarbicanACLAuth instance instead of of once of all instances (previous behavior)","commit_id":"3f19c278693c6bad124a42ef326a15932336549c"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"406a79dd7654d4de1c12e9e9138f7bfd2cf27a48","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    _barbican_client \u003d None"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get_barbican_client(self):"},{"line_number":80,"context_line":"        if not self._barbican_client:"},{"line_number":81,"context_line":"            try:"},{"line_number":82,"context_line":"                self._barbican_client \u003d barbican_client.Client("},{"line_number":83,"context_line":"                    session\u003dkeystone.get_session()"}],"source_content_type":"text/x-python","patch_set":10,"id":"da85f559_9c5e3611","line":80,"in_reply_to":"da85f559_9d06e2cc","updated":"2015-11-14 15:10:57.000000000","message":"I can\u0027t have this be an instance method and still use this at the class level -- I guess I am going to change it back the way I had it before, since that feature is ideal.","commit_id":"3f19c278693c6bad124a42ef326a15932336549c"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e5ae379f5a862d98e7c0032badab4a30eb79a906","unresolved":false,"context_lines":[{"line_number":63,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":64,"context_line":"class BarbicanAuth(object):"},{"line_number":65,"context_line":"    @abc.abstractmethod"},{"line_number":66,"context_line":"    def get_barbican_client(self, tenant_id):"},{"line_number":67,"context_line":"        \"\"\"Creates a Barbican client object."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        :param tenant_id: Tenant ID that the request will be used for"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_0cc7fa64","line":66,"updated":"2015-12-07 20:04:18.000000000","message":"We are renaming tenant_id-\u003eproject_id\nhttp://article.gmane.org/gmane.comp.cloud.openstack.devel/70846/match\u003drename+tenant+project+discussion\nand\nhttps://review.openstack.org/#/c/253243/\nCan we update this patch for that change?","commit_id":"0fffb8b787ee07f75090d647bd5ee806721730be"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"5e2f2646e51a2eca17617f7828c100372c19667b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def get_barbican_client(self, project_id):"},{"line_number":67,"context_line":"        \"\"\"Creates a Barbican client object."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        :param project_id: Tenant ID that the request will be used for"},{"line_number":70,"context_line":"        :return: a Barbican Client object"},{"line_number":71,"context_line":"        :raises Exception: if the client cannot be created"},{"line_number":72,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"7a740942_b0c7d762","line":69,"updated":"2015-12-08 20:28:18.000000000","message":"Huh? s/Tenant_ID/Project_id/","commit_id":"11baa9d351b3a834342fb451ac9ad43ebb39cd36"}],"octavia/certificates/manager/barbican.py":[{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"b06d8d61c42ae1af9a18b9394f041cbed3c7da16","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        except Exception as e:"},{"line_number":201,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":202,"context_line":"                LOG.error(_LE("},{"line_number":203,"context_line":"                    \"Error recursively deleting container {0}: {1}\""},{"line_number":204,"context_line":"                ).format(cert_ref, str(e)))"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_8a42433d","side":"PARENT","line":203,"updated":"2015-11-04 15:48:51.000000000","message":"Why deleting this method?\nIs it related to this change?","commit_id":"a5fc84742709ac68b44c8afa2e6c1d3ef9ef1407"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"98b2ab7eb23e210b58ef351c876aad36d4112b53","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        except Exception as e:"},{"line_number":201,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":202,"context_line":"                LOG.error(_LE("},{"line_number":203,"context_line":"                    \"Error recursively deleting container {0}: {1}\""},{"line_number":204,"context_line":"                ).format(cert_ref, str(e)))"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_109c44bf","side":"PARENT","line":203,"in_reply_to":"fa80f949_8a42433d","updated":"2015-11-04 16:29:06.000000000","message":"It\u0027s ... not exactly, was pruning it while I was here. I\u0027m adding it to the commit message.","commit_id":"a5fc84742709ac68b44c8afa2e6c1d3ef9ef1407"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"98b04d1d3016db41354b93920b9d54298dc68f0c","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self):"},{"line_number":36,"context_line":"        super(BarbicanCertManager, self).__init__()"},{"line_number":37,"context_line":"        self.auth \u003d stevedore_driver.DriverManager("},{"line_number":38,"context_line":"            namespace\u003d\u0027octavia.cert_manager\u0027,"},{"line_number":39,"context_line":"            name\u003dcfg.CONF.certificates.cert_manager,"},{"line_number":40,"context_line":"            invoke_on_load\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_fd175252","line":37,"updated":"2015-11-07 07:30:29.000000000","message":"it seems better to define a unique method to load this driver and uses it in this module and octavia/certificates/generator/barbican.py","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"3d16ae47784f8c795f1d32498c1b986a78973a21","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self):"},{"line_number":36,"context_line":"        super(BarbicanCertManager, self).__init__()"},{"line_number":37,"context_line":"        self.auth \u003d stevedore_driver.DriverManager("},{"line_number":38,"context_line":"            namespace\u003d\u0027octavia.cert_manager\u0027,"},{"line_number":39,"context_line":"            name\u003dcfg.CONF.certificates.cert_manager,"},{"line_number":40,"context_line":"            invoke_on_load\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_8199d870","line":37,"in_reply_to":"da85f559_be319b0d","updated":"2015-11-09 14:10:58.000000000","message":"Actually not sure I understand what you\u0027re looking for? I thought this was how the stevedore loading was done elsewhere as well, but I\u0027ll take a look around.","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"53d6ae6695c93dc15347f1946b64cf9f9af0fd92","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self):"},{"line_number":36,"context_line":"        super(BarbicanCertManager, self).__init__()"},{"line_number":37,"context_line":"        self.auth \u003d stevedore_driver.DriverManager("},{"line_number":38,"context_line":"            namespace\u003d\u0027octavia.cert_manager\u0027,"},{"line_number":39,"context_line":"            name\u003dcfg.CONF.certificates.cert_manager,"},{"line_number":40,"context_line":"            invoke_on_load\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_be319b0d","line":37,"in_reply_to":"da85f559_fd175252","updated":"2015-11-09 13:18:08.000000000","message":"Good catch, fully agree","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e5ae379f5a862d98e7c0032badab4a30eb79a906","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"7a740942_acea66aa","updated":"2015-12-07 20:04:18.000000000","message":"Same here tenant_id-\u003eproject_id","commit_id":"0fffb8b787ee07f75090d647bd5ee806721730be"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e5ae379f5a862d98e7c0032badab4a30eb79a906","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        super(BarbicanCertManager, self).__init__()"},{"line_number":37,"context_line":"        self.auth \u003d stevedore_driver.DriverManager("},{"line_number":38,"context_line":"            namespace\u003d\u0027octavia.cert_manager\u0027,"},{"line_number":39,"context_line":"            name\u003dcfg.CONF.certificates.cert_manager,"},{"line_number":40,"context_line":"            invoke_on_load\u003dTrue,"},{"line_number":41,"context_line":"        ).driver"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_2c02f60b","line":39,"range":{"start_line":39,"start_character":26,"end_line":39,"end_character":38},"updated":"2015-12-07 20:04:18.000000000","message":"Is this correct?  cert_manager?","commit_id":"0fffb8b787ee07f75090d647bd5ee806721730be"}],"octavia/certificates/manager/local.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e5ae379f5a862d98e7c0032badab4a30eb79a906","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"7a740942_2cee76b4","updated":"2015-12-07 20:04:18.000000000","message":"Same here tenant_id-\u003eproject_id","commit_id":"0fffb8b787ee07f75090d647bd5ee806721730be"}],"octavia/common/config.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e5ae379f5a862d98e7c0032badab4a30eb79a906","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    cfg.StrOpt(\u0027cert_generator\u0027,"},{"line_number":261,"context_line":"               default\u003d\u0027local_cert_generator\u0027,"},{"line_number":262,"context_line":"               help\u003d\u0027Name of the cert generator to use\u0027),"},{"line_number":263,"context_line":"    cfg.StrOpt(\u0027barbican_auth\u0027,"},{"line_number":264,"context_line":"               default\u003d\u0027barbican_acl_auth\u0027,"},{"line_number":265,"context_line":"               help\u003d\u0027Name of the Barbican authentication method to use\u0027)"},{"line_number":266,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_6713375c","line":263,"updated":"2015-12-07 20:04:18.000000000","message":"I am not seeing this used in the code.","commit_id":"0fffb8b787ee07f75090d647bd5ee806721730be"}],"octavia/common/tls_utils/cert_parser.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e5ae379f5a862d98e7c0032badab4a30eb79a906","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"7a740942_e7540700","updated":"2015-12-07 20:04:18.000000000","message":"Same tenant_id-\u003eproject_id","commit_id":"0fffb8b787ee07f75090d647bd5ee806721730be"}],"octavia/tests/unit/certificates/manager/test_barbican.py":[{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"b06d8d61c42ae1af9a18b9394f041cbed3c7da16","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            name\u003dself.name"},{"line_number":82,"context_line":"        )"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.assertEqual(container_ref, self.empty_container.container_ref)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        # create_secret should be called four times with our data"},{"line_number":87,"context_line":"        calls \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_ea0c2f3d","line":84,"updated":"2015-11-04 15:48:51.000000000","message":"arguments order(expected, observed)","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"98b2ab7eb23e210b58ef351c876aad36d4112b53","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            name\u003dself.name"},{"line_number":82,"context_line":"        )"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.assertEqual(container_ref, self.empty_container.container_ref)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        # create_secret should be called four times with our data"},{"line_number":87,"context_line":"        calls \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_70ba700c","line":84,"in_reply_to":"fa80f949_ea0c2f3d","updated":"2015-11-04 16:29:06.000000000","message":"Done","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"b06d8d61c42ae1af9a18b9394f041cbed3c7da16","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.bc.secrets.create.assert_has_calls(calls, any_order\u003dTrue)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # create_certificate should be called once"},{"line_number":100,"context_line":"        self.assertEqual(self.bc.containers.create_certificate.call_count, 1)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # Container should be stored once"},{"line_number":103,"context_line":"        self.empty_container.store.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_483b06ec","line":100,"updated":"2015-11-04 15:48:51.000000000","message":"should be self.assertEqual(1, self.bc.containers.create_certificate.call_count)\n\narguments order(expected, observed)","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"98b2ab7eb23e210b58ef351c876aad36d4112b53","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self.bc.secrets.create.assert_has_calls(calls, any_order\u003dTrue)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # create_certificate should be called once"},{"line_number":100,"context_line":"        self.assertEqual(self.bc.containers.create_certificate.call_count, 1)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # Container should be stored once"},{"line_number":103,"context_line":"        self.empty_container.store.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_50bf2cfb","line":100,"in_reply_to":"fa80f949_483b06ec","updated":"2015-11-04 16:29:06.000000000","message":"Done","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"b06d8d61c42ae1af9a18b9394f041cbed3c7da16","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        self.bc.secrets.create.assert_has_calls(calls, any_order\u003dTrue)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # create_certificate should be called once"},{"line_number":143,"context_line":"        self.assertEqual(self.bc.containers.create_certificate.call_count, 1)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        # Container should be stored once"},{"line_number":146,"context_line":"        self.empty_container.store.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_48122664","line":143,"updated":"2015-11-04 15:48:51.000000000","message":"arguments order(expected, observed)","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"98b2ab7eb23e210b58ef351c876aad36d4112b53","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        self.bc.secrets.create.assert_has_calls(calls, any_order\u003dTrue)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # create_certificate should be called once"},{"line_number":143,"context_line":"        self.assertEqual(self.bc.containers.create_certificate.call_count, 1)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        # Container should be stored once"},{"line_number":146,"context_line":"        self.empty_container.store.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_b0c0d87d","line":143,"in_reply_to":"fa80f949_48122664","updated":"2015-11-04 16:29:06.000000000","message":"Done","commit_id":"963af8d021d610132cb3fcd9b6e0c46b32d2dffd"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"98b04d1d3016db41354b93920b9d54298dc68f0c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self.secret4 \u003d mock.Mock(spec\u003dsecrets.Secret)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # Mock out the client"},{"line_number":61,"context_line":"        self.bc \u003d mock.MagicMock()"},{"line_number":62,"context_line":"        barbican_auth \u003d mock.Mock(spec\u003dbarbican_common.BarbicanAuth)"},{"line_number":63,"context_line":"        barbican_auth.get_barbican_client.return_value \u003d self.bc"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_b008112a","line":61,"updated":"2015-11-07 07:30:29.000000000","message":"it seems you can use a mock.Mock()","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"3d16ae47784f8c795f1d32498c1b986a78973a21","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self.secret4 \u003d mock.Mock(spec\u003dsecrets.Secret)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        # Mock out the client"},{"line_number":61,"context_line":"        self.bc \u003d mock.MagicMock()"},{"line_number":62,"context_line":"        barbican_auth \u003d mock.Mock(spec\u003dbarbican_common.BarbicanAuth)"},{"line_number":63,"context_line":"        barbican_auth.get_barbican_client.return_value \u003d self.bc"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da85f559_c12b60ea","line":61,"in_reply_to":"da85f559_b008112a","updated":"2015-11-09 14:10:58.000000000","message":"Done","commit_id":"219d0700a04f7aa3917195a2d7a58c4b66efec9d"}]}
