)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"47bf40b186a0c98fad3eb3d4dde6b615c5c2fe7e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     bhavani.cr \u003cbhavani.r@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-07-13 17:27:44 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a hacking rule for string interpolation at logging"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"String interpolation should be delayed to be handled"},{"line_number":10,"context_line":"by the logging code, rather than being done"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1f1a1f67_98bfc3fa","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":54},"updated":"2017-07-13 12:23:56.000000000","message":"I\u0027m ok about the change, but I do not see any new hacking rule","commit_id":"5f7dd2b00fec97c621ff00ae02ebf9172d53a328"}],"rally/plugins/openstack/context/swift/objects.py":[{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"3e62d8b508aa3d6f8c082487c11abb61ea47440d","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        containers_per_tenant \u003d self.config[\"containers_per_tenant\"]"},{"line_number":68,"context_line":"        containers_num \u003d len(self.context[\"tenants\"]) * containers_per_tenant"},{"line_number":69,"context_line":"        LOG.debug(\"Creating %d containers using %d threads.\" (containers_num,"},{"line_number":70,"context_line":"                                                              threads))"},{"line_number":71,"context_line":"        containers_count \u003d len(self._create_containers(self.context,"},{"line_number":72,"context_line":"                                                       containers_per_tenant,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_55cc4469","line":69,"range":{"start_line":69,"start_character":60,"end_line":69,"end_character":61},"updated":"2017-07-13 19:59:01.000000000","message":"you miss a comma here","commit_id":"54bbb4c5cffdfef3887de9295099b89702581e2b"}],"rally/plugins/openstack/verification/tempest/context.py":[{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"3e62d8b508aa3d6f8c082487c11abb61ea47440d","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                for chunk in self.clients.glance().images.data(image.id):"},{"line_number":178,"context_line":"                    image_file.write(chunk)"},{"line_number":179,"context_line":"        else:"},{"line_number":180,"context_line":"            LOG.debug(\"Downloading image from %s \""},{"line_number":181,"context_line":"                      \"to %s.\", (conf.CONF.tempest.img_url, target_path)"},{"line_number":182,"context_line":"            try:"},{"line_number":183,"context_line":"                response \u003d requests.get(conf.CONF.tempest.img_url, stream\u003dTrue)"},{"line_number":184,"context_line":"            except requests.ConnectionError as err:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_15492ccf","line":181,"range":{"start_line":180,"start_character":12,"end_line":181,"end_character":72},"updated":"2017-07-13 19:59:01.000000000","message":"parentheses is not in pair here","commit_id":"54bbb4c5cffdfef3887de9295099b89702581e2b"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"3e62d8b508aa3d6f8c082487c11abb61ea47440d","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        if conf.CONF.tempest.img_name_regex:"},{"line_number":221,"context_line":"            image_obj \u003d self._discover_image()"},{"line_number":222,"context_line":"            if image_obj:"},{"line_number":223,"context_line":"                LOG.debug(\"Using image \u0027%s\u0027 (ID \u003d %s) \""},{"line_number":224,"context_line":"                          \"for the tests.\", (image_obj.name, image_obj.id)"},{"line_number":225,"context_line":"                return image_obj"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        params \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_9583fccc","line":224,"range":{"start_line":223,"start_character":16,"end_line":224,"end_character":74},"updated":"2017-07-13 19:59:01.000000000","message":"here as well","commit_id":"54bbb4c5cffdfef3887de9295099b89702581e2b"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"3e62d8b508aa3d6f8c082487c11abb61ea47440d","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        LOG.debug(\"Creating flavor \u0027%s\u0027 with the following properties: RAM \""},{"line_number":265,"context_line":"                  \"\u003d %dMB, VCPUs \u003d 1, disk \u003d 0GB.\", params[\"name\"], flv_ram)"},{"line_number":266,"context_line":"        flavor \u003d novaclient.flavors.create(**params)"},{"line_number":267,"context_line":"        LOG.debug(\"Flavor \u0027%s\u0027 (ID \u003d %s) has been \""},{"line_number":268,"context_line":"                  \"successfully created!\", (flavor.name, flavor.id)"},{"line_number":269,"context_line":"        self._created_flavors.append(flavor)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        return flavor"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_d562943e","line":268,"range":{"start_line":267,"start_character":8,"end_line":268,"end_character":67},"updated":"2017-07-13 19:59:01.000000000","message":"also here","commit_id":"54bbb4c5cffdfef3887de9295099b89702581e2b"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"afae5855670b34a1176b526e4041e647dbed94f8","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        image_service \u003d image.Image(self.clients)"},{"line_number":236,"context_line":"        image_obj \u003d image_service.create_image(**params)"},{"line_number":237,"context_line":"        LOG.debug(\"Image \u0027%s\u0027 (ID \u003d %s) has been \""},{"line_number":238,"context_line":"                  \"successfully created!\", (image_obj.name, image_obj.id)"},{"line_number":239,"context_line":"        self._created_images.append(image_obj)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        return image_obj"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_5c1b2880","line":238,"range":{"start_line":238,"start_character":42,"end_line":238,"end_character":44},"updated":"2017-07-14 19:22:41.000000000","message":"I think there is an extra \u0027(\u0027 here. sorry didn\u0027t catch it from last patch\nthis maybe what caused the Jenkins to fail","commit_id":"730dbff76571d6ac6b779874b6dbb36ceaabaafa"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        option_value \u003d self.conf.get(section, option)"},{"line_number":139,"context_line":"        if not option_value:"},{"line_number":140,"context_line":"            LOG.debug(\"Option \u0027%s\u0027 from \u0027%s\u0027 section \""},{"line_number":141,"context_line":"                      \"is not configured.\", option, section)"},{"line_number":142,"context_line":"            if helper_method:"},{"line_number":143,"context_line":"                res \u003d helper_method(*args, **kwargs)"},{"line_number":144,"context_line":"                if res:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_96f1666e","line":141,"range":{"start_line":141,"start_character":43,"end_line":141,"end_character":59},"updated":"2017-07-17 22:47:23.000000000","message":"maybe is good to be consistent of using () for msg where it has more than one variable.\nIn previous files, when you have more than one, you added ().\nthou this is not a big problem","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                res \u003d helper_method(*args, **kwargs)"},{"line_number":144,"context_line":"                if res:"},{"line_number":145,"context_line":"                    value \u003d res[\"name\"] if \"network\" in option else res.id"},{"line_number":146,"context_line":"            LOG.debug(\"Setting value \u0027%s\u0027 to option \u0027%s\u0027.\", value, option)"},{"line_number":147,"context_line":"            self.conf.set(section, option, value)"},{"line_number":148,"context_line":"            LOG.debug(\"Option \u0027{opt}\u0027 is configured. \""},{"line_number":149,"context_line":"                      \"{opt} \u003d {value}\".format(opt\u003doption, value\u003dvalue))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_f601ba39","line":146,"range":{"start_line":146,"start_character":58,"end_line":146,"end_character":73},"updated":"2017-07-17 22:47:23.000000000","message":"same here","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    def _download_image_from_source(self, target_path, image\u003dNone):"},{"line_number":173,"context_line":"        if image:"},{"line_number":174,"context_line":"            LOG.debug(\"Downloading image \u0027%s\u0027 \""},{"line_number":175,"context_line":"                      \"from Glance to %s.\", image.name, target_path)"},{"line_number":176,"context_line":"            with open(target_path, \"wb\") as image_file:"},{"line_number":177,"context_line":"                for chunk in self.clients.glance().images.data(image.id):"},{"line_number":178,"context_line":"                    image_file.write(chunk)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_168af6bd","line":175,"range":{"start_line":175,"start_character":42,"end_line":175,"end_character":68},"updated":"2017-07-17 22:47:23.000000000","message":"same here","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            image_obj \u003d self._discover_image()"},{"line_number":222,"context_line":"            if image_obj:"},{"line_number":223,"context_line":"                LOG.debug(\"Using image \u0027%s\u0027 (ID \u003d %s) \""},{"line_number":224,"context_line":"                          \"for the tests.\", image_obj.name, image_obj.id)"},{"line_number":225,"context_line":"                return image_obj"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        params \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_b68c62d7","line":224,"range":{"start_line":224,"start_character":41,"end_line":224,"end_character":73},"updated":"2017-07-17 22:47:23.000000000","message":"same here","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        image_service \u003d image.Image(self.clients)"},{"line_number":236,"context_line":"        image_obj \u003d image_service.create_image(**params)"},{"line_number":237,"context_line":"        LOG.debug(\"Image \u0027%s\u0027 (ID \u003d %s) has been \""},{"line_number":238,"context_line":"                  \"successfully created!\", image_obj.name, image_obj.id)"},{"line_number":239,"context_line":"        self._created_images.append(image_obj)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        return image_obj"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_96bf2660","line":238,"range":{"start_line":238,"start_character":40,"end_line":238,"end_character":72},"updated":"2017-07-17 22:47:23.000000000","message":"same here","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":262,"context_line":"            \"disk\": 0"},{"line_number":263,"context_line":"        }"},{"line_number":264,"context_line":"        LOG.debug(\"Creating flavor \u0027%s\u0027 with the following properties: RAM \""},{"line_number":265,"context_line":"                  \"\u003d %dMB, VCPUs \u003d 1, disk \u003d 0GB.\", params[\"name\"], flv_ram)"},{"line_number":266,"context_line":"        flavor \u003d novaclient.flavors.create(**params)"},{"line_number":267,"context_line":"        LOG.debug(\"Flavor \u0027%s\u0027 (ID \u003d %s) has been \""},{"line_number":268,"context_line":"                  \"successfully created!\", flavor.name, flavor.id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_36ba926d","line":265,"range":{"start_line":265,"start_character":50,"end_line":265,"end_character":75},"updated":"2017-07-17 22:47:23.000000000","message":"same here","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":265,"context_line":"                  \"\u003d %dMB, VCPUs \u003d 1, disk \u003d 0GB.\", params[\"name\"], flv_ram)"},{"line_number":266,"context_line":"        flavor \u003d novaclient.flavors.create(**params)"},{"line_number":267,"context_line":"        LOG.debug(\"Flavor \u0027%s\u0027 (ID \u003d %s) has been \""},{"line_number":268,"context_line":"                  \"successfully created!\", flavor.name, flavor.id)"},{"line_number":269,"context_line":"        self._created_flavors.append(flavor)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        return flavor"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_16b3169a","line":268,"range":{"start_line":268,"start_character":40,"end_line":268,"end_character":65},"updated":"2017-07-17 22:47:23.000000000","message":"same here","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"},{"author":{"_account_id":26229,"name":"Amy Ge","email":"amy.ge@aol.com","username":"yaoge"},"change_message_id":"e9be5feb293f8b8d1abfc6b6de2505f2091ce386","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        for option, value in self.conf.items(section):"},{"line_number":326,"context_line":"            if opt_value \u003d\u003d value:"},{"line_number":327,"context_line":"                LOG.debug(\"Removing value \u0027%s\u0027 of option \u0027%s\u0027 \""},{"line_number":328,"context_line":"                          \"from Tempest config file.\", opt_value, option)"},{"line_number":329,"context_line":"                self.conf.set(section, option, \"\")"},{"line_number":330,"context_line":"                LOG.debug(\"Value \u0027%s\u0027 has been removed.\", opt_value)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_76692af7","line":328,"range":{"start_line":328,"start_character":52,"end_line":328,"end_character":73},"updated":"2017-07-17 22:47:23.000000000","message":"same here","commit_id":"c0222739d1f500d1bacd8a9e11884c2fa8c55519"}]}
