)]}'
{"openstackclient/identity/v3/mapping.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5d7f3d8b878f9d9bbee66b5d37e8183179e32bcf","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#   under the License."},{"line_number":14,"context_line":"#"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"Identity v3 User action implementations\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import logging"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FX48%3D","line":16,"updated":"2014-04-15 03:27:45.000000000","message":"s/user/mapping","commit_id":"f331692b492c0ec071d5f409b64563f8c3ef1a4d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5d7f3d8b878f9d9bbee66b5d37e8183179e32bcf","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        parser \u003d super(CreateMapping, self).get_parser(prog_name)"},{"line_number":88,"context_line":"        parser.add_argument("},{"line_number":89,"context_line":"            \u0027name\u0027,"},{"line_number":90,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":91,"context_line":"            help\u003d\u0027New mapping name\u0027,"},{"line_number":92,"context_line":"        )"},{"line_number":93,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FX4c%3D","line":90,"updated":"2014-04-15 03:27:45.000000000","message":"mapping just has an ID, like identity providers,","commit_id":"f331692b492c0ec071d5f409b64563f8c3ef1a4d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5d7f3d8b878f9d9bbee66b5d37e8183179e32bcf","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"class ListMapping(lister.Lister):"},{"line_number":139,"context_line":"    \"\"\"List identity-provider command\"\"\""},{"line_number":140,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListIdentityProvider\u0027)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FX4M%3D","line":139,"updated":"2014-04-15 03:27:45.000000000","message":"s/identity-provider/mapping","commit_id":"f331692b492c0ec071d5f409b64563f8c3ef1a4d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5d7f3d8b878f9d9bbee66b5d37e8183179e32bcf","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"class ListMapping(lister.Lister):"},{"line_number":139,"context_line":"    \"\"\"List identity-provider command\"\"\""},{"line_number":140,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListIdentityProvider\u0027)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def take_action(self, parsed_args):"},{"line_number":143,"context_line":"        self.log.debug(\u0027take_action(%s)\u0027 % parsed_args)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FX4I%3D","line":140,"updated":"2014-04-15 03:27:45.000000000","message":"s/identity-provider/mapping","commit_id":"f331692b492c0ec071d5f409b64563f8c3ef1a4d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5d7f3d8b878f9d9bbee66b5d37e8183179e32bcf","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def take_action(self, parsed_args):"},{"line_number":143,"context_line":"        self.log.debug(\u0027take_action(%s)\u0027 % parsed_args)"},{"line_number":144,"context_line":"        columns \u003d (\u0027ID\u0027, \u0027Rules\u0027)"},{"line_number":145,"context_line":"        data \u003d self.app.client_manager.identity.mappings.list()"},{"line_number":146,"context_line":"        return (columns,"},{"line_number":147,"context_line":"                (utils.get_item_properties("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FX4U%3D","line":144,"updated":"2014-04-15 03:27:45.000000000","message":"I think listing the rules could be bad, but i don\u0027t see a reason why we should limit it","commit_id":"f331692b492c0ec071d5f409b64563f8c3ef1a4d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9d90667d882bcfccb82e90d163760cacb9124992","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"Identity v3 federation mapping action implementations\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import logging"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_0416baf1","line":18,"updated":"2014-05-20 16:53:27.000000000","message":"i just realized we don\u0027t use openstackclient.openstack.common.jsonutils ... i\u0027ll have to fix that","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"5fd16cf1d6c33468249d2a1607fed5d8f267a2be","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"Identity v3 federation mapping action implementations\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import logging"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_fc915353","line":18,"in_reply_to":"7adec928_0416baf1","updated":"2014-05-30 12:39:44.000000000","message":"do you expect me to do something with that at the moment?","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9d90667d882bcfccb82e90d163760cacb9124992","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import logging"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from cliff import command"},{"line_number":23,"context_line":"from cliff import lister"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_e401ceb0","line":20,"updated":"2014-05-20 16:53:27.000000000","message":"place six after cliff libraries, since it\u0027s not stdlib","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"5fd16cf1d6c33468249d2a1607fed5d8f267a2be","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import logging"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from cliff import command"},{"line_number":23,"context_line":"from cliff import lister"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_5c888722","line":20,"in_reply_to":"7adec928_e401ceb0","updated":"2014-05-30 12:39:44.000000000","message":"Done","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9d90667d882bcfccb82e90d163760cacb9124992","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.CreateMapping\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # NOTE(marek-denis)"},{"line_number":36,"context_line":"    # Heads up: https://review.openstack.org/#/c/84477"},{"line_number":37,"context_line":"    def _read_rules(self, path):"},{"line_number":38,"context_line":"        \"\"\"Read and parse rules from path"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_a4e5060c","line":36,"updated":"2014-05-20 16:53:27.000000000","message":"since this is merged, i\u0027d get rid of the comment","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"5fd16cf1d6c33468249d2a1607fed5d8f267a2be","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.CreateMapping\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # NOTE(marek-denis)"},{"line_number":36,"context_line":"    # Heads up: https://review.openstack.org/#/c/84477"},{"line_number":37,"context_line":"    def _read_rules(self, path):"},{"line_number":38,"context_line":"        \"\"\"Read and parse rules from path"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_9cabef88","line":36,"in_reply_to":"7adec928_a4e5060c","updated":"2014-05-30 12:39:44.000000000","message":"comment removed, code adjusted.","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9d90667d882bcfccb82e90d163760cacb9124992","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.SetMapping\u0027)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # NOTE(marek-denis)"},{"line_number":187,"context_line":"    # Heads up: https://review.openstack.org/#/c/84477"},{"line_number":188,"context_line":"    def _read_rules(self, path):"},{"line_number":189,"context_line":"        \"\"\"Read and parse rules from path"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_24873614","line":187,"updated":"2014-05-20 16:53:27.000000000","message":"same","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9d90667d882bcfccb82e90d163760cacb9124992","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # NOTE(marek-denis)"},{"line_number":187,"context_line":"    # Heads up: https://review.openstack.org/#/c/84477"},{"line_number":188,"context_line":"    def _read_rules(self, path):"},{"line_number":189,"context_line":"        \"\"\"Read and parse rules from path"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        Expect the the file to contain a valid JSON structure."}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_248e5628","line":188,"updated":"2014-05-20 16:53:27.000000000","message":"why define this twice? it\u0027s the same code","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"5fd16cf1d6c33468249d2a1607fed5d8f267a2be","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # NOTE(marek-denis)"},{"line_number":187,"context_line":"    # Heads up: https://review.openstack.org/#/c/84477"},{"line_number":188,"context_line":"    def _read_rules(self, path):"},{"line_number":189,"context_line":"        \"\"\"Read and parse rules from path"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        Expect the the file to contain a valid JSON structure."}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_e739c0d9","line":188,"in_reply_to":"7adec928_248e5628","updated":"2014-05-30 12:39:44.000000000","message":"yes, moved to separated class.","commit_id":"4f34dc13c3c800e6ef51d8d97aefe523b248754e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        Expect the file to contain a valid JSON structure."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        :param path: path to the file"},{"line_number":39,"context_line":"        :return : loaded and valid dictionary with rules"},{"line_number":40,"context_line":"        :raises exception.CommandError: In case the file cannot be"},{"line_number":41,"context_line":"            accessed or the content is not a valid JSON."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_a32a097c","line":39,"updated":"2014-10-01 15:34:40.000000000","message":"nit: space between \u0027return\u0027 and :","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        Expect the file to contain a valid JSON structure."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        :param path: path to the file"},{"line_number":39,"context_line":"        :return : loaded and valid dictionary with rules"},{"line_number":40,"context_line":"        :raises exception.CommandError: In case the file cannot be"},{"line_number":41,"context_line":"            accessed or the content is not a valid JSON."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_9039b743","line":39,"in_reply_to":"baa201ad_a32a097c","updated":"2014-10-02 08:06:00.000000000","message":"Done","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5c24313d6c16f539d18217982ce718ad8d0bfc12","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        parser \u003d super(CreateMapping, self).get_parser(prog_name)"},{"line_number":91,"context_line":"        parser.add_argument("},{"line_number":92,"context_line":"            \u0027mapping_id\u0027,"},{"line_number":93,"context_line":"            metavar\u003d\u0027\u003cmapping_id\u003e\u0027,"},{"line_number":94,"context_line":"            help\u003d\u0027New mapping ID (must be unique)\u0027,"},{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_791370b8","line":93,"updated":"2014-10-01 17:44:27.000000000","message":"mapping-id.  Is this really specifying an ID to the API? or a name?  It looks like the set and show commands use name or ID?  If so, this should be \u003cmapping-name\u003e.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        parser \u003d super(CreateMapping, self).get_parser(prog_name)"},{"line_number":91,"context_line":"        parser.add_argument("},{"line_number":92,"context_line":"            \u0027mapping_id\u0027,"},{"line_number":93,"context_line":"            metavar\u003d\u0027\u003cmapping_id\u003e\u0027,"},{"line_number":94,"context_line":"            help\u003d\u0027New mapping ID (must be unique)\u0027,"},{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_d0217ffd","line":93,"in_reply_to":"baa201ad_791370b8","updated":"2014-10-02 08:06:00.000000000","message":"id is a system unique name specified by a user.\nhttps://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/v3/contrib/federation/mappings.py#L43 : here mapping_id is used, that\u0027s why I named it mapping_id also in the OSC.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class DeleteMapping(command.Command):"},{"line_number":119,"context_line":"    \"\"\"Delete federation mapping object\"\"\""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.DeleteMapping\u0027)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_635e6114","line":119,"updated":"2014-10-01 15:34:40.000000000","message":"s/object//","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class DeleteMapping(command.Command):"},{"line_number":119,"context_line":"    \"\"\"Delete federation mapping object\"\"\""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.DeleteMapping\u0027)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_3061eb39","line":119,"in_reply_to":"baa201ad_635e6114","updated":"2014-10-02 08:06:00.000000000","message":"Done","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        parser.add_argument("},{"line_number":126,"context_line":"            \u0027mapping\u0027,"},{"line_number":127,"context_line":"            metavar\u003d\u0027\u003cmapping\u003e\u0027,"},{"line_number":128,"context_line":"            help\u003d\u0027Mapping to delete\u0027,"},{"line_number":129,"context_line":"        )"},{"line_number":130,"context_line":"        return parser"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_c358ed34","line":128,"updated":"2014-10-01 15:34:40.000000000","message":"Mapping ID or name to delete","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        parser.add_argument("},{"line_number":126,"context_line":"            \u0027mapping\u0027,"},{"line_number":127,"context_line":"            metavar\u003d\u0027\u003cmapping\u003e\u0027,"},{"line_number":128,"context_line":"            help\u003d\u0027Mapping to delete\u0027,"},{"line_number":129,"context_line":"        )"},{"line_number":130,"context_line":"        return parser"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_30c80b22","line":128,"in_reply_to":"baa201ad_c358ed34","updated":"2014-10-02 08:06:00.000000000","message":"people might get confused if they see \"ID or name\". They may thinks it\u0027s not the same (like you can have project name \"blabla\" but project id is a uuid hex).\nChanged to Mapping ID to delete.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    def take_action(self, parsed_args):"},{"line_number":145,"context_line":"        self.log.debug(\u0027take_action(%s)\u0027 % parsed_args)"},{"line_number":146,"context_line":"        # NOTE(marek-denis): Since rules can be long and tedious I have decided"},{"line_number":147,"context_line":"        # to only list ids of the mappings. If somebogy wants to check the"},{"line_number":148,"context_line":"        # rules, (s)he should show specific ones."},{"line_number":149,"context_line":"        identity_client \u003d self.app.client_manager.identity"},{"line_number":150,"context_line":"        data \u003d identity_client.federation.mappings.list()"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_431ebd64","line":147,"updated":"2014-10-01 15:34:40.000000000","message":"s/somebogy/somebody","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    def take_action(self, parsed_args):"},{"line_number":145,"context_line":"        self.log.debug(\u0027take_action(%s)\u0027 % parsed_args)"},{"line_number":146,"context_line":"        # NOTE(marek-denis): Since rules can be long and tedious I have decided"},{"line_number":147,"context_line":"        # to only list ids of the mappings. If somebogy wants to check the"},{"line_number":148,"context_line":"        # rules, (s)he should show specific ones."},{"line_number":149,"context_line":"        identity_client \u003d self.app.client_manager.identity"},{"line_number":150,"context_line":"        data \u003d identity_client.federation.mappings.list()"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_50cbcf1d","line":147,"in_reply_to":"baa201ad_431ebd64","updated":"2014-10-02 08:06:00.000000000","message":":(","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5c24313d6c16f539d18217982ce718ad8d0bfc12","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        # rules, (s)he should show specific ones."},{"line_number":149,"context_line":"        identity_client \u003d self.app.client_manager.identity"},{"line_number":150,"context_line":"        data \u003d identity_client.federation.mappings.list()"},{"line_number":151,"context_line":"        columns \u003d (\u0027ID\u0027,)"},{"line_number":152,"context_line":"        items \u003d [utils.get_item_properties(s, columns) for s in data]"},{"line_number":153,"context_line":"        return (columns, items)"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_d910dcaa","line":151,"updated":"2014-10-01 17:44:27.000000000","message":"Is there no name?","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        # rules, (s)he should show specific ones."},{"line_number":149,"context_line":"        identity_client \u003d self.app.client_manager.identity"},{"line_number":150,"context_line":"        data \u003d identity_client.federation.mappings.list()"},{"line_number":151,"context_line":"        columns \u003d (\u0027ID\u0027,)"},{"line_number":152,"context_line":"        items \u003d [utils.get_item_properties(s, columns) for s in data]"},{"line_number":153,"context_line":"        return (columns, items)"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_90d537bb","line":151,"in_reply_to":"baa201ad_d910dcaa","updated":"2014-10-02 08:06:00.000000000","message":"ID is a name.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        parser.add_argument("},{"line_number":164,"context_line":"            \u0027mapping\u0027,"},{"line_number":165,"context_line":"            metavar\u003d\u0027\u003cmapping\u003e\u0027,"},{"line_number":166,"context_line":"            help\u003d\u0027Mapping to show\u0027,"},{"line_number":167,"context_line":"        )"},{"line_number":168,"context_line":"        return parser"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_036915be","line":166,"updated":"2014-10-01 15:34:40.000000000","message":"Mapping ID or name to show.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        parser.add_argument("},{"line_number":164,"context_line":"            \u0027mapping\u0027,"},{"line_number":165,"context_line":"            metavar\u003d\u0027\u003cmapping\u003e\u0027,"},{"line_number":166,"context_line":"            help\u003d\u0027Mapping to show\u0027,"},{"line_number":167,"context_line":"        )"},{"line_number":168,"context_line":"        return parser"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_f0e5a3a8","line":166,"in_reply_to":"baa201ad_036915be","updated":"2014-10-02 08:06:00.000000000","message":"Done","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5c24313d6c16f539d18217982ce718ad8d0bfc12","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return zip(*sorted(six.iteritems(info)))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class SetMapping(show.ShowOne, _RulesReader):"},{"line_number":185,"context_line":"    \"\"\"Update federation mapping\"\"\""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.SetMapping\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_19cd045e","line":184,"updated":"2014-10-01 17:44:27.000000000","message":"Sort the classes (Set.. before Show..)","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return zip(*sorted(six.iteritems(info)))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class SetMapping(show.ShowOne, _RulesReader):"},{"line_number":185,"context_line":"    \"\"\"Update federation mapping\"\"\""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.SetMapping\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_50f2ef6f","line":184,"in_reply_to":"baa201ad_19cd045e","updated":"2014-10-02 08:06:00.000000000","message":"Done","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        parser.add_argument("},{"line_number":192,"context_line":"            \u0027mapping\u0027,"},{"line_number":193,"context_line":"            metavar\u003d\u0027\u003cmapping\u003e\u0027,"},{"line_number":194,"context_line":"            help\u003d\u0027New mapping name\u0027,"},{"line_number":195,"context_line":"        )"},{"line_number":196,"context_line":"        parser.add_argument("},{"line_number":197,"context_line":"            \u0027--rules\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_e3a971e0","line":194,"updated":"2014-10-01 15:34:40.000000000","message":"Mapping ID or name to update.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        parser.add_argument("},{"line_number":192,"context_line":"            \u0027mapping\u0027,"},{"line_number":193,"context_line":"            metavar\u003d\u0027\u003cmapping\u003e\u0027,"},{"line_number":194,"context_line":"            help\u003d\u0027New mapping name\u0027,"},{"line_number":195,"context_line":"        )"},{"line_number":196,"context_line":"        parser.add_argument("},{"line_number":197,"context_line":"            \u0027--rules\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_70e9b37f","line":194,"in_reply_to":"baa201ad_e3a971e0","updated":"2014-10-02 08:06:00.000000000","message":"Done","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5f6beaf90536f787b14f8dd3257ebf5c4f100a5f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        parser \u003d super(CreateMapping, self).get_parser(prog_name)"},{"line_number":91,"context_line":"        parser.add_argument("},{"line_number":92,"context_line":"            \u0027mapping_id\u0027,"},{"line_number":93,"context_line":"            metavar\u003d\u0027\u003cmapping_id\u003e\u0027,"},{"line_number":94,"context_line":"            help\u003d\u0027New mapping ID (must be unique)\u0027,"},{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"baa201ad_eec05ce2","line":93,"updated":"2014-10-02 16:03:31.000000000","message":"\u003cmapping\u003e","commit_id":"01c5051b09610858dafe167e74f12c4ebf9ec098"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5f6beaf90536f787b14f8dd3257ebf5c4f100a5f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        parser.add_argument("},{"line_number":92,"context_line":"            \u0027mapping_id\u0027,"},{"line_number":93,"context_line":"            metavar\u003d\u0027\u003cmapping_id\u003e\u0027,"},{"line_number":94,"context_line":"            help\u003d\u0027New mapping ID (must be unique)\u0027,"},{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        parser.add_argument("},{"line_number":97,"context_line":"            \u0027--rules\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa201ad_cebd586a","line":94,"updated":"2014-10-02 16:03:31.000000000","message":"Use the same terminology here as in the other commands, just \u0027mapping\u0027","commit_id":"01c5051b09610858dafe167e74f12c4ebf9ec098"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0e47b45e529a5218ac291dbeda7211c1dec03734","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        rules \u003d self._read_rules(parsed_args.rules)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        mapping \u003d identity_client.federation.mappings.update("},{"line_number":179,"context_line":"            id\u003dparsed_args.mapping,"},{"line_number":180,"context_line":"            rules\u003drules)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        info \u003d {}"}],"source_content_type":"text/x-python","patch_set":16,"id":"baa201ad_b9701c73","line":179,"updated":"2014-10-06 16:45:26.000000000","message":"mapping_id\u003dparsed_args.mapping ?","commit_id":"75bc0942413a6e360f15f26131b630d82de781a8"}],"openstackclient/tests/identity/v3/fakes.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5d7f3d8b878f9d9bbee66b5d37e8183179e32bcf","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        }"},{"line_number":116,"context_line":"]"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"MAPPING_RULES_SMALL \u003d ["},{"line_number":119,"context_line":"            {"},{"line_number":120,"context_line":"                \"local\": ["},{"line_number":121,"context_line":"                    {"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAW3%2F%2FX3o%3D","line":118,"updated":"2014-04-15 03:27:45.000000000","message":"this is not used","commit_id":"f331692b492c0ec071d5f409b64563f8c3ef1a4d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"c45303d627025a9acd75440273e666fa9b40afa0","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        )"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"class TestMapping(utils.TestCommand):"},{"line_number":360,"context_line":"    def setUp(self):"},{"line_number":361,"context_line":"        super(TestMapping, self).setUp()"},{"line_number":362,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_a58f4222","line":359,"updated":"2014-06-18 14:00:48.000000000","message":"This is identical to TestFederatedIdentity, can we just use that instead?","commit_id":"7f0e4859a8ffcba26b82ee7e377a7c6c7f345133"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"61c4f50361f5343c5b927afc59dc5344d64d2b1f","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        )"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"class TestMapping(utils.TestCommand):"},{"line_number":360,"context_line":"    def setUp(self):"},{"line_number":361,"context_line":"        super(TestMapping, self).setUp()"},{"line_number":362,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_e28bd766","line":359,"in_reply_to":"1ae5cdf2_a58f4222","updated":"2014-06-19 09:43:28.000000000","message":"you are right. I changed the class so it simply inherits from the TestFederatedIdentity","commit_id":"7f0e4859a8ffcba26b82ee7e377a7c6c7f345133"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Mapping summary:"},{"line_number":49,"context_line":"# LastName Smith \u0026 Not Contractor or SubContractor -\u003e group 0cd5e9"},{"line_number":50,"context_line":"# FirstName Jill \u0026 Contractor or SubContractor -\u003e to group 85a868"},{"line_number":51,"context_line":"MAPPING_RULES \u003d ["},{"line_number":52,"context_line":"        {"},{"line_number":53,"context_line":"            \"local\": ["},{"line_number":54,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_e915ee4c","line":51,"updated":"2014-06-24 13:25:06.000000000","message":"since these are fakes, can we make the rule smaller/simpler... \n\n  {\n    \"mapping\": {\n        \"rules\": [\n            {\n                \"local\": [\n                    {\n                        \"group\": {\n                            \"id\": \"0cd5e9\"\n                        }\n                    }\n                ],\n                \"remote\": [\n                    {\n                        \"type\": \"orgPersonType\",\n                        \"not_any_of\": [\n                            \"Contractor\",\n                            \"Guest\"\n                        ]\n                    }\n                ]\n            }\n        ]\n    }\n}","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Mapping summary:"},{"line_number":49,"context_line":"# LastName Smith \u0026 Not Contractor or SubContractor -\u003e group 0cd5e9"},{"line_number":50,"context_line":"# FirstName Jill \u0026 Contractor or SubContractor -\u003e to group 85a868"},{"line_number":51,"context_line":"MAPPING_RULES \u003d ["},{"line_number":52,"context_line":"        {"},{"line_number":53,"context_line":"            \"local\": ["},{"line_number":54,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_de31bfed","line":51,"in_reply_to":"1ae5cdf2_e915ee4c","updated":"2014-10-01 12:46:50.000000000","message":"Done","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        }"},{"line_number":116,"context_line":"]"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"MAPPING_RULES_SMALL \u003d ["},{"line_number":119,"context_line":"            {"},{"line_number":120,"context_line":"                \"local\": ["},{"line_number":121,"context_line":"                    {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_89062a20","line":118,"updated":"2014-06-24 13:25:06.000000000","message":"this is never referenced?","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"bcfcdeaf48adcd46cebc5297d8a951883a8d836d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        }"},{"line_number":116,"context_line":"]"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"MAPPING_RULES_SMALL \u003d ["},{"line_number":119,"context_line":"            {"},{"line_number":120,"context_line":"                \"local\": ["},{"line_number":121,"context_line":"                    {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_da46d2a6","line":118,"in_reply_to":"1ae5cdf2_89062a20","updated":"2014-06-26 14:46:00.000000000","message":"Used in test_mappings.py\n\n++ with having another set of tests using this small ruleset as suggested earlier","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        }"},{"line_number":116,"context_line":"]"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"MAPPING_RULES_SMALL \u003d ["},{"line_number":119,"context_line":"            {"},{"line_number":120,"context_line":"                \"local\": ["},{"line_number":121,"context_line":"                    {"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_1e3d0790","line":118,"in_reply_to":"1ae5cdf2_da46d2a6","updated":"2014-10-01 12:46:50.000000000","message":"ok, i shrinked MAPPING RULES\nMAPPING_RULES_SMALL renamed to MAPPING_RULES_2","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"MAPPING_REQUEST \u003d {"},{"line_number":141,"context_line":"    \"mapping\": {"},{"line_number":142,"context_line":"        \"rules\": MAPPING_RULES"},{"line_number":143,"context_line":"    }"},{"line_number":144,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_24553dfa","line":141,"updated":"2014-06-24 13:25:06.000000000","message":"why do you the object type defined here? all the other ones just start listing id and name, etc.","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"MAPPING_REQUEST \u003d {"},{"line_number":141,"context_line":"    \"mapping\": {"},{"line_number":142,"context_line":"        \"rules\": MAPPING_RULES"},{"line_number":143,"context_line":"    }"},{"line_number":144,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_fd91139b","line":141,"in_reply_to":"1ae5cdf2_24553dfa","updated":"2014-10-01 12:46:50.000000000","message":"Done","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":144,"context_line":"}"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"MAPPING_RESPONSE \u003d {"},{"line_number":147,"context_line":"    \"mapping\": {"},{"line_number":148,"context_line":"        \"id\": mapping_id,"},{"line_number":149,"context_line":"        \"rules\": MAPPING_RULES"},{"line_number":150,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_445a492b","line":147,"updated":"2014-06-24 13:25:06.000000000","message":"same comment","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"}"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"MAPPING_RESPONSE \u003d {"},{"line_number":147,"context_line":"    \"mapping\": {"},{"line_number":148,"context_line":"        \"id\": mapping_id,"},{"line_number":149,"context_line":"        \"rules\": MAPPING_RULES"},{"line_number":150,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_7e4b732b","line":147,"in_reply_to":"1ae5cdf2_445a492b","updated":"2014-10-01 12:46:50.000000000","message":"Done","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"# (https://github.com/openstack/keystone/blob\\"},{"line_number":45,"context_line":"# master/keystone/tests/mapping_fixtures.py"},{"line_number":46,"context_line":"EMPLOYEE_GROUP_ID \u003d \"0cd5e9\""},{"line_number":47,"context_line":"CONTRACTOR_GROUP_ID \u003d \"85a868\""},{"line_number":48,"context_line":"TESTER_GROUP_ID \u003d \"123\""},{"line_number":49,"context_line":"DEVELOPER_GROUP_ID \u003d \"xyz\""},{"line_number":50,"context_line":"MAPPING_RULES \u003d ["}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_236e1997","line":47,"updated":"2014-10-01 15:34:40.000000000","message":"contractor and tester are not used.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"# (https://github.com/openstack/keystone/blob\\"},{"line_number":45,"context_line":"# master/keystone/tests/mapping_fixtures.py"},{"line_number":46,"context_line":"EMPLOYEE_GROUP_ID \u003d \"0cd5e9\""},{"line_number":47,"context_line":"CONTRACTOR_GROUP_ID \u003d \"85a868\""},{"line_number":48,"context_line":"TESTER_GROUP_ID \u003d \"123\""},{"line_number":49,"context_line":"DEVELOPER_GROUP_ID \u003d \"xyz\""},{"line_number":50,"context_line":"MAPPING_RULES \u003d ["}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_703c53e3","line":47,"in_reply_to":"baa201ad_236e1997","updated":"2014-10-02 08:06:00.000000000","message":"good eye!","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        )"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"class TestMapping(TestFederatedIdentity):"},{"line_number":331,"context_line":"    pass"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_83bb45e4","line":330,"updated":"2014-10-01 15:34:40.000000000","message":"i\u0027m not sure what this is doing","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        )"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"class TestMapping(TestFederatedIdentity):"},{"line_number":331,"context_line":"    pass"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_501caf77","line":330,"in_reply_to":"baa201ad_83bb45e4","updated":"2014-10-02 08:06:00.000000000","message":"Different type for different set of tests.\nAnyway, I removed it and now all test classes (for IdP, Mappings, and later protocols) will inherit from TestFederatedIdentity.","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"}],"openstackclient/tests/identity/v3/test_mappings.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"9ae7fa043759e939ce65a95ae3aaa8277191bf39","unresolved":false,"context_lines":[{"line_number":202,"context_line":"    def test_set_new_rules(self):"},{"line_number":203,"context_line":"        arglist \u003d ["},{"line_number":204,"context_line":"            \u0027--rules\u0027, identity_fakes.mapping_rules_file_path,"},{"line_number":205,"context_line":"                        identity_fakes.mapping_id"},{"line_number":206,"context_line":"        ]"},{"line_number":207,"context_line":"        verifylist \u003d ["},{"line_number":208,"context_line":"            (\u0027mapping\u0027, identity_fakes.mapping_id),"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_f9287387","line":205,"updated":"2014-06-23 23:11:20.000000000","message":"pep8 error:\n\n2014-06-23 20:07:07.406 | ./openstackclient/tests/identity/v3/test_mappings.py:205:25: E131 continuation line unaligned for hanging indent\n2014-06-23 20:07:07.406 |                         identity_fakes.mapping_id\n2014-06-23 20:07:07.406 |                         ^","commit_id":"3befcee5a4784a1db9be94ec54d9d4a61cd24495"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super(TestMapping, self).setUp()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        self.mapping_mock \u003d self.app.client_manager.\\"},{"line_number":31,"context_line":"            identity.mappings"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        self.mapping_mock.reset_mock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_6ead6432","line":30,"updated":"2014-06-24 13:25:06.000000000","message":"i think this fits all in one line?","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super(TestMapping, self).setUp()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        self.mapping_mock \u003d self.app.client_manager.\\"},{"line_number":31,"context_line":"            identity.mappings"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        self.mapping_mock.reset_mock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_a705d5c3","line":30,"in_reply_to":"1ae5cdf2_6ead6432","updated":"2014-10-01 12:46:50.000000000","message":"right, it does.","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                self.mapping_mock.create.assert_called_with("},{"line_number":68,"context_line":"                        id\u003didentity_fakes.mapping_id, **kwargs)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"                # NOTE(marek-denis): make sure it\u0027s a valid returned valued"},{"line_number":71,"context_line":"                collist \u003d (\u0027mapping\u0027,)"},{"line_number":72,"context_line":"                self.assertEqual(columns, collist)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_049e81b8","line":70,"updated":"2014-06-24 13:25:06.000000000","message":"i think you can get rid of this note, theres nothing really special about it.","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                self.mapping_mock.create.assert_called_with("},{"line_number":68,"context_line":"                        id\u003didentity_fakes.mapping_id, **kwargs)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"                # NOTE(marek-denis): make sure it\u0027s a valid returned valued"},{"line_number":71,"context_line":"                collist \u003d (\u0027mapping\u0027,)"},{"line_number":72,"context_line":"                self.assertEqual(columns, collist)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_0cca484f","line":70,"in_reply_to":"1ae5cdf2_049e81b8","updated":"2014-10-01 12:46:50.000000000","message":"Done","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                self.assertEqual(columns, collist)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"                #NOTE(marek-denis): Not sure why must extract \u0027mapping\u0027"},{"line_number":75,"context_line":"                datalist \u003d (identity_fakes.MAPPING_RESPONSE[\u0027mapping\u0027],)"},{"line_number":76,"context_line":"                # arguments : reference, actual"},{"line_number":77,"context_line":"                self.assertEqual(datalist, data)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_846291d7","line":75,"updated":"2014-06-24 13:25:06.000000000","message":"if you change MAPPING_RESPONSE to get rid of the extra \u0027mapping\u0027 layer, you won\u0027t need to extract \u0027mapping\u0027","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                self.assertEqual(columns, collist)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"                #NOTE(marek-denis): Not sure why must extract \u0027mapping\u0027"},{"line_number":75,"context_line":"                datalist \u003d (identity_fakes.MAPPING_RESPONSE[\u0027mapping\u0027],)"},{"line_number":76,"context_line":"                # arguments : reference, actual"},{"line_number":77,"context_line":"                self.assertEqual(datalist, data)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_7831caeb","line":75,"in_reply_to":"1ae5cdf2_556ff5c3","updated":"2014-10-01 12:46:50.000000000","message":"Mhu: What behavior?\nI dropped that extra layer. It\u0027s even better as consistent with the Identity Providers tests layout.","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"bcfcdeaf48adcd46cebc5297d8a951883a8d836d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                self.assertEqual(columns, collist)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"                #NOTE(marek-denis): Not sure why must extract \u0027mapping\u0027"},{"line_number":75,"context_line":"                datalist \u003d (identity_fakes.MAPPING_RESPONSE[\u0027mapping\u0027],)"},{"line_number":76,"context_line":"                # arguments : reference, actual"},{"line_number":77,"context_line":"                self.assertEqual(datalist, data)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_556ff5c3","line":75,"in_reply_to":"1ae5cdf2_846291d7","updated":"2014-06-26 14:46:00.000000000","message":"Is it the expected behavior ?","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        collist \u003d (\u0027ID\u0027, \u0027Rules\u0027)"},{"line_number":133,"context_line":"        self.assertEqual(columns, collist)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        #NOTE(marek-denis): Enable this part of the test"},{"line_number":136,"context_line":"        # datalist \u003d (("},{"line_number":137,"context_line":"        #     identity_fakes.MAPPING_RESPONSE"},{"line_number":138,"context_line":"        # ), )"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_44a889db","line":135,"updated":"2014-06-24 13:25:06.000000000","message":"why is this disabled?","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        self.mapping_mock.update.assert_called_with("},{"line_number":223,"context_line":"            id\u003didentity_fakes.mapping_id, **kwargs)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        # NOTE(marek-denis): make sure it\u0027s a valid returned value"},{"line_number":226,"context_line":"        collist \u003d (\u0027mapping\u0027,)"},{"line_number":227,"context_line":"        self.assertEqual(columns, collist)"},{"line_number":228,"context_line":"        datalist \u003d (self.updated_mapping_rules[\u0027mapping\u0027],)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_247a9d77","line":225,"updated":"2014-06-24 13:25:06.000000000","message":"remove this note","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        self.mapping_mock.update.assert_called_with("},{"line_number":223,"context_line":"            id\u003didentity_fakes.mapping_id, **kwargs)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        # NOTE(marek-denis): make sure it\u0027s a valid returned value"},{"line_number":226,"context_line":"        collist \u003d (\u0027mapping\u0027,)"},{"line_number":227,"context_line":"        self.assertEqual(columns, collist)"},{"line_number":228,"context_line":"        datalist \u003d (self.updated_mapping_rules[\u0027mapping\u0027],)"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa201ad_ec034471","line":225,"in_reply_to":"1ae5cdf2_247a9d77","updated":"2014-10-01 12:46:50.000000000","message":"Done","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"36088092529ebefbba74486c1d038863f22ea4b8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    id\u003didentity_fakes.mapping_id,"},{"line_number":65,"context_line":"                    rules\u003didentity_fakes.MAPPING_RULES)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"                collist \u003d (\u0027id\u0027, \u0027rules\u0027)"},{"line_number":68,"context_line":"                self.assertEqual(columns, collist)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"                datalist \u003d (identity_fakes.mapping_id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_a3a5a9b6","line":67,"updated":"2014-10-01 15:34:40.000000000","message":"nice to see this worked out","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"68785d3c95d9ce5a8ea09b2c3de97e514f96bb4a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    id\u003didentity_fakes.mapping_id,"},{"line_number":65,"context_line":"                    rules\u003didentity_fakes.MAPPING_RULES)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"                collist \u003d (\u0027id\u0027, \u0027rules\u0027)"},{"line_number":68,"context_line":"                self.assertEqual(columns, collist)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"                datalist \u003d (identity_fakes.mapping_id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"baa201ad_0b475c4c","line":67,"in_reply_to":"baa201ad_a3a5a9b6","updated":"2014-10-02 08:06:00.000000000","message":"++","commit_id":"a65ed17df889e2ba0da8c2ad9f550b96c7e6fdd4"}],"setup.cfg":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"da4212ba89e58b62277ba5d3166746d1f2a8c667","unresolved":false,"context_lines":[{"line_number":203,"context_line":"    mapping_create \u003d openstackclient.identity.v3.mapping.CreateMapping"},{"line_number":204,"context_line":"    mapping_delete \u003d openstackclient.identity.v3.mapping.DeleteMapping"},{"line_number":205,"context_line":"    mapping_list \u003d openstackclient.identity.v3.mapping.ListMapping"},{"line_number":206,"context_line":"    mapping_show \u003d openstackclient.identity.v3.mapping.ShowMapping"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    policy_create \u003d openstackclient.identity.v3.policy:CreatePolicy"},{"line_number":209,"context_line":"    policy_delete \u003d openstackclient.identity.v3.policy:DeletePolicy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"AAAAW3%2F%2FnNg%3D","line":206,"updated":"2014-04-11 18:33:07.000000000","message":"That mapping.ClassMapping should be mapping:ClassMapping","commit_id":"dc5cec713f28116255750b55d87bd8350d9aa4e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f8eae5d38dd7e778d5b89f9deb0637594e0f7001","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    mapping_create \u003d openstackclient.identity.v3.mapping:CreateMapping"},{"line_number":208,"context_line":"    mapping_delete \u003d openstackclient.identity.v3.mapping:DeleteMapping"},{"line_number":209,"context_line":"    mapping_list \u003d openstackclient.identity.v3.mapping:ListMapping"},{"line_number":210,"context_line":"    mapping_show \u003d openstackclient.identity.v3.mapping:ShowMapping"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    policy_create \u003d openstackclient.identity.v3.policy:CreatePolicy"},{"line_number":213,"context_line":"    policy_delete \u003d openstackclient.identity.v3.policy:DeletePolicy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"1ae5cdf2_e4e6f549","line":210,"updated":"2014-06-24 13:25:06.000000000","message":"missing update from this list, \n\n  mapping_set \u003d openstackclient.identity.v3.mapping:SetMapping\n\n?","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"46ba711b1299b76dbc4e8d24f328430623264c1f","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    mapping_create \u003d openstackclient.identity.v3.mapping:CreateMapping"},{"line_number":208,"context_line":"    mapping_delete \u003d openstackclient.identity.v3.mapping:DeleteMapping"},{"line_number":209,"context_line":"    mapping_list \u003d openstackclient.identity.v3.mapping:ListMapping"},{"line_number":210,"context_line":"    mapping_show \u003d openstackclient.identity.v3.mapping:ShowMapping"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    policy_create \u003d openstackclient.identity.v3.policy:CreatePolicy"},{"line_number":213,"context_line":"    policy_delete \u003d openstackclient.identity.v3.policy:DeletePolicy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"baa201ad_4c6c509d","line":210,"in_reply_to":"1ae5cdf2_e4e6f549","updated":"2014-10-01 12:46:50.000000000","message":"Done","commit_id":"46d450f9512007790ab8e2b90d8e9552e3e7f0f0"}]}
