)]}'
{"sushy/resources/base.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c554fc556a23aedf7e880c90dd7659bb27437c8","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        return instances"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"class AbstractJsonReader(object, metaclass\u003dabc.ABCMeta):"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def set_connection(self, connector, path):"},{"line_number":321,"context_line":"        \"\"\"Sets mandatory connection parameters"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f560f44_acde440d","side":"PARENT","line":318,"updated":"2020-09-04 14:43:19.000000000","message":"I\u0027m not worried about this... it IS just providing structure to the methods in this file. Nothing else. I checked proliantutils just in case.","commit_id":"3d4555771623e35fbf64cb40a41135d9aa8ed5b4"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c554fc556a23aedf7e880c90dd7659bb27437c8","unresolved":false,"context_lines":[{"line_number":401,"context_line":"class JsonPublicFileReader(AbstractDataReader):"},{"line_number":402,"context_line":"    \"\"\"Loads the data from the Internet\"\"\""},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def get_data(self):"},{"line_number":405,"context_line":"        \"\"\"Get JSON file from full URI\"\"\""},{"line_number":406,"context_line":"        data \u003d self._conn.get(self._path)"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9f560f44_4c268818","line":404,"updated":"2020-09-04 14:43:19.000000000","message":"To be honest, changing the method names bothers me... But it does appear to be completely internal usage. Double checked proliantutils to be on the safe side and the base class nor these methods seem to be used there.","commit_id":"15c26b23a398d741946b9b1c5de44a0a042f87b4"}],"sushy/resources/settings.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"4ed811cf05170bcd4e134167f770d7e844e3945b","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    @property"},{"line_number":128,"context_line":"    def maintenance_window(self):"},{"line_number":129,"context_line":"        \"\"\"MaintenanceWindow field"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        Indicates if a given resource has a maintenance window assignment"},{"line_number":132,"context_line":"        for applying settings or operations"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_9b38d09f","line":129,"updated":"2020-09-04 19:08:24.000000000","message":"pep8: F821 undefined name \u0027res_maps\u0027","commit_id":"efd85b553bf41700091556f199665e06d4dfede0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ac0a98e0ef2073b39aa6d8eaea05950d3e6b4b1e","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    @property"},{"line_number":128,"context_line":"    def maintenance_window(self):"},{"line_number":129,"context_line":"        \"\"\"MaintenanceWindow field"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        Indicates if a given resource has a maintenance window assignment"},{"line_number":132,"context_line":"        for applying settings or operations"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_ca61d813","line":129,"updated":"2020-09-04 16:19:18.000000000","message":"pep8: F821 undefined name \u0027res_maps\u0027","commit_id":"efd85b553bf41700091556f199665e06d4dfede0"}],"sushy/resources/taskservice/task.py":[{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"68b99c9db504f8dd05d6435627f2bccdd316d456","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    \"\"\"The Task description\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    task_monitor \u003d base.Field(\u0027TaskMonitor\u0027)"},{"line_number":44,"context_line":"    \"\"\"An opaque URL that retrieves a Task as a result of a GET\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    start_time \u003d base.Field(\u0027StartTime\u0027)"},{"line_number":47,"context_line":"    \"\"\"Start time of the Task\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_731b771b","line":44,"range":{"start_line":44,"start_character":7,"end_line":44,"end_character":63},"updated":"2020-09-03 20:50:12.000000000","message":"A subtle detail: This statement is not exactly correct. A more accurate description would be: \"An Opaque URL that the client can use to monitor an asynchronous operation\"\n\nThe GET on the URI may return a Task resource, an empty body, or the resource returned by the completed task (if it has in fact completed).","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e818325149a351da16f9bda1a3fdc17833f1379b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    \"\"\"The Task description\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    task_monitor \u003d base.Field(\u0027TaskMonitor\u0027)"},{"line_number":44,"context_line":"    \"\"\"An opaque URL that retrieves a Task as a result of a GET\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    start_time \u003d base.Field(\u0027StartTime\u0027)"},{"line_number":47,"context_line":"    \"\"\"Start time of the Task\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_4ee68aea","line":44,"range":{"start_line":44,"start_character":7,"end_line":44,"end_character":63},"in_reply_to":"9f560f44_731b771b","updated":"2020-09-04 02:16:04.000000000","message":"Done","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"}],"sushy/resources/taskservice/taskmonitor.py":[{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"68b99c9db504f8dd05d6435627f2bccdd316d456","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from sushy import utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TaskMonitor(object):"},{"line_number":27,"context_line":"    def __init__(self,"},{"line_number":28,"context_line":"                 connector,"},{"line_number":29,"context_line":"                 task_monitor,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_535bd385","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":17},"updated":"2020-09-03 20:50:12.000000000","message":"So now we have two TaskMonitor classes? (this one and sushy/resources/task_monitor.py)","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e818325149a351da16f9bda1a3fdc17833f1379b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from sushy import utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TaskMonitor(object):"},{"line_number":27,"context_line":"    def __init__(self,"},{"line_number":28,"context_line":"                 connector,"},{"line_number":29,"context_line":"                 task_monitor,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_ee2cbe02","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":17},"in_reply_to":"9f560f44_535bd385","updated":"2020-09-04 02:16:04.000000000","message":"Yes. I have not investigated if the other TaskMonitor class can be refactored, or if it is conceptually the same as this TaskMonitor. I would prefer to address that in a future patch if necessary.","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"68b99c9db504f8dd05d6435627f2bccdd316d456","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                 redfish_version\u003dNone,"},{"line_number":31,"context_line":"                 registries\u003dNone,"},{"line_number":32,"context_line":"                 field_data\u003dNone):"},{"line_number":33,"context_line":"        \"\"\"A class representing a Task"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        :param connector: A Connector instance"},{"line_number":36,"context_line":"        :param task_monitor: The task monitor"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_b3986f75","line":33,"range":{"start_line":33,"start_character":34,"end_line":33,"end_character":38},"updated":"2020-09-03 20:50:12.000000000","message":"Task Monitor\n\nTask and Task Monitor are different, so it is worthwhile to be sure to use the correct term.","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e818325149a351da16f9bda1a3fdc17833f1379b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                 redfish_version\u003dNone,"},{"line_number":31,"context_line":"                 registries\u003dNone,"},{"line_number":32,"context_line":"                 field_data\u003dNone):"},{"line_number":33,"context_line":"        \"\"\"A class representing a Task"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        :param connector: A Connector instance"},{"line_number":36,"context_line":"        :param task_monitor: The task monitor"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_2e023670","line":33,"range":{"start_line":33,"start_character":34,"end_line":33,"end_character":38},"in_reply_to":"9f560f44_b3986f75","updated":"2020-09-04 02:16:04.000000000","message":"Done","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"68b99c9db504f8dd05d6435627f2bccdd316d456","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    def cancellable(self):"},{"line_number":108,"context_line":"        \"\"\"The amount of time to sleep before retrying"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        :returns: The amount of time in seconds to wait before calling"},{"line_number":111,"context_line":"            is_processing."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        return utils.bool_or_none(self._field_data.headers.get(\u0027Allow\u0027))"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_33861f15","line":111,"range":{"start_line":110,"start_character":18,"end_line":111,"end_character":25},"updated":"2020-09-03 20:50:12.000000000","message":"Copy and paste error","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e818325149a351da16f9bda1a3fdc17833f1379b","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    def cancellable(self):"},{"line_number":108,"context_line":"        \"\"\"The amount of time to sleep before retrying"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        :returns: The amount of time in seconds to wait before calling"},{"line_number":111,"context_line":"            is_processing."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        return utils.bool_or_none(self._field_data.headers.get(\u0027Allow\u0027))"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_ce473abc","line":111,"range":{"start_line":110,"start_character":18,"end_line":111,"end_character":25},"in_reply_to":"9f560f44_33861f15","updated":"2020-09-04 02:16:04.000000000","message":"Done","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"68b99c9db504f8dd05d6435627f2bccdd316d456","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        :returns: The amount of time in seconds to wait before calling"},{"line_number":111,"context_line":"            is_processing."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        return utils.bool_or_none(self._field_data.headers.get(\u0027Allow\u0027))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @property"},{"line_number":116,"context_line":"    def task(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_13dcbb16","line":113,"range":{"start_line":113,"start_character":34,"end_line":113,"end_character":71},"updated":"2020-09-03 20:50:12.000000000","message":"Shouldn\u0027t this check that the DELETE method is in the Allow header?","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e818325149a351da16f9bda1a3fdc17833f1379b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        :returns: The amount of time in seconds to wait before calling"},{"line_number":111,"context_line":"            is_processing."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        return utils.bool_or_none(self._field_data.headers.get(\u0027Allow\u0027))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @property"},{"line_number":116,"context_line":"    def task(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_6e4f0ebe","line":113,"range":{"start_line":113,"start_character":34,"end_line":113,"end_character":71},"in_reply_to":"9f560f44_13dcbb16","updated":"2020-09-04 02:16:04.000000000","message":"Done","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"68b99c9db504f8dd05d6435627f2bccdd316d456","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        :returns: The Task being executed."},{"line_number":120,"context_line":"        \"\"\""},{"line_number":121,"context_line":"        if not self._task:"},{"line_number":122,"context_line":"            self._task \u003d task.Task(self._connector, self._task_monitor,"},{"line_number":123,"context_line":"                                   redfish_version\u003dself._redfish_version,"},{"line_number":124,"context_line":"                                   registries\u003dself._registries)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        return self._task"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_d3f2439a","line":124,"range":{"start_line":122,"start_character":12,"end_line":124,"end_character":63},"updated":"2020-09-03 20:50:12.000000000","message":"Note that the spec says that the \"response body SHOULD contain a representation of the Task resource.\"\n\nThis is not SHALL statement, so cannot count on getting the Task.","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e818325149a351da16f9bda1a3fdc17833f1379b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        :returns: The Task being executed."},{"line_number":120,"context_line":"        \"\"\""},{"line_number":121,"context_line":"        if not self._task:"},{"line_number":122,"context_line":"            self._task \u003d task.Task(self._connector, self._task_monitor,"},{"line_number":123,"context_line":"                                   redfish_version\u003dself._redfish_version,"},{"line_number":124,"context_line":"                                   registries\u003dself._registries)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        return self._task"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_c91bb470","line":124,"range":{"start_line":122,"start_character":12,"end_line":124,"end_character":63},"in_reply_to":"9f560f44_d3f2439a","updated":"2020-09-04 02:16:04.000000000","message":"Done","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"fdead5960acee3f6927485a6ae1a622e2bda55c1","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        allow \u003d self._field_data.headers.get(\u0027Allow\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        cancellable \u003d False"},{"line_number":126,"context_line":"        if allow and allow.upper() \u003d\u003d \u0027DELETE\u0027:"},{"line_number":127,"context_line":"            cancellable \u003d True"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        return cancellable"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_bb82f450","line":126,"range":{"start_line":126,"start_character":21,"end_line":126,"end_character":46},"updated":"2020-09-04 19:04:18.000000000","message":"The Allow header is a list of methods. Better to handle the case of more than one method in the list.","commit_id":"efd85b553bf41700091556f199665e06d4dfede0"}],"sushy/resources/updateservice/updateservice.py":[{"author":{"_account_id":28128,"name":"Bill Dodd","email":"billdodd@gmail.com","username":"billdodd"},"change_message_id":"68b99c9db504f8dd05d6435627f2bccdd316d456","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        if targets:"},{"line_number":150,"context_line":"            data[\u0027Targets\u0027] \u003d targets"},{"line_number":151,"context_line":"        rsp \u003d self._conn.post(target_uri, data\u003ddata)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        json_data \u003d rsp.json() if rsp.content else {}"},{"line_number":154,"context_line":"        field_data \u003d base.FieldData(rsp.status_code, rsp.headers, json_data)"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_3310dfa8","line":152,"updated":"2020-09-03 20:50:12.000000000","message":"Should we confirm that the status code is ACCEPTED before constructing the TaskMonitor?","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e818325149a351da16f9bda1a3fdc17833f1379b","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        if targets:"},{"line_number":150,"context_line":"            data[\u0027Targets\u0027] \u003d targets"},{"line_number":151,"context_line":"        rsp \u003d self._conn.post(target_uri, data\u003ddata)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        json_data \u003d rsp.json() if rsp.content else {}"},{"line_number":154,"context_line":"        field_data \u003d base.FieldData(rsp.status_code, rsp.headers, json_data)"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_a9448048","line":152,"in_reply_to":"9f560f44_3310dfa8","updated":"2020-09-04 02:16:04.000000000","message":"I don\u0027t think so. As this code is, a TaskMonitor is constructed and returned to the user.  The user can then check task_monitor.is_processing and that will return False for an initial non-202 error code.","commit_id":"22f51f8d97dd7dea1b25a0de11c647dff0ba7131"}]}
