)]}'
{"nova/api/openstack/compute/plugins/v3/quota_classes.py":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"a0c2b778f5ddce6599aa21336eb43bd1d622a0dc","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        quota_class_set \u003d body[\u0027quota_class_set\u0027]"},{"line_number":83,"context_line":"        for key in quota_class_set.keys():"},{"line_number":84,"context_line":"            if key in QUOTAS and key not in FILTERED_QUOTAS:"},{"line_number":85,"context_line":"                value \u003d int(quota_class_set[key])"},{"line_number":86,"context_line":"                try:"},{"line_number":87,"context_line":"                    db.quota_class_update(context, quota_class, key, value)"},{"line_number":88,"context_line":"                except exception.QuotaClassNotFound:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FIaI%3D","line":85,"updated":"2014-01-17 05:38:46.000000000","message":"need not int().","commit_id":"f8a2d7ed620d9e49bc1db2a5d6eb0cd083ca4d45"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"d5964310da4793947b922829859bbcf8f9e82e38","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        quota_class_set \u003d body[\u0027quota_class_set\u0027]"},{"line_number":83,"context_line":"        for key in quota_class_set.keys():"},{"line_number":84,"context_line":"            if key in QUOTAS and key not in FILTERED_QUOTAS:"},{"line_number":85,"context_line":"                value \u003d int(quota_class_set[key])"},{"line_number":86,"context_line":"                try:"},{"line_number":87,"context_line":"                    db.quota_class_update(context, quota_class, key, value)"},{"line_number":88,"context_line":"                except exception.QuotaClassNotFound:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FIKk%3D","line":85,"in_reply_to":"AAAAUH%2F%2FIL8%3D","updated":"2014-01-17 06:19:19.000000000","message":"You\u0027re right, thank you. I applied to my patch, too.","commit_id":"f8a2d7ed620d9e49bc1db2a5d6eb0cd083ca4d45"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"51fd447d386cbe119d61dc09c045f61b2261dd28","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        quota_class_set \u003d body[\u0027quota_class_set\u0027]"},{"line_number":83,"context_line":"        for key in quota_class_set.keys():"},{"line_number":84,"context_line":"            if key in QUOTAS and key not in FILTERED_QUOTAS:"},{"line_number":85,"context_line":"                value \u003d int(quota_class_set[key])"},{"line_number":86,"context_line":"                try:"},{"line_number":87,"context_line":"                    db.quota_class_update(context, quota_class, key, value)"},{"line_number":88,"context_line":"                except exception.QuotaClassNotFound:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FIL8%3D","line":85,"in_reply_to":"AAAAUH%2F%2FIXc%3D","updated":"2014-01-17 06:15:14.000000000","message":"The value is defined as integer type in the database, so I think it\u0027s safe to remain the int() if the string type value comes.","commit_id":"f8a2d7ed620d9e49bc1db2a5d6eb0cd083ca4d45"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"99d72de74aee9c7accc88bc729838a4f76d0e901","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        quota_class_set \u003d body[\u0027quota_class_set\u0027]"},{"line_number":83,"context_line":"        for key in quota_class_set.keys():"},{"line_number":84,"context_line":"            if key in QUOTAS and key not in FILTERED_QUOTAS:"},{"line_number":85,"context_line":"                value \u003d int(quota_class_set[key])"},{"line_number":86,"context_line":"                try:"},{"line_number":87,"context_line":"                    db.quota_class_update(context, quota_class, key, value)"},{"line_number":88,"context_line":"                except exception.QuotaClassNotFound:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FIXc%3D","line":85,"in_reply_to":"AAAAUH%2F%2FIaI%3D","updated":"2014-01-17 05:52:58.000000000","message":"Done.","commit_id":"f8a2d7ed620d9e49bc1db2a5d6eb0cd083ca4d45"}],"nova/api/openstack/compute/schemas/v3/quota_classes_schema.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ff4ca7e330fe2307b3125058bc8e47c9885afe92","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \u0027properties\u0027: {"},{"line_number":20,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":21,"context_line":"        \u0027quota_class_set\u0027: {"},{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                \u0027class_name\u0027: {"},{"line_number":25,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAT3%2F%2F4xg%3D","line":22,"updated":"2013-12-28 00:03:21.000000000","message":"we should use \u0027\u0027additionalProperties\u0027: False,\u0027 for more strict check.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"4c346a46bdb3d97e758822c2b173496364b3e0f8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \u0027properties\u0027: {"},{"line_number":20,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":21,"context_line":"        \u0027quota_class_set\u0027: {"},{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                \u0027class_name\u0027: {"},{"line_number":25,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F97U%3D","line":22,"in_reply_to":"AAAAT3%2F%2F4xg%3D","updated":"2014-01-06 04:16:51.000000000","message":"Done.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"17670a4e43dc570d68bf55129a13d610cc639c50","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                },"},{"line_number":28,"context_line":"                \u0027instances\u0027: {"},{"line_number":29,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":30,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":31,"context_line":"                },"},{"line_number":32,"context_line":"                \u0027cores\u0027: {"},{"line_number":33,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8zls%3D","line":30,"updated":"2013-12-20 05:40:16.000000000","message":"If this parameter should be positive integer, we need to specify \u0027minimum\u0027 in this schema. because the above \u0027pattern\u0027 can validate string integer but it cannot validate negative integer(not string integer).\n\nThe following parameters are the same:","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"4c346a46bdb3d97e758822c2b173496364b3e0f8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                },"},{"line_number":28,"context_line":"                \u0027instances\u0027: {"},{"line_number":29,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":30,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":31,"context_line":"                },"},{"line_number":32,"context_line":"                \u0027cores\u0027: {"},{"line_number":33,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F97M%3D","line":30,"in_reply_to":"AAAATn%2F8zls%3D","updated":"2014-01-06 04:16:51.000000000","message":"I will fix it like that. Thank you.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"683c9a3a387cef449bfc0ad6cad9a4aab0f126fc","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                },"},{"line_number":32,"context_line":"                \u0027cores\u0027: {"},{"line_number":33,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":34,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":35,"context_line":"                },"},{"line_number":36,"context_line":"                \u0027ram\u0027: {"},{"line_number":37,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8nV0%3D","line":34,"updated":"2013-12-24 09:58:52.000000000","message":"Is empty allowed for each parameter?\nIf no, the specification should be as \u0027~[0-9]+$\u0027.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"4c346a46bdb3d97e758822c2b173496364b3e0f8","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                },"},{"line_number":32,"context_line":"                \u0027cores\u0027: {"},{"line_number":33,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":34,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":35,"context_line":"                },"},{"line_number":36,"context_line":"                \u0027ram\u0027: {"},{"line_number":37,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F97I%3D","line":34,"in_reply_to":"AAAATn%2F8nV0%3D","updated":"2014-01-06 04:16:51.000000000","message":"You are right, I will fix it. Thank you.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"683c9a3a387cef449bfc0ad6cad9a4aab0f126fc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                },"},{"line_number":44,"context_line":"                \u0027fixed_ips\u0027: {"},{"line_number":45,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":46,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9-]*$\u0027"},{"line_number":47,"context_line":"                },"},{"line_number":48,"context_line":"                \u0027metadata_items\u0027: {"},{"line_number":49,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8nVA%3D","line":46,"updated":"2013-12-24 09:58:52.000000000","message":"Under this specification, the string \u0027-\u0027 can be allowed. Maybe, this is incorrect.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"4c346a46bdb3d97e758822c2b173496364b3e0f8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                },"},{"line_number":44,"context_line":"                \u0027fixed_ips\u0027: {"},{"line_number":45,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":46,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9-]*$\u0027"},{"line_number":47,"context_line":"                },"},{"line_number":48,"context_line":"                \u0027metadata_items\u0027: {"},{"line_number":49,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F97A%3D","line":46,"in_reply_to":"AAAATn%2F8nVA%3D","updated":"2014-01-06 04:16:51.000000000","message":"Done.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bb3f481893df56f70c8687c23134879a2d6a1387","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":50,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":51,"context_line":"                },"},{"line_number":52,"context_line":"                \u0027injected_files\u0027: {"},{"line_number":53,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":54,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":55,"context_line":"                },"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAT3%2F%2F9Ug%3D","line":52,"updated":"2013-12-26 10:04:26.000000000","message":"We needn\u0027t any \u0027injected_*\u0027 attributes. Those attributes used by personality extension. But that extension already deleted from v3 api.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"4c346a46bdb3d97e758822c2b173496364b3e0f8","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":50,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":51,"context_line":"                },"},{"line_number":52,"context_line":"                \u0027injected_files\u0027: {"},{"line_number":53,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":54,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]*$\u0027"},{"line_number":55,"context_line":"                },"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F97E%3D","line":52,"in_reply_to":"AAAAT3%2F%2F9Ug%3D","updated":"2014-01-06 04:16:51.000000000","message":"Done. Thank you.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ff4ca7e330fe2307b3125058bc8e47c9885afe92","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            },"},{"line_number":77,"context_line":"        },"},{"line_number":78,"context_line":"    },"},{"line_number":79,"context_line":"    \u0027required\u0027: [\u0027quota_class_set\u0027],"},{"line_number":80,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAT3%2F%2F4xk%3D","line":79,"updated":"2013-12-28 00:03:21.000000000","message":"we should use \u0027\u0027additionalProperties\u0027: False,\u0027 for more strict check.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"4c346a46bdb3d97e758822c2b173496364b3e0f8","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            },"},{"line_number":77,"context_line":"        },"},{"line_number":78,"context_line":"    },"},{"line_number":79,"context_line":"    \u0027required\u0027: [\u0027quota_class_set\u0027],"},{"line_number":80,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F964%3D","line":79,"in_reply_to":"AAAAT3%2F%2F4xk%3D","updated":"2014-01-06 04:16:51.000000000","message":"Done.","commit_id":"c81d34800b097ef2fff3333fc6685db83d897225"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"bc1819da035bde608b6a0d71c953883ad21e61e6","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                # class_name with white spaces only is forbidden."},{"line_number":25,"context_line":"                \u0027class_name\u0027: {"},{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9hc%3D","line":25,"updated":"2014-01-06 06:49:14.000000000","message":"What is class_name?Please show me in which code class_name is written.","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"66bd3b820f2ae2ee98ed4fc1bd77a6b89f1b3bb4","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                # class_name with white spaces only is forbidden."},{"line_number":25,"context_line":"                \u0027class_name\u0027: {"},{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F860%3D","line":25,"in_reply_to":"AAAAUH%2F%2F8%2B4%3D","updated":"2014-01-06 09:54:47.000000000","message":"Now I am proposing the patch removing this parameter from novaclient.\n\nhttps://review.openstack.org/#/c/65055/","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b38c667e567d6ced6d0b09fbb7f5e01be43b00a0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                # class_name with white spaces only is forbidden."},{"line_number":25,"context_line":"                \u0027class_name\u0027: {"},{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F8%2B4%3D","line":25,"in_reply_to":"AAAAUH%2F%2F9P0%3D","updated":"2014-01-06 09:32:50.000000000","message":"Hi Xu,\n\nI also tried this for nova v3 api, and I am sure that class_name is unused. I feel it is better to remove class_name parameter from novaclient.\nIf passing class_name \"foo\" against url which includes \"bar\" like the following, the \"id\" argument of update() is \"bar\" and \"foo\" is not used.\nSo class_name should be removed.\n\n $ curl -i \u0027http://10.21.42.65:8774/v3/os-quota-class-sets/bar\u0027 -X PUT [..] -d \u0027{\"quota_class_set\": {\"class_name\": \"foo\",\n \"instances\": 30}}\u0027\n\nI added the debug message, which outputs id and body, into the update(), the debug message is\n\n id: bar, body: {u\u0027quota_class_set\u0027: {u\u0027class_name\u0027: u\u0027foo\u0027, u\u0027instances\u0027: 30}}\n\nwhen the above curl command.","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"ebc5dd58395c312f1a4151c3eff94da299bdf783","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                # class_name with white spaces only is forbidden."},{"line_number":25,"context_line":"                \u0027class_name\u0027: {"},{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9Bg%3D","line":25,"in_reply_to":"AAAAUH%2F%2F9P0%3D","updated":"2014-01-06 09:21:14.000000000","message":"I understand, thank you.","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"d1306fc8e96bb76564d473f63bad2e6e3d48c83a","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                # class_name with white spaces only is forbidden."},{"line_number":25,"context_line":"                \u0027class_name\u0027: {"},{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9P0%3D","line":25,"in_reply_to":"AAAAUH%2F%2F9YQ%3D","updated":"2014-01-06 08:22:08.000000000","message":"Hi Ken\u0027ichi Ohmichi,\n\nWhen running the command below we can find the class_name is in the request body. So it should be checked here.\n\n$nova --debug quota-class-update demo --instances 30\n\nREQ:curl -i ... -d \u0027{\"quota_class_set\": {\"class_name\": \"demo\", \"instances\": 30}}\u0027","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"60b5d82b9d8b25180692fe79c5375ec2b5781db8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                # class_name with white spaces only is forbidden."},{"line_number":25,"context_line":"                \u0027class_name\u0027: {"},{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9YQ%3D","line":25,"in_reply_to":"AAAAUH%2F%2F9fQ%3D","updated":"2014-01-06 07:40:51.000000000","message":"\"class_name\" is not used in quota_classes.py. And if passing \"class_name\", TypeError happens at line85 in quota_classes.py.\n\nin addition, nova/tests/integrated/v3/api_samples/os-quota-class-sets/quota-classes-update-post-req.json.tpl does not contain class_name parameter.","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"1ce28b465bc99037acce746bd5e4e08ee24c5ecc","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":23,"context_line":"            \u0027properties\u0027: {"},{"line_number":24,"context_line":"                # class_name with white spaces only is forbidden."},{"line_number":25,"context_line":"                \u0027class_name\u0027: {"},{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9fQ%3D","line":25,"in_reply_to":"AAAAUH%2F%2F9hc%3D","updated":"2014-01-06 07:11:42.000000000","message":"Hi Yuiko Takada,\n\nThank you for the question. The class_name hasn\u0027t been checked in the original code, but the class_name is passed to the api in the client request.  \n\nThe request\u0027s format is like : \n\ncurl -i ... -d \u0027{\"quota_class_set\": {\"class_name\": \"demo\", \"instances\": 10}}\u0027","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"0158c6a26837851673ccf3a4cbf74bc560d851c6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"},{"line_number":29,"context_line":"                },"},{"line_number":30,"context_line":"                # The quotas are all required to be positive data."},{"line_number":31,"context_line":"                \u0027instances\u0027: {"},{"line_number":32,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":33,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]+$\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9gg%3D","line":30,"updated":"2014-01-06 07:00:45.000000000","message":"except fixed_ips?","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"1ce28b465bc99037acce746bd5e4e08ee24c5ecc","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[0-9a-zA-Z-._ ]*[a-zA-Z0-9_-]+[a-zA-Z0-9. _-]*$\u0027"},{"line_number":29,"context_line":"                },"},{"line_number":30,"context_line":"                # The quotas are all required to be positive data."},{"line_number":31,"context_line":"                \u0027instances\u0027: {"},{"line_number":32,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"},{"line_number":33,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]+$\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9dg%3D","line":30,"in_reply_to":"AAAAUH%2F%2F9gg%3D","updated":"2014-01-06 07:11:42.000000000","message":"It\u0027s right, maybe the comment should be changed.\n\nIn fact the default fixed_ips quota is set to \u0027-1\u0027 to not limit the number of fixed_ip. So we should make -1 pass.\nThe reason why fixed_ips is set to \u0027-1\u0027 by default can be found here.\nhttps://bugs.launchpad.net/nova/+bug/1161190","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"60b5d82b9d8b25180692fe79c5375ec2b5781db8","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    \u0027pattern\u0027: \u0027^[0-9]+$\u0027,"},{"line_number":75,"context_line":"                    \u0027minimum\u0027: 1"},{"line_number":76,"context_line":"                },"},{"line_number":77,"context_line":"            },"},{"line_number":78,"context_line":"        },"},{"line_number":79,"context_line":"    },"},{"line_number":80,"context_line":"    \u0027required\u0027: [\u0027quota_class_set\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2F9aI%3D","line":77,"updated":"2014-01-06 07:40:51.000000000","message":"here also needs\n\n\u0027additionalProperties\u0027: False,","commit_id":"28dde0d00e040ebf584f472e743013346ba98fc8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ce181c9e13050102cd49e4ef80e2bc878afd4a08","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[a-zA-Z0-9-._ ]*[a-zA-Z0-9-._]+[a-zA-Z0-9-._ ]*$\u0027"},{"line_number":29,"context_line":"                },"},{"line_number":30,"context_line":"                # The quotas are all required to be positive data."},{"line_number":31,"context_line":"                \u0027instances\u0027: {"},{"line_number":32,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2F5RA%3D","line":29,"updated":"2014-01-07 04:58:20.000000000","message":"class_name is unnecessary because this parameter was specified by novaclient only.\n\nHowever, this parameter is unused in Nova and the patch, which removes this parameter from novaclient, has been approved now.\n\nhttps://review.openstack.org/#/c/65055/","commit_id":"4562663843d5de88528335230bea641b6045b7bb"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"c4fa2edcb46411d2dd8acf3f8ec2a84a0e7f92e4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                    \u0027type\u0027: \u0027string\u0027, \u0027minLength\u0027: 1, \u0027maxLength\u0027: 255,"},{"line_number":27,"context_line":"                    \u0027pattern\u0027:"},{"line_number":28,"context_line":"                    \u0027^[a-zA-Z0-9-._ ]*[a-zA-Z0-9-._]+[a-zA-Z0-9-._ ]*$\u0027"},{"line_number":29,"context_line":"                },"},{"line_number":30,"context_line":"                # The quotas are all required to be positive data."},{"line_number":31,"context_line":"                \u0027instances\u0027: {"},{"line_number":32,"context_line":"                    \u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2F5LI%3D","line":29,"in_reply_to":"AAAAUH%2F%2F5RA%3D","updated":"2014-01-07 05:57:19.000000000","message":"Thank you. I will delete the class_name property in the next patch.","commit_id":"4562663843d5de88528335230bea641b6045b7bb"}],"nova/tests/api/openstack/compute/plugins/v3/test_quota_classes.py":[{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"9b9a944cc39ae3958436331a11361ceec26e430b","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/os-quota-class-sets/test_class\u0027,"},{"line_number":89,"context_line":"                                        use_admin_context\u003dTrue)"},{"line_number":90,"context_line":"        res_dict \u003d self.controller.update(req, \u0027test_class\u0027, body\u003dres_body)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self.assertEqual(res_body, res_dict)"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F9jSU%3D","line":90,"updated":"2014-02-06 04:24:34.000000000","message":"I think the 3rd parameter should be as \u0027body\u003dreq_body\u0027.","commit_id":"8fd9d6ccc010e57174daa00b35bded1adee76f34"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"8cc2acdc21ee8df3481495aabed989e61d4fd2b7","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/os-quota-class-sets/test_class\u0027,"},{"line_number":89,"context_line":"                                        use_admin_context\u003dTrue)"},{"line_number":90,"context_line":"        res_dict \u003d self.controller.update(req, \u0027test_class\u0027, body\u003dres_body)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self.assertEqual(res_body, res_dict)"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F9jQg%3D","line":90,"in_reply_to":"AAAAUH%2F9jSU%3D","updated":"2014-02-06 04:29:12.000000000","message":"Thanks, you are right. I will modify it.","commit_id":"8fd9d6ccc010e57174daa00b35bded1adee76f34"}]}
