)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"44a867ab7a51c0b27436e6e8efb832ff9294c0c6","unresolved":false,"context_lines":[{"line_number":489,"context_line":"    \"\"\""},{"line_number":490,"context_line":"    @classmethod"},{"line_number":491,"context_line":"    def credentials(cls):"},{"line_number":492,"context_line":"        username \u003d cls.config.identity.admin_username"},{"line_number":493,"context_line":"        password \u003d cls.config.identity.admin_password"},{"line_number":494,"context_line":"        tenant_name \u003d cls.config.identity.tenant_name"},{"line_number":495,"context_line":"        return username, tenant_name, password"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F81GI%3D","line":492,"updated":"2013-12-19 20:33:01.000000000","message":"So splitting this off as a separate base class is fine, but you need to handle the tenant isolation case here. See the OfficialClientTest credentials class for how this is done for the non-admin case. (you\u0027ll just need to set a parameter for admin) The heat tests weren\u0027t handling this correctly either.","commit_id":"b4710d656260c99d4b826fcfe11509443eeeaf26"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"c8064e0c2d3fe6ec1c59a233c45fcf7fe4f641d2","unresolved":false,"context_lines":[{"line_number":489,"context_line":"    \"\"\""},{"line_number":490,"context_line":"    @classmethod"},{"line_number":491,"context_line":"    def credentials(cls):"},{"line_number":492,"context_line":"        username \u003d cls.config.identity.admin_username"},{"line_number":493,"context_line":"        password \u003d cls.config.identity.admin_password"},{"line_number":494,"context_line":"        tenant_name \u003d cls.config.identity.tenant_name"},{"line_number":495,"context_line":"        return username, tenant_name, password"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F8xcs%3D","line":492,"in_reply_to":"AAAATn%2F81GI%3D","updated":"2013-12-23 20:21:53.000000000","message":"Done","commit_id":"b4710d656260c99d4b826fcfe11509443eeeaf26"}],"tempest/scenario/test_aggregates_basic_ops.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"44a867ab7a51c0b27436e6e8efb832ff9294c0c6","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        aggregate \u003d self.compute_client.aggregates.create(aggregate_name,"},{"line_number":40,"context_line":"                                                          availability_zone)"},{"line_number":41,"context_line":"        self.assertEqual(aggregate.name, aggregate_name)"},{"line_number":42,"context_line":"        self.assertEqual(aggregate.availability_zone, availability_zone)"},{"line_number":43,"context_line":"        self.set_resource(aggregate.id, aggregate)"},{"line_number":44,"context_line":"        LOG.debug(\"Aggregate %s created.\" % (aggregate.name))"},{"line_number":45,"context_line":"        return aggregate"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F81Fw%3D","line":42,"updated":"2013-12-19 20:33:01.000000000","message":"Does this work correctly with availability_zone\u003dNone? I\u0027m not super familiar with novaclient\u0027s return format, but does that attr default to None, or do they just not set it?","commit_id":"b4710d656260c99d4b826fcfe11509443eeeaf26"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"c8064e0c2d3fe6ec1c59a233c45fcf7fe4f641d2","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        aggregate \u003d self.compute_client.aggregates.create(aggregate_name,"},{"line_number":40,"context_line":"                                                          availability_zone)"},{"line_number":41,"context_line":"        self.assertEqual(aggregate.name, aggregate_name)"},{"line_number":42,"context_line":"        self.assertEqual(aggregate.availability_zone, availability_zone)"},{"line_number":43,"context_line":"        self.set_resource(aggregate.id, aggregate)"},{"line_number":44,"context_line":"        LOG.debug(\"Aggregate %s created.\" % (aggregate.name))"},{"line_number":45,"context_line":"        return aggregate"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F8xcY%3D","line":42,"in_reply_to":"AAAATn%2F81Fw%3D","updated":"2013-12-23 20:21:53.000000000","message":"yup it works, it\u0027s a metadata item on aggregate_metadata table","commit_id":"b4710d656260c99d4b826fcfe11509443eeeaf26"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"ce4d39e37eea6353d0507da3037ff115ac4b7d3b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAT3%2F%2F5%2BI%3D","line":3,"updated":"2013-12-27 13:09:03.000000000","message":"Is this copyright notice correct?","commit_id":"4c8433ddd3aafc385bf916d606556b4cb907d5f9"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"34a4788d97f379b245abdee4ed9665448ac737c7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":20,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":21,"context_line":"from tempest.scenario import manager"},{"line_number":22,"context_line":"from tempest.test import services"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAT3%2F%2FvHA%3D","line":22,"updated":"2014-01-02 18:15:17.000000000","message":"You should only import modules.","commit_id":"29cab162181ba97e04ea1dd2d3a80e941554a92f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"34a4788d97f379b245abdee4ed9665448ac737c7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.assertEqual(azone, aggregate.availability_zone)"},{"line_number":78,"context_line":"        self.assertEqual(aggregate.hosts, hosts)"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            del aggregate.metadata[\u0027availability_zone\u0027]"},{"line_number":81,"context_line":"        except KeyError:"},{"line_number":82,"context_line":"            pass"},{"line_number":83,"context_line":"        self.assertEqual(aggregate.metadata, metadata)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAT3%2F%2FvA4%3D","line":80,"updated":"2014-01-02 18:15:17.000000000","message":"This seems a bit weird to me. Why not just do something like:\n\n\nfor meta_key in metadata.keys():\n   self.assertIn(meta_key, aggregate.metadata)\n   self.assertEqual(metadata[meta_key], aggregate.metadata[meta_key])\n\nI feel like that KeyError except could cause mask real issues.","commit_id":"29cab162181ba97e04ea1dd2d3a80e941554a92f"}]}
