)]}'
{"ironic/api/controllers/v1/driver.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"a2e7ac306f9e32cb55ec8dd3b172b2bf9c716d30","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    }"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    @expose.expose(wtypes.text, wtypes.text)"},{"line_number":146,"context_line":"    def methods(self, driver_name):"},{"line_number":147,"context_line":"        \"\"\"Retrieve information about vendor methods of the given driver."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        :param driver_name: name of the driver."}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_fc7935c9","line":146,"updated":"2016-07-12 18:47:48.000000000","message":"This is an endpoint, any reason not to measure it?","commit_id":"6cffb5586bd1a3fbec7daa2dda666bcd0ab68a7b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"a2e7ac306f9e32cb55ec8dd3b172b2bf9c716d30","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    @METRICS.timer(\u0027DriverPassthruController.post\u0027)"},{"line_number":164,"context_line":"    @expose.expose(wtypes.text, wtypes.text, wtypes.text,"},{"line_number":165,"context_line":"                   body\u003dwtypes.text)"},{"line_number":166,"context_line":"    def _default(self, driver_name, method, data\u003dNone):"},{"line_number":167,"context_line":"        \"\"\"Call a driver API extension."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        :param driver_name: name of the driver to call."}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_8701be07","line":166,"updated":"2016-07-12 18:47:48.000000000","message":"I wonder if this should be called \u0027post\u0027 or something else, because it handles any http method or path that isn\u0027t handled by another controller (in this case, GET /v1/drivers/vendor_driver_passthru/methods is the only one not handled (I may have the path slightly wrong)).","commit_id":"6cffb5586bd1a3fbec7daa2dda666bcd0ab68a7b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"a2e7ac306f9e32cb55ec8dd3b172b2bf9c716d30","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    }"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @expose.expose(types.jsontype, wtypes.text)"},{"line_number":186,"context_line":"    def logical_disk_properties(self, driver_name):"},{"line_number":187,"context_line":"        \"\"\"Returns the logical disk properties for the driver."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        :param driver_name: Name of the driver."}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_a70afa1d","line":186,"updated":"2016-07-12 18:47:48.000000000","message":"Ditto, why not measure this?","commit_id":"6cffb5586bd1a3fbec7daa2dda666bcd0ab68a7b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"a2e7ac306f9e32cb55ec8dd3b172b2bf9c716d30","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        raise exception.DriverNotFound(driver_name\u003ddriver_name)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    @expose.expose(wtypes.text, wtypes.text)"},{"line_number":257,"context_line":"    def properties(self, driver_name):"},{"line_number":258,"context_line":"        \"\"\"Retrieve property information of the given driver."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        :param driver_name: name of the driver."}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_e7108250","line":257,"updated":"2016-07-12 18:47:48.000000000","message":"Ditto, why not measure this?","commit_id":"6cffb5586bd1a3fbec7daa2dda666bcd0ab68a7b"}],"ironic/api/controllers/v1/node.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"a2e7ac306f9e32cb55ec8dd3b172b2bf9c716d30","unresolved":false,"context_lines":[{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        return _VENDOR_METHODS[rpc_node.driver]"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"    @METRICS.timer(\u0027NodeVendorPassthruController.post\u0027)"},{"line_number":876,"context_line":"    @expose.expose(wtypes.text, types.uuid_or_name, wtypes.text,"},{"line_number":877,"context_line":"                   body\u003dwtypes.text)"},{"line_number":878,"context_line":"    def _default(self, node_ident, method, data\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_6752d214","line":875,"updated":"2016-07-12 18:47:48.000000000","message":"Same thing with naming.","commit_id":"6cffb5586bd1a3fbec7daa2dda666bcd0ab68a7b"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2ddb7197da8091b205454d2f394176da41c2aec4","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @expose.expose(None, types.uuid_or_name, wtypes.text, types.boolean,"},{"line_number":158,"context_line":"                   status_code\u003dhttp_client.NO_CONTENT)"},{"line_number":159,"context_line":"    def put(self, node_ident, boot_device, persistent\u003dFalse):"},{"line_number":160,"context_line":"        \"\"\"Set the boot device for a node."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        Set the boot device to use on next reboot of the node."}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_46e858b3","line":159,"updated":"2016-07-13 10:27:16.000000000","message":"Add this?","commit_id":"b55e281c5034587cc41ece156cc3dee3dc798368"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2ddb7197da8091b205454d2f394176da41c2aec4","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                                             topic\u003dtopic)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    @expose.expose(wtypes.text, types.uuid_or_name)"},{"line_number":181,"context_line":"    def get(self, node_ident):"},{"line_number":182,"context_line":"        \"\"\"Get the current boot device for a node."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        :param node_ident: the UUID or logical name of a node."}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_a6d3fc02","line":181,"updated":"2016-07-13 10:27:16.000000000","message":"Add this?","commit_id":"b55e281c5034587cc41ece156cc3dee3dc798368"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2ddb7197da8091b205454d2f394176da41c2aec4","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        return self._get_boot_device(node_ident)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @expose.expose(wtypes.text, types.uuid_or_name)"},{"line_number":196,"context_line":"    def supported(self, node_ident):"},{"line_number":197,"context_line":"        \"\"\"Get a list of the supported boot devices."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        :param node_ident: the UUID or logical name of a node."}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_86cec057","line":196,"updated":"2016-07-13 10:27:16.000000000","message":"Add this?","commit_id":"b55e281c5034587cc41ece156cc3dee3dc798368"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2ddb7197da8091b205454d2f394176da41c2aec4","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        return NodeStates.convert(rpc_node)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    @expose.expose(None, types.uuid_or_name, body\u003dtypes.jsontype)"},{"line_number":356,"context_line":"    def raid(self, node_ident, target_raid_config):"},{"line_number":357,"context_line":"        \"\"\"Set the target raid config of the node."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        :param node_ident: the UUID or logical name of a node."}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_66fc7472","line":356,"updated":"2016-07-13 10:27:16.000000000","message":"Add this?","commit_id":"b55e281c5034587cc41ece156cc3dee3dc798368"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2ddb7197da8091b205454d2f394176da41c2aec4","unresolved":false,"context_lines":[{"line_number":853,"context_line":"    }"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"    @expose.expose(wtypes.text, types.uuid_or_name)"},{"line_number":856,"context_line":"    def methods(self, node_ident):"},{"line_number":857,"context_line":"        \"\"\"Retrieve information about vendor methods of the given node."},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        :param node_ident: UUID or logical name of a node."}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_46369851","line":856,"updated":"2016-07-13 10:27:16.000000000","message":"Add this?","commit_id":"b55e281c5034587cc41ece156cc3dee3dc798368"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2ddb7197da8091b205454d2f394176da41c2aec4","unresolved":false,"context_lines":[{"line_number":906,"context_line":""},{"line_number":907,"context_line":"    @expose.expose(None, types.uuid_or_name, wtypes.text,"},{"line_number":908,"context_line":"                   status_code\u003dhttp_client.ACCEPTED)"},{"line_number":909,"context_line":"    def put(self, node_ident, reason\u003dNone):"},{"line_number":910,"context_line":"        \"\"\"Put the node in maintenance mode."},{"line_number":911,"context_line":""},{"line_number":912,"context_line":"        :param node_ident: the UUID or logical_name of a node."}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_863c0030","line":909,"updated":"2016-07-13 10:27:16.000000000","message":"Add this?","commit_id":"b55e281c5034587cc41ece156cc3dee3dc798368"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"2ddb7197da8091b205454d2f394176da41c2aec4","unresolved":false,"context_lines":[{"line_number":916,"context_line":"        self._set_maintenance(node_ident, True, reason\u003dreason)"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"    @expose.expose(None, types.uuid_or_name, status_code\u003dhttp_client.ACCEPTED)"},{"line_number":919,"context_line":"    def delete(self, node_ident):"},{"line_number":920,"context_line":"        \"\"\"Remove the node from maintenance mode."},{"line_number":921,"context_line":""},{"line_number":922,"context_line":"        :param node_ident: the UUID or logical name of a node."}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_e647c4b9","line":919,"updated":"2016-07-13 10:27:16.000000000","message":"Add this?","commit_id":"b55e281c5034587cc41ece156cc3dee3dc798368"}]}
