)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"c8be88ccf5069a7a35f8eabacf96149ce82c808e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-01-31 14:54:44 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ability to boot VMs on each compute node"},{"line_number":8,"context_line":"Also add ability for rally to create admin users since VMs will be associated with right users"},{"line_number":9,"context_line":"Plus do not have to change all utility functions"},{"line_number":10,"context_line":"https://blueprints.launchpad.net/rally/+spec/rally-hypervisor-boot"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a6ced46_6de58da7","line":8,"updated":"2015-03-23 14:36:31.000000000","message":"Line is too long. please keep under 79 chars","commit_id":"5bb79eedbf8d8f24fe2a40ac8c76dc045f9b091a"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"c8be88ccf5069a7a35f8eabacf96149ce82c808e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Ability to boot VMs on each compute node"},{"line_number":8,"context_line":"Also add ability for rally to create admin users since VMs will be associated with right users"},{"line_number":9,"context_line":"Plus do not have to change all utility functions"},{"line_number":10,"context_line":"https://blueprints.launchpad.net/rally/+spec/rally-hypervisor-boot"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I2b7b9a5ed062c1023268415cd25926e05fde3f08"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a6ced46_ed441d76","line":10,"updated":"2015-03-23 14:36:31.000000000","message":"replace this line with:\n\n  Implements: blueprint rally-hypervisor-boot \n\nto attach bp to commit","commit_id":"5bb79eedbf8d8f24fe2a40ac8c76dc045f9b091a"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"1793da1c4f438d7707ffe054f208726b51a17179","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3a50d1a3_94fe2aad","updated":"2015-07-30 09:12:36.000000000","message":"Commit title can take a maximum of 50 characters (H802 PEP8 rule).\nPlease use this format as a reference \n\n\u003ctitle upto 50 chars\u003e\n\n\u003cMulti-line Description 1\n Multi-line Description 2\n Multi-line Description 3\u003e","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"}],"rally/plugins/openstack/context/keystone/users.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5479a6d62d2dfd5eff78b80ee09fa6ec499927b8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"               default\u003d\"default\","},{"line_number":46,"context_line":"               help\u003d\"ID of domain in which users will be created.\"),"},{"line_number":47,"context_line":"    cfg.StrOpt(\"user_role\","},{"line_number":48,"context_line":"               default\u003dNone,"},{"line_number":49,"context_line":"               help\u003d\"Additional (admin) role for users\"),"},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_ef7c69b7","line":48,"updated":"2015-07-30 15:22:00.000000000","message":"Maybe default\u003d\"default\"","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"}],"rally/plugins/openstack/context/nova/servers.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6f5a1cb5fddbe8a4ad03ee579bdcd7418472f256","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def __init__(self, context):"},{"line_number":69,"context_line":"        super(ServerGenerator, self).__init__(context)"},{"line_number":70,"context_line":"        self.config.setdefault(\"servers_per_tenant\", 5)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _boot_server(self, nova_scenario, image_id, flavor_id,"},{"line_number":73,"context_line":"                     servers_per_tenant, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_a361a0aa","line":70,"updated":"2015-07-30 15:11:52.000000000","message":"Why you have changed default_config? Please return it.","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6f5a1cb5fddbe8a4ad03ee579bdcd7418472f256","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _boot_server(self, nova_scenario, image_id, flavor_id,"},{"line_number":73,"context_line":"                     servers_per_tenant, **kwargs):"},{"line_number":74,"context_line":"        LOG.debug(\"Calling _boot_servers with \""},{"line_number":75,"context_line":"                  \"image_id\u003d%s flavor_id\u003d%s servers_per_tenant\u003d%s\""},{"line_number":76,"context_line":"                  \"availability_zone\u003d%s\""},{"line_number":77,"context_line":"                  % (image_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_236ef096","line":74,"updated":"2015-07-30 15:11:52.000000000","message":"Need i18n here.","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"}],"rally/plugins/openstack/scenarios/nova/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9d96ed66fff4ea22435c104905f3a99beae00c4b","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"#remoive"},{"line_number":28,"context_line":"from rally.common import log as logging"},{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":"#end remove"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"NOVA_BENCHMARK_OPTS \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_f6083a2f","line":29,"updated":"2015-06-08 22:53:34.000000000","message":"@Boris don\u0027t like logging in scenarios","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":16215,"name":"Omar Khalid","email":"omkhalid@cisco.com","username":"omaratcisco"},"change_message_id":"0746e00a48fc73a15eb941c6e08b2dec539f6df2","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"#remoive"},{"line_number":28,"context_line":"from rally.common import log as logging"},{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":"#end remove"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"NOVA_BENCHMARK_OPTS \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_b151acda","line":29,"in_reply_to":"3afb71cf_f6083a2f","updated":"2015-06-08 23:25:35.000000000","message":"Removed.","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9d96ed66fff4ea22435c104905f3a99beae00c4b","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        \"\"\""},{"line_number":505,"context_line":"        if not name_prefix:"},{"line_number":506,"context_line":"            name_prefix \u003d self._generate_random_name()"},{"line_number":507,"context_line":"        for i in range(int(requests)):"},{"line_number":508,"context_line":"            LOG.info(\"OMAR image_id and utils boot : \" + repr(image_id))"},{"line_number":509,"context_line":"            self.clients(\"nova\").servers.create(\"%s_%d\" % (name_prefix, i),"},{"line_number":510,"context_line":"                                                image_id, flavor_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_36ba526f","line":507,"updated":"2015-06-08 22:53:34.000000000","message":"Why you add int() here?","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":16215,"name":"Omar Khalid","email":"omkhalid@cisco.com","username":"omaratcisco"},"change_message_id":"0746e00a48fc73a15eb941c6e08b2dec539f6df2","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        \"\"\""},{"line_number":505,"context_line":"        if not name_prefix:"},{"line_number":506,"context_line":"            name_prefix \u003d self._generate_random_name()"},{"line_number":507,"context_line":"        for i in range(int(requests)):"},{"line_number":508,"context_line":"            LOG.info(\"OMAR image_id and utils boot : \" + repr(image_id))"},{"line_number":509,"context_line":"            self.clients(\"nova\").servers.create(\"%s_%d\" % (name_prefix, i),"},{"line_number":510,"context_line":"                                                image_id, flavor_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_515958fd","line":507,"in_reply_to":"3afb71cf_36ba526f","updated":"2015-06-08 23:25:35.000000000","message":"because it came in as a string.","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9d96ed66fff4ea22435c104905f3a99beae00c4b","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        if not name_prefix:"},{"line_number":506,"context_line":"            name_prefix \u003d self._generate_random_name()"},{"line_number":507,"context_line":"        for i in range(int(requests)):"},{"line_number":508,"context_line":"            LOG.info(\"OMAR image_id and utils boot : \" + repr(image_id))"},{"line_number":509,"context_line":"            self.clients(\"nova\").servers.create(\"%s_%d\" % (name_prefix, i),"},{"line_number":510,"context_line":"                                                image_id, flavor_id,"},{"line_number":511,"context_line":"                                                min_count\u003dinstances_amount,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_f65a7a4f","line":508,"updated":"2015-06-08 22:53:34.000000000","message":"Do we need repr()?","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":16215,"name":"Omar Khalid","email":"omkhalid@cisco.com","username":"omaratcisco"},"change_message_id":"0746e00a48fc73a15eb941c6e08b2dec539f6df2","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        if not name_prefix:"},{"line_number":506,"context_line":"            name_prefix \u003d self._generate_random_name()"},{"line_number":507,"context_line":"        for i in range(int(requests)):"},{"line_number":508,"context_line":"            LOG.info(\"OMAR image_id and utils boot : \" + repr(image_id))"},{"line_number":509,"context_line":"            self.clients(\"nova\").servers.create(\"%s_%d\" % (name_prefix, i),"},{"line_number":510,"context_line":"                                                image_id, flavor_id,"},{"line_number":511,"context_line":"                                                min_count\u003dinstances_amount,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_315c9cec","line":508,"in_reply_to":"3afb71cf_f65a7a4f","updated":"2015-06-08 23:25:35.000000000","message":"Removed","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9d96ed66fff4ea22435c104905f3a99beae00c4b","unresolved":false,"context_lines":[{"line_number":804,"context_line":"        \"\"\""},{"line_number":805,"context_line":"        server.unlock()"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"    def _list_hypervisor(self, zone_info):"},{"line_number":808,"context_line":"        \"\"\"Return hypervisor list\"\""},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        :param zone_info availability zone for hosts"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_d6941ee3","line":807,"updated":"2015-06-08 22:53:34.000000000","message":"From the name I thought that this is a set of attribute. Maybe rename it or update docstring","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":16215,"name":"Omar Khalid","email":"omkhalid@cisco.com","username":"omaratcisco"},"change_message_id":"0746e00a48fc73a15eb941c6e08b2dec539f6df2","unresolved":false,"context_lines":[{"line_number":804,"context_line":"        \"\"\""},{"line_number":805,"context_line":"        server.unlock()"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"    def _list_hypervisor(self, zone_info):"},{"line_number":808,"context_line":"        \"\"\"Return hypervisor list\"\""},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        :param zone_info availability zone for hosts"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_b11c0cc2","line":807,"in_reply_to":"3afb71cf_d6941ee3","updated":"2015-06-08 23:25:35.000000000","message":"Done","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9d96ed66fff4ea22435c104905f3a99beae00c4b","unresolved":false,"context_lines":[{"line_number":807,"context_line":"    def _list_hypervisor(self, zone_info):"},{"line_number":808,"context_line":"        \"\"\"Return hypervisor list\"\""},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        :param zone_info availability zone for hosts"},{"line_number":811,"context_line":"        \"\"\""},{"line_number":812,"context_line":"        avail_list \u003d []"},{"line_number":813,"context_line":"        host_list \u003d self.clients(\"nova\").hosts.list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_7699ea1e","line":810,"updated":"2015-06-08 22:53:34.000000000","message":"Also document return value","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":16215,"name":"Omar Khalid","email":"omkhalid@cisco.com","username":"omaratcisco"},"change_message_id":"0746e00a48fc73a15eb941c6e08b2dec539f6df2","unresolved":false,"context_lines":[{"line_number":807,"context_line":"    def _list_hypervisor(self, zone_info):"},{"line_number":808,"context_line":"        \"\"\"Return hypervisor list\"\""},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        :param zone_info availability zone for hosts"},{"line_number":811,"context_line":"        \"\"\""},{"line_number":812,"context_line":"        avail_list \u003d []"},{"line_number":813,"context_line":"        host_list \u003d self.clients(\"nova\").hosts.list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_91deb00f","line":810,"in_reply_to":"3afb71cf_7699ea1e","updated":"2015-06-08 23:25:35.000000000","message":"Done","commit_id":"42ecb959735c67b0902f1c99e4b3406ddf24c236"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6f5a1cb5fddbe8a4ad03ee579bdcd7418472f256","unresolved":false,"context_lines":[{"line_number":500,"context_line":"        \"\"\""},{"line_number":501,"context_line":"        if not name_prefix:"},{"line_number":502,"context_line":"            name_prefix \u003d self._generate_random_name()"},{"line_number":503,"context_line":"        for i in range(int(requests)):"},{"line_number":504,"context_line":"            self.clients(\"nova\").servers.create(\"%s_%d\" % (name_prefix, i),"},{"line_number":505,"context_line":"                                                image_id, flavor_id,"},{"line_number":506,"context_line":"                                                min_count\u003dinstances_amount,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_a3d68025","line":503,"updated":"2015-07-30 15:11:52.000000000","message":"Why you add this?","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6f5a1cb5fddbe8a4ad03ee579bdcd7418472f256","unresolved":false,"context_lines":[{"line_number":803,"context_line":"        \"\"\"Return hypervisors for the given zone\"\""},{"line_number":804,"context_line":""},{"line_number":805,"context_line":"        :param zone_info availability zone for hosts"},{"line_number":806,"context_line":"        :returns: list of hosts in the availability zone"},{"line_number":807,"context_line":"        \"\"\""},{"line_number":808,"context_line":"        avail_list \u003d []"},{"line_number":809,"context_line":"        host_list \u003d self.clients(\"nova\").hosts.list()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_838d842c","line":806,"updated":"2015-07-30 15:11:52.000000000","message":"list of host names in specified zone","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"}],"rally/plugins/openstack/wrappers/keystone.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6f5a1cb5fddbe8a4ad03ee579bdcd7418472f256","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        user \u003d self.client.users.create(username, password, email, project_id)"},{"line_number":151,"context_line":"        return KeystoneV2Wrapper._wrap_v2_user(user)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def add_user_role(self, user_id, user_role, project_id\u003dNone):"},{"line_number":154,"context_line":"        current_role \u003d None"},{"line_number":155,"context_line":"        for role in self.client.roles.list():"},{"line_number":156,"context_line":"            if role.name \u003d\u003d user_role:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_afec212a","line":153,"updated":"2015-07-30 15:11:52.000000000","message":"Please document this function","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6f5a1cb5fddbe8a4ad03ee579bdcd7418472f256","unresolved":false,"context_lines":[{"line_number":227,"context_line":"            LOG.warning(\"Unable to set member role to created user.\")"},{"line_number":228,"context_line":"        return KeystoneV3Wrapper._wrap_v3_user(user)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def add_user_role(self, user_id, user_role, project_id\u003dNone):"},{"line_number":231,"context_line":"        current_role \u003d None"},{"line_number":232,"context_line":"        for role in self.client.roles.list():"},{"line_number":233,"context_line":"            if role.name \u003d\u003d user_role:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_8fe7e545","line":230,"updated":"2015-07-30 15:11:52.000000000","message":"Please document this function. Why not to add this function to Keystone Wrapper? Its absolutely the same for v3 and v2 wich are inherited from Keystone Wrapper","commit_id":"ba3553bd247baea5d9a0136bc8e20370010c8b50"}]}
