)]}'
{"karbor/api/v1/services.py":[{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"3aed1592b86770ca880a5c4b839d28dcdc3bd62a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        context \u003d req.environ[\u0027karbor.context\u0027]"},{"line_number":83,"context_line":"        context.can(service_policy.GET_ALL_POLICY)"},{"line_number":84,"context_line":"        host \u003d req.GET[\u0027host\u0027] if \u0027host\u0027 in req.GET else None"},{"line_number":85,"context_line":"        binary \u003d req.GET[\u0027binary\u0027] if \u0027binary\u0027 in req.GET else None"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            services \u003d objects.ServiceList.get_all_by_args("},{"line_number":88,"context_line":"                context, host, binary)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_cb119bae","line":85,"range":{"start_line":84,"start_character":7,"end_line":85,"end_character":67},"updated":"2017-10-23 11:41:45.000000000","message":"Have you do the test about the filter name? How to pass the value of the value of host or binary? So that we can get its value from req.GET? For example: the value pagination parameters of plan can be got from req.params.copy()?","commit_id":"f1e368a262e4b4c0ae501489836e251a5745a210"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"765ebbafea02ae126f05f54fac75cb25b580bc70","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        context \u003d req.environ[\u0027karbor.context\u0027]"},{"line_number":83,"context_line":"        context.can(service_policy.GET_ALL_POLICY)"},{"line_number":84,"context_line":"        host \u003d req.GET[\u0027host\u0027] if \u0027host\u0027 in req.GET else None"},{"line_number":85,"context_line":"        binary \u003d req.GET[\u0027binary\u0027] if \u0027binary\u0027 in req.GET else None"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            services \u003d objects.ServiceList.get_all_by_args("},{"line_number":88,"context_line":"                context, host, binary)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_0b99f31d","line":85,"range":{"start_line":84,"start_character":7,"end_line":85,"end_character":67},"in_reply_to":"3f4b6375_cb119bae","updated":"2017-10-23 11:58:31.000000000","message":"Yes, I have done the test with using a test tool named \u0027pastman\u0027, and it works well.\n\u0027host\u0027 and \u0027binary\u0027 are parameters with query type. \nlike this os-services?host\u003dxxx\u0026binary\u003dxxx","commit_id":"f1e368a262e4b4c0ae501489836e251a5745a210"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"3aed1592b86770ca880a5c4b839d28dcdc3bd62a","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            service \u003d objects.Service.get_by_id(context, id)"},{"line_number":101,"context_line":"        except exception.ServiceNotFound as e:"},{"line_number":102,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.message)"},{"line_number":103,"context_line":"        if \u0027status\u0027 in body:"},{"line_number":104,"context_line":"            if body[\u0027status\u0027] \u003d\u003d \u0027enabled\u0027:"},{"line_number":105,"context_line":"                if body.get(\u0027disabled_reason\u0027):"},{"line_number":106,"context_line":"                    msg \u003d _(\"Specifying \u0027disabled_reason\u0027 with status \""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_8b9e0352","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":28},"updated":"2017-10-23 11:41:45.000000000","message":"only operation service can be disabled? So should we filter the binary filed of service name here?","commit_id":"f1e368a262e4b4c0ae501489836e251a5745a210"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"765ebbafea02ae126f05f54fac75cb25b580bc70","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            service \u003d objects.Service.get_by_id(context, id)"},{"line_number":101,"context_line":"        except exception.ServiceNotFound as e:"},{"line_number":102,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.message)"},{"line_number":103,"context_line":"        if \u0027status\u0027 in body:"},{"line_number":104,"context_line":"            if body[\u0027status\u0027] \u003d\u003d \u0027enabled\u0027:"},{"line_number":105,"context_line":"                if body.get(\u0027disabled_reason\u0027):"},{"line_number":106,"context_line":"                    msg \u003d _(\"Specifying \u0027disabled_reason\u0027 with status \""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_ab0e5f38","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":28},"in_reply_to":"3f4b6375_8b9e0352","updated":"2017-10-23 11:58:31.000000000","message":"IMO, the operationengine and protection are all can be disabled.","commit_id":"f1e368a262e4b4c0ae501489836e251a5745a210"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"3aed1592b86770ca880a5c4b839d28dcdc3bd62a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":109,"context_line":"                service.disabled \u003d False"},{"line_number":110,"context_line":"                service.disabled_reason \u003d None"},{"line_number":111,"context_line":"            elif body[\u0027status\u0027] \u003d\u003d \u0027disabled\u0027:"},{"line_number":112,"context_line":"                service.disabled \u003d True"},{"line_number":113,"context_line":"                service.disabled_reason \u003d body.get(\u0027disabled_reason\u0027)"},{"line_number":114,"context_line":"        service.save()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_6b64e7e4","line":111,"range":{"start_line":111,"start_character":17,"end_line":111,"end_character":31},"updated":"2017-10-23 11:41:45.000000000","message":"if body[\u0027status\u0027] is not \u0027enabled\u0027 and is also not \u0027disabled\u0027. should a exception be raised?","commit_id":"f1e368a262e4b4c0ae501489836e251a5745a210"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"765ebbafea02ae126f05f54fac75cb25b580bc70","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":109,"context_line":"                service.disabled \u003d False"},{"line_number":110,"context_line":"                service.disabled_reason \u003d None"},{"line_number":111,"context_line":"            elif body[\u0027status\u0027] \u003d\u003d \u0027disabled\u0027:"},{"line_number":112,"context_line":"                service.disabled \u003d True"},{"line_number":113,"context_line":"                service.disabled_reason \u003d body.get(\u0027disabled_reason\u0027)"},{"line_number":114,"context_line":"        service.save()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_ab609f02","line":111,"range":{"start_line":111,"start_character":17,"end_line":111,"end_character":31},"in_reply_to":"3f4b6375_6b64e7e4","updated":"2017-10-23 11:58:31.000000000","message":"if body[\u0027status\u0027] is not \u0027enabled\u0027 or \u0027disabled\u0027,  it will do noting (like what nova does).\nAnyway, it is ok to raise exception here.","commit_id":"f1e368a262e4b4c0ae501489836e251a5745a210"}]}
