)]}'
{"manila/share/drivers/hpe/hpe_3par_driver.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"212455a09c73fd67cd1a72d7a10e2ff3c709db78","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        pass"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    def update_access(self, context, share, access_rules, add_rules,"},{"line_number":367,"context_line":"                      delete_rules, share_server):"},{"line_number":368,"context_line":"        \"\"\"Update access to the share.\"\"\""},{"line_number":369,"context_line":"        extra_specs \u003d None"},{"line_number":370,"context_line":"        if \u0027NFS\u0027 \u003d\u003d share[\u0027share_proto\u0027]:  # Avoiding DB call otherwise"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_2b4ca46f","line":367,"range":{"start_line":367,"start_character":36,"end_line":367,"end_character":48},"updated":"2016-08-15 21:18:17.000000000","message":"In the driver interface, this argument is a kwarg.  See other methods in this file as examples.","commit_id":"12ac41c620662e6525fd047e0dde8271a567eb00"}],"manila/share/drivers/hpe/hpe_3par_mediator.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f06a46bd08206fe72f6d37332001b2d9eb556a4","unresolved":false,"context_lines":[{"line_number":1288,"context_line":""},{"line_number":1289,"context_line":"        if not delete_rules and not add_rules:"},{"line_number":1290,"context_line":"            # We need to re add all the rules. Check with 3PAR on it\u0027s current"},{"line_number":1291,"context_line":"            # list and only add the deltas."},{"line_number":1292,"context_line":"            share \u003d self._find_fshare(project_id,"},{"line_number":1293,"context_line":"                                      share_id,"},{"line_number":1294,"context_line":"                                      share_proto,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_5e4f0f34","line":1291,"range":{"start_line":1291,"start_character":24,"end_line":1291,"end_character":43},"updated":"2016-07-15 04:47:03.000000000","message":"what about removals?","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a81f2ad65ffa1327c75568fb8f1ab41e18fedcc4","unresolved":false,"context_lines":[{"line_number":1288,"context_line":""},{"line_number":1289,"context_line":"        if not delete_rules and not add_rules:"},{"line_number":1290,"context_line":"            # We need to re add all the rules. Check with 3PAR on it\u0027s current"},{"line_number":1291,"context_line":"            # list and only add the deltas."},{"line_number":1292,"context_line":"            share \u003d self._find_fshare(project_id,"},{"line_number":1293,"context_line":"                                      share_id,"},{"line_number":1294,"context_line":"                                      share_proto,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_6e3a909a","line":1291,"range":{"start_line":1291,"start_character":24,"end_line":1291,"end_character":43},"in_reply_to":"1aa78d24_5e4f0f34","updated":"2016-07-21 13:59:32.000000000","message":"Good call. Added this.","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"b1a799540cfb4a76118d1bfbf5f8bca0f0313cb6","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1302,"context_line":"                else:"},{"line_number":1303,"context_line":"                    ref_rules \u003d share[\u0027allowPerm\u0027]"},{"line_number":1304,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in [x for x in ref_rules]"},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"                if add_rule:"},{"line_number":1307,"context_line":"                    # Rules does not exist, we need to add it"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9e876060","line":1304,"range":{"start_line":1304,"start_character":49,"end_line":1304,"end_character":78},"updated":"2016-07-12 11:35:49.000000000","message":"This looks like a fancy way of saying \"not in ref_rules\". Or like an abuse of generators.","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"eb7068da150f3837fef2046e9da34ff9e0cfcc52","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1302,"context_line":"                else:"},{"line_number":1303,"context_line":"                    ref_rules \u003d share[\u0027allowPerm\u0027]"},{"line_number":1304,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in [x for x in ref_rules]"},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"                if add_rule:"},{"line_number":1307,"context_line":"                    # Rules does not exist, we need to add it"}],"source_content_type":"text/x-python","patch_set":1,"id":"fad55976_91937bfa","line":1304,"range":{"start_line":1304,"start_character":49,"end_line":1304,"end_character":78},"in_reply_to":"1aa78d24_4d6142d3","updated":"2016-07-15 16:41:36.000000000","message":"Interesting. This implies that rule[\u0027access_to\u0027] is a list, isn\u0027t it?","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f06a46bd08206fe72f6d37332001b2d9eb556a4","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1302,"context_line":"                else:"},{"line_number":1303,"context_line":"                    ref_rules \u003d share[\u0027allowPerm\u0027]"},{"line_number":1304,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in [x for x in ref_rules]"},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"                if add_rule:"},{"line_number":1307,"context_line":"                    # Rules does not exist, we need to add it"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_7ee64b45","line":1304,"range":{"start_line":1304,"start_character":49,"end_line":1304,"end_character":78},"in_reply_to":"1aa78d24_4d6142d3","updated":"2016-07-15 04:47:03.000000000","message":"o.O a 2D array? Can it be pre-processed to be a 1D array of just clients?","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a81f2ad65ffa1327c75568fb8f1ab41e18fedcc4","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1302,"context_line":"                else:"},{"line_number":1303,"context_line":"                    ref_rules \u003d share[\u0027allowPerm\u0027]"},{"line_number":1304,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in [x for x in ref_rules]"},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"                if add_rule:"},{"line_number":1307,"context_line":"                    # Rules does not exist, we need to add it"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_ce49fc32","line":1304,"range":{"start_line":1304,"start_character":49,"end_line":1304,"end_character":78},"in_reply_to":"1aa78d24_7ee64b45","updated":"2016-07-21 13:59:32.000000000","message":"Fixed","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"7b77d80c86a8bcf6b7c190840c06fc6553e16ccf","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1302,"context_line":"                else:"},{"line_number":1303,"context_line":"                    ref_rules \u003d share[\u0027allowPerm\u0027]"},{"line_number":1304,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in [x for x in ref_rules]"},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"                if add_rule:"},{"line_number":1307,"context_line":"                    # Rules does not exist, we need to add it"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_4d6142d3","line":1304,"range":{"start_line":1304,"start_character":49,"end_line":1304,"end_character":78},"in_reply_to":"1aa78d24_9e876060","updated":"2016-07-14 16:24:52.000000000","message":"In this case, ref_rules is a 2d array so I need to iterate through it like this","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a81f2ad65ffa1327c75568fb8f1ab41e18fedcc4","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1302,"context_line":"                else:"},{"line_number":1303,"context_line":"                    ref_rules \u003d share[\u0027allowPerm\u0027]"},{"line_number":1304,"context_line":"                    add_rule \u003d rule[\u0027access_to\u0027] not in [x for x in ref_rules]"},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"                if add_rule:"},{"line_number":1307,"context_line":"                    # Rules does not exist, we need to add it"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_4e64ecb7","line":1304,"range":{"start_line":1304,"start_character":49,"end_line":1304,"end_character":78},"in_reply_to":"fad55976_91937bfa","updated":"2016-07-21 13:59:32.000000000","message":"Fixed this","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f06a46bd08206fe72f6d37332001b2d9eb556a4","unresolved":false,"context_lines":[{"line_number":1314,"context_line":"                                        rule[\u0027access_level\u0027],"},{"line_number":1315,"context_line":"                                        fpg,"},{"line_number":1316,"context_line":"                                        vfs,"},{"line_number":1317,"context_line":"                                        extra_specs\u003dextra_specs)"},{"line_number":1318,"context_line":"        else:"},{"line_number":1319,"context_line":"            # We have deltas of the rules that need to be added and deleted."},{"line_number":1320,"context_line":"            for rule in delete_rules:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_de42df0e","line":1317,"range":{"start_line":1317,"start_character":0,"end_line":1317,"end_character":64},"updated":"2016-07-15 04:47:03.000000000","message":"You\u0027ve added any missing access_rule.. but what about DENYing others that are not within the \u0027access_to\u0027s that the share manager is giving you?","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a81f2ad65ffa1327c75568fb8f1ab41e18fedcc4","unresolved":false,"context_lines":[{"line_number":1314,"context_line":"                                        rule[\u0027access_level\u0027],"},{"line_number":1315,"context_line":"                                        fpg,"},{"line_number":1316,"context_line":"                                        vfs,"},{"line_number":1317,"context_line":"                                        extra_specs\u003dextra_specs)"},{"line_number":1318,"context_line":"        else:"},{"line_number":1319,"context_line":"            # We have deltas of the rules that need to be added and deleted."},{"line_number":1320,"context_line":"            for rule in delete_rules:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_ce70dc74","line":1317,"range":{"start_line":1317,"start_character":0,"end_line":1317,"end_character":64},"in_reply_to":"1aa78d24_de42df0e","updated":"2016-07-21 13:59:32.000000000","message":"Thanks for pointing this out. Done in patch set 2.","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ef9077501660368d9306d4e40021221d45f4c0b5","unresolved":false,"context_lines":[{"line_number":1287,"context_line":"        \"\"\"Update access to a share.\"\"\""},{"line_number":1288,"context_line":"        protocol \u003d self.ensure_supported_protocol(share_proto)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"        if not delete_rules and not add_rules:"},{"line_number":1291,"context_line":"            # We need to re add all the rules. Check with 3PAR on it\u0027s current"},{"line_number":1292,"context_line":"            # list and only add the deltas."},{"line_number":1293,"context_line":"            share \u003d self._find_fshare(project_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_2c66d729","line":1290,"range":{"start_line":1290,"start_character":8,"end_line":1290,"end_character":46},"updated":"2016-07-21 17:11:35.000000000","message":"if not (delete_rules or add_rules):","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a774da7d19b55808e8553c214978cbf9fabe7ac0","unresolved":false,"context_lines":[{"line_number":1287,"context_line":"        \"\"\"Update access to a share.\"\"\""},{"line_number":1288,"context_line":"        protocol \u003d self.ensure_supported_protocol(share_proto)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"        if not delete_rules and not add_rules:"},{"line_number":1291,"context_line":"            # We need to re add all the rules. Check with 3PAR on it\u0027s current"},{"line_number":1292,"context_line":"            # list and only add the deltas."},{"line_number":1293,"context_line":"            share \u003d self._find_fshare(project_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_17e320da","line":1290,"range":{"start_line":1290,"start_character":8,"end_line":1290,"end_character":46},"in_reply_to":"dada55a8_2c66d729","updated":"2016-07-21 17:17:33.000000000","message":"Done","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ef9077501660368d9306d4e40021221d45f4c0b5","unresolved":false,"context_lines":[{"line_number":1314,"context_line":"            base_rules \u003d []"},{"line_number":1315,"context_line":"            for rule in access_rules:"},{"line_number":1316,"context_line":"                base_rules.append(rule[\u0027access_to\u0027])"},{"line_number":1317,"context_line":"                add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1318,"context_line":""},{"line_number":1319,"context_line":"                if add_rule:"},{"line_number":1320,"context_line":"                    # Rule does not exist, we need to add it"},{"line_number":1321,"context_line":"                    self._change_access(ALLOW,"},{"line_number":1322,"context_line":"                                        project_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_d799887a","line":1319,"range":{"start_line":1317,"start_character":16,"end_line":1319,"end_character":28},"updated":"2016-07-21 17:11:35.000000000","message":"if rule[\u0027access_to\u0027] not in ref_rules:","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a774da7d19b55808e8553c214978cbf9fabe7ac0","unresolved":false,"context_lines":[{"line_number":1314,"context_line":"            base_rules \u003d []"},{"line_number":1315,"context_line":"            for rule in access_rules:"},{"line_number":1316,"context_line":"                base_rules.append(rule[\u0027access_to\u0027])"},{"line_number":1317,"context_line":"                add_rule \u003d rule[\u0027access_to\u0027] not in ref_rules"},{"line_number":1318,"context_line":""},{"line_number":1319,"context_line":"                if add_rule:"},{"line_number":1320,"context_line":"                    # Rule does not exist, we need to add it"},{"line_number":1321,"context_line":"                    self._change_access(ALLOW,"},{"line_number":1322,"context_line":"                                        project_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_37074483","line":1319,"range":{"start_line":1317,"start_character":16,"end_line":1319,"end_character":28},"in_reply_to":"dada55a8_d799887a","updated":"2016-07-21 17:17:33.000000000","message":"Done","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ef9077501660368d9306d4e40021221d45f4c0b5","unresolved":false,"context_lines":[{"line_number":1331,"context_line":""},{"line_number":1332,"context_line":"            # Check if we need to remove any rules from 3PAR."},{"line_number":1333,"context_line":"            for rule in ref_rules:"},{"line_number":1334,"context_line":"                delete_rule \u003d rule not in base_rules and ("},{"line_number":1335,"context_line":"                    rule not in [LOCAL_IP, LOCAL_IP_RO])"},{"line_number":1336,"context_line":""},{"line_number":1337,"context_line":"                if rule in ref_users:"},{"line_number":1338,"context_line":"                    rule_type \u003d \u0027user\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_4c6fcbfb","line":1335,"range":{"start_line":1334,"start_character":16,"end_line":1335,"end_character":56},"updated":"2016-07-21 17:11:35.000000000","message":"delete_rule \u003d (\n    rule not in base_rules + [LOCAL_IP, LOCAL_IP_RO])","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a774da7d19b55808e8553c214978cbf9fabe7ac0","unresolved":false,"context_lines":[{"line_number":1331,"context_line":""},{"line_number":1332,"context_line":"            # Check if we need to remove any rules from 3PAR."},{"line_number":1333,"context_line":"            for rule in ref_rules:"},{"line_number":1334,"context_line":"                delete_rule \u003d rule not in base_rules and ("},{"line_number":1335,"context_line":"                    rule not in [LOCAL_IP, LOCAL_IP_RO])"},{"line_number":1336,"context_line":""},{"line_number":1337,"context_line":"                if rule in ref_users:"},{"line_number":1338,"context_line":"                    rule_type \u003d \u0027user\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_f7f12c96","line":1335,"range":{"start_line":1334,"start_character":16,"end_line":1335,"end_character":56},"in_reply_to":"dada55a8_4c6fcbfb","updated":"2016-07-21 17:17:33.000000000","message":"Not needed with the below. Removed.","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ef9077501660368d9306d4e40021221d45f4c0b5","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"                else:"},{"line_number":1340,"context_line":"                    rule_type \u003d \u0027ip\u0027"},{"line_number":1341,"context_line":""},{"line_number":1342,"context_line":"                if delete_rule:"},{"line_number":1343,"context_line":"                    self._change_access(DENY,"},{"line_number":1344,"context_line":"                                        project_id,"},{"line_number":1345,"context_line":"                                        share_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_178e802d","line":1342,"range":{"start_line":1342,"start_character":16,"end_line":1342,"end_character":31},"updated":"2016-07-21 17:11:35.000000000","message":"if rule not in base_rules + [LOCAL_IP, LOCAL_IP_RO]:","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"a774da7d19b55808e8553c214978cbf9fabe7ac0","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"                else:"},{"line_number":1340,"context_line":"                    rule_type \u003d \u0027ip\u0027"},{"line_number":1341,"context_line":""},{"line_number":1342,"context_line":"                if delete_rule:"},{"line_number":1343,"context_line":"                    self._change_access(DENY,"},{"line_number":1344,"context_line":"                                        project_id,"},{"line_number":1345,"context_line":"                                        share_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_17668050","line":1342,"range":{"start_line":1342,"start_character":16,"end_line":1342,"end_character":31},"in_reply_to":"dada55a8_178e802d","updated":"2016-07-21 17:17:33.000000000","message":"Done","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"da41c3840500af961dcaa86e83b5279b32869ccc","unresolved":false,"context_lines":[{"line_number":1287,"context_line":"        \"\"\"Update access to a share.\"\"\""},{"line_number":1288,"context_line":"        protocol \u003d self.ensure_supported_protocol(share_proto)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"        if not (delete_rules or add_rules):"},{"line_number":1291,"context_line":"            # We need to re add all the rules. Check with 3PAR on it\u0027s current"},{"line_number":1292,"context_line":"            # list and only add the deltas."},{"line_number":1293,"context_line":"            share \u003d self._find_fshare(project_id,"},{"line_number":1294,"context_line":"                                      share_id,"},{"line_number":1295,"context_line":"                                      share_proto,"},{"line_number":1296,"context_line":"                                      fpg,"},{"line_number":1297,"context_line":"                                      vfs)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"            ref_users \u003d []"},{"line_number":1300,"context_line":"            if protocol \u003d\u003d \u0027nfs\u0027:"},{"line_number":1301,"context_line":"                ref_rules \u003d share[\u0027clients\u0027]"},{"line_number":1302,"context_line":"            else:"},{"line_number":1303,"context_line":"                ref_rules \u003d [x[0] for x in share[\u0027allowPerm\u0027]]"},{"line_number":1304,"context_line":"                ref_users \u003d ref_rules[:]"},{"line_number":1305,"context_line":"                # Get IP access as well"},{"line_number":1306,"context_line":"                ips \u003d share[\u0027allowIP\u0027]"},{"line_number":1307,"context_line":"                if not isinstance(ips, list):"},{"line_number":1308,"context_line":"                    # If there is only one IP, the API returns a string"},{"line_number":1309,"context_line":"                    # rather than a list. We need to account for that."},{"line_number":1310,"context_line":"                    ips \u003d [ips]"},{"line_number":1311,"context_line":"                ref_rules +\u003d ips"},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"            # Check the rules we need to add."},{"line_number":1314,"context_line":"            base_rules \u003d []"},{"line_number":1315,"context_line":"            for rule in access_rules:"},{"line_number":1316,"context_line":"                base_rules.append(rule[\u0027access_to\u0027])"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"                if rule[\u0027access_to\u0027] not in ref_rules:"},{"line_number":1319,"context_line":"                    # Rule does not exist, we need to add it"},{"line_number":1320,"context_line":"                    self._change_access(ALLOW,"},{"line_number":1321,"context_line":"                                        project_id,"},{"line_number":1322,"context_line":"                                        share_id,"},{"line_number":1323,"context_line":"                                        share_proto,"},{"line_number":1324,"context_line":"                                        rule[\u0027access_type\u0027],"},{"line_number":1325,"context_line":"                                        rule[\u0027access_to\u0027],"},{"line_number":1326,"context_line":"                                        rule[\u0027access_level\u0027],"},{"line_number":1327,"context_line":"                                        fpg,"},{"line_number":1328,"context_line":"                                        vfs,"},{"line_number":1329,"context_line":"                                        extra_specs\u003dextra_specs)"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"            # Check if we need to remove any rules from 3PAR."},{"line_number":1332,"context_line":"            for rule in ref_rules:"},{"line_number":1333,"context_line":"                if rule in ref_users:"},{"line_number":1334,"context_line":"                    rule_type \u003d \u0027user\u0027"},{"line_number":1335,"context_line":"                else:"},{"line_number":1336,"context_line":"                    rule_type \u003d \u0027ip\u0027"},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"                if rule not in base_rules + [LOCAL_IP, LOCAL_IP_RO]:"},{"line_number":1339,"context_line":"                    self._change_access(DENY,"},{"line_number":1340,"context_line":"                                        project_id,"},{"line_number":1341,"context_line":"                                        share_id,"},{"line_number":1342,"context_line":"                                        share_proto,"},{"line_number":1343,"context_line":"                                        rule_type,"},{"line_number":1344,"context_line":"                                        rule,"},{"line_number":1345,"context_line":"                                        None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_75c68117","line":1342,"range":{"start_line":1290,"start_character":8,"end_line":1342,"end_character":52},"updated":"2016-07-23 15:30:11.000000000","message":"Please add unit tests.","commit_id":"73fa7bf2e7e2d1c43beea1be7935f21d04116669"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"de0bb3924a63af19072353c10626ec2fbb94034e","unresolved":false,"context_lines":[{"line_number":1287,"context_line":"        \"\"\"Update access to a share.\"\"\""},{"line_number":1288,"context_line":"        protocol \u003d self.ensure_supported_protocol(share_proto)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"        if not (delete_rules or add_rules):"},{"line_number":1291,"context_line":"            # We need to re add all the rules. Check with 3PAR on it\u0027s current"},{"line_number":1292,"context_line":"            # list and only add the deltas."},{"line_number":1293,"context_line":"            share \u003d self._find_fshare(project_id,"},{"line_number":1294,"context_line":"                                      share_id,"},{"line_number":1295,"context_line":"                                      share_proto,"},{"line_number":1296,"context_line":"                                      fpg,"},{"line_number":1297,"context_line":"                                      vfs)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"            ref_users \u003d []"},{"line_number":1300,"context_line":"            if protocol \u003d\u003d \u0027nfs\u0027:"},{"line_number":1301,"context_line":"                ref_rules \u003d share[\u0027clients\u0027]"},{"line_number":1302,"context_line":"            else:"},{"line_number":1303,"context_line":"                ref_rules \u003d [x[0] for x in share[\u0027allowPerm\u0027]]"},{"line_number":1304,"context_line":"                ref_users \u003d ref_rules[:]"},{"line_number":1305,"context_line":"                # Get IP access as well"},{"line_number":1306,"context_line":"                ips \u003d share[\u0027allowIP\u0027]"},{"line_number":1307,"context_line":"                if not isinstance(ips, list):"},{"line_number":1308,"context_line":"                    # If there is only one IP, the API returns a string"},{"line_number":1309,"context_line":"                    # rather than a list. We need to account for that."},{"line_number":1310,"context_line":"                    ips \u003d [ips]"},{"line_number":1311,"context_line":"                ref_rules +\u003d ips"},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"            # Check the rules we need to add."},{"line_number":1314,"context_line":"            base_rules \u003d []"},{"line_number":1315,"context_line":"            for rule in access_rules:"},{"line_number":1316,"context_line":"                base_rules.append(rule[\u0027access_to\u0027])"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"                if rule[\u0027access_to\u0027] not in ref_rules:"},{"line_number":1319,"context_line":"                    # Rule does not exist, we need to add it"},{"line_number":1320,"context_line":"                    self._change_access(ALLOW,"},{"line_number":1321,"context_line":"                                        project_id,"},{"line_number":1322,"context_line":"                                        share_id,"},{"line_number":1323,"context_line":"                                        share_proto,"},{"line_number":1324,"context_line":"                                        rule[\u0027access_type\u0027],"},{"line_number":1325,"context_line":"                                        rule[\u0027access_to\u0027],"},{"line_number":1326,"context_line":"                                        rule[\u0027access_level\u0027],"},{"line_number":1327,"context_line":"                                        fpg,"},{"line_number":1328,"context_line":"                                        vfs,"},{"line_number":1329,"context_line":"                                        extra_specs\u003dextra_specs)"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"            # Check if we need to remove any rules from 3PAR."},{"line_number":1332,"context_line":"            for rule in ref_rules:"},{"line_number":1333,"context_line":"                if rule in ref_users:"},{"line_number":1334,"context_line":"                    rule_type \u003d \u0027user\u0027"},{"line_number":1335,"context_line":"                else:"},{"line_number":1336,"context_line":"                    rule_type \u003d \u0027ip\u0027"},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"                if rule not in base_rules + [LOCAL_IP, LOCAL_IP_RO]:"},{"line_number":1339,"context_line":"                    self._change_access(DENY,"},{"line_number":1340,"context_line":"                                        project_id,"},{"line_number":1341,"context_line":"                                        share_id,"},{"line_number":1342,"context_line":"                                        share_proto,"},{"line_number":1343,"context_line":"                                        rule_type,"},{"line_number":1344,"context_line":"                                        rule,"},{"line_number":1345,"context_line":"                                        None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_3fad5f9b","line":1342,"range":{"start_line":1290,"start_character":8,"end_line":1342,"end_character":52},"in_reply_to":"dada55a8_75c68117","updated":"2016-08-01 21:28:18.000000000","message":"Oops. Done.","commit_id":"73fa7bf2e7e2d1c43beea1be7935f21d04116669"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"da41c3840500af961dcaa86e83b5279b32869ccc","unresolved":false,"context_lines":[{"line_number":1342,"context_line":"                                        share_proto,"},{"line_number":1343,"context_line":"                                        rule_type,"},{"line_number":1344,"context_line":"                                        rule,"},{"line_number":1345,"context_line":"                                        None,"},{"line_number":1346,"context_line":"                                        fpg,"},{"line_number":1347,"context_line":"                                        vfs)"},{"line_number":1348,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_c828b088","line":1345,"range":{"start_line":1345,"start_character":40,"end_line":1345,"end_character":45},"updated":"2016-07-23 15:30:11.000000000","message":"Just a question. Does the change_access will return error  when the access_level set to None in change_access?  Because I saw you will use self._validate_access_level function to check the access level. If the access_level(in _change_access) is set to None, the level will not be the rule\u0027s real level. Is it ok?","commit_id":"73fa7bf2e7e2d1c43beea1be7935f21d04116669"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"de0bb3924a63af19072353c10626ec2fbb94034e","unresolved":false,"context_lines":[{"line_number":1342,"context_line":"                                        share_proto,"},{"line_number":1343,"context_line":"                                        rule_type,"},{"line_number":1344,"context_line":"                                        rule,"},{"line_number":1345,"context_line":"                                        None,"},{"line_number":1346,"context_line":"                                        fpg,"},{"line_number":1347,"context_line":"                                        vfs)"},{"line_number":1348,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_9bb3cd09","line":1345,"range":{"start_line":1345,"start_character":40,"end_line":1345,"end_character":45},"in_reply_to":"dada55a8_c828b088","updated":"2016-08-01 21:28:18.000000000","message":"On removing a rule it will be fine. We only need to worry about preserving the access_level when adding.","commit_id":"73fa7bf2e7e2d1c43beea1be7935f21d04116669"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1506,"context_line":"        if not (delete_rules or add_rules):"},{"line_number":1507,"context_line":"            # We need to re add all the rules. Check with 3PAR on it\u0027s current"},{"line_number":1508,"context_line":"            # list and only add the deltas."},{"line_number":1509,"context_line":"            share \u003d self._find_fshare(project_id,"},{"line_number":1510,"context_line":"                                      share_id,"},{"line_number":1511,"context_line":"                                      share_proto,"},{"line_number":1512,"context_line":"                                      fpg,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_81e2099e","line":1509,"range":{"start_line":1509,"start_character":12,"end_line":1509,"end_character":17},"updated":"2016-08-13 05:59:00.000000000","message":"For NFS 3PAR needs 2 shares to support RO and RW access rules. So I think here we\u0027ll need to find both of them.","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1514,"context_line":""},{"line_number":1515,"context_line":"            ref_users \u003d []"},{"line_number":1516,"context_line":"            if protocol \u003d\u003d \u0027nfs\u0027:"},{"line_number":1517,"context_line":"                ref_rules \u003d share[\u0027clients\u0027]"},{"line_number":1518,"context_line":"            else:"},{"line_number":1519,"context_line":"                ref_rules \u003d [x[0] for x in share[\u0027allowPerm\u0027]]"},{"line_number":1520,"context_line":"                ref_users \u003d ref_rules[:]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_c1f2416f","line":1517,"range":{"start_line":1517,"start_character":16,"end_line":1517,"end_character":25},"updated":"2016-08-13 05:59:00.000000000","message":"then these NFS IPs need to be split by type (RO,RW)","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1516,"context_line":"            if protocol \u003d\u003d \u0027nfs\u0027:"},{"line_number":1517,"context_line":"                ref_rules \u003d share[\u0027clients\u0027]"},{"line_number":1518,"context_line":"            else:"},{"line_number":1519,"context_line":"                ref_rules \u003d [x[0] for x in share[\u0027allowPerm\u0027]]"},{"line_number":1520,"context_line":"                ref_users \u003d ref_rules[:]"},{"line_number":1521,"context_line":"                # Get IP access as well"},{"line_number":1522,"context_line":"                ips \u003d share[\u0027allowIP\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_01a45955","line":1519,"range":{"start_line":1519,"start_character":16,"end_line":1519,"end_character":25},"updated":"2016-08-13 05:59:00.000000000","message":"for CIFS we don\u0027t have twin shares, but I think you should still make sure the RO|RW is correct.","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1531,"context_line":"            for rule in access_rules:"},{"line_number":1532,"context_line":"                base_rules.append(rule[\u0027access_to\u0027])"},{"line_number":1533,"context_line":""},{"line_number":1534,"context_line":"                if rule[\u0027access_to\u0027] not in ref_rules:"},{"line_number":1535,"context_line":"                    # Rule does not exist, we need to add it"},{"line_number":1536,"context_line":"                    self._change_access(ALLOW,"},{"line_number":1537,"context_line":"                                        project_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_01bbb973","line":1534,"range":{"start_line":1534,"start_character":44,"end_line":1534,"end_character":53},"updated":"2016-08-13 05:59:00.000000000","message":"so I guess here the \"not in\" has to care about the access_type as well as the access_to.","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1544,"context_line":"                                        vfs,"},{"line_number":1545,"context_line":"                                        extra_specs\u003dextra_specs)"},{"line_number":1546,"context_line":""},{"line_number":1547,"context_line":"            # Check if we need to remove any rules from 3PAR."},{"line_number":1548,"context_line":"            for rule in ref_rules:"},{"line_number":1549,"context_line":"                if rule in ref_users:"},{"line_number":1550,"context_line":"                    rule_type \u003d \u0027user\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_a1e585a9","line":1547,"range":{"start_line":1547,"start_character":34,"end_line":1547,"end_character":40},"updated":"2016-08-13 05:59:00.000000000","message":"when dealing with the NFS twin share (ro and rw) these removes should be done before the allows. In case some RO rule is supposed to be RW (or vice versa) the allow will fail unless the remove happens first.","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"a193118f6adbda3c01fb0d33ed0d1b9c36826045","unresolved":false,"context_lines":[{"line_number":1498,"context_line":"                   six.text_type(e))"},{"line_number":1499,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":1500,"context_line":""},{"line_number":1501,"context_line":"    def update_access(self, project_id, share_id, share_proto, extra_specs,"},{"line_number":1502,"context_line":"                      access_rules, add_rules, delete_rules, fpg, vfs):"},{"line_number":1503,"context_line":"        \"\"\"Update access to a share.\"\"\""},{"line_number":1504,"context_line":"        protocol \u003d self.ensure_supported_protocol(share_proto)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_f53a69cc","line":1501,"range":{"start_line":1501,"start_character":8,"end_line":1501,"end_character":21},"updated":"2016-08-15 20:19:15.000000000","message":"Not worthy of a -1, but an 86-line method is generally not what I consider clean code.  Breaking this up into to a few private methods would be trivial, improve readability, and simplify unit testing.","commit_id":"12ac41c620662e6525fd047e0dde8271a567eb00"}],"manila/tests/share/drivers/hpe/test_hpe_3par_constants.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ef9077501660368d9306d4e40021221d45f4c0b5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"EXPECTED_MOUNT_PATH \u003d \u0027/mnt/\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Access rules. Allow for overwrites."},{"line_number":66,"context_line":"ACCESS_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":67,"context_line":"               \u0027access_to\u0027: \u0027\u0027,"},{"line_number":68,"context_line":"               \u0027access_level\u0027: \u0027\u0027}"},{"line_number":69,"context_line":"ADD_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":70,"context_line":"            \u0027access_to\u0027: \u0027\u0027,"},{"line_number":71,"context_line":"            \u0027access_level\u0027: \u0027\u0027}"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_57ad9899","line":68,"range":{"start_line":66,"start_character":0,"end_line":68,"end_character":34},"updated":"2016-07-21 17:11:35.000000000","message":"http://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"c2d1cbe317ed79baa4bb1d8dd4423f7dee221ab2"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ff4668701bff2a06ffb333083c48f1898ab9953c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"EXPECTED_CIFS_DOMAIN \u003d \u0027LOCAL_CLUSTER\u0027"},{"line_number":63,"context_line":"EXPECTED_MOUNT_PATH \u003d \u0027/mnt/\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Access rules. Allow for overwrites."},{"line_number":66,"context_line":"ACCESS_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":67,"context_line":"               \u0027access_to\u0027: \u0027\u0027,"},{"line_number":68,"context_line":"               \u0027access_level\u0027: \u0027\u0027}"},{"line_number":69,"context_line":"ADD_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":70,"context_line":"            \u0027access_to\u0027: \u0027\u0027,"},{"line_number":71,"context_line":"            \u0027access_level\u0027: \u0027\u0027}"},{"line_number":72,"context_line":"DELETE_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":73,"context_line":"               \u0027access_to\u0027: \u0027\u0027,"},{"line_number":74,"context_line":"               \u0027access_level\u0027: \u0027\u0027}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"GET_FSQUOTA \u003d {\u0027message\u0027: None,"},{"line_number":77,"context_line":"               \u0027total\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_1cc95cad","line":74,"range":{"start_line":65,"start_character":0,"end_line":74,"end_character":34},"updated":"2016-07-22 11:15:47.000000000","message":"This?\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"73fa7bf2e7e2d1c43beea1be7935f21d04116669"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"de0bb3924a63af19072353c10626ec2fbb94034e","unresolved":false,"context_lines":[{"line_number":62,"context_line":"EXPECTED_CIFS_DOMAIN \u003d \u0027LOCAL_CLUSTER\u0027"},{"line_number":63,"context_line":"EXPECTED_MOUNT_PATH \u003d \u0027/mnt/\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Access rules. Allow for overwrites."},{"line_number":66,"context_line":"ACCESS_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":67,"context_line":"               \u0027access_to\u0027: \u0027\u0027,"},{"line_number":68,"context_line":"               \u0027access_level\u0027: \u0027\u0027}"},{"line_number":69,"context_line":"ADD_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":70,"context_line":"            \u0027access_to\u0027: \u0027\u0027,"},{"line_number":71,"context_line":"            \u0027access_level\u0027: \u0027\u0027}"},{"line_number":72,"context_line":"DELETE_RULE \u003d {\u0027access_type\u0027: \u0027\u0027,"},{"line_number":73,"context_line":"               \u0027access_to\u0027: \u0027\u0027,"},{"line_number":74,"context_line":"               \u0027access_level\u0027: \u0027\u0027}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"GET_FSQUOTA \u003d {\u0027message\u0027: None,"},{"line_number":77,"context_line":"               \u0027total\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_9b82adc6","line":74,"range":{"start_line":65,"start_character":0,"end_line":74,"end_character":34},"in_reply_to":"dada55a8_1cc95cad","updated":"2016-08-01 21:28:18.000000000","message":"Done","commit_id":"73fa7bf2e7e2d1c43beea1be7935f21d04116669"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# Access rules. Allow for overwrites."},{"line_number":71,"context_line":"ACCESS_RULE \u003d {"},{"line_number":72,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":73,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":74,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":75,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_61770dd5","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":22},"updated":"2016-08-13 05:59:00.000000000","message":"s/\u0027ip\u0027/IP/","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# Access rules. Allow for overwrites."},{"line_number":71,"context_line":"ACCESS_RULE \u003d {"},{"line_number":72,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":73,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":74,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":75,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_e5900d98","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":22},"in_reply_to":"7ac969e8_61770dd5","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"ACCESS_RULE \u003d {"},{"line_number":72,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":73,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":74,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"ADD_RULE \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_216d1505","line":74,"range":{"start_line":74,"start_character":21,"end_line":74,"end_character":23},"updated":"2016-08-13 05:59:00.000000000","message":"s/\u0027rw\u0027/READ_WRITE/","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"ACCESS_RULE \u003d {"},{"line_number":72,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":73,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":74,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"ADD_RULE \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_25e9851b","line":74,"range":{"start_line":74,"start_character":21,"end_line":74,"end_character":23},"in_reply_to":"7ac969e8_216d1505","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"ADD_RULE \u003d {"},{"line_number":78,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":79,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":80,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":81,"context_line":"}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"DELETE_RULE \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_a1810592","line":80,"range":{"start_line":78,"start_character":2,"end_line":80,"end_character":25},"updated":"2016-08-13 05:59:00.000000000","message":"same here. use the constants","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"ADD_RULE \u003d {"},{"line_number":78,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":79,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":80,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":81,"context_line":"}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"DELETE_RULE \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_05ee0922","line":80,"range":{"start_line":78,"start_character":2,"end_line":80,"end_character":25},"in_reply_to":"7ac969e8_a1810592","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"DELETE_RULE \u003d {"},{"line_number":84,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":85,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":86,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":87,"context_line":"}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"GET_FSQUOTA \u003d {\u0027message\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_817e89ac","line":86,"range":{"start_line":84,"start_character":1,"end_line":86,"end_character":25},"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"DELETE_RULE \u003d {"},{"line_number":84,"context_line":"    \u0027access_type\u0027: \u0027ip\u0027,"},{"line_number":85,"context_line":"    \u0027access_to\u0027: EXPECTED_IP_1234,"},{"line_number":86,"context_line":"    \u0027access_level\u0027: \u0027rw\u0027,"},{"line_number":87,"context_line":"}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"GET_FSQUOTA \u003d {\u0027message\u0027: None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_65f37d0b","line":86,"range":{"start_line":84,"start_character":1,"end_line":86,"end_character":25},"in_reply_to":"7ac969e8_817e89ac","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"}],"manila/tests/share/drivers/hpe/test_hpe_3par_driver.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f06a46bd08206fe72f6d37332001b2d9eb556a4","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                      constants.EXPECTED_VFS)"},{"line_number":464,"context_line":"        ]"},{"line_number":465,"context_line":"        self.mock_mediator.assert_has_calls(expected_calls)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def test_driver_update_access_add_rule(self):"},{"line_number":468,"context_line":"        self.init_driver()"},{"line_number":469,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9e0697cb","line":466,"range":{"start_line":466,"start_character":0,"end_line":466,"end_character":0},"updated":"2016-07-15 04:47:03.000000000","message":"please add and cover the case when you don\u0027t have both add_rule and delete_rule and you\u0027re expected to sync up with whatever\u0027s provided in access_rules","commit_id":"89e3aa2cbb02b5f0ff18644ef2693ebe3ebb169b"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        context \u003d None"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":487,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":488,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d ("},{"line_number":489,"context_line":"            constants.ACCESS_INFO[\u0027access_level\u0027])"},{"line_number":490,"context_line":"        self.driver.update_access(context,"},{"line_number":491,"context_line":"                                  constants.NFS_SHARE_INFO,"},{"line_number":492,"context_line":"                                  [constants.ACCESS_RULE],"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_213b55ed","line":489,"range":{"start_line":486,"start_character":0,"end_line":489,"end_character":50},"updated":"2016-08-13 05:59:00.000000000","message":"I don\u0027t see why these need to be set. Remove these lines(?). If you need this the things on the left are not constants so that doesn\u0027t look right.","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        context \u003d None"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":487,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":488,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d ("},{"line_number":489,"context_line":"            constants.ACCESS_INFO[\u0027access_level\u0027])"},{"line_number":490,"context_line":"        self.driver.update_access(context,"},{"line_number":491,"context_line":"                                  constants.NFS_SHARE_INFO,"},{"line_number":492,"context_line":"                                  [constants.ACCESS_RULE],"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_650ffde1","line":489,"range":{"start_line":486,"start_character":0,"end_line":489,"end_character":50},"in_reply_to":"7ac969e8_213b55ed","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        context \u003d None"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":516,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":517,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":518,"context_line":"        self.driver.update_access(context,"},{"line_number":519,"context_line":"                                  constants.NFS_SHARE_INFO,"},{"line_number":520,"context_line":"                                  [constants.ACCESS_RULE],"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_a12f45a0","line":517,"range":{"start_line":515,"start_character":4,"end_line":517,"end_character":68},"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        context \u003d None"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":516,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":517,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":518,"context_line":"        self.driver.update_access(context,"},{"line_number":519,"context_line":"                                  constants.NFS_SHARE_INFO,"},{"line_number":520,"context_line":"                                  [constants.ACCESS_RULE],"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_a5f9f5ca","line":517,"range":{"start_line":515,"start_character":4,"end_line":517,"end_character":68},"in_reply_to":"7ac969e8_a12f45a0","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"}],"manila/tests/share/drivers/hpe/test_hpe_3par_mediator.py":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1655,"context_line":"            \u0027message\u0027: None,"},{"line_number":1656,"context_line":"        }"},{"line_number":1657,"context_line":""},{"line_number":1658,"context_line":"        constants.ACCESS_RULE[\u0027access_type\u0027] \u003d \u0027user\u0027"},{"line_number":1659,"context_line":"        constants.ACCESS_RULE[\u0027access_to\u0027] \u003d \u0027fsadmin\u0027"},{"line_number":1660,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1661,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1662,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_dc250aaf","line":1659,"range":{"start_line":1658,"start_character":1,"end_line":1659,"end_character":54},"updated":"2016-08-13 05:59:00.000000000","message":"I suppose this is why constants are being modified. You should just add a new constants.ACCESS_RULE_USER (or whatever) so you don\u0027t have to modify constants.","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1655,"context_line":"            \u0027message\u0027: None,"},{"line_number":1656,"context_line":"        }"},{"line_number":1657,"context_line":""},{"line_number":1658,"context_line":"        constants.ACCESS_RULE[\u0027access_type\u0027] \u003d \u0027user\u0027"},{"line_number":1659,"context_line":"        constants.ACCESS_RULE[\u0027access_to\u0027] \u003d \u0027fsadmin\u0027"},{"line_number":1660,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1661,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1662,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_c34b492a","line":1659,"range":{"start_line":1658,"start_character":1,"end_line":1659,"end_character":54},"in_reply_to":"7ac969e8_dc250aaf","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1682,"context_line":"    def test_mediator_allow_ip_ro_access_cifs_error(self):"},{"line_number":1683,"context_line":"        self.init_mediator()"},{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1686,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_10203040"},{"line_number":1687,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_ONLY"},{"line_number":1688,"context_line":"        self.assertRaises(exception.InvalidShareAccess,"},{"line_number":1689,"context_line":"                          self.mediator.update_access,"},{"line_number":1690,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_fc2446b0","line":1687,"range":{"start_line":1685,"start_character":0,"end_line":1687,"end_character":64},"updated":"2016-08-13 05:59:00.000000000","message":"add another constant instead of these too","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1682,"context_line":"    def test_mediator_allow_ip_ro_access_cifs_error(self):"},{"line_number":1683,"context_line":"        self.init_mediator()"},{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1686,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_10203040"},{"line_number":1687,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_ONLY"},{"line_number":1688,"context_line":"        self.assertRaises(exception.InvalidShareAccess,"},{"line_number":1689,"context_line":"                          self.mediator.update_access,"},{"line_number":1690,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_a348cd2e","line":1687,"range":{"start_line":1685,"start_character":0,"end_line":1687,"end_character":64},"in_reply_to":"7ac969e8_fc2446b0","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1717,"context_line":"            \u0027message\u0027: None,"},{"line_number":1718,"context_line":"        }"},{"line_number":1719,"context_line":""},{"line_number":1720,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1721,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_10203040"},{"line_number":1722,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1723,"context_line":"        self.assertRaises(exception.InvalidShareAccess,"},{"line_number":1724,"context_line":"                          self.mediator.update_access,"},{"line_number":1725,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_7c3176ec","line":1722,"range":{"start_line":1720,"start_character":0,"end_line":1722,"end_character":65},"updated":"2016-08-13 05:59:00.000000000","message":"reuse the one created for above","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1717,"context_line":"            \u0027message\u0027: None,"},{"line_number":1718,"context_line":"        }"},{"line_number":1719,"context_line":""},{"line_number":1720,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1721,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_10203040"},{"line_number":1722,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1723,"context_line":"        self.assertRaises(exception.InvalidShareAccess,"},{"line_number":1724,"context_line":"                          self.mediator.update_access,"},{"line_number":1725,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_e352c5dc","line":1722,"range":{"start_line":1720,"start_character":0,"end_line":1722,"end_character":65},"in_reply_to":"7ac969e8_7c3176ec","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1752,"context_line":"        else:"},{"line_number":1753,"context_line":"            expected_allowperm \u003d \u0027+%s:fullcontrol\u0027 % constants.USERNAME"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.USER"},{"line_number":1756,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":1757,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d access_level"},{"line_number":1758,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1759,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1760,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_fc5ba62c","line":1757,"range":{"start_line":1755,"start_character":1,"end_line":1757,"end_character":57},"updated":"2016-08-13 05:59:00.000000000","message":"you get the idea. I don\u0027t like seeing constants modified (mocked perhaps, but this just looks wrong)","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1752,"context_line":"        else:"},{"line_number":1753,"context_line":"            expected_allowperm \u003d \u0027+%s:fullcontrol\u0027 % constants.USERNAME"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.USER"},{"line_number":1756,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":1757,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d access_level"},{"line_number":1758,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1759,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1760,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_435e39ea","line":1757,"range":{"start_line":1755,"start_character":1,"end_line":1757,"end_character":57},"in_reply_to":"7ac969e8_fc5ba62c","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1817,"context_line":""},{"line_number":1818,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1819,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_10203040"},{"line_number":1820,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1821,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1822,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1823,"context_line":"                                    proto,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_9c4b9259","line":1820,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1817,"context_line":""},{"line_number":1818,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1819,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_10203040"},{"line_number":1820,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1821,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1822,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1823,"context_line":"                                    proto,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_835831fc","line":1820,"in_reply_to":"7ac969e8_9c4b9259","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.USER"},{"line_number":1841,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":1842,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1843,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1844,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1845,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_7c48565c","line":1842,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.USER"},{"line_number":1841,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":1842,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1843,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1844,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1845,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_036d6198","line":1842,"in_reply_to":"7ac969e8_7c48565c","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1870,"context_line":""},{"line_number":1871,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1872,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1873,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1874,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1875,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1876,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_dc734ab3","line":1873,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1870,"context_line":""},{"line_number":1871,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1872,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1873,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1874,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1875,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1876,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_e369258d","line":1873,"in_reply_to":"7ac969e8_dc734ab3","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1900,"context_line":""},{"line_number":1901,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1902,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1903,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1904,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1905,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1906,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_1c6e82c9","line":1903,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1900,"context_line":""},{"line_number":1901,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1902,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1903,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1904,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1905,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1906,"context_line":"                                    constants.CIFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_230a1dd3","line":1903,"in_reply_to":"7ac969e8_1c6e82c9","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1934,"context_line":"        for _ in range(2):  # Test 2nd allow w/ already exists message."},{"line_number":1935,"context_line":"            constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1936,"context_line":"            constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1937,"context_line":"            constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1938,"context_line":"            self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1939,"context_line":"                                        constants.EXPECTED_SHARE_ID,"},{"line_number":1940,"context_line":"                                        constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_fc7286ac","line":1937,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1934,"context_line":"        for _ in range(2):  # Test 2nd allow w/ already exists message."},{"line_number":1935,"context_line":"            constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1936,"context_line":"            constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1937,"context_line":"            constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1938,"context_line":"            self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1939,"context_line":"                                        constants.EXPECTED_SHARE_ID,"},{"line_number":1940,"context_line":"                                        constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_631415f5","line":1937,"in_reply_to":"7ac969e8_fc7286ac","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1965,"context_line":""},{"line_number":1966,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1967,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1968,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1969,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1970,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1971,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_3c653ee1","line":1968,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1965,"context_line":""},{"line_number":1966,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":1967,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":1968,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":1969,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":1970,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":1971,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_030441be","line":1968,"in_reply_to":"7ac969e8_3c653ee1","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2008,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2009,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_ONLY"},{"line_number":2010,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":2011,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":2012,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_9c6272d7","line":2009,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2008,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2009,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_ONLY"},{"line_number":2010,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":2011,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":2012,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_e30005ad","line":2009,"in_reply_to":"7ac969e8_9c6272d7","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":2050,"context_line":""},{"line_number":2051,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.USER"},{"line_number":2052,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":2053,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2054,"context_line":"        self.assertRaises(exception.HPE3ParInvalid,"},{"line_number":2055,"context_line":"                          self.mediator.update_access,"},{"line_number":2056,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_7c5fb60e","line":2053,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":2050,"context_line":""},{"line_number":2051,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.USER"},{"line_number":2052,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":2053,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2054,"context_line":"        self.assertRaises(exception.HPE3ParInvalid,"},{"line_number":2055,"context_line":"                          self.mediator.update_access,"},{"line_number":2056,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_432c794a","line":2053,"in_reply_to":"7ac969e8_7c5fb60e","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":2069,"context_line":""},{"line_number":2070,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2071,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2072,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2073,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":2074,"context_line":"                          self.mediator.update_access,"},{"line_number":2075,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_dc9a2ac5","line":2072,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":2069,"context_line":""},{"line_number":2070,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2071,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2072,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2073,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":2074,"context_line":"                          self.mediator.update_access,"},{"line_number":2075,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_23317da3","line":2072,"in_reply_to":"7ac969e8_dc9a2ac5","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":2088,"context_line":""},{"line_number":2089,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d \u0027unsupported_other_type\u0027"},{"line_number":2090,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":2091,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2092,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":2093,"context_line":"                          self.mediator.update_access,"},{"line_number":2094,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_bc9f6eb3","line":2091,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":2088,"context_line":""},{"line_number":2089,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d \u0027unsupported_other_type\u0027"},{"line_number":2090,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.USERNAME"},{"line_number":2091,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2092,"context_line":"        self.assertRaises(exception.InvalidInput,"},{"line_number":2093,"context_line":"                          self.mediator.update_access,"},{"line_number":2094,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_632b7531","line":2091,"in_reply_to":"7ac969e8_bc9f6eb3","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":2109,"context_line":""},{"line_number":2110,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2111,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2112,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2113,"context_line":"        self.assertRaises(exception.HPE3ParInvalid,"},{"line_number":2114,"context_line":"                          self.mediator.update_access,"},{"line_number":2115,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_1ca5e203","line":2112,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":2109,"context_line":""},{"line_number":2110,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2111,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2112,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2113,"context_line":"        self.assertRaises(exception.HPE3ParInvalid,"},{"line_number":2114,"context_line":"                          self.mediator.update_access,"},{"line_number":2115,"context_line":"                          constants.EXPECTED_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_c320694c","line":2112,"in_reply_to":"7ac969e8_1ca5e203","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":2160,"context_line":""},{"line_number":2161,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2162,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2163,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_ONLY"},{"line_number":2164,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":2165,"context_line":"                                    share_id,"},{"line_number":2166,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_5caf5ae3","line":2163,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":2160,"context_line":""},{"line_number":2161,"context_line":"        constants.ADD_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2162,"context_line":"        constants.ADD_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2163,"context_line":"        constants.ADD_RULE[\u0027access_level\u0027] \u003d constants.READ_ONLY"},{"line_number":2164,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":2165,"context_line":"                                    share_id,"},{"line_number":2166,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_e31765eb","line":2163,"in_reply_to":"7ac969e8_5caf5ae3","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":2222,"context_line":""},{"line_number":2223,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2224,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2225,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2226,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":2227,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":2228,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac969e8_3cac1eed","line":2225,"updated":"2016-08-13 05:59:00.000000000","message":"same","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":2222,"context_line":""},{"line_number":2223,"context_line":"        constants.DELETE_RULE[\u0027access_type\u0027] \u003d constants.IP"},{"line_number":2224,"context_line":"        constants.DELETE_RULE[\u0027access_to\u0027] \u003d constants.EXPECTED_IP_1234"},{"line_number":2225,"context_line":"        constants.DELETE_RULE[\u0027access_level\u0027] \u003d constants.READ_WRITE"},{"line_number":2226,"context_line":"        self.mediator.update_access(constants.EXPECTED_PROJECT_ID,"},{"line_number":2227,"context_line":"                                    constants.EXPECTED_SHARE_ID,"},{"line_number":2228,"context_line":"                                    constants.NFS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_23d85d53","line":2225,"in_reply_to":"7ac969e8_3cac1eed","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"}],"releasenotes/notes/3par-add-update-access-68fc12ffc099f480.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e4d90d710b70b55c1c8a9fabf5cea3dbcfdfc5e0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds update_access support to HPE 3PAR driver."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"bacf61ea_06c6d248","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":50},"updated":"2016-08-04 02:35:00.000000000","message":"http://docs.openstack.org/developer/manila/devref/adding_release_notes.html","commit_id":"d86bd9179c41e675b4c51e2b5f7ff50ce3e89340"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"5216618def350260c3fd19c72867a1fd5911974f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds update_access support to HPE 3PAR driver."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7ac969e8_dce86a19","line":3,"range":{"start_line":3,"start_character":7,"end_line":3,"end_character":8},"updated":"2016-08-13 05:59:00.000000000","message":"I think s/Adds/Add/ is the preferred tense if you are doing another patch anyway.","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"39a43d261886ee2209db0e51f8ec6a01ba13d38e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds update_access support to HPE 3PAR driver."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3ac371cc_633a5538","line":3,"range":{"start_line":3,"start_character":7,"end_line":3,"end_character":8},"in_reply_to":"7ac969e8_dce86a19","updated":"2016-08-15 15:32:50.000000000","message":"Done","commit_id":"753cbba88f9748520ae2e2ab43b0bf1b964e2fde"}]}
