)]}'
{"etc/glance-api.conf":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"b94af5771ce12989027a8436667e4d09a17a0a9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9a80dd14_41672d4d","updated":"2015-03-07 21:43:51.000000000","message":"were these manually changed or regenerated?","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"55b91ddd33d825d42e33369da911f6cb231a129b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9a80dd14_01537539","in_reply_to":"9a80dd14_41672d4d","updated":"2015-03-07 22:29:59.000000000","message":"Glance doesn\u0027t currently appropriately take advantage of oslo.config\u0027s generator yet so this was manually changed.","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"}],"glance/api/policy.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"95868432f3f33e4e4c4f5375c24ca3b1f615a144","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    \"\"\"Responsible for loading and enforcing rules\"\"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def __init__(self):"},{"line_number":48,"context_line":"        if CONF.find_file(CONF.oslo_policy.policy_file):"},{"line_number":49,"context_line":"            kwargs \u003d dict(rules\u003dNone, use_conf\u003dTrue)"},{"line_number":50,"context_line":"        else:"},{"line_number":51,"context_line":"            kwargs \u003d dict(rules\u003dDEFAULT_RULES, use_conf\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_8001a308","line":48,"updated":"2015-03-17 13:30:14.000000000","message":"The configuration options are not part of the public API of the library. We need to find a way in the policy library to answer whatever question this conditional is testing. Are you just checking if the policy file exists? That seems like the sort of thing we should be able to do in the base class -- it would be unfortunate if glance\u0027s policy behavior was different than the other services in this way.","commit_id":"919f0dfd3f9b60daeadd50b2d0e2080d37b5e6f5"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2d752ff9d1bafd6ebe7e1ceabecc04dfa489c928","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    \"\"\"Responsible for loading and enforcing rules\"\"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def __init__(self):"},{"line_number":48,"context_line":"        if CONF.find_file(CONF.oslo_policy.policy_file):"},{"line_number":49,"context_line":"            kwargs \u003d dict(rules\u003dNone, use_conf\u003dTrue)"},{"line_number":50,"context_line":"        else:"},{"line_number":51,"context_line":"            kwargs \u003d dict(rules\u003dDEFAULT_RULES, use_conf\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_44b416d1","line":48,"in_reply_to":"9a80dd14_8001a308","updated":"2015-03-18 04:47:04.000000000","message":"I removed this and passed DEFAULT_RULES in as rules and this breaks a few things. That said, I filed an issue https://bugs.launchpad.net/glance/+bug/1433313 to investigate this further. It\u0027s on the top of my todo list.\n\nThe biggest problem is that we test the case where the policy.json file doesn\u0027t exist and since load_rules is called in enforce we might have to modify the enforce below to catch the exception and ignore it somehow.","commit_id":"919f0dfd3f9b60daeadd50b2d0e2080d37b5e6f5"}],"glance/common/config.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bc10cc9bb133e1cb834deb6ffd3df03e0fbfadb3","unresolved":false,"context_lines":[{"line_number":169,"context_line":"CONF.register_opts(task_opts, group\u003d\u0027task\u0027)"},{"line_number":170,"context_line":"CONF.register_opts(manage_opts)"},{"line_number":171,"context_line":"CONF.register_opts(common_opts)"},{"line_number":172,"context_line":"CONF.register_opts(oslo_policy_opts[1], group\u003doslo_policy_opts[0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def parse_args(args\u003dNone, usage\u003dNone, default_config_files\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_c57a4876","line":172,"updated":"2015-03-07 23:04:32.000000000","message":"The policy code should register its own options. Applications do not need to do this.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"32bfded336725a3dc1d2995c2ab6d43e2f077ca4","unresolved":false,"context_lines":[{"line_number":169,"context_line":"CONF.register_opts(task_opts, group\u003d\u0027task\u0027)"},{"line_number":170,"context_line":"CONF.register_opts(manage_opts)"},{"line_number":171,"context_line":"CONF.register_opts(common_opts)"},{"line_number":172,"context_line":"CONF.register_opts(oslo_policy_opts[1], group\u003doslo_policy_opts[0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def parse_args(args\u003dNone, usage\u003dNone, default_config_files\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_83cf8455","line":172,"in_reply_to":"9a80dd14_226bb686","updated":"2015-03-19 15:18:25.000000000","message":"I think https://review.openstack.org/#/c/163163/ is my prefer way, thanks for working on it.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"c13f74642588e4cea0591c474adb4a40ccde14e4","unresolved":false,"context_lines":[{"line_number":169,"context_line":"CONF.register_opts(task_opts, group\u003d\u0027task\u0027)"},{"line_number":170,"context_line":"CONF.register_opts(manage_opts)"},{"line_number":171,"context_line":"CONF.register_opts(common_opts)"},{"line_number":172,"context_line":"CONF.register_opts(oslo_policy_opts[1], group\u003doslo_policy_opts[0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def parse_args(args\u003dNone, usage\u003dNone, default_config_files\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_3a7b04bf","line":172,"in_reply_to":"9a80dd14_34b7d03b","updated":"2015-03-10 05:55:38.000000000","message":"I didn\u0027t check code yet, but base on my experience I trend to believe \"We create enforcers in multiple places but not early enough for this to not be necessary\" is a case. So I prefer to call policy_opts._register(CONF) here instead of to do own parsing on the result of list_opts() like here, and IMO we\u0027d better change oslo_policy.opts._register() to be public (rename to \"register()\").","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a6fca4836bd227faaf0fec6e2efdeec353d7bba0","unresolved":false,"context_lines":[{"line_number":169,"context_line":"CONF.register_opts(task_opts, group\u003d\u0027task\u0027)"},{"line_number":170,"context_line":"CONF.register_opts(manage_opts)"},{"line_number":171,"context_line":"CONF.register_opts(common_opts)"},{"line_number":172,"context_line":"CONF.register_opts(oslo_policy_opts[1], group\u003doslo_policy_opts[0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def parse_args(args\u003dNone, usage\u003dNone, default_config_files\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_425eea13","line":172,"in_reply_to":"9a80dd14_3a7b04bf","updated":"2015-03-10 19:52:28.000000000","message":"We could also create a throw-away Enforcer from oslo_policy to register the opts but I think using a private function that\u0027s likely to be renamed is a bad idea.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"71c8263480c83e295ddd236f643351631303413b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"CONF.register_opts(task_opts, group\u003d\u0027task\u0027)"},{"line_number":170,"context_line":"CONF.register_opts(manage_opts)"},{"line_number":171,"context_line":"CONF.register_opts(common_opts)"},{"line_number":172,"context_line":"CONF.register_opts(oslo_policy_opts[1], group\u003doslo_policy_opts[0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def parse_args(args\u003dNone, usage\u003dNone, default_config_files\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_226bb686","line":172,"in_reply_to":"9a80dd14_425eea13","updated":"2015-03-10 19:57:22.000000000","message":"I changed this to use a throw-away Enforcer to register the opts for us.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3ae43becaf25e23cc9c8d196420ac3e2997dac35","unresolved":false,"context_lines":[{"line_number":169,"context_line":"CONF.register_opts(task_opts, group\u003d\u0027task\u0027)"},{"line_number":170,"context_line":"CONF.register_opts(manage_opts)"},{"line_number":171,"context_line":"CONF.register_opts(common_opts)"},{"line_number":172,"context_line":"CONF.register_opts(oslo_policy_opts[1], group\u003doslo_policy_opts[0])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def parse_args(args\u003dNone, usage\u003dNone, default_config_files\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_34b7d03b","line":172,"in_reply_to":"9a80dd14_c57a4876","updated":"2015-03-08 15:50:27.000000000","message":"That would only work if in fact Glance used a global Enforcer (like keystone), which it doesn\u0027t, and if that Enforcer were created here. We create enforcers in multiple places but not early enough for this to not be necessary","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"1856d3f10c6ddddbc0d66c8f47e34d806df2ab90","unresolved":false,"context_lines":[{"line_number":181,"context_line":"CONF.register_opts(image_format_opts, group\u003d\u0027image_format\u0027)"},{"line_number":182,"context_line":"CONF.register_opts(task_opts, group\u003d\u0027task\u0027)"},{"line_number":183,"context_line":"CONF.register_opts(common_opts)"},{"line_number":184,"context_line":"policy.Enforcer(CONF)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"def parse_args(args\u003dNone, usage\u003dNone, default_config_files\u003dNone):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a80dd14_7cb13cdf","line":184,"updated":"2015-03-19 15:16:57.000000000","message":"I believe this way will just be a temporary solution for glance based on the limitation of current oslo.policy implementation. So anyway imo to add a inline comment is better.","commit_id":"cb7d5a4795bbdaf4dc3eaaf0a6fb1add52c09011"}],"glance/opts.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"b94af5771ce12989027a8436667e4d09a17a0a9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9a80dd14_c13ddd2c","updated":"2015-03-07 21:43:51.000000000","message":"this is a weird way of adding the new options, but i don\u0027t see another easy way of doing it","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"b94af5771ce12989027a8436667e4d09a17a0a9d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import copy"},{"line_number":24,"context_line":"import itertools"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import oslo_policy.opts"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import glance.api.middleware.context"},{"line_number":29,"context_line":"import glance.api.versions"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_e1ef41af","line":26,"updated":"2015-03-07 21:43:51.000000000","message":"i dont think it\u0027s necessary to import oslo_policy.opts, could just import oslo_policy","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"55b91ddd33d825d42e33369da911f6cb231a129b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import copy"},{"line_number":24,"context_line":"import itertools"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import oslo_policy.opts"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import glance.api.middleware.context"},{"line_number":29,"context_line":"import glance.api.versions"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_41380def","line":26,"in_reply_to":"9a80dd14_e1ef41af","updated":"2015-03-07 22:29:59.000000000","message":"There\u0027s nothing in oslo_policy/__init__.py https://github.com/openstack/oslo.policy/blob/master/oslo_policy/__init__.py and only importing oslo_policy will give an attribute error below.","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"b94af5771ce12989027a8436667e4d09a17a0a9d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    (\u0027store_type_location_strategy\u0027,"},{"line_number":72,"context_line":"     glance.common.location_strategy.store_type.store_type_opts),"},{"line_number":73,"context_line":"    (\u0027paste_deploy\u0027, glance.common.config.paste_deploy_opts)"},{"line_number":74,"context_line":"] + oslo_policy.opts.list_opts()"},{"line_number":75,"context_line":"_registry_opts \u003d ["},{"line_number":76,"context_line":"    (None, list(itertools.chain(*(_global_opt_lists + ["},{"line_number":77,"context_line":"        glance.api.middleware.context.context_opts,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_8138453e","line":74,"updated":"2015-03-07 21:43:51.000000000","message":"nit, could define this once at the top instead of calling it directly every time.","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"55b91ddd33d825d42e33369da911f6cb231a129b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    (\u0027store_type_location_strategy\u0027,"},{"line_number":72,"context_line":"     glance.common.location_strategy.store_type.store_type_opts),"},{"line_number":73,"context_line":"    (\u0027paste_deploy\u0027, glance.common.config.paste_deploy_opts)"},{"line_number":74,"context_line":"] + oslo_policy.opts.list_opts()"},{"line_number":75,"context_line":"_registry_opts \u003d ["},{"line_number":76,"context_line":"    (None, list(itertools.chain(*(_global_opt_lists + ["},{"line_number":77,"context_line":"        glance.api.middleware.context.context_opts,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_613991f1","line":74,"in_reply_to":"9a80dd14_8138453e","updated":"2015-03-07 22:29:59.000000000","message":"Calling it each time creates a new list and a new copy of the opts. Seems to not be a problem either way. I\u0027ll fix it though.","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"dbd535a4037e4c24c7ab4affac55f68e9fbc7d7d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    (\u0027store_type_location_strategy\u0027,"},{"line_number":72,"context_line":"     glance.common.location_strategy.store_type.store_type_opts),"},{"line_number":73,"context_line":"    (\u0027paste_deploy\u0027, glance.common.config.paste_deploy_opts)"},{"line_number":74,"context_line":"] + oslo_policy.opts.list_opts()"},{"line_number":75,"context_line":"_registry_opts \u003d ["},{"line_number":76,"context_line":"    (None, list(itertools.chain(*(_global_opt_lists + ["},{"line_number":77,"context_line":"        glance.api.middleware.context.context_opts,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_c1231dbb","line":74,"in_reply_to":"9a80dd14_8138453e","updated":"2015-03-07 22:31:34.000000000","message":"Done","commit_id":"ce2fd16d494682f90c36dcc19eeb281cc34b6b81"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bc10cc9bb133e1cb834deb6ffd3df03e0fbfadb3","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    (\u0027store_type_location_strategy\u0027,"},{"line_number":73,"context_line":"     glance.common.location_strategy.store_type.store_type_opts),"},{"line_number":74,"context_line":"    (\u0027paste_deploy\u0027, glance.common.config.paste_deploy_opts)"},{"line_number":75,"context_line":"] + _policy_opts"},{"line_number":76,"context_line":"_registry_opts \u003d ["},{"line_number":77,"context_line":"    (None, list(itertools.chain(*(_global_opt_lists + ["},{"line_number":78,"context_line":"        glance.api.middleware.context.context_opts,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_0598e0be","line":75,"updated":"2015-03-07 23:04:32.000000000","message":"To have the policy options show up in the sample config use the new config generator with the namespace \"oslo.policy\".","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3ae43becaf25e23cc9c8d196420ac3e2997dac35","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    (\u0027store_type_location_strategy\u0027,"},{"line_number":73,"context_line":"     glance.common.location_strategy.store_type.store_type_opts),"},{"line_number":74,"context_line":"    (\u0027paste_deploy\u0027, glance.common.config.paste_deploy_opts)"},{"line_number":75,"context_line":"] + _policy_opts"},{"line_number":76,"context_line":"_registry_opts \u003d ["},{"line_number":77,"context_line":"    (None, list(itertools.chain(*(_global_opt_lists + ["},{"line_number":78,"context_line":"        glance.api.middleware.context.context_opts,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_54b44434","line":75,"in_reply_to":"9a80dd14_0598e0be","updated":"2015-03-08 15:50:27.000000000","message":"As was mentioned on an earlier patchset, glance does not yet take advantage of the config generator.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"}],"glance/tests/integration/legacy_functional/base.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bc10cc9bb133e1cb834deb6ffd3df03e0fbfadb3","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _configure_policy(self):"},{"line_number":149,"context_line":"        policy_file \u003d self._copy_data_file(\u0027policy.json\u0027, self.test_dir)"},{"line_number":150,"context_line":"        self.config(policy_file\u003dpolicy_file, group\u003d\u0027oslo_policy\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _configure_logging(self):"},{"line_number":153,"context_line":"        self.config(default_log_levels\u003d["}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_458e587a","line":150,"updated":"2015-03-07 23:04:32.000000000","message":"If app tests need to set this configuration file option we will need to provide a fixture to avoid issues later if the option is renamed.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3ae43becaf25e23cc9c8d196420ac3e2997dac35","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _configure_policy(self):"},{"line_number":149,"context_line":"        policy_file \u003d self._copy_data_file(\u0027policy.json\u0027, self.test_dir)"},{"line_number":150,"context_line":"        self.config(policy_file\u003dpolicy_file, group\u003d\u0027oslo_policy\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _configure_logging(self):"},{"line_number":153,"context_line":"        self.config(default_log_levels\u003d["}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_94895c77","line":150,"in_reply_to":"9a80dd14_458e587a","updated":"2015-03-08 15:50:27.000000000","message":"This seems to be something that I\u0027ve only (so far) seen in glance. I haven\u0027t searched other applications for this yet.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"}],"glance/tests/unit/base.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bc10cc9bb133e1cb834deb6ffd3df03e0fbfadb3","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                                 registry\u003dself.registry)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def set_policy_rules(self, rules):"},{"line_number":79,"context_line":"        fap \u003d open(CONF.oslo_policy.policy_file, \u0027w\u0027)"},{"line_number":80,"context_line":"        fap.write(jsonutils.dumps(rules))"},{"line_number":81,"context_line":"        fap.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_658b5c68","line":79,"updated":"2015-03-07 23:04:32.000000000","message":"See previous comment about needing a fixture.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"}],"glance/tests/unit/test_opts.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bc10cc9bb133e1cb834deb6ffd3df03e0fbfadb3","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            \u0027task\u0027,"},{"line_number":60,"context_line":"            \u0027store_type_location_strategy\u0027,"},{"line_number":61,"context_line":"            \u0027paste_deploy\u0027,"},{"line_number":62,"context_line":"            \u0027oslo_policy\u0027,"},{"line_number":63,"context_line":"        ]"},{"line_number":64,"context_line":"        expected_opt_names \u003d ["},{"line_number":65,"context_line":"            \u0027debug\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_c5f16802","line":62,"updated":"2015-03-07 23:04:32.000000000","message":"It would be better not to rely on the option settings of the library here. We might change them, and because they aren\u0027t part of the API we don\u0027t guarantee that changing them won\u0027t break tests. :-/","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3ae43becaf25e23cc9c8d196420ac3e2997dac35","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            \u0027task\u0027,"},{"line_number":60,"context_line":"            \u0027store_type_location_strategy\u0027,"},{"line_number":61,"context_line":"            \u0027paste_deploy\u0027,"},{"line_number":62,"context_line":"            \u0027oslo_policy\u0027,"},{"line_number":63,"context_line":"        ]"},{"line_number":64,"context_line":"        expected_opt_names \u003d ["},{"line_number":65,"context_line":"            \u0027debug\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_f497f88d","line":62,"in_reply_to":"9a80dd14_c5f16802","updated":"2015-03-08 15:50:27.000000000","message":"It seems _option_group may need to become public then: https://github.com/openstack/oslo.policy/blob/master/oslo_policy/opts.py#L25","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"1588cdd890377437b8c49bf50dccb670c410db14","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            \u0027image_format\u0027,"},{"line_number":59,"context_line":"            \u0027task\u0027,"},{"line_number":60,"context_line":"            \u0027store_type_location_strategy\u0027,"},{"line_number":61,"context_line":"            \u0027paste_deploy\u0027,"},{"line_number":62,"context_line":"        ]"},{"line_number":63,"context_line":"        expected_opt_names \u003d ["},{"line_number":64,"context_line":"            \u0027owner_is_tenant\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_98d673c2","line":61,"updated":"2015-03-17 14:41:59.000000000","message":"These extra commas are not strictly related to this patch, but the change is minor enough.","commit_id":"919f0dfd3f9b60daeadd50b2d0e2080d37b5e6f5"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"5c5af1f00404636690d894c8ffc808aeda525135","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            \u0027image_format\u0027,"},{"line_number":59,"context_line":"            \u0027task\u0027,"},{"line_number":60,"context_line":"            \u0027store_type_location_strategy\u0027,"},{"line_number":61,"context_line":"            \u0027paste_deploy\u0027,"},{"line_number":62,"context_line":"        ]"},{"line_number":63,"context_line":"        expected_opt_names \u003d ["},{"line_number":64,"context_line":"            \u0027owner_is_tenant\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_44809646","line":61,"in_reply_to":"9a80dd14_98d673c2","updated":"2015-03-17 15:30:17.000000000","message":"Oh that\u0027s a hold-over from a different change. I\u0027ll pull those out. Sorry that I forgot to remove those.","commit_id":"919f0dfd3f9b60daeadd50b2d0e2080d37b5e6f5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d922b69b14410fa72753345038859fc255e18c40","unresolved":false,"context_lines":[{"line_number":290,"context_line":"    def test_list_manage_opts(self):"},{"line_number":291,"context_line":"        opt_list \u003d opts.list_manage_opts()"},{"line_number":292,"context_line":"        expected_opt_groups \u003d ["},{"line_number":293,"context_line":"            None"},{"line_number":294,"context_line":"        ]"},{"line_number":295,"context_line":"        expected_opt_names \u003d ["},{"line_number":296,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_38d575e5","line":293,"updated":"2015-03-17 19:30:24.000000000","message":"nit: unnecessary change","commit_id":"032b4fe937a1117330f39c8fb496b97995a3bdf8"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"d0194f842691957a832223ff46dd0af519bc3a15","unresolved":false,"context_lines":[{"line_number":290,"context_line":"    def test_list_manage_opts(self):"},{"line_number":291,"context_line":"        opt_list \u003d opts.list_manage_opts()"},{"line_number":292,"context_line":"        expected_opt_groups \u003d ["},{"line_number":293,"context_line":"            None"},{"line_number":294,"context_line":"        ]"},{"line_number":295,"context_line":"        expected_opt_names \u003d ["},{"line_number":296,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_43707e40","line":293,"in_reply_to":"9a80dd14_38d575e5","updated":"2015-03-17 19:54:37.000000000","message":"Done. This was accidental","commit_id":"032b4fe937a1117330f39c8fb496b97995a3bdf8"}],"glance/tests/unit/test_policy.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bc10cc9bb133e1cb834deb6ffd3df03e0fbfadb3","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.assertRaises(exception.Forbidden,"},{"line_number":136,"context_line":"                          enforcer.enforce, context, \u0027get_image\u0027, {})"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def test_policy_file_custom_location(self):"},{"line_number":139,"context_line":"        self.config(policy_file\u003dos.path.join(self.test_dir, \u0027gobble.gobble\u0027),"},{"line_number":140,"context_line":"                    group\u003d\u0027oslo_policy\u0027)"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_25dc0473","line":138,"updated":"2015-03-07 23:04:32.000000000","message":"Are these tests just verifying that policy files are loaded correctly? It seems like you shouldn\u0027t need to do that now that the policy code is in a library with its own tests.","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3ae43becaf25e23cc9c8d196420ac3e2997dac35","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.assertRaises(exception.Forbidden,"},{"line_number":136,"context_line":"                          enforcer.enforce, context, \u0027get_image\u0027, {})"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def test_policy_file_custom_location(self):"},{"line_number":139,"context_line":"        self.config(policy_file\u003dos.path.join(self.test_dir, \u0027gobble.gobble\u0027),"},{"line_number":140,"context_line":"                    group\u003d\u0027oslo_policy\u0027)"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_14956c86","line":138,"in_reply_to":"9a80dd14_25dc0473","updated":"2015-03-08 15:50:27.000000000","message":"Agreed. I\u0027ll remove these in a separate patch","commit_id":"c971b160358508a222d635f2683a11f0032f7b84"}],"glance/tests/unit/v2/test_image_data_resource.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d922b69b14410fa72753345038859fc255e18c40","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":"import webob"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import glance.api.policy"},{"line_number":23,"context_line":"import glance.api.v2.image_data"},{"line_number":24,"context_line":"from glance.common import exception"},{"line_number":25,"context_line":"from glance.common import wsgi"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_d8245910","line":22,"updated":"2015-03-17 19:30:24.000000000","message":"i\u0027m wondering how this worked before?","commit_id":"032b4fe937a1117330f39c8fb496b97995a3bdf8"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"d0194f842691957a832223ff46dd0af519bc3a15","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":"import webob"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import glance.api.policy"},{"line_number":23,"context_line":"import glance.api.v2.image_data"},{"line_number":24,"context_line":"from glance.common import exception"},{"line_number":25,"context_line":"from glance.common import wsgi"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a80dd14_38001502","line":22,"in_reply_to":"9a80dd14_d8245910","updated":"2015-03-17 19:54:37.000000000","message":"I suspect there\u0027s an import in glance/api/__init__.py but I didn\u0027t want to check and I prefer explicit over the implicit side-effect (that could break in the future) of importing glance.api.v2.image_data.","commit_id":"032b4fe937a1117330f39c8fb496b97995a3bdf8"}],"requirements.txt":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d922b69b14410fa72753345038859fc255e18c40","unresolved":false,"context_lines":[{"line_number":53,"context_line":"oslo.i18n\u003e\u003d1.3.0  # Apache-2.0"},{"line_number":54,"context_line":"oslo.log\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":55,"context_line":"oslo.messaging\u003e\u003d1.6.0  # Apache-2.0"},{"line_number":56,"context_line":"oslo.policy\u003e\u003d0.3.0  # Apache-2.0"},{"line_number":57,"context_line":"oslo.serialization\u003e\u003d1.2.0               # Apache-2.0"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"retrying\u003e\u003d1.2.3,!\u003d1.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":14,"id":"9a80dd14_1876f106","line":56,"updated":"2015-03-17 19:30:24.000000000","message":"should match g-r\n\noslo.policy~\u003d0.3.1  # Apache-2.0","commit_id":"032b4fe937a1117330f39c8fb496b97995a3bdf8"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"d0194f842691957a832223ff46dd0af519bc3a15","unresolved":false,"context_lines":[{"line_number":53,"context_line":"oslo.i18n\u003e\u003d1.3.0  # Apache-2.0"},{"line_number":54,"context_line":"oslo.log\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":55,"context_line":"oslo.messaging\u003e\u003d1.6.0  # Apache-2.0"},{"line_number":56,"context_line":"oslo.policy\u003e\u003d0.3.0  # Apache-2.0"},{"line_number":57,"context_line":"oslo.serialization\u003e\u003d1.2.0               # Apache-2.0"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"retrying\u003e\u003d1.2.3,!\u003d1.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":14,"id":"9a80dd14_03cbe64a","line":56,"in_reply_to":"9a80dd14_1876f106","updated":"2015-03-17 19:54:37.000000000","message":"Done","commit_id":"032b4fe937a1117330f39c8fb496b97995a3bdf8"}]}
