)]}'
{"refstack_client/refstack_client.py":[{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"e910a9d58bae384ed222f0c2ad13657fe8a5c438","unresolved":false,"context_lines":[{"line_number":557,"context_line":"        cpid \u003d self._get_cpid()"},{"line_number":558,"context_line":"        content \u003d {\u0027product_ref_id\u0027: cpid}"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        endpoint \u003d self.args.url + \u0027/v1/products/\u0027 + self.args.product_id"},{"line_number":561,"context_line":"        headers \u003d {\u0027Content-type\u0027: \u0027application/json\u0027}"},{"line_number":562,"context_line":"        data \u003d json.dumps(content)"},{"line_number":563,"context_line":"        self.logger.debug(\u0027API request content: %s \u0027 % content)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_f3bb2dc2","line":560,"range":{"start_line":560,"start_character":19,"end_line":560,"end_character":73},"updated":"2016-07-12 16:18:47.000000000","message":"Use string formatting \"%\" -- endpoint \u003d \"%s/v1/products/%s\" % self.arg.url, self.product_id","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"156b669377fcc573a9328655de54f705b51502f1","unresolved":false,"context_lines":[{"line_number":557,"context_line":"        cpid \u003d self._get_cpid()"},{"line_number":558,"context_line":"        content \u003d {\u0027product_ref_id\u0027: cpid}"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        endpoint \u003d self.args.url + \u0027/v1/products/\u0027 + self.args.product_id"},{"line_number":561,"context_line":"        headers \u003d {\u0027Content-type\u0027: \u0027application/json\u0027}"},{"line_number":562,"context_line":"        data \u003d json.dumps(content)"},{"line_number":563,"context_line":"        self.logger.debug(\u0027API request content: %s \u0027 % content)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_9e018e6d","line":560,"range":{"start_line":560,"start_character":19,"end_line":560,"end_character":73},"in_reply_to":"1aa78d24_f3bb2dc2","updated":"2016-07-14 17:45:58.000000000","message":"Done","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"e910a9d58bae384ed222f0c2ad13657fe8a5c438","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        if self.args.priv_key:"},{"line_number":565,"context_line":"            self._add_signature(self.args.priv_key, data, headers)"},{"line_number":566,"context_line":"        else:"},{"line_number":567,"context_line":"            print \u0027Private key should be provided with -i or --sign\u0027"},{"line_number":568,"context_line":"            return"},{"line_number":569,"context_line":"        try:"},{"line_number":570,"context_line":"            response \u003d requests.put(endpoint,"},{"line_number":571,"context_line":"                                    data\u003ddata,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_932629cc","line":568,"range":{"start_line":567,"start_character":12,"end_line":568,"end_character":18},"updated":"2016-07-12 16:18:47.000000000","message":"make it an exception - self.logger.error\nand exit(1)","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"156b669377fcc573a9328655de54f705b51502f1","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        if self.args.priv_key:"},{"line_number":565,"context_line":"            self._add_signature(self.args.priv_key, data, headers)"},{"line_number":566,"context_line":"        else:"},{"line_number":567,"context_line":"            print \u0027Private key should be provided with -i or --sign\u0027"},{"line_number":568,"context_line":"            return"},{"line_number":569,"context_line":"        try:"},{"line_number":570,"context_line":"            response \u003d requests.put(endpoint,"},{"line_number":571,"context_line":"                                    data\u003ddata,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_1ee3de34","line":568,"range":{"start_line":567,"start_character":12,"end_line":568,"end_character":18},"in_reply_to":"1aa78d24_932629cc","updated":"2016-07-14 17:45:58.000000000","message":"done.\nbut there are many other occurrences of \u0027print\u0027 here.","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"e910a9d58bae384ed222f0c2ad13657fe8a5c438","unresolved":false,"context_lines":[{"line_number":575,"context_line":"        except Exception as e:"},{"line_number":576,"context_line":"            self.logger.info(\u0027Failed to post %s - %s \u0027 % (endpoint, e))"},{"line_number":577,"context_line":"            self.logger.exception(e)"},{"line_number":578,"context_line":"            return"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        if response.status_code \u003d\u003d 200:"},{"line_number":581,"context_line":"            print \u0027Product REF ID updated for product \u0027 + self.args.product_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_6e70f472","line":578,"range":{"start_line":578,"start_character":12,"end_line":578,"end_character":18},"updated":"2016-07-12 16:18:47.000000000","message":"s/\u0027return\u0027/\u0027exit(1)\u0027/g","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"156b669377fcc573a9328655de54f705b51502f1","unresolved":false,"context_lines":[{"line_number":575,"context_line":"        except Exception as e:"},{"line_number":576,"context_line":"            self.logger.info(\u0027Failed to post %s - %s \u0027 % (endpoint, e))"},{"line_number":577,"context_line":"            self.logger.exception(e)"},{"line_number":578,"context_line":"            return"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        if response.status_code \u003d\u003d 200:"},{"line_number":581,"context_line":"            print \u0027Product REF ID updated for product \u0027 + self.args.product_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_1e72be49","line":578,"range":{"start_line":578,"start_character":12,"end_line":578,"end_character":18},"in_reply_to":"1aa78d24_6e70f472","updated":"2016-07-14 17:45:58.000000000","message":"Done","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"e910a9d58bae384ed222f0c2ad13657fe8a5c438","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        if response.status_code \u003d\u003d 200:"},{"line_number":581,"context_line":"            print \u0027Product REF ID updated for product \u0027 + self.args.product_id"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"    def _get_cpid(self):"},{"line_number":584,"context_line":"        keystone_config \u003d self._get_keystone_config(self.conf)"},{"line_number":585,"context_line":"        auth_version, auth_url, content \u003d \\"},{"line_number":586,"context_line":"            self._generate_keystone_data(keystone_config)"},{"line_number":587,"context_line":"        return self._get_cpid_from_keystone(auth_version, auth_url, content)"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    def _add_signature(self, sign_with, data, headers):"},{"line_number":590,"context_line":"        data_hash \u003d SHA256.new()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_8ef9e082","line":587,"range":{"start_line":583,"start_character":4,"end_line":587,"end_character":76},"updated":"2016-07-12 16:18:47.000000000","message":"I think it might be better to modify _get_cpid_from_keystone: i.e remove current parameters (or make them optional) and get keystone information within the method -- Line","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"156b669377fcc573a9328655de54f705b51502f1","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        if response.status_code \u003d\u003d 200:"},{"line_number":581,"context_line":"            print \u0027Product REF ID updated for product \u0027 + self.args.product_id"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"    def _get_cpid(self):"},{"line_number":584,"context_line":"        keystone_config \u003d self._get_keystone_config(self.conf)"},{"line_number":585,"context_line":"        auth_version, auth_url, content \u003d \\"},{"line_number":586,"context_line":"            self._generate_keystone_data(keystone_config)"},{"line_number":587,"context_line":"        return self._get_cpid_from_keystone(auth_version, auth_url, content)"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    def _add_signature(self, sign_with, data, headers):"},{"line_number":590,"context_line":"        data_hash \u003d SHA256.new()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_be10ca5a","line":587,"range":{"start_line":583,"start_character":4,"end_line":587,"end_character":76},"in_reply_to":"1aa78d24_8ef9e082","updated":"2016-07-14 17:45:58.000000000","message":"Done","commit_id":"f23dc605429f71e04eb90b499b22a2f464c523db"},{"author":{"_account_id":10234,"name":"Andrey Pavlov","email":"andrey.mp@gmail.com","username":"andrey-mp"},"change_message_id":"9f185874058935f2879509424376dde3f944a18b","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                for service in access[\u0027serviceCatalog\u0027]:"},{"line_number":279,"context_line":"                    if service[\u0027type\u0027] \u003d\u003d \u0027identity\u0027:"},{"line_number":280,"context_line":"                        if service[\u0027endpoints\u0027][0][\u0027id\u0027]:"},{"line_number":281,"context_line":"                            return service[\u0027endpoints\u0027][0][\u0027id\u0027]"},{"line_number":282,"context_line":"                # Raise a key error if \u0027identity\u0027 was not found so that it"},{"line_number":283,"context_line":"                # can be caught and have an appropriate error displayed."},{"line_number":284,"context_line":"                raise KeyError"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_394874cc","line":281,"range":{"start_line":281,"start_character":28,"end_line":281,"end_character":64},"updated":"2016-07-14 17:58:58.000000000","message":"btw, Catherine, here ID is ised for cpid and url is used only if ID can not be obtained.","commit_id":"5903f1be998ed4c9ce22eacf693d467abcda617f"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"26c32dad995fe1e087262e4929f54a02cf3b0b51","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                for service in access[\u0027serviceCatalog\u0027]:"},{"line_number":279,"context_line":"                    if service[\u0027type\u0027] \u003d\u003d \u0027identity\u0027:"},{"line_number":280,"context_line":"                        if service[\u0027endpoints\u0027][0][\u0027id\u0027]:"},{"line_number":281,"context_line":"                            return service[\u0027endpoints\u0027][0][\u0027id\u0027]"},{"line_number":282,"context_line":"                # Raise a key error if \u0027identity\u0027 was not found so that it"},{"line_number":283,"context_line":"                # can be caught and have an appropriate error displayed."},{"line_number":284,"context_line":"                raise KeyError"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_ecfd8709","line":281,"range":{"start_line":281,"start_character":28,"end_line":281,"end_character":64},"in_reply_to":"1aa78d24_394874cc","updated":"2016-07-15 21:56:47.000000000","message":"@Andrey Thanks! Yea, my concern is:\nWith the way _get_keystone_config is coded right now, it is depending on the tempest.conf configuration which keeps changing overtime.  I feel like most of the time, we end up using the URL option because the Keystone service or endpoint ID won\u0027t be able to obtain due to tempest.conf update. \n\nThis is not a problem, we just need the users to realize that.","commit_id":"5903f1be998ed4c9ce22eacf693d467abcda617f"}]}
