)]}'
{"openstack/message/v1/claim.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"7316e59780122414d046e95f2a6451b84fc53942","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    #: Specifies the message grace period, in seconds."},{"line_number":52,"context_line":"    grace \u003d resource.prop(\"grace\")"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    #: Specifies the message grace period, in seconds."},{"line_number":55,"context_line":"    queue_name \u003d resource.prop(\"queue_name\")"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_eb446e1c","line":54,"updated":"2015-08-21 21:27:11.000000000","message":"Bad comment.","commit_id":"daed854e9e451648f83797fd789af74b90ea388a"}],"openstack/resource.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"3ec99cab4857136a96933a95948eb0b7304388f3","unresolved":false,"context_lines":[{"line_number":515,"context_line":"    def path_args(self):"},{"line_number":516,"context_line":"        path_args \u003d {}"},{"line_number":517,"context_line":"        for arg, name in six.iteritems(self.base_path_args):"},{"line_number":518,"context_line":"            argname \u003d arg + \u0027_\u0027 + name"},{"line_number":519,"context_line":"            path_args[argname] \u003d getattr(getattr(self, arg), name)"},{"line_number":520,"context_line":"            # TODO(thowe): Handle empty value"},{"line_number":521,"context_line":"        return path_args"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_3c8b3dc5","line":518,"updated":"2015-09-15 16:47:29.000000000","message":"This creates an implied structure of how you have to name the base_path string replacement parts that is a bound to cause issues.\n\nExcept for object_store which uses names, is there ever a time where path_args being inserted into a base_url are anything but ID values? It really seems like we should structure base_path like \"/blah/%(server)s/foo\" and make the same check we make in other places in the proxy - if we get a resource, grab its ID attribute, otherwise assume we were given the ID and use it. That type of move seems like it would more easily play into what we\u0027re going for.","commit_id":"08ee0f26bd43e4abdc01f5a6851b3188e82dd891"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"2cb6f92fd62de64c40248f980844d95d466c969f","unresolved":false,"context_lines":[{"line_number":515,"context_line":"    def path_args(self):"},{"line_number":516,"context_line":"        path_args \u003d {}"},{"line_number":517,"context_line":"        for arg, name in six.iteritems(self.base_path_args):"},{"line_number":518,"context_line":"            argname \u003d arg + \u0027_\u0027 + name"},{"line_number":519,"context_line":"            path_args[argname] \u003d getattr(getattr(self, arg), name)"},{"line_number":520,"context_line":"            # TODO(thowe): Handle empty value"},{"line_number":521,"context_line":"        return path_args"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_a2808647","line":518,"in_reply_to":"ba15a1d1_3c8b3dc5","updated":"2015-09-15 17:10:01.000000000","message":"I\u0027m pretty far away from being able to look at this, but I think orchestration/v1/resource.py is the only real problem child and it really just needs to do its own thing because it is so different.","commit_id":"08ee0f26bd43e4abdc01f5a6851b3188e82dd891"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c26c61ff36a4d775d6f972a5ad1805ad5977bada","unresolved":false,"context_lines":[{"line_number":515,"context_line":"    def path_args(self):"},{"line_number":516,"context_line":"        path_args \u003d {}"},{"line_number":517,"context_line":"        for arg, name in six.iteritems(self.base_path_args):"},{"line_number":518,"context_line":"            argname \u003d arg + \u0027_\u0027 + name"},{"line_number":519,"context_line":"            path_args[argname] \u003d getattr(getattr(self, arg), name)"},{"line_number":520,"context_line":"            # TODO(thowe): Handle empty value"},{"line_number":521,"context_line":"        return path_args"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_207fa767","line":518,"in_reply_to":"ba15a1d1_3c8b3dc5","updated":"2015-09-22 02:06:40.000000000","message":"TBH, I don\u0027t like the \u0027_\u0027 hack, though there are cases we will have  more than one arg to patch the base_path.","commit_id":"08ee0f26bd43e4abdc01f5a6851b3188e82dd891"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c26c61ff36a4d775d6f972a5ad1805ad5977bada","unresolved":false,"context_lines":[{"line_number":515,"context_line":"    def path_args(self):"},{"line_number":516,"context_line":"        path_args \u003d {}"},{"line_number":517,"context_line":"        for arg, name in six.iteritems(self.base_path_args):"},{"line_number":518,"context_line":"            argname \u003d arg + \u0027_\u0027 + name"},{"line_number":519,"context_line":"            path_args[argname] \u003d getattr(getattr(self, arg), name)"},{"line_number":520,"context_line":"            # TODO(thowe): Handle empty value"},{"line_number":521,"context_line":"        return path_args"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_80b9d330","line":518,"in_reply_to":"ba15a1d1_a2808647","updated":"2015-09-22 02:06:40.000000000","message":"yes, Heat is a freak. There are things like stack template: http://git.openstack.org/cgit/openstack/heat/tree/heat/api/openstack/v1/__init__.py#n193\n\nand resource events:\n\nhttp://git.openstack.org/cgit/openstack/heat/tree/heat/api/openstack/v1/__init__.py#n323\n\nIn the latter case, the path_prefix is actually a stack path, so we will have:\n\n/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{resource_name}/events/{event_id}","commit_id":"08ee0f26bd43e4abdc01f5a6851b3188e82dd891"}]}
