)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b3f48462a91f8aa0b0d81e23ffa40045926b274c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fa31d9ce_68d458eb","line":15,"updated":"2017-02-15 19:14:14.000000000","message":"This should probably depend on the https://review.openstack.org/#/c/434384/ patch which enables signature verification for the barbican tempest plugin.","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"152a342782d9da76915c22b92e893ce16c801e14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"da36d5c6_3b768aa4","line":15,"in_reply_to":"fa31d9ce_68d458eb","updated":"2017-02-22 21:59:26.000000000","message":"This has been done, and the other patch has merged.","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"}],"barbican_tempest_plugin/clients.py":[{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"69002a01ecdbc96b34edbf2f9f1f6d990253f8db","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class Manager(clients.Manager):"},{"line_number":26,"context_line":"    def __init__(self,"},{"line_number":27,"context_line":"                 credentials\u003dADMIN_CREDS):"},{"line_number":28,"context_line":"        super(Manager, self).__init__(credentials)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_4a4d0b3d","line":27,"range":{"start_line":27,"start_character":17,"end_line":27,"end_character":42},"updated":"2017-02-23 16:41:17.000000000","message":"nit: can this go on the previous line?","commit_id":"a9fe627937427441ba49263421e2175c6d31f778"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"2a96625f2e0e8c010ec5edcf10a21d37aa3f4063","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class Manager(clients.Manager):"},{"line_number":26,"context_line":"    def __init__(self,"},{"line_number":27,"context_line":"                 credentials\u003dADMIN_CREDS):"},{"line_number":28,"context_line":"        super(Manager, self).__init__(credentials)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_637595f8","line":27,"range":{"start_line":27,"start_character":17,"end_line":27,"end_character":42},"in_reply_to":"da36d5c6_4a4d0b3d","updated":"2017-02-24 14:45:39.000000000","message":"Done","commit_id":"a9fe627937427441ba49263421e2175c6d31f778"}],"barbican_tempest_plugin/tests/scenario/barbican_manager.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"c1d12b4be8bb5c77f47456d868edd9b9291c23b0","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class BarbicanScenarioTest(mgr.ScenarioTest):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    credentials \u003d (\u0027admin\u0027, )"},{"line_number":27,"context_line":"    manager \u003d clients.Manager()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_3f5a3151","line":26,"updated":"2017-02-21 16:04:36.000000000","message":"I think we should use the \"primary\" user instead, and then give this user \"creator\" permissions.  This better reflects how this feature is used (that is, not only admins can upload certificates).","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"018930d412bf679fef771929e47dff8c442a997c","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class BarbicanScenarioTest(mgr.ScenarioTest):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    credentials \u003d (\u0027admin\u0027, )"},{"line_number":27,"context_line":"    manager \u003d clients.Manager()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_fb5312e0","line":26,"in_reply_to":"da36d5c6_3f5a3151","updated":"2017-02-22 21:59:08.000000000","message":"Done","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"}],"barbican_tempest_plugin/tests/scenario/test_image_signing.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b3f48462a91f8aa0b0d81e23ffa40045926b274c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \"\"\"This scenario tests image signature verification"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    The test follows these steps:"},{"line_number":40,"context_line":"        * Create an asymmetric keypair"},{"line_number":41,"context_line":"        * Sign an image file with the private key"},{"line_number":42,"context_line":"        * Create a certificate with the public key"},{"line_number":43,"context_line":"        * Store the certificate in Barbican"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_08ef5c1e","line":40,"updated":"2017-02-15 19:14:14.000000000","message":"I think it makes more sense to move this doc string down to the \"test_signed_image_upload_and_boot\" method, since presumably there will be additional tests in this class which will follow slightly different paths.","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"152a342782d9da76915c22b92e893ce16c801e14","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \"\"\"This scenario tests image signature verification"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    The test follows these steps:"},{"line_number":40,"context_line":"        * Create an asymmetric keypair"},{"line_number":41,"context_line":"        * Sign an image file with the private key"},{"line_number":42,"context_line":"        * Create a certificate with the public key"},{"line_number":43,"context_line":"        * Store the certificate in Barbican"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_7b6c82d0","line":40,"in_reply_to":"fa31d9ce_08ef5c1e","updated":"2017-02-22 21:59:26.000000000","message":"Done","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b3f48462a91f8aa0b0d81e23ffa40045926b274c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        * Store the certificate in Barbican"},{"line_number":44,"context_line":"        * Store the signed image in Glance"},{"line_number":45,"context_line":"        * Boot the signed image"},{"line_number":46,"context_line":"        * Verify the instance using SSH"},{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_e83928a5","line":46,"range":{"start_line":46,"start_character":30,"end_line":46,"end_character":39},"updated":"2017-02-15 19:14:14.000000000","message":"SSH doesn\u0027t appear to be used yet.  Either this line should be removed, or SSH testing should be added.","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"152a342782d9da76915c22b92e893ce16c801e14","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        * Store the certificate in Barbican"},{"line_number":44,"context_line":"        * Store the signed image in Glance"},{"line_number":45,"context_line":"        * Boot the signed image"},{"line_number":46,"context_line":"        * Verify the instance using SSH"},{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_9b7136ab","line":46,"range":{"start_line":46,"start_character":30,"end_line":46,"end_character":39},"in_reply_to":"fa31d9ce_e83928a5","updated":"2017-02-22 21:59:26.000000000","message":"Done","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b3f48462a91f8aa0b0d81e23ffa40045926b274c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            self.img_file,"},{"line_number":140,"context_line":"            disk_format\u003dCONF.scenario.img_disk_format,"},{"line_number":141,"context_line":"            properties\u003dimg_properties"},{"line_number":142,"context_line":"        )"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":145,"context_line":"        self.security_group \u003d self._create_security_group()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_68fb7879","line":142,"updated":"2017-02-15 19:14:14.000000000","message":"Should a check be added to check on the status of the image, to confirm that it has been uploaded successfully?","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b3f48462a91f8aa0b0d81e23ffa40045926b274c","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                                           key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":150,"context_line":"                                           security_groups\u003dsecurity_groups,"},{"line_number":151,"context_line":"                                           wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":152,"context_line":"        self.servers_client.delete_server(self.instance[\u0027id\u0027])"},{"line_number":153,"context_line":"        self.secret_client.delete_secret(self.signing_cert_uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_a54d99c5","line":152,"updated":"2017-02-15 19:14:14.000000000","message":"Should the image also be deleted?","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"152a342782d9da76915c22b92e893ce16c801e14","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                                           key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":150,"context_line":"                                           security_groups\u003dsecurity_groups,"},{"line_number":151,"context_line":"                                           wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":152,"context_line":"        self.servers_client.delete_server(self.instance[\u0027id\u0027])"},{"line_number":153,"context_line":"        self.secret_client.delete_secret(self.signing_cert_uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_5bf09efe","line":152,"in_reply_to":"fa31d9ce_a54d99c5","updated":"2017-02-22 21:59:26.000000000","message":"The image doesn\u0027t need to be deleted here, because the _image_create method has a line to cleanup the image.\n\nhttps://github.com/openstack/tempest/blob/master/tempest/scenario/manager.py#L385","commit_id":"ab5967b630050f60535ded0c74a4a26fdb65c742"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"f2dda72a3fce6127e6e9da9c7812824ed3bbe323","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        return cert"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _store_cert(self, cert):"},{"line_number":76,"context_line":"        der_encoding \u003d cert.public_bytes(encoding\u003dserialization.Encoding.DER)"},{"line_number":77,"context_line":"        cert_b64 \u003d base64.b64encode(der_encoding)"},{"line_number":78,"context_line":"        expire_time \u003d (datetime.utcnow() + timedelta(days\u003d5))"},{"line_number":79,"context_line":"        result \u003d self.secret_client.create_secret("}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_02b8b2e4","line":76,"updated":"2017-02-21 16:11:41.000000000","message":"The certificate should be encoded in PEM format instead of DER format, since it is going directly to barbican instead of through castellan.\n\nhttps://github.com/openstack/castellan/blob/master/castellan/key_manager/barbican_key_manager.py#L299","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"a1757df2fef4bf40280e7ea4d948abc5f985fbbd","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                      image_id\u003dimg_uuid,"},{"line_number":137,"context_line":"                                      key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":138,"context_line":"                                      security_groups\u003dsecurity_groups,"},{"line_number":139,"context_line":"                                      wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":140,"context_line":"        self.servers_client.delete_server(instance[\u0027id\u0027])"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @test.idempotent_id(\u00277fff3fb3-91d9-4fd0-bc7c-0204f1f181cc\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_1182fe00","line":139,"updated":"2017-02-20 02:26:05.000000000","message":"Looking at the n-cpu logs, looks like there\u0027s an error retrieving the certificate.  Are the credentials for uploading the cert different than the ones used for booting the server?","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"d6a2e461a0c07c16ff4490044d3825f433b93c99","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                      image_id\u003dimg_uuid,"},{"line_number":137,"context_line":"                                      key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":138,"context_line":"                                      security_groups\u003dsecurity_groups,"},{"line_number":139,"context_line":"                                      wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":140,"context_line":"        self.servers_client.delete_server(instance[\u0027id\u0027])"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @test.idempotent_id(\u00277fff3fb3-91d9-4fd0-bc7c-0204f1f181cc\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_96e248d4","line":139,"in_reply_to":"da36d5c6_1182fe00","updated":"2017-02-20 20:07:12.000000000","message":"It looks like when the cert is uploaded it uses the \"tempest-sec-XXX\" user\n(see https://github.com/openstack/barbican-tempest-plugin/blob/master/barbican_tempest_plugin/services/key_manager/json/secret_client.py#L29 ) and when the cert is retrieved it uses the user created for the test case, which is why certificate retrieval fails.","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"c1d12b4be8bb5c77f47456d868edd9b9291c23b0","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                      image_id\u003dimg_uuid,"},{"line_number":137,"context_line":"                                      key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":138,"context_line":"                                      security_groups\u003dsecurity_groups,"},{"line_number":139,"context_line":"                                      wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":140,"context_line":"        self.servers_client.delete_server(instance[\u0027id\u0027])"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @test.idempotent_id(\u00277fff3fb3-91d9-4fd0-bc7c-0204f1f181cc\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_dfb67589","line":139,"in_reply_to":"da36d5c6_96e248d4","updated":"2017-02-21 16:04:36.000000000","message":"Actually, ignore my previous comment.\n\nThere are two separate users who interact with barbican.  I think the admin user uploads the certificate, and then the primary user tries to access it but doesn\u0027t have permission.\n\nI was able to get the certificate retrieved properly in my local barbican_tempest_plugin setup by adding the following line to tempest.conf and changing the credentials from \"admin\" to \"primary\" in the manager file:\n\n[auth]\ntempest_roles\u003dcreator\n\nIn order to do this in tempest, we\u0027ll need to add a line to the pre_test_hook.sh script to add this line.  This line gives \"creator\" privileges to all dynamically created tempest users.  Something like this:\n\nhttp://git.openstack.org/cgit/openstack-dev/devstack/tree/lib/tempest#n559","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"018930d412bf679fef771929e47dff8c442a997c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                                      image_id\u003dimg_uuid,"},{"line_number":137,"context_line":"                                      key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":138,"context_line":"                                      security_groups\u003dsecurity_groups,"},{"line_number":139,"context_line":"                                      wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":140,"context_line":"        self.servers_client.delete_server(instance[\u0027id\u0027])"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @test.idempotent_id(\u00277fff3fb3-91d9-4fd0-bc7c-0204f1f181cc\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_7b3f2287","line":139,"in_reply_to":"da36d5c6_dfb67589","updated":"2017-02-22 21:59:08.000000000","message":"Done","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"a1757df2fef4bf40280e7ea4d948abc5f985fbbd","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                                      image_id\u003dimg_uuid,"},{"line_number":158,"context_line":"                                      key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":159,"context_line":"                                      security_groups\u003dsecurity_groups,"},{"line_number":160,"context_line":"                                      wait_until\u003d\u0027ERROR\u0027)"},{"line_number":161,"context_line":"        self.servers_client.delete_server(instance[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_f1a56ab5","line":160,"updated":"2017-02-20 02:26:05.000000000","message":"Were you able to test this locally?  I am not sure this will work.  Might be better to follow an assertRaises pattern, like in the negative servers tests:\n\nhttps://github.com/openstack/tempest/blob/master/tempest/api/compute/servers/test_servers_negative.py","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"018930d412bf679fef771929e47dff8c442a997c","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                                      image_id\u003dimg_uuid,"},{"line_number":158,"context_line":"                                      key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":159,"context_line":"                                      security_groups\u003dsecurity_groups,"},{"line_number":160,"context_line":"                                      wait_until\u003d\u0027ERROR\u0027)"},{"line_number":161,"context_line":"        self.servers_client.delete_server(instance[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_3b392aa5","line":160,"in_reply_to":"da36d5c6_b454b254","updated":"2017-02-22 21:59:08.000000000","message":"Done","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"d6a2e461a0c07c16ff4490044d3825f433b93c99","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                                      image_id\u003dimg_uuid,"},{"line_number":158,"context_line":"                                      key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":159,"context_line":"                                      security_groups\u003dsecurity_groups,"},{"line_number":160,"context_line":"                                      wait_until\u003d\u0027ERROR\u0027)"},{"line_number":161,"context_line":"        self.servers_client.delete_server(instance[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_b454b254","line":160,"in_reply_to":"da36d5c6_f1a56ab5","updated":"2017-02-20 20:07:12.000000000","message":"Agreed. I think it would be best if we can prove that the failure occurred with a SignatureVerificationError\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/image/glance.py#n325","commit_id":"524727dda6a98ee481c1e079ebe3f83c2290d1e8"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"e0b4024d1ec6d8a139496663584a230a8f7f4bd5","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":155,"context_line":"        self.security_group \u003d self._create_security_group()"},{"line_number":156,"context_line":"        security_groups \u003d [{\u0027name\u0027: self.security_group[\u0027name\u0027]}]"},{"line_number":157,"context_line":"        self.assertRaises(exceptions.BuildErrorException,"},{"line_number":158,"context_line":"                          self.create_server,"},{"line_number":159,"context_line":"                          name\u003d\u0027signed_img_server\u0027,"},{"line_number":160,"context_line":"                          image_id\u003dimg_uuid,"}],"source_content_type":"text/x-python","patch_set":10,"id":"da36d5c6_449c56c0","line":157,"updated":"2017-02-22 14:03:14.000000000","message":"If you want to check that image signing failed, you could use assertRaisesRegex here, since Tempest\u0027s error message will contain the signature verification error message from Nova.","commit_id":"a24265af3a49404e4a204237847bed79c55c7356"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b0a878cb265ad8c24ba309268ed47a7ced2acf92","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":155,"context_line":"        self.security_group \u003d self._create_security_group()"},{"line_number":156,"context_line":"        security_groups \u003d [{\u0027name\u0027: self.security_group[\u0027name\u0027]}]"},{"line_number":157,"context_line":"        self.assertRaises(exceptions.BuildErrorException,"},{"line_number":158,"context_line":"                          self.create_server,"},{"line_number":159,"context_line":"                          name\u003d\u0027signed_img_server\u0027,"},{"line_number":160,"context_line":"                          image_id\u003dimg_uuid,"}],"source_content_type":"text/x-python","patch_set":10,"id":"da36d5c6_fb6a3280","line":157,"in_reply_to":"da36d5c6_10ee18ec","updated":"2017-02-22 21:58:55.000000000","message":"Done","commit_id":"a24265af3a49404e4a204237847bed79c55c7356"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"fc27d9722335ebbe929072a48e9cf616d7881d8b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":155,"context_line":"        self.security_group \u003d self._create_security_group()"},{"line_number":156,"context_line":"        security_groups \u003d [{\u0027name\u0027: self.security_group[\u0027name\u0027]}]"},{"line_number":157,"context_line":"        self.assertRaises(exceptions.BuildErrorException,"},{"line_number":158,"context_line":"                          self.create_server,"},{"line_number":159,"context_line":"                          name\u003d\u0027signed_img_server\u0027,"},{"line_number":160,"context_line":"                          image_id\u003dimg_uuid,"}],"source_content_type":"text/x-python","patch_set":10,"id":"da36d5c6_10ee18ec","line":157,"in_reply_to":"da36d5c6_449c56c0","updated":"2017-02-22 15:17:02.000000000","message":"That\u0027s a good plan.","commit_id":"a24265af3a49404e4a204237847bed79c55c7356"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"69002a01ecdbc96b34edbf2f9f1f6d990253f8db","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            img_uuid, metadata"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        self.assertRaisesRegex(exceptions.BuildErrorException,"},{"line_number":171,"context_line":"                               \"Signature verification for the image failed\","},{"line_number":172,"context_line":"                               self.create_server,"},{"line_number":173,"context_line":"                               image_id\u003dimg_uuid)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_3eaf3c2b","line":170,"updated":"2017-02-23 16:41:17.000000000","message":"Might be helpful here to wrap this assertRaisesRegex in a try block, and print or assert a helpful statement that suggests maybe the test failed because image signing was turned off","commit_id":"a9fe627937427441ba49263421e2175c6d31f778"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"2a96625f2e0e8c010ec5edcf10a21d37aa3f4063","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            img_uuid, metadata"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        self.assertRaisesRegex(exceptions.BuildErrorException,"},{"line_number":171,"context_line":"                               \"Signature verification for the image failed\","},{"line_number":172,"context_line":"                               self.create_server,"},{"line_number":173,"context_line":"                               image_id\u003dimg_uuid)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_ccb74d38","line":170,"in_reply_to":"da36d5c6_3eaf3c2b","updated":"2017-02-24 14:45:39.000000000","message":"I\u0027ll add more detail in the doc string to explain why this test would fail, and how nova.conf should be configured in order to enable signature verification.","commit_id":"a9fe627937427441ba49263421e2175c6d31f778"},{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"a7d6be9475a4cd553f56137291b71e9ef2756c84","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    def test_signed_image_upload_boot_failure(self):"},{"line_number":160,"context_line":"        \"\"\"Test that Nova refuses to boot an incorrectly signed image."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        If this succeeds instead of throwing an exception, it is likely that"},{"line_number":163,"context_line":"        signature verification is not turned on.  To turn on signature"},{"line_number":164,"context_line":"        verification, set verify_glance_signatures\u003dTrue in the nova"},{"line_number":165,"context_line":"        configuration file under the [glance] section."}],"source_content_type":"text/x-python","patch_set":15,"id":"da36d5c6_12e69216","line":162,"range":{"start_line":162,"start_character":11,"end_line":162,"end_character":15},"updated":"2017-02-27 14:41:34.000000000","message":"It might be good to clarify \"this\" as the create_server call. As written it implies \"this\" is the test itself.","commit_id":"1d5660c3bd37001745666091cd6df51d05811bce"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"efc9c6422edbb51664f88d564c0feda353dbf2aa","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    def test_signed_image_upload_boot_failure(self):"},{"line_number":160,"context_line":"        \"\"\"Test that Nova refuses to boot an incorrectly signed image."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        If this succeeds instead of throwing an exception, it is likely that"},{"line_number":163,"context_line":"        signature verification is not turned on.  To turn on signature"},{"line_number":164,"context_line":"        verification, set verify_glance_signatures\u003dTrue in the nova"},{"line_number":165,"context_line":"        configuration file under the [glance] section."}],"source_content_type":"text/x-python","patch_set":15,"id":"da36d5c6_58766907","line":162,"range":{"start_line":162,"start_character":11,"end_line":162,"end_character":15},"in_reply_to":"da36d5c6_12e69216","updated":"2017-02-27 15:35:10.000000000","message":"Good call.  Done.","commit_id":"1d5660c3bd37001745666091cd6df51d05811bce"}],"tools/pre_test_hook.sh":[{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"e0b4024d1ec6d8a139496663584a230a8f7f4bd5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# in barbican"},{"line_number":21,"context_line":"echo -e \u0027[[post-config|$TEMPEST_CONF]]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":22,"context_line":"echo -e \u0027[auth]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":23,"context_line":"echo -e \u0027tempest_roles\u003dcreator\u0027 \u003e\u003e $LOCALCONF_PATH"}],"source_content_type":"text/x-sh","patch_set":10,"id":"da36d5c6_849ace61","line":23,"updated":"2017-02-22 14:03:14.000000000","message":"This doesn\u0027t appear to be working, the tempest gate fails because the primary user isn\u0027t allowed to create secrets. Is there any way we can just use the admin creds in the scenario test?","commit_id":"a24265af3a49404e4a204237847bed79c55c7356"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"fc27d9722335ebbe929072a48e9cf616d7881d8b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# in barbican"},{"line_number":21,"context_line":"echo -e \u0027[[post-config|$TEMPEST_CONF]]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":22,"context_line":"echo -e \u0027[auth]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":23,"context_line":"echo -e \u0027tempest_roles\u003dcreator\u0027 \u003e\u003e $LOCALCONF_PATH"}],"source_content_type":"text/x-sh","patch_set":10,"id":"da36d5c6_d022c000","line":23,"in_reply_to":"da36d5c6_849ace61","updated":"2017-02-22 15:17:02.000000000","message":"I looked in the gate logs, and it doesn\u0027t appear like tempest.conf was set properly.  I\u0027ve uploaded a new patch with another attempt to configure tempest.conf.\n\nThere may be a way to use the admin creds, but using the admin creds causes the issue where the admin iser uploads the secret to barbican, and then the primary user attempts to retrieve it and it fails.  Changing the config option in tempest is the only way I\u0027ve gotten to cause the cert retrieval to succeed, and I think that\u0027s the best reflection of what happens in deployment.","commit_id":"a24265af3a49404e4a204237847bed79c55c7356"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b0a878cb265ad8c24ba309268ed47a7ced2acf92","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# in barbican"},{"line_number":21,"context_line":"echo -e \u0027[[post-config|$TEMPEST_CONF]]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":22,"context_line":"echo -e \u0027[auth]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":23,"context_line":"echo -e \u0027tempest_roles\u003dcreator\u0027 \u003e\u003e $LOCALCONF_PATH"}],"source_content_type":"text/x-sh","patch_set":10,"id":"da36d5c6_dbf80ec6","line":23,"in_reply_to":"da36d5c6_d022c000","updated":"2017-02-22 21:58:55.000000000","message":"This has been fixed.","commit_id":"a24265af3a49404e4a204237847bed79c55c7356"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5bc810fbe83f9e3f96758a3d3e381e57d2cd586f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# in barbican"},{"line_number":21,"context_line":"echo -e \u0027[[post-extra|$TEMPEST_CONFIG]]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":22,"context_line":"echo -e \u0027[auth]\u0027 \u003e\u003e $LOCALCONF_PATH"},{"line_number":23,"context_line":"echo -e \u0027tempest_roles\u003dcreator\u0027 \u003e\u003e $LOCALCONF_PATH"}],"source_content_type":"text/x-sh","patch_set":11,"id":"da36d5c6_f8a9667c","line":23,"updated":"2017-02-22 16:52:25.000000000","message":"It looks like it\u0027s being set as expected:\nhttp://logs.openstack.org/41/431241/11/check/gate-barbican-simple-crypto-dsvm-tempest-ubuntu-xenial-nv/a6bf5ac/logs/devstack-early.txt.gz#_2017-02-22_15_33_05_239\n\nBut then it is not showing up in tempest.conf:\nhttp://logs.openstack.org/41/431241/11/check/gate-barbican-simple-crypto-dsvm-tempest-ubuntu-xenial-nv/a6bf5ac/logs/tempest_conf.txt.gz","commit_id":"53509ea67051ec14dfd4e2589c7e1e6ee2bd4877"}]}
