)]}'
{"tempest/api/compute/volumes/test_attach_volume.py":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"4e39479fe1cf5dfef3d32893e1928748fc238a87","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            device\u003d\u0027/dev/%s\u0027 % self.device)"},{"line_number":85,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":86,"context_line":"        self.volumes_client.wait_for_volume_status(volume[\u0027id\u0027], \u0027in-use\u0027)"},{"line_number":87,"context_line":"        #Verify the response attributes to confirm the backward compatibility"},{"line_number":88,"context_line":"        self._verify_attach_volume_attributes(body)"},{"line_number":89,"context_line":"        self.attached \u003d True"},{"line_number":90,"context_line":"        self.addCleanup(self._detach, server[\u0027id\u0027], volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2BxNg%3D","line":87,"updated":"2014-03-12 09:31:40.000000000","message":"A space is necessary after #","commit_id":"02f7ee155b26c43f664d7027e44558b39431a55f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c9164f08eba6ed7401f4dd2d50c8055d2ccce9ad","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            device\u003d\u0027/dev/%s\u0027 % self.device)"},{"line_number":85,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":86,"context_line":"        self.volumes_client.wait_for_volume_status(volume[\u0027id\u0027], \u0027in-use\u0027)"},{"line_number":87,"context_line":"        #Verify the response attributes to confirm the backward compatibility"},{"line_number":88,"context_line":"        self._verify_attach_volume_attributes(body)"},{"line_number":89,"context_line":"        self.attached \u003d True"},{"line_number":90,"context_line":"        self.addCleanup(self._detach, server[\u0027id\u0027], volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2Bw0k%3D","line":87,"in_reply_to":"AAAAVn%2F%2BxNg%3D","updated":"2014-03-12 10:34:17.000000000","message":"I will do in next patch","commit_id":"02f7ee155b26c43f664d7027e44558b39431a55f"}],"tempest/api/compute/volumes/test_volumes_list.py":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"4e39479fe1cf5dfef3d32893e1928748fc238a87","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        # Fetch all Volumes"},{"line_number":92,"context_line":"        resp, fetched_list \u003d self.client.list_volumes()"},{"line_number":93,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":94,"context_line":"        #Check the attributes of the list of volume to"},{"line_number":95,"context_line":"        #confirm the backward compatibility"},{"line_number":96,"context_line":"        self.assertTrue(len(fetched_list) \u003e 0)"},{"line_number":97,"context_line":"        self._verify_volume_list_attributes(fetched_list[0])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2BxOM%3D","line":94,"updated":"2014-03-12 09:31:40.000000000","message":"A space is necessary after #","commit_id":"02f7ee155b26c43f664d7027e44558b39431a55f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c9164f08eba6ed7401f4dd2d50c8055d2ccce9ad","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        # Fetch all Volumes"},{"line_number":92,"context_line":"        resp, fetched_list \u003d self.client.list_volumes()"},{"line_number":93,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":94,"context_line":"        #Check the attributes of the list of volume to"},{"line_number":95,"context_line":"        #confirm the backward compatibility"},{"line_number":96,"context_line":"        self.assertTrue(len(fetched_list) \u003e 0)"},{"line_number":97,"context_line":"        self._verify_volume_list_attributes(fetched_list[0])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2Bw0o%3D","line":94,"in_reply_to":"AAAAVn%2F%2BxOM%3D","updated":"2014-03-12 10:34:17.000000000","message":"I will do in next patch","commit_id":"02f7ee155b26c43f664d7027e44558b39431a55f"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"4e39479fe1cf5dfef3d32893e1928748fc238a87","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        resp, fetched_list \u003d self.client.list_volumes()"},{"line_number":93,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":94,"context_line":"        #Check the attributes of the list of volume to"},{"line_number":95,"context_line":"        #confirm the backward compatibility"},{"line_number":96,"context_line":"        self.assertTrue(len(fetched_list) \u003e 0)"},{"line_number":97,"context_line":"        self._verify_volume_list_attributes(fetched_list[0])"},{"line_number":98,"context_line":"        # Now check if all the Volumes created in setup are in fetched list"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2BxOI%3D","line":95,"updated":"2014-03-12 09:31:40.000000000","message":"ditto","commit_id":"02f7ee155b26c43f664d7027e44558b39431a55f"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"4e39479fe1cf5dfef3d32893e1928748fc238a87","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Fetch all Volumes"},{"line_number":112,"context_line":"        resp, fetched_list \u003d self.client.list_volumes_with_detail()"},{"line_number":113,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":114,"context_line":"        #Check the attributes of the detail list of volume to"},{"line_number":115,"context_line":"        #confirm the backward compatibility"},{"line_number":116,"context_line":"        self.assertTrue(len(fetched_list) \u003e 0)"},{"line_number":117,"context_line":"        self._verify_volume_list_attributes(fetched_list[0])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2BxOE%3D","line":114,"updated":"2014-03-12 09:31:40.000000000","message":"ditto","commit_id":"02f7ee155b26c43f664d7027e44558b39431a55f"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"4e39479fe1cf5dfef3d32893e1928748fc238a87","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        resp, fetched_list \u003d self.client.list_volumes_with_detail()"},{"line_number":113,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":114,"context_line":"        #Check the attributes of the detail list of volume to"},{"line_number":115,"context_line":"        #confirm the backward compatibility"},{"line_number":116,"context_line":"        self.assertTrue(len(fetched_list) \u003e 0)"},{"line_number":117,"context_line":"        self._verify_volume_list_attributes(fetched_list[0])"},{"line_number":118,"context_line":"        # Now check if all the Volumes created in setup are in fetched list"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2BxN0%3D","line":115,"updated":"2014-03-12 09:31:40.000000000","message":"ditto","commit_id":"02f7ee155b26c43f664d7027e44558b39431a55f"}],"tempest/api_schema/compute/v2/volumes.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"139d53d7a734bacc56649b0cff9ce56ccfa37c18","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027items\u0027: {"},{"line_number":66,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":67,"context_line":"                    \u0027properties\u0027: {"},{"line_number":68,"context_line":"                        # NOTE: Now the type of \u0027id\u0027 is integer, but"},{"line_number":69,"context_line":"                        # here allows \u0027string\u0027 also because we will be"},{"line_number":70,"context_line":"                        # able to change it to \u0027uuid\u0027 in the future."},{"line_number":71,"context_line":"                        \u0027id\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]},"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FY64%3D","line":68,"updated":"2014-03-18 07:28:09.000000000","message":"From the commit log, id is uuid. so this NOTE seems wrong.","commit_id":"b8a3d5c7d6f8e3cbcfad35671698df1db20b07c6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"74d422f3f76f92349f8e6a7b838e18bbe624e716","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027items\u0027: {"},{"line_number":66,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":67,"context_line":"                    \u0027properties\u0027: {"},{"line_number":68,"context_line":"                        # NOTE: Now the type of \u0027id\u0027 is integer, but"},{"line_number":69,"context_line":"                        # here allows \u0027string\u0027 also because we will be"},{"line_number":70,"context_line":"                        # able to change it to \u0027uuid\u0027 in the future."},{"line_number":71,"context_line":"                        \u0027id\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]},"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FYaw%3D","line":68,"in_reply_to":"AAAAWH%2F%2FY64%3D","updated":"2014-03-18 08:49:08.000000000","message":"Thanks for noticing this. I have checked and volume_id always \u0027uuid\u0027 type. while attaching volume also it is being validated as \u0027UUID\u0027.\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/contrib/volumes.py#L403","commit_id":"b8a3d5c7d6f8e3cbcfad35671698df1db20b07c6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"72474b4438806384bf630a6074a085f420210bf3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                    \u0027device\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":82,"context_line":"                                    \u0027volumeId\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":83,"context_line":"                                    \u0027serverId\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]}"},{"line_number":84,"context_line":"                                }"},{"line_number":85,"context_line":"                            }"},{"line_number":86,"context_line":"                        }"},{"line_number":87,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2B00A%3D","line":84,"updated":"2014-03-24 00:36:28.000000000","message":"Are the above \u0027id\u0027 \u0027device\u0027 \u0027volumeId\u0027 and \u0027serverId\u0027 not required?","commit_id":"06e3cc8b241e714a34127e44e58518b9121c5f50"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"38302b0b8e2ff67a14d0882c45da34a3dab3ea88","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                    \u0027device\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":82,"context_line":"                                    \u0027volumeId\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":83,"context_line":"                                    \u0027serverId\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]}"},{"line_number":84,"context_line":"                                }"},{"line_number":85,"context_line":"                            }"},{"line_number":86,"context_line":"                        }"},{"line_number":87,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2Bz%2Fw%3D","line":84,"in_reply_to":"AAAAWH%2F%2B00A%3D","updated":"2014-03-24 05:21:18.000000000","message":"If volume is not attached to any server then, \u0027attachments\u0027 attributes comes as empty array thats why I did not put those in \u0027required\u0027.","commit_id":"06e3cc8b241e714a34127e44e58518b9121c5f50"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5dcfb75ee9c654c36d5c449b977603c507729da2","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                    \u0027device\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":82,"context_line":"                                    \u0027volumeId\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":83,"context_line":"                                    \u0027serverId\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]}"},{"line_number":84,"context_line":"                                }"},{"line_number":85,"context_line":"                            }"},{"line_number":86,"context_line":"                        }"},{"line_number":87,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2Bz5c%3D","line":84,"in_reply_to":"AAAAWH%2F%2Bz%2BI%3D","updated":"2014-03-24 05:56:49.000000000","message":"Yes, You are right. This is really good example.\nBut in list Volume API, If there is no attachment then, \u0027attachments\u0027 attributes comes as \"[{}]\" (not \"[]\" ). So if we put those elements in \u0027required\u0027, it will fail.\n\nSorry I mentioned the \"empty array\" in above comment actually it is \"array with empty objects\".","commit_id":"06e3cc8b241e714a34127e44e58518b9121c5f50"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9ef63fe8b10344ba66c5f85be228a090240c735e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                    \u0027device\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":82,"context_line":"                                    \u0027volumeId\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":83,"context_line":"                                    \u0027serverId\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]}"},{"line_number":84,"context_line":"                                }"},{"line_number":85,"context_line":"                            }"},{"line_number":86,"context_line":"                        }"},{"line_number":87,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2Bz%2BI%3D","line":84,"in_reply_to":"AAAAWH%2F%2Bz%2Fw%3D","updated":"2014-03-24 05:30:40.000000000","message":"we can specify \u0027required\u0027 in the above case also.\nIn the following jsonschema test program, TEST01(empty array) passes without jsonschema.ValidationError. TEST02 would fail due to jsonschema.ValidationError.\n\n $ cat test.py\n import jsonschema\n schema \u003d {\n    \u0027type\u0027: \u0027array\u0027,\n    \u0027items\u0027: {\n        \u0027type\u0027: \u0027object\u0027,\n        \u0027properties\u0027: {\n            \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027}\n        },\n        \u0027required\u0027: [\u0027id\u0027]\n    }\n }\n jsonschema.validate([], schema)               -- TEST01\n jsonschema.validate([{\u0027id2\u0027}], schema)        -- TEST02\n $","commit_id":"06e3cc8b241e714a34127e44e58518b9121c5f50"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5c9e53c73cf23180a606e62cace76b0ec9b89405","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                    \u0027device\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":82,"context_line":"                                    \u0027volumeId\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":83,"context_line":"                                    \u0027serverId\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]}"},{"line_number":84,"context_line":"                                }"},{"line_number":85,"context_line":"                            }"},{"line_number":86,"context_line":"                        }"},{"line_number":87,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2Bz3s%3D","line":84,"in_reply_to":"AAAAWH%2F%2Bz4Y%3D","updated":"2014-03-24 06:16:14.000000000","message":"Done.","commit_id":"06e3cc8b241e714a34127e44e58518b9121c5f50"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dc32a29ac0800ee5563f97c6a01e3f629b2d3312","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                    \u0027device\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":82,"context_line":"                                    \u0027volumeId\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":83,"context_line":"                                    \u0027serverId\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027string\u0027]}"},{"line_number":84,"context_line":"                                }"},{"line_number":85,"context_line":"                            }"},{"line_number":86,"context_line":"                        }"},{"line_number":87,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2Bz4Y%3D","line":84,"in_reply_to":"AAAAWH%2F%2Bz5c%3D","updated":"2014-03-24 06:00:31.000000000","message":"Thanks for your explanation. I got it, that seems an API bug...\n\nThat is very important information, could you write it as NOTE on this schema?","commit_id":"06e3cc8b241e714a34127e44e58518b9121c5f50"}]}
