)]}'
{"swift/common/middleware/crypto/kmip_keymaster.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"283712c626169a5190449328e3ce7aca1266e114","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        if not conf.get(\u0027key_id\u0027):"},{"line_number":101,"context_line":"            raise ValueError(\u0027key_id option is required\u0027)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        self.proxy_kmip_client \u003d ProxyKmipClient("},{"line_number":104,"context_line":"            config\u003dsection,"},{"line_number":105,"context_line":"            config_file\u003dconf[\u0027__file__\u0027]"},{"line_number":106,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_684df970","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":30},"updated":"2018-08-08 20:16:18.000000000","message":"I\u0027ll have a look at whether there are any downsides to this not getting GCed pretty quickly...\n\n\nIt\u0027s *probably* fine?","commit_id":"e14b7c683e4d14357b39aa4929cbd33fb02854fb"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"283712c626169a5190449328e3ce7aca1266e114","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        return conf"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _get_root_secret(self, conf):"},{"line_number":110,"context_line":"        kmip_logger \u003d logging.getLogger(\u0027kmip\u0027)"},{"line_number":111,"context_line":"        for handler in self.logger.logger.handlers:"},{"line_number":112,"context_line":"            kmip_logger.addHandler(handler)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        with self.proxy_kmip_client as client:"},{"line_number":115,"context_line":"            secret \u003d client.get(conf[\u0027key_id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_48259daa","line":112,"range":{"start_line":110,"start_character":8,"end_line":112,"end_character":43},"updated":"2018-08-08 20:16:18.000000000","message":"We want this up above where we instantiate the ProxyKmipClient -- then we\u0027ll log nice messages when the config file can\u0027t be read and such.","commit_id":"e14b7c683e4d14357b39aa4929cbd33fb02854fb"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"de4fd566e5779007f69bbb3228e982855a043d21","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        multikey_opts \u003d self._load_multikey_opts(conf, \u0027key_id\u0027)"},{"line_number":124,"context_line":"        if not multikey_opts:"},{"line_number":125,"context_line":"            raise ValueError(\u0027key_id option is required\u0027)"},{"line_number":126,"context_line":"        kmip_to_secret \u003d {}"},{"line_number":127,"context_line":"        root_secrets \u003d {}"},{"line_number":128,"context_line":"        with ProxyKmipClient("}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_44520569","side":"PARENT","line":125,"updated":"2018-09-06 00:04:49.000000000","message":"I *think* it\u0027s fair to just get rid of this? The\n\n No secret loaded for active_root_secret_id None\n\nValueError seems about as good.","commit_id":"e131c8d75d25b6a77202d79f3d00fd58e8270f2d"}]}
