)]}'
{"ironic/drivers/base.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"100a85d10403617dffaefffdfd5f858b61a0243e","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        \"\"\"Execute the clean step on task.node."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        A clean step must take a single positional argument: a TaskManager"},{"line_number":193,"context_line":"        object. It may take one or more keyword variable arguments."},{"line_number":194,"context_line":"        A step can be executed synchronously or asynchronously. A step should"},{"line_number":195,"context_line":"        return None if the method has completed synchronously or"},{"line_number":196,"context_line":"        states.CLEANWAIT if the step will continue to execute asynchronously."}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_63b24596","line":193,"updated":"2015-11-18 22:48:35.000000000","message":"Should we indicate those variable arguments only apply during manual cleaning? Seems important for someone building a new clean step to know. I don\u0027t think it\u0027s called out in clean_step\u0027s docstring either.","commit_id":"e840bac286e2c7da2372d3b15214a942201d41f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"fdad3041d5f2958859257e3e72d4083b81c65e08","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        \"\"\"Execute the clean step on task.node."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        A clean step must take a single positional argument: a TaskManager"},{"line_number":193,"context_line":"        object. It may take one or more keyword variable arguments."},{"line_number":194,"context_line":"        A step can be executed synchronously or asynchronously. A step should"},{"line_number":195,"context_line":"        return None if the method has completed synchronously or"},{"line_number":196,"context_line":"        states.CLEANWAIT if the step will continue to execute asynchronously."}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_2ef65df9","line":193,"in_reply_to":"ba8a016a_63b24596","updated":"2015-11-19 03:03:48.000000000","message":"I was wondering if there was some way to use/specify arguments in automated cleaning, but probably not. Anyway, yes, it is only for manual clean now.","commit_id":"e840bac286e2c7da2372d3b15214a942201d41f0"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"2fb7a4774ad83f557d3a49c7710306a0d00225dd","unresolved":false,"context_lines":[{"line_number":755,"context_line":"        \"\"\""},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    @property"},{"line_number":758,"context_line":"    def get_supported_boot_devices_task_arg(self):"},{"line_number":759,"context_line":"        # NOTE(MattMan): remove this method in next cycle(Mitaka) as task"},{"line_number":760,"context_line":"        #                parameter will be mandatory then."},{"line_number":761,"context_line":"        argspec \u003d inspect.getargspec(self.get_supported_boot_devices)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_9ccea62b","line":758,"updated":"2015-11-19 00:23:22.000000000","message":"This was removed and should not be brought back.\n\n commit ddaa505f6d7e3cb9423419b664aeeb42da381fb8\n Author: Vladyslav Drok \u003cvdrok@mirantis.com\u003e\n Date:   Thu Nov 12 18:36:25 2015 +0200\n\n    Make task parameter mandatory in get_supported_boot_devices","commit_id":"e840bac286e2c7da2372d3b15214a942201d41f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"fdad3041d5f2958859257e3e72d4083b81c65e08","unresolved":false,"context_lines":[{"line_number":755,"context_line":"        \"\"\""},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    @property"},{"line_number":758,"context_line":"    def get_supported_boot_devices_task_arg(self):"},{"line_number":759,"context_line":"        # NOTE(MattMan): remove this method in next cycle(Mitaka) as task"},{"line_number":760,"context_line":"        #                parameter will be mandatory then."},{"line_number":761,"context_line":"        argspec \u003d inspect.getargspec(self.get_supported_boot_devices)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_ee67f5e6","line":758,"in_reply_to":"ba8a016a_9ccea62b","updated":"2015-11-19 03:03:48.000000000","message":"Whoops. Good catch. (That\u0027s what I get for trying to do this during a meeting...)","commit_id":"e840bac286e2c7da2372d3b15214a942201d41f0"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"ea2d65c0e4e34c09f0cdebb02d0ca08ed5613d2e","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        if args is not None:"},{"line_number":211,"context_line":"            return getattr(self, step[\u0027step\u0027])(task, **args)"},{"line_number":212,"context_line":"        else:"},{"line_number":213,"context_line":"            return getattr(self, step[\u0027step\u0027])(task)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_4fd60250","line":213,"updated":"2015-11-19 23:38:44.000000000","message":"I was going to ask if we should be validating arguments here, but I see it later in the chain... seems fine.","commit_id":"ac2ab4224371701f075e8f6a7527040f28e7fb8d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5ad8fb83decddfd7195695dd8c80a6263a65c586","unresolved":false,"context_lines":[{"line_number":995,"context_line":"    to automated cleaning, but the steps and order of execution must be"},{"line_number":996,"context_line":"    explicitly specified by the user when invoking the cleaning API."},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    Decorated clean steps must take as the only positional argument, a"},{"line_number":999,"context_line":"    TaskManager object. Clean steps used in manual cleaning may also take"},{"line_number":1000,"context_line":"    keyword variable arguments (as described in argsinfo)."},{"line_number":1001,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_b1670cb6","line":998,"updated":"2015-11-19 03:56:29.000000000","message":"s/ Decorated/ Automated","commit_id":"ac2ab4224371701f075e8f6a7527040f28e7fb8d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6cda76f837aa5d119c0d5df8cec87a3dcd820de9","unresolved":false,"context_lines":[{"line_number":995,"context_line":"    to automated cleaning, but the steps and order of execution must be"},{"line_number":996,"context_line":"    explicitly specified by the user when invoking the cleaning API."},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    Decorated clean steps must take as the only positional argument, a"},{"line_number":999,"context_line":"    TaskManager object. Clean steps used in manual cleaning may also take"},{"line_number":1000,"context_line":"    keyword variable arguments (as described in argsinfo)."},{"line_number":1001,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_ee2cb89a","line":998,"in_reply_to":"ba8a016a_b1670cb6","updated":"2015-11-19 14:16:37.000000000","message":"\u0027Decorated\u0027 is correct.\n\nFor automated or manual cleaning, the decorated clean step can take only one positional argument. The other arguments (if any) must be keyword variable arguments.\n\nI thought it was clear -- let me know if you have suggestions for changing it to be clearer.","commit_id":"ac2ab4224371701f075e8f6a7527040f28e7fb8d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"78840073a10f4be1624980e6a55a64059318c9a2","unresolved":false,"context_lines":[{"line_number":995,"context_line":"    to automated cleaning, but the steps and order of execution must be"},{"line_number":996,"context_line":"    explicitly specified by the user when invoking the cleaning API."},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    Decorated clean steps must take as the only positional argument, a"},{"line_number":999,"context_line":"    TaskManager object. Clean steps used in manual cleaning may also take"},{"line_number":1000,"context_line":"    keyword variable arguments (as described in argsinfo)."},{"line_number":1001,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_955cf04b","line":998,"in_reply_to":"ba8a016a_ee2cb89a","updated":"2015-11-20 04:58:11.000000000","message":"Thanks. Should be fine.","commit_id":"ac2ab4224371701f075e8f6a7527040f28e7fb8d"}]}
