)]}'
{"nova/policy.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4a0fc82e5cded87053391195c550c899d8e8ed6","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"CONF \u003d cfg.CONF"},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":"_ENFORCER \u003d None"},{"line_number":35,"context_line":"# This list is about the resources which support user based policy enforcement."},{"line_number":36,"context_line":"# Avoid sending deprecation warning for those resources."},{"line_number":37,"context_line":"USER_BASED_RESOURCES \u003d [\u0027os-keypairs\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_504f498b","side":"PARENT","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":16},"updated":"2018-10-11 13:31:35.000000000","message":"assmuing set_rules is not the first call to init\nthis will always be set \n\nto policy.Enforcer(CONF,policy_file\u003dNone, rules\u003dNone,\ndefault_rule\u003dNone,use_conf\u003dTrue)\n\nso if you just makes this \n\n_ENFORCER\u003dpolicy.Enforcer(CONF)\nthat will have the same effect","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4a0fc82e5cded87053391195c550c899d8e8ed6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"KEY_EXPR \u003d re.compile(r\u0027%\\((\\w+)\\)s\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"def reset():"},{"line_number":47,"context_line":"    global _ENFORCER"},{"line_number":48,"context_line":"    if _ENFORCER:"},{"line_number":49,"context_line":"        _ENFORCER.clear()"},{"line_number":50,"context_line":"        _ENFORCER \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def init(policy_file\u003dNone, rules\u003dNone, default_rule\u003dNone, use_conf\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_b677b63b","side":"PARENT","line":50,"range":{"start_line":46,"start_character":0,"end_line":50,"end_character":24},"updated":"2018-10-11 13:31:35.000000000","message":"if you removed init\n\nreset could just be\ndef reset():\n    global _ENFORCER\n    _ENFORCER\u003dpolicy.Enforcer(CONF)\n\nassuming this is needed.\nif its only used in unit tests like init out side\nof this file then maybe they can just mock differently.","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"edeb747be4616bcf0fc9c9d73939bd482c5e97d4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        _ENFORCER \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def init(policy_file\u003dNone, rules\u003dNone, default_rule\u003dNone, use_conf\u003dTrue):"},{"line_number":54,"context_line":"    \"\"\"Init an Enforcer class."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"       :param policy_file: Custom policy file to use, if none is specified,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_3552bf37","side":"PARENT","line":53,"range":{"start_line":53,"start_character":4,"end_line":53,"end_character":8},"updated":"2018-10-11 12:36:51.000000000","message":"a quick code search would appear to indicate this is only called in unit tests\n\nhttp://codesearch.openstack.org/?q\u003dpolicy.init()\u0026i\u003dnope\u0026files\u003d\u0026repos\u003dnova\n\nhowever there are several places within this file where init() is called directly","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"0c1d4b396f5e41c78e9c674eb5dc747eff473cf9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        _ENFORCER \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def init(policy_file\u003dNone, rules\u003dNone, default_rule\u003dNone, use_conf\u003dTrue):"},{"line_number":54,"context_line":"    \"\"\"Init an Enforcer class."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"       :param policy_file: Custom policy file to use, if none is specified,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_90f3a19f","side":"PARENT","line":53,"range":{"start_line":53,"start_character":4,"end_line":53,"end_character":8},"in_reply_to":"3f79a3b5_3552bf37","updated":"2018-10-11 12:57:48.000000000","message":"While init is called \"saved_file_rules\" isn\u0027t.","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"edeb747be4616bcf0fc9c9d73939bd482c5e97d4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    return sorted(result, key\u003dlambda rule: rule[0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _warning_for_deprecated_user_based_rules(rules):"},{"line_number":97,"context_line":"    \"\"\"Warning user based policy enforcement used in the rule but the rule"},{"line_number":98,"context_line":"    doesn\u0027t support it."},{"line_number":99,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_b04fbd67","side":"PARENT","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":44},"updated":"2018-10-11 12:36:51.000000000","message":"this also appears to only be used by the code you are removeing and the corresponding test so if you remove the saved_file_rules this should also be removed\n\nhttp://codesearch.openstack.org/?q\u003d_warning_for_deprecated_user_based_rules\u0026i\u003dnope\u0026files\u003d\u0026repos\u003dnova","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e589caa9cd29f5535e57219a0f7abbfb232ceba4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    return sorted(result, key\u003dlambda rule: rule[0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _warning_for_deprecated_user_based_rules(rules):"},{"line_number":97,"context_line":"    \"\"\"Warning user based policy enforcement used in the rule but the rule"},{"line_number":98,"context_line":"    doesn\u0027t support it."},{"line_number":99,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_d0fd996d","side":"PARENT","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":44},"in_reply_to":"3f79a3b5_b04fbd67","updated":"2018-10-11 12:59:57.000000000","message":"agreed on this point.","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"edeb747be4616bcf0fc9c9d73939bd482c5e97d4","unresolved":false,"context_lines":[{"line_number":119,"context_line":"       :param use_conf: Whether to reload rules from config file."},{"line_number":120,"context_line":"    \"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    init(use_conf\u003dFalse)"},{"line_number":123,"context_line":"    _ENFORCER.set_rules(rules, overwrite, use_conf)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_b50c8f44","side":"PARENT","line":122,"range":{"start_line":122,"start_character":4,"end_line":122,"end_character":24},"updated":"2018-10-11 12:36:51.000000000","message":"such as here","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"edeb747be4616bcf0fc9c9d73939bd482c5e97d4","unresolved":false,"context_lines":[{"line_number":151,"context_line":"           authorized, and the exact value False if not authorized and"},{"line_number":152,"context_line":"           do_raise is False."},{"line_number":153,"context_line":"    \"\"\""},{"line_number":154,"context_line":"    init()"},{"line_number":155,"context_line":"    credentials \u003d context.to_policy_values()"},{"line_number":156,"context_line":"    if not exc:"},{"line_number":157,"context_line":"        exc \u003d exception.PolicyNotAuthorized"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_750a7727","side":"PARENT","line":154,"range":{"start_line":154,"start_character":3,"end_line":154,"end_character":10},"updated":"2018-10-11 12:36:51.000000000","message":"or here","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"edeb747be4616bcf0fc9c9d73939bd482c5e97d4","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    \"\"\""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    init()"},{"line_number":178,"context_line":"    # the target is user-self"},{"line_number":179,"context_line":"    credentials \u003d context.to_policy_values()"},{"line_number":180,"context_line":"    target \u003d credentials"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_55fdfb06","side":"PARENT","line":177,"range":{"start_line":177,"start_character":4,"end_line":177,"end_character":10},"updated":"2018-10-11 12:36:51.000000000","message":"or here","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"edeb747be4616bcf0fc9c9d73939bd482c5e97d4","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        i +\u003d 1"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    cfg.CONF(conf_args, project\u003d\u0027nova\u0027)"},{"line_number":226,"context_line":"    init()"},{"line_number":227,"context_line":"    return _ENFORCER"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_b01a5d68","side":"PARENT","line":226,"range":{"start_line":226,"start_character":4,"end_line":226,"end_character":10},"updated":"2018-10-11 12:36:51.000000000","message":"and finally here\n\nall of these invocations will\n\ncause the code you are removing to be executed\nso are you sure this is really never used?","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6bf0815e7b099b04d24d3137b8111b31d17ee2b8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        _ENFORCER \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def init(policy_file\u003dNone, rules\u003dNone, default_rule\u003dNone, use_conf\u003dTrue):"},{"line_number":54,"context_line":"    \"\"\"Init an Enforcer class."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"       :param policy_file: Custom policy file to use, if none is specified,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_59521538","side":"PARENT","line":53,"range":{"start_line":53,"start_character":9,"end_line":53,"end_character":71},"updated":"2018-10-11 14:06:38.000000000","message":"It wasn\u0027t obvious to me from the commit message but these are removed because no caller was setting them. Maybe make that more obvious in the commit message?","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6bf0815e7b099b04d24d3137b8111b31d17ee2b8","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    return sorted(result, key\u003dlambda rule: rule[0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _warning_for_deprecated_user_based_rules(rules):"},{"line_number":97,"context_line":"    \"\"\"Warning user based policy enforcement used in the rule but the rule"},{"line_number":98,"context_line":"    doesn\u0027t support it."},{"line_number":99,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_f96a01ea","side":"PARENT","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":44},"updated":"2018-10-11 14:06:38.000000000","message":"There are tests for this that need to be removed (nova/tests/unit/test_policy.py)","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d7382ab06ff9aac90e56399102fbc36b45d51010","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    return sorted(result, key\u003dlambda rule: rule[0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _warning_for_deprecated_user_based_rules(rules):"},{"line_number":97,"context_line":"    \"\"\"Warning user based policy enforcement used in the rule but the rule"},{"line_number":98,"context_line":"    doesn\u0027t support it."},{"line_number":99,"context_line":"    \"\"\""},{"line_number":100,"context_line":"    for rule in rules:"},{"line_number":101,"context_line":"        # We will skip the warning for the resources which support user based"},{"line_number":102,"context_line":"        # policy enforcement."},{"line_number":103,"context_line":"        if [resource for resource in USER_BASED_RESOURCES"},{"line_number":104,"context_line":"                if resource in rule[0]]:"},{"line_number":105,"context_line":"            continue"},{"line_number":106,"context_line":"        if \u0027user_id\u0027 in KEY_EXPR.findall(rule[1]):"},{"line_number":107,"context_line":"            LOG.warning(_LW(\"The user_id attribute isn\u0027t supported in the \""},{"line_number":108,"context_line":"                            \"rule \u0027%s\u0027. All the user_id based policy \""},{"line_number":109,"context_line":"                            \"enforcement will be removed in the \""},{"line_number":110,"context_line":"                            \"future.\"), rule[0])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def set_rules(rules, overwrite\u003dTrue, use_conf\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_a64a5621","side":"PARENT","line":110,"range":{"start_line":96,"start_character":0,"end_line":110,"end_character":48},"updated":"2018-10-22 14:02:49.000000000","message":"I\u0027m pretty sure this is nova-specific isn\u0027t it? The user_id based policy stuff (along with quota) was meant as a workaround for nova\u0027s lack of hierarchical quota support. Or is this same check also in oslo.policy?\n\nIaa9a142ce93a8d13452f0c6318a3d0b54f6220ce\n\nOr has the code that actually cares about this been removed?","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd974a7d5b18eaf2a17bf7c2d75ce5fa17b0fa2e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    return sorted(result, key\u003dlambda rule: rule[0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _warning_for_deprecated_user_based_rules(rules):"},{"line_number":97,"context_line":"    \"\"\"Warning user based policy enforcement used in the rule but the rule"},{"line_number":98,"context_line":"    doesn\u0027t support it."},{"line_number":99,"context_line":"    \"\"\""},{"line_number":100,"context_line":"    for rule in rules:"},{"line_number":101,"context_line":"        # We will skip the warning for the resources which support user based"},{"line_number":102,"context_line":"        # policy enforcement."},{"line_number":103,"context_line":"        if [resource for resource in USER_BASED_RESOURCES"},{"line_number":104,"context_line":"                if resource in rule[0]]:"},{"line_number":105,"context_line":"            continue"},{"line_number":106,"context_line":"        if \u0027user_id\u0027 in KEY_EXPR.findall(rule[1]):"},{"line_number":107,"context_line":"            LOG.warning(_LW(\"The user_id attribute isn\u0027t supported in the \""},{"line_number":108,"context_line":"                            \"rule \u0027%s\u0027. All the user_id based policy \""},{"line_number":109,"context_line":"                            \"enforcement will be removed in the \""},{"line_number":110,"context_line":"                            \"future.\"), rule[0])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def set_rules(rules, overwrite\u003dTrue, use_conf\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_26b406f1","side":"PARENT","line":110,"range":{"start_line":96,"start_character":0,"end_line":110,"end_character":48},"in_reply_to":"3f79a3b5_a64a5621","updated":"2018-10-22 14:07:31.000000000","message":"Here is the related spec:\n\nhttps://review.openstack.org/#/c/324068/\n\nThe point was to warn deployments that rely on user-based policy enforcement until nova supports hierarchical projects, which it doesn\u0027t yet, so this isn\u0027t something we should remove. In fact, it looks like you\u0027re mostly just reverting Iaa9a142ce93a8d13452f0c6318a3d0b54f6220ce and shouldn\u0027t be since it\u0027s still used (but not tested as the spec said).","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6872c5d2e41669a5875f8c75bf42f74e4e83081a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    return sorted(result, key\u003dlambda rule: rule[0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _warning_for_deprecated_user_based_rules(rules):"},{"line_number":97,"context_line":"    \"\"\"Warning user based policy enforcement used in the rule but the rule"},{"line_number":98,"context_line":"    doesn\u0027t support it."},{"line_number":99,"context_line":"    \"\"\""},{"line_number":100,"context_line":"    for rule in rules:"},{"line_number":101,"context_line":"        # We will skip the warning for the resources which support user based"},{"line_number":102,"context_line":"        # policy enforcement."},{"line_number":103,"context_line":"        if [resource for resource in USER_BASED_RESOURCES"},{"line_number":104,"context_line":"                if resource in rule[0]]:"},{"line_number":105,"context_line":"            continue"},{"line_number":106,"context_line":"        if \u0027user_id\u0027 in KEY_EXPR.findall(rule[1]):"},{"line_number":107,"context_line":"            LOG.warning(_LW(\"The user_id attribute isn\u0027t supported in the \""},{"line_number":108,"context_line":"                            \"rule \u0027%s\u0027. All the user_id based policy \""},{"line_number":109,"context_line":"                            \"enforcement will be removed in the \""},{"line_number":110,"context_line":"                            \"future.\"), rule[0])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def set_rules(rules, overwrite\u003dTrue, use_conf\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_c6cbd248","side":"PARENT","line":110,"range":{"start_line":96,"start_character":0,"end_line":110,"end_character":48},"in_reply_to":"3f79a3b5_a64a5621","updated":"2018-10-22 14:12:04.000000000","message":"yes, this is a warning we added on purpose https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/user-id-based-policy-enforcement.html\n\nwe don\u0027t want to support user_id based policy rule, but in the legacy v2 API we have this feature, and some users still need that feature, so we add it back. But we don\u0027t want the new user use it.","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"cd210196b020027caf14579dccf14f153651169b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    return sorted(result, key\u003dlambda rule: rule[0])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _warning_for_deprecated_user_based_rules(rules):"},{"line_number":97,"context_line":"    \"\"\"Warning user based policy enforcement used in the rule but the rule"},{"line_number":98,"context_line":"    doesn\u0027t support it."},{"line_number":99,"context_line":"    \"\"\""},{"line_number":100,"context_line":"    for rule in rules:"},{"line_number":101,"context_line":"        # We will skip the warning for the resources which support user based"},{"line_number":102,"context_line":"        # policy enforcement."},{"line_number":103,"context_line":"        if [resource for resource in USER_BASED_RESOURCES"},{"line_number":104,"context_line":"                if resource in rule[0]]:"},{"line_number":105,"context_line":"            continue"},{"line_number":106,"context_line":"        if \u0027user_id\u0027 in KEY_EXPR.findall(rule[1]):"},{"line_number":107,"context_line":"            LOG.warning(_LW(\"The user_id attribute isn\u0027t supported in the \""},{"line_number":108,"context_line":"                            \"rule \u0027%s\u0027. All the user_id based policy \""},{"line_number":109,"context_line":"                            \"enforcement will be removed in the \""},{"line_number":110,"context_line":"                            \"future.\"), rule[0])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def set_rules(rules, overwrite\u003dTrue, use_conf\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_0ae548db","side":"PARENT","line":110,"range":{"start_line":96,"start_character":0,"end_line":110,"end_character":48},"in_reply_to":"3f79a3b5_c6cbd248","updated":"2018-10-22 18:40:57.000000000","message":"I\u0027m trying to implement drivers in oslo policy. And stuff like this is a blocker for me to be able to define a proper driver interface...  hence why I started cleaning up projects accessing the rules directly (which was not a good practice in the first place).","commit_id":"6bf11e1dc14afad78b11d980c2544a3dc41579ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a13cac83f4a067e8a964cb13022c85eeac7024f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        _ENFORCER.load_rules()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def set_rules(rules, overwrite\u003dTrue, use_conf\u003dFalse):"},{"line_number":74,"context_line":"    \"\"\"Set rules based on the provided dict of rules."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"       :param rules: New rules to use. It should be an instance of dict."},{"line_number":77,"context_line":"       :param overwrite: Whether to overwrite current rules or update them"},{"line_number":78,"context_line":"                         with the new rules."},{"line_number":79,"context_line":"       :param use_conf: Whether to reload rules from config file."},{"line_number":80,"context_line":"    \"\"\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    init(use_conf\u003dFalse)"},{"line_number":83,"context_line":"    _ENFORCER.set_rules(rules, overwrite, use_conf)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def authorize(context, action, target, do_raise\u003dTrue, exc\u003dNone):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_6ea2defd","line":83,"range":{"start_line":73,"start_character":0,"end_line":83,"end_character":51},"updated":"2018-10-22 08:39:19.000000000","message":"An earlier version of this patch removed this function, yet it\u0027s here again with no apparent reason? Is this intentional?","commit_id":"8b762999749fb3900c60b5fcb90cd020767ab146"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"5a96739842c3362ce1eb8830dc898a349f1268dc","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        _ENFORCER.load_rules()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def set_rules(rules, overwrite\u003dTrue, use_conf\u003dFalse):"},{"line_number":74,"context_line":"    \"\"\"Set rules based on the provided dict of rules."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"       :param rules: New rules to use. It should be an instance of dict."},{"line_number":77,"context_line":"       :param overwrite: Whether to overwrite current rules or update them"},{"line_number":78,"context_line":"                         with the new rules."},{"line_number":79,"context_line":"       :param use_conf: Whether to reload rules from config file."},{"line_number":80,"context_line":"    \"\"\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    init(use_conf\u003dFalse)"},{"line_number":83,"context_line":"    _ENFORCER.set_rules(rules, overwrite, use_conf)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def authorize(context, action, target, do_raise\u003dTrue, exc\u003dNone):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_ee6cae6c","line":83,"range":{"start_line":73,"start_character":0,"end_line":83,"end_character":51},"in_reply_to":"3f79a3b5_6ea2defd","updated":"2018-10-22 09:00:58.000000000","message":"It\u0027s intentional, turns out it was actually used a lot in the tests. So I decided to keep it here in the meantime.","commit_id":"8b762999749fb3900c60b5fcb90cd020767ab146"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8c97681a507e20d0bcb13f12fbc4659f5a80adc0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        _ENFORCER.load_rules()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def set_rules(rules, overwrite\u003dTrue, use_conf\u003dFalse):"},{"line_number":74,"context_line":"    \"\"\"Set rules based on the provided dict of rules."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"       :param rules: New rules to use. It should be an instance of dict."},{"line_number":77,"context_line":"       :param overwrite: Whether to overwrite current rules or update them"},{"line_number":78,"context_line":"                         with the new rules."},{"line_number":79,"context_line":"       :param use_conf: Whether to reload rules from config file."},{"line_number":80,"context_line":"    \"\"\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    init(use_conf\u003dFalse)"},{"line_number":83,"context_line":"    _ENFORCER.set_rules(rules, overwrite, use_conf)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def authorize(context, action, target, do_raise\u003dTrue, exc\u003dNone):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_7245bf15","line":83,"range":{"start_line":73,"start_character":0,"end_line":83,"end_character":51},"in_reply_to":"3f79a3b5_ee6cae6c","updated":"2018-10-23 12:32:04.000000000","message":"Are you sure? I\u0027m seeing only one caller [1]. All the other callers seem to be for the same function on the \u0027RealPolicyFixture\u0027 fixture [2]. That fixtures calls a \u0027set_rules\u0027 function, but this is a method on the \u0027oslo_policy.policy.Enforcer\u0027 object, not this one. Checked via:\n\n  $ cd nova\n  $ ag set_rules\n\n[1] nova/tests/unit/api/openstack/compute/test_simple_tenant_usage.py\n[2] nova/tests/unit/policy_fixture.py","commit_id":"8b762999749fb3900c60b5fcb90cd020767ab146"}]}
