)]}'
{"zun/api/validation/parameter_types.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"e2c21f4a72ec4b11811821644f31a349c9e9723a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    \u0027type\u0027: [\u0027number\u0027, \u0027string\u0027, \u0027null\u0027],"},{"line_number":83,"context_line":"    \u0027pattern\u0027: \u0027^[0-9]*(\\.([0-9]+))?$\u0027,"},{"line_number":84,"context_line":"    \u0027minLength\u0027: 1,"},{"line_number":85,"context_line":"    \u0027minimum\u0027: CONF.minimum_cpus,"},{"line_number":86,"context_line":"    \u0027maximum\u0027: CONF.maximum_cpus,"},{"line_number":87,"context_line":"}"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f9dbf25_65455eb3","line":85,"range":{"start_line":85,"start_character":20,"end_line":85,"end_character":32},"updated":"2018-03-01 01:03:07.000000000","message":"It seems this doesn\u0027t work. I expected the command below to be rejected but it succeeded. I guess the reason is that the minimum and maximum is applied for type \u0027number\u0027 only. If the input is of \u0027string\u0027 type, such constraint will be ignored. The memory and disk might have the same pitfall.\n\n$ zun run --cpu 0.01 nginx\n(success)","commit_id":"1c2c053d982d155b79e2047868af35e1fb03f945"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"d0c73aae5dc0fd2601123e0820056571eb62ca6e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    \u0027type\u0027: [\u0027number\u0027, \u0027string\u0027, \u0027null\u0027],"},{"line_number":83,"context_line":"    \u0027pattern\u0027: \u0027^[0-9]*(\\.([0-9]+))?$\u0027,"},{"line_number":84,"context_line":"    \u0027minLength\u0027: 1,"},{"line_number":85,"context_line":"    \u0027minimum\u0027: CONF.minimum_cpus,"},{"line_number":86,"context_line":"    \u0027maximum\u0027: CONF.maximum_cpus,"},{"line_number":87,"context_line":"}"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f9dbf25_a57366e7","line":85,"range":{"start_line":85,"start_character":20,"end_line":85,"end_character":32},"in_reply_to":"1f9dbf25_65455eb3","updated":"2018-03-01 01:28:47.000000000","message":"Let me check it.","commit_id":"1c2c053d982d155b79e2047868af35e1fb03f945"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"280dd946de943fec88075b9c2fec683e9215cf77","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    \u0027type\u0027: [\u0027number\u0027, \u0027string\u0027, \u0027null\u0027],"},{"line_number":83,"context_line":"    \u0027pattern\u0027: \u0027^[0-9]*(\\.([0-9]+))?$\u0027,"},{"line_number":84,"context_line":"    \u0027minLength\u0027: 1,"},{"line_number":85,"context_line":"    \u0027minimum\u0027: CONF.minimum_cpus,"},{"line_number":86,"context_line":"    \u0027maximum\u0027: CONF.maximum_cpus,"},{"line_number":87,"context_line":"}"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f9dbf25_0876efa5","line":85,"range":{"start_line":85,"start_character":20,"end_line":85,"end_character":32},"in_reply_to":"1f9dbf25_a57366e7","updated":"2018-03-01 02:08:29.000000000","message":"I know what problem is. Method _number_from_str [1] doesn\u0027t work as expected. It checks whether instance is string, but instance\u0027s type is bytes. That\u0027s why it ignores to validate (minimum and maximum) (In Python2). Using six.text_bytes will make method compatible with both Python2 \u0026 Python3.\n\n[1] https://review.openstack.org/#/c/548445/5/zun/api/validation/validators.py","commit_id":"1c2c053d982d155b79e2047868af35e1fb03f945"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f13162345a0ce5e3f4650e5b64dd967df583a491","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    \u0027pattern\u0027: \u0027^[0-9]+$\u0027"},{"line_number":96,"context_line":"}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"disk \u003d {"},{"line_number":99,"context_line":"    \u0027type\u0027: [\u0027string\u0027, \u0027integer\u0027, \u0027null\u0027],"},{"line_number":100,"context_line":"    \u0027minimum\u0027: CONF.minimum_disk,"},{"line_number":101,"context_line":"    \u0027maximum\u0027: CONF.maximum_disk,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f9dbf25_060ece8c","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":4},"updated":"2018-03-01 23:07:36.000000000","message":"I think we need to update the json schema (https://github.com/openstack/zun/blob/master/zun/api/controllers/v1/schemas/containers.py#L37) to use this parameter type instead. Otherwise, disk validation won\u0027t work.","commit_id":"45742773ad594870d949a3069aa2dcbf4d1545f2"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"87a6bb32d1ba0d25cb43faa2084063d10df74c0d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    \u0027pattern\u0027: \u0027^[0-9]+$\u0027"},{"line_number":96,"context_line":"}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"disk \u003d {"},{"line_number":99,"context_line":"    \u0027type\u0027: [\u0027string\u0027, \u0027integer\u0027, \u0027null\u0027],"},{"line_number":100,"context_line":"    \u0027minimum\u0027: CONF.minimum_disk,"},{"line_number":101,"context_line":"    \u0027maximum\u0027: CONF.maximum_disk,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f9dbf25_dd1e700b","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":4},"in_reply_to":"1f9dbf25_060ece8c","updated":"2018-03-02 02:45:34.000000000","message":"Done, thank you :)","commit_id":"45742773ad594870d949a3069aa2dcbf4d1545f2"}]}
