)]}'
{"tempest/api/compute/images/test_image_metadata.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e12838e3697cd00cdd0c803b2f56003bae8ce424","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        body \u003d cls.glance_client.create_image(name\u003dname,"},{"line_number":59,"context_line":"                                              container_format\u003d\u0027bare\u0027,"},{"line_number":60,"context_line":"                                              disk_format\u003d\u0027raw\u0027,"},{"line_number":61,"context_line":"                                              is_public\u003dFalse)[\u0027image\u0027]"},{"line_number":62,"context_line":"        cls.image_id \u003d body[\u0027id\u0027]"},{"line_number":63,"context_line":"        cls.images.append(cls.image_id)"},{"line_number":64,"context_line":"        image_file \u003d six.StringIO((\u0027*\u0027 * 1024))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_eb164654","line":61,"range":{"start_line":61,"start_character":46,"end_line":61,"end_character":61},"updated":"2016-06-04 15:27:07.000000000","message":"This fails the image schema validation in the v2 API, it has to be a string:\n\nhttp://logs.openstack.org/22/325322/3/check/gate-tempest-dsvm-full/60cd0b6/console.html#_2016-06-04_13_51_10_351\n\nhttp://developer.openstack.org/api-ref-image-v2.html#createImage-v2\n\nAnd should be visibility\u003d\u0027private\u0027.","commit_id":"4e11900ad85f4e4a991c21ef4bbc6e694eee0b02"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38dad47fe2b6bef52b3982a82a95941819804911","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        body \u003d cls.glance_client.create_image(name\u003dname,"},{"line_number":63,"context_line":"                                              container_format\u003d\u0027bare\u0027,"},{"line_number":64,"context_line":"                                              disk_format\u003d\u0027raw\u0027,"},{"line_number":65,"context_line":"                                              **kwargs)[\u0027image\u0027]"},{"line_number":66,"context_line":"        cls.image_id \u003d body[\u0027id\u0027]"},{"line_number":67,"context_line":"        cls.images.append(cls.image_id)"},{"line_number":68,"context_line":"        image_file \u003d six.StringIO((\u0027*\u0027 * 1024))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_24dd1b43","line":65,"updated":"2016-06-04 20:38:37.000000000","message":"KeyError:\n\nhttp://logs.openstack.org/22/325322/3/check/gate-tempest-dsvm-full/b3ab38c/console.html#_2016-06-04_16_22_33_177","commit_id":"72b49c103920b17ebfdea53c305e9af28d90caf1"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a4a1df3b32be74dc36eca1bbf5c24691cd9519f9","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        else:"},{"line_number":47,"context_line":"            skip_msg \u003d (\u0027%s skipped as glance v1 nor glance v2 is available\u0027 %"},{"line_number":48,"context_line":"                        cls.__name__)"},{"line_number":49,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":50,"context_line":"        cls.client \u003d cls.compute_images_client"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_63c6bd4a","line":49,"updated":"2016-06-06 19:46:21.000000000","message":"I actually think this should be an exception.InvalidConfiguration() if glance is not available it\u0027ll already be skipped at this point. If you\u0027ve configured tempest to say glance is available but disable both v2 and v2 that seems like more of a bad config file than something to skip over","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"338563b6db595f3521b4b75f2f56e5757a0e7178","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        else:"},{"line_number":47,"context_line":"            skip_msg \u003d (\u0027%s skipped as glance v1 nor glance v2 is available\u0027 %"},{"line_number":48,"context_line":"                        cls.__name__)"},{"line_number":49,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":50,"context_line":"        cls.client \u003d cls.compute_images_client"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_12ef4188","line":49,"in_reply_to":"7aa08908_63c6bd4a","updated":"2016-06-06 21:31:02.000000000","message":"Agree, will change.","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"}],"tempest/api/compute/images/test_list_image_filters.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fc7d751d8353bfd785b3acf95d33bfaabf546ac4","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            if CONF.image_feature_enabled.api_v1:"},{"line_number":77,"context_line":"                cls.glance_client.update_image(image_id, data\u003dimage_file)"},{"line_number":78,"context_line":"            else:"},{"line_number":79,"context_line":"                cls.glance_client.store_image_file(cls.image_id, image_file)"},{"line_number":80,"context_line":"            waiters.wait_for_image_status(cls.client, image_id, \u0027ACTIVE\u0027)"},{"line_number":81,"context_line":"            body \u003d cls.client.show_image(image_id)[\u0027image\u0027]"},{"line_number":82,"context_line":"            return body"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_76f992c8","line":79,"range":{"start_line":79,"start_character":51,"end_line":79,"end_character":63},"updated":"2016-06-06 00:48:49.000000000","message":"This is busted.","commit_id":"bdd204b951939109dbcd585b92b5b91a2802f8ae"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a4a1df3b32be74dc36eca1bbf5c24691cd9519f9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        else:"},{"line_number":51,"context_line":"            skip_msg \u003d (\u0027%s skipped as glance v1 nor glance v2 is available\u0027 %"},{"line_number":52,"context_line":"                        cls.__name__)"},{"line_number":53,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_63cd1d5d","line":53,"updated":"2016-06-06 19:46:21.000000000","message":"Same here we should fail not skip","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"}],"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fc7d751d8353bfd785b3acf95d33bfaabf546ac4","unresolved":false,"context_lines":[{"line_number":380,"context_line":"            kwargs \u003d properties"},{"line_number":381,"context_line":"        image_list \u003d glance_client.list_images("},{"line_number":382,"context_line":"            status\u003d\u0027active\u0027,"},{"line_number":383,"context_line":"            sort_key\u003d\u0027created_at\u0027,"},{"line_number":384,"context_line":"            sort_dir\u003d\u0027asc\u0027, **kwargs)[\u0027images\u0027]"},{"line_number":385,"context_line":"        self.assertEqual(2, len(image_list))"},{"line_number":386,"context_line":"        self.assertEqual((backup1, backup2),"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_b603fab7","line":383,"range":{"start_line":383,"start_character":12,"end_line":383,"end_character":33},"updated":"2016-06-06 00:48:49.000000000","message":"Apparently this doesn\u0027t work:\n\nhttp://logs.openstack.org/22/325322/3/check/gate-tempest-dsvm-full/f28e91a/console.html#_2016-06-05_15_37_09_215\n\nCould be a problem in the client usage.","commit_id":"bdd204b951939109dbcd585b92b5b91a2802f8ae"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a4a1df3b32be74dc36eca1bbf5c24691cd9519f9","unresolved":false,"context_lines":[{"line_number":330,"context_line":"            glance_client \u003d self.os.image_client_v2"},{"line_number":331,"context_line":"        else:"},{"line_number":332,"context_line":"            skip_msg \u003d (\u0027glance v1 nor glance v2 is available\u0027)"},{"line_number":333,"context_line":"            raise self.skipException(skip_msg)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"        backup1 \u003d data_utils.rand_name(\u0027backup-1\u0027)"},{"line_number":336,"context_line":"        resp \u003d self.client.create_backup(self.server_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_2302f56f","line":333,"updated":"2016-06-06 19:46:21.000000000","message":"And here","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"}],"tempest/api/volume/test_volumes_actions.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a4a1df3b32be74dc36eca1bbf5c24691cd9519f9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(VolumesV2ActionsTest, cls).setup_clients()"},{"line_number":32,"context_line":"        cls.client \u003d cls.volumes_client"},{"line_number":33,"context_line":"        # Check if glance v1 is available to determine which client to use."},{"line_number":34,"context_line":"        if CONF.image_feature_enabled.api_v1:"},{"line_number":35,"context_line":"            cls.image_client \u003d cls.os.image_client"},{"line_number":36,"context_line":"        elif CONF.image_feature_enabled.api_v2:"},{"line_number":37,"context_line":"            cls.image_client \u003d cls.os.image_client_v2"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_438461d3","line":34,"updated":"2016-06-06 19:46:21.000000000","message":"I think we might also want to if block this whole thing around CONF.service_available.glance, these clients are only needed for a couple of tests (which are skipped if glance is disabled) so only initialize things if we\u0027re gonna run those tests","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"338563b6db595f3521b4b75f2f56e5757a0e7178","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(VolumesV2ActionsTest, cls).setup_clients()"},{"line_number":32,"context_line":"        cls.client \u003d cls.volumes_client"},{"line_number":33,"context_line":"        # Check if glance v1 is available to determine which client to use."},{"line_number":34,"context_line":"        if CONF.image_feature_enabled.api_v1:"},{"line_number":35,"context_line":"            cls.image_client \u003d cls.os.image_client"},{"line_number":36,"context_line":"        elif CONF.image_feature_enabled.api_v2:"},{"line_number":37,"context_line":"            cls.image_client \u003d cls.os.image_client_v2"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_d29499e3","line":34,"in_reply_to":"7aa08908_438461d3","updated":"2016-06-06 21:31:02.000000000","message":"Will do.","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a4a1df3b32be74dc36eca1bbf5c24691cd9519f9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        else:"},{"line_number":39,"context_line":"            skip_msg \u003d (\u0027%s skipped as glance v1 nor glance v2 is available\u0027 %"},{"line_number":40,"context_line":"                        cls.__name__)"},{"line_number":41,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @classmethod"},{"line_number":44,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_e3158d9b","line":41,"updated":"2016-06-06 19:46:21.000000000","message":"and here","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bf043502d515b5b1ea6783b91b6b5660c5d91197","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"import testtools"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.api.volume import base"},{"line_number":18,"context_line":"from tempest.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_544536b1","line":15,"updated":"2016-06-06 21:47:26.000000000","message":"rebase failure here, will fix","commit_id":"2aa19d4d7065dfae12153a687d327341e07638c3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2823291072166ea0d54977d8dca75fcec4ac21a8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"import testtools"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.api.volume import base"},{"line_number":18,"context_line":"from tempest.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_348a2ac0","line":15,"in_reply_to":"7aa08908_544536b1","updated":"2016-06-06 21:51:30.000000000","message":"Nevermind, faked myself out.","commit_id":"2aa19d4d7065dfae12153a687d327341e07638c3"}],"tempest/scenario/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fc7d751d8353bfd785b3acf95d33bfaabf546ac4","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        else:"},{"line_number":405,"context_line":"            params[\u0027visibility\u0027] \u003d \u0027private\u0027"},{"line_number":406,"context_line":"        params[\u0027properties\u0027] \u003d properties"},{"line_number":407,"context_line":"        body \u003d self.image_client.create_image(**params)"},{"line_number":408,"context_line":"        image \u003d body[\u0027image\u0027] if \u0027image\u0027 in body else body"},{"line_number":409,"context_line":"        self.addCleanup(self.image_client.delete_image, image[\u0027id\u0027])"},{"line_number":410,"context_line":"        self.assertEqual(\"queued\", image[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_96007eac","line":407,"updated":"2016-06-06 00:48:49.000000000","message":"Looks like passing \u0027properties\u0027 for v2 doesn\u0027t work:\n\nhttp://logs.openstack.org/22/325322/3/check/gate-tempest-dsvm-full/f28e91a/console.html#_2016-06-05_15_37_09_236\n\nSo \u0027properties\u0027 needs to be flattened for the v2 API.","commit_id":"bdd204b951939109dbcd585b92b5b91a2802f8ae"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a4a1df3b32be74dc36eca1bbf5c24691cd9519f9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            else:"},{"line_number":59,"context_line":"                skip_msg \u003d (\u0027%s skipped as glance v1 nor glance v2 is \u0027"},{"line_number":60,"context_line":"                            \u0027available\u0027 % cls.__name__)"},{"line_number":61,"context_line":"                raise cls.skipException(skip_msg)"},{"line_number":62,"context_line":"        # Compute image client"},{"line_number":63,"context_line":"        cls.compute_images_client \u003d cls.manager.compute_images_client"},{"line_number":64,"context_line":"        cls.keypairs_client \u003d cls.manager.keypairs_client"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_838ac9bd","line":61,"updated":"2016-06-06 19:46:21.000000000","message":"and here this should raise an invalid config","commit_id":"1a8505479bc1c9e21ee8d4fd36bd15a494f87fda"}]}
