)]}'
{"karborclient/v1/shell.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"c5d588181a5146cbf8e96fa4063e9d977dc2f4c7","unresolved":false,"context_lines":[{"line_number":337,"context_line":"                    \"The resource_id must be a uuid.\")"},{"line_number":338,"context_line":"        else:"},{"line_number":339,"context_line":"            resource_type \u003d resource_key"},{"line_number":340,"context_line":"        if resource_type not in RESOURCE_TYPES:"},{"line_number":341,"context_line":"            raise exceptions.CommandError("},{"line_number":342,"context_line":"                \"The resource_type of parameters is invalid.\")"},{"line_number":343,"context_line":"        property_list \u003d parameter_value.keys()"},{"line_number":344,"context_line":"        properties \u003d schema[resource_type][\"properties\"]"},{"line_number":345,"context_line":"        property_list_schema \u003d properties.keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f044301_8f84f75f","line":342,"range":{"start_line":340,"start_character":0,"end_line":342,"end_character":62},"updated":"2017-05-07 09:32:38.000000000","message":"Either let Karbor do this validation, or get the resource_types from Karbor\u0027s API.","commit_id":"121fb59d6df62cc7d6d0c716f1c594cb2db52007"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"211f1fa22481dbbcf713a221e8e9f7593e446e48","unresolved":false,"context_lines":[{"line_number":337,"context_line":"                    \"The resource_id must be a uuid.\")"},{"line_number":338,"context_line":"        else:"},{"line_number":339,"context_line":"            resource_type \u003d resource_key"},{"line_number":340,"context_line":"        if resource_type not in RESOURCE_TYPES:"},{"line_number":341,"context_line":"            raise exceptions.CommandError("},{"line_number":342,"context_line":"                \"The resource_type of parameters is invalid.\")"},{"line_number":343,"context_line":"        property_list \u003d parameter_value.keys()"},{"line_number":344,"context_line":"        properties \u003d schema[resource_type][\"properties\"]"},{"line_number":345,"context_line":"        property_list_schema \u003d properties.keys()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f044301_f0fd933a","line":342,"range":{"start_line":340,"start_character":0,"end_line":342,"end_character":62},"in_reply_to":"3f044301_8f84f75f","updated":"2017-05-09 07:51:21.000000000","message":"I will update it.","commit_id":"121fb59d6df62cc7d6d0c716f1c594cb2db52007"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"395c3328a176192066182a585d3502cb742e0349","unresolved":false,"context_lines":[{"line_number":314,"context_line":"    else:"},{"line_number":315,"context_line":"        raise exceptions.CommandError("},{"line_number":316,"context_line":"            \"The resource name is invalid\")"},{"line_number":317,"context_line":"    provider \u003d cs.providers.get(provider_id)"},{"line_number":318,"context_line":"    if not provider:"},{"line_number":319,"context_line":"        raise exceptions.CommandError("},{"line_number":320,"context_line":"            \"The provider_id is invalid\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_7605b410","line":317,"range":{"start_line":317,"start_character":0,"end_line":317,"end_character":44},"updated":"2017-05-11 11:56:22.000000000","message":"why not leave this validation to the service?","commit_id":"6bfc80d37958e85140bfd998917f5d51ae1d7cf6"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"9f1ed635e9158844694768ea276983738c127c78","unresolved":false,"context_lines":[{"line_number":314,"context_line":"    else:"},{"line_number":315,"context_line":"        raise exceptions.CommandError("},{"line_number":316,"context_line":"            \"The resource name is invalid\")"},{"line_number":317,"context_line":"    provider \u003d cs.providers.get(provider_id)"},{"line_number":318,"context_line":"    if not provider:"},{"line_number":319,"context_line":"        raise exceptions.CommandError("},{"line_number":320,"context_line":"            \"The provider_id is invalid\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f013ff3_c278d2f9","line":317,"range":{"start_line":317,"start_character":0,"end_line":317,"end_character":44},"in_reply_to":"3f044301_7605b410","updated":"2017-05-15 08:21:54.000000000","message":"hi, the validation about resource_types also will be done in api service. I think that it is not redundant. If the resource_type is invalid, the cmd will return error, the plan \u0027create\u0027 action will not been requested.\nIf the the plan \u0027create\u0027 action will been requested only with body POST, not use karbor pythonclient, the resource_type also need be validated in api service.","commit_id":"6bfc80d37958e85140bfd998917f5d51ae1d7cf6"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"395c3328a176192066182a585d3502cb742e0349","unresolved":false,"context_lines":[{"line_number":323,"context_line":"    if not schema:"},{"line_number":324,"context_line":"        raise exceptions.CommandError("},{"line_number":325,"context_line":"            \"The schema of provider is invalid\")"},{"line_number":326,"context_line":"    resource_types \u003d cs.protectables.list()"},{"line_number":327,"context_line":"    resource_types_list \u003d ["},{"line_number":328,"context_line":"        item.protectable_type for item in resource_types]"},{"line_number":329,"context_line":"    if not resource_types:"},{"line_number":330,"context_line":"        raise exceptions.CommandError("},{"line_number":331,"context_line":"            \"The resource types can not be None\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_d3049a1a","line":328,"range":{"start_line":326,"start_character":0,"end_line":328,"end_character":57},"updated":"2017-05-11 11:56:22.000000000","message":"why not leave this validation to the service?","commit_id":"6bfc80d37958e85140bfd998917f5d51ae1d7cf6"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"9f1ed635e9158844694768ea276983738c127c78","unresolved":false,"context_lines":[{"line_number":323,"context_line":"    if not schema:"},{"line_number":324,"context_line":"        raise exceptions.CommandError("},{"line_number":325,"context_line":"            \"The schema of provider is invalid\")"},{"line_number":326,"context_line":"    resource_types \u003d cs.protectables.list()"},{"line_number":327,"context_line":"    resource_types_list \u003d ["},{"line_number":328,"context_line":"        item.protectable_type for item in resource_types]"},{"line_number":329,"context_line":"    if not resource_types:"},{"line_number":330,"context_line":"        raise exceptions.CommandError("},{"line_number":331,"context_line":"            \"The resource types can not be None\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f013ff3_e21d0ebe","line":328,"range":{"start_line":326,"start_character":0,"end_line":328,"end_character":57},"in_reply_to":"3f044301_d3049a1a","updated":"2017-05-15 08:21:54.000000000","message":"ditto","commit_id":"6bfc80d37958e85140bfd998917f5d51ae1d7cf6"}]}
