)]}'
{"heat/engine/resources/resource_group.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"aa901e206b1acfae008d58de95c31555b3302521","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    resources."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    In addition to the \"refs\" attribute, this resource implements synthetic"},{"line_number":38,"context_line":"    attributes that mirror the those of the resources in the group.  When"},{"line_number":39,"context_line":"    getting an attribute from this resource, however, a list of attribute"},{"line_number":40,"context_line":"    values for each resource in the group is returned. To get attribute values"},{"line_number":41,"context_line":"    for a single resource in the group, synthetic attributes of the form"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9VUk%3D","line":38,"updated":"2013-12-12 15:19:34.000000000","message":"typo? mirror the those -\u003e mirror those","commit_id":"4f0b27191741b27fd28c0f9d0e5dfa9cb0a7f5b4"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"071028fad7e3f822303e9a0c847fa6e4e3923510","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    resources."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    In addition to the \"refs\" attribute, this resource implements synthetic"},{"line_number":38,"context_line":"    attributes that mirror the those of the resources in the group.  When"},{"line_number":39,"context_line":"    getting an attribute from this resource, however, a list of attribute"},{"line_number":40,"context_line":"    values for each resource in the group is returned. To get attribute values"},{"line_number":41,"context_line":"    for a single resource in the group, synthetic attributes of the form"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9VBw%3D","line":38,"in_reply_to":"AAAATn%2F9VUk%3D","updated":"2013-12-12 16:08:21.000000000","message":"Done","commit_id":"4f0b27191741b27fd28c0f9d0e5dfa9cb0a7f5b4"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"80279bc3d42be773718d36dbdfe4969ad5036d04","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                        else res.FnGetAtt(attr_name))"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"            def get_aggrigated_attr(func, *args):"},{"line_number":128,"context_line":"                for n in range(self.properties[\u0027count\u0027]):"},{"line_number":129,"context_line":"                    nfunc \u003d getattr(self.nested()[str(n)], func)"},{"line_number":130,"context_line":"                    yield nfunc(*args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9XY4%3D","line":127,"updated":"2013-12-12 08:01:05.000000000","message":"aggrigated -\u003e aggregated ?","commit_id":"4f0b27191741b27fd28c0f9d0e5dfa9cb0a7f5b4"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"071028fad7e3f822303e9a0c847fa6e4e3923510","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                        else res.FnGetAtt(attr_name))"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"            def get_aggrigated_attr(func, *args):"},{"line_number":128,"context_line":"                for n in range(self.properties[\u0027count\u0027]):"},{"line_number":129,"context_line":"                    nfunc \u003d getattr(self.nested()[str(n)], func)"},{"line_number":130,"context_line":"                    yield nfunc(*args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9VBo%3D","line":127,"in_reply_to":"AAAATn%2F9XY4%3D","updated":"2013-12-12 16:08:21.000000000","message":"Done","commit_id":"4f0b27191741b27fd28c0f9d0e5dfa9cb0a7f5b4"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"b513523bfcb4db1f46ec1b73f3bff07ad5eefbd5","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        else:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"            def get_aggregated_attr(func, *args):"},{"line_number":138,"context_line":"                for n in range(self.properties[\u0027count\u0027]):"},{"line_number":139,"context_line":"                    nfunc \u003d getattr(self.nested()[str(n)], func)"},{"line_number":140,"context_line":"                    yield nfunc(*args)"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9CGg%3D","line":138,"updated":"2013-12-17 13:50:56.000000000","message":"You should keep using self.COUNT here. It\u0027s a bit unfortunate that we can\u0027t iterate self.nested() directly, but presumably we\u0027re loosing order?","commit_id":"14122940844391df231edd868e27ae4346679f63"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"b513523bfcb4db1f46ec1b73f3bff07ad5eefbd5","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"            def get_aggregated_attr(func, *args):"},{"line_number":138,"context_line":"                for n in range(self.properties[\u0027count\u0027]):"},{"line_number":139,"context_line":"                    nfunc \u003d getattr(self.nested()[str(n)], func)"},{"line_number":140,"context_line":"                    yield nfunc(*args)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            fcall \u003d (\"FnGetRefId\", []) if \"refs\" \u003d\u003d key else (\"FnGetAtt\","}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9CGI%3D","line":139,"updated":"2013-12-17 13:50:56.000000000","message":"nfunc is a bit vague, I\u0027d use resource_method.","commit_id":"14122940844391df231edd868e27ae4346679f63"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"b513523bfcb4db1f46ec1b73f3bff07ad5eefbd5","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    yield nfunc(*args)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            fcall \u003d (\"FnGetRefId\", []) if \"refs\" \u003d\u003d key else (\"FnGetAtt\","},{"line_number":143,"context_line":"                                                              [key])"},{"line_number":144,"context_line":"            return [val for val in get_aggregated_attr(fcall[0], *fcall[1])]"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def _assemble_nested(self, count, include_all\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9CGA%3D","line":143,"updated":"2013-12-17 13:50:56.000000000","message":"fcall is not a great name. What about method_name, method_args \u003d ... ?","commit_id":"14122940844391df231edd868e27ae4346679f63"}]}
