)]}'
{"heat/engine/service.py":[{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"2af792e4c23e7ceab87093c2f7dc478130446bcd","unresolved":false,"context_lines":[{"line_number":962,"context_line":"            logger.warn(\u0027delete_software_config db error %s\u0027 % str(ex))"},{"line_number":963,"context_line":""},{"line_number":964,"context_line":"    @request_context"},{"line_number":965,"context_line":"    def list_software_deployments(self, cnxt, server_id\u003dNone):"},{"line_number":966,"context_line":"        try:"},{"line_number":967,"context_line":"            all_sd \u003d db_api.software_deployment_get_all(cnxt, server_id)"},{"line_number":968,"context_line":"        except Exception as ex:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F8pD0%3D","line":965,"updated":"2013-12-23 20:55:41.000000000","message":"Don\u0027t we need a similar function \"list_software_configs\"? I noticed \"heatclient/v1/software_configs.py\" has a way to retrieve a list of software_config.","commit_id":"cda2663c7c497aee37fbfedb134baf613ee13a44"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"2af792e4c23e7ceab87093c2f7dc478130446bcd","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"        try:"},{"line_number":1033,"context_line":"            db_api.software_deployment_delete(cnxt, deployment_id)"},{"line_number":1034,"context_line":"        except Exception as ex:"},{"line_number":1035,"context_line":"            logger.warn(\u0027delete_software_config db error %s\u0027 % str(ex))"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F8pF0%3D","line":1035,"updated":"2013-12-23 20:55:41.000000000","message":"\"delete_software_deployment.... \" (instead of delete_software_config)","commit_id":"cda2663c7c497aee37fbfedb134baf613ee13a44"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"49c5a8114e4af156c3c42df69d7ced7be1364b5c","unresolved":false,"context_lines":[{"line_number":967,"context_line":"    def delete_software_config(self, cnxt, config_id):"},{"line_number":968,"context_line":"        try:"},{"line_number":969,"context_line":"            db_api.software_config_delete(cnxt, config_id)"},{"line_number":970,"context_line":"        except Exception as ex:"},{"line_number":971,"context_line":"            logger.warn(\u0027delete_software_config db error %s\u0027 % str(ex))"},{"line_number":972,"context_line":""},{"line_number":973,"context_line":"    @request_context"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2FQJs%3D","line":970,"updated":"2014-01-15 21:25:17.000000000","message":"Test coverage missing on this exception","commit_id":"1634324604548979ed53b98b760b89a3a7297918"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"49c5a8114e4af156c3c42df69d7ced7be1364b5c","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"                                   output_values\u003dNone, action\u003dNone,"},{"line_number":1019,"context_line":"                                   status\u003dNone, status_reason\u003dNone):"},{"line_number":1020,"context_line":"        update_data \u003d {}"},{"line_number":1021,"context_line":"        if config_id:"},{"line_number":1022,"context_line":"            update_data[\u0027config_id\u0027] \u003d config_id"},{"line_number":1023,"context_line":"        if input_values:"},{"line_number":1024,"context_line":"            update_data[\u0027input_values\u0027] \u003d input_values"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2FQJg%3D","line":1021,"updated":"2014-01-15 21:25:17.000000000","message":"test coverage missing on all of these ifs","commit_id":"1634324604548979ed53b98b760b89a3a7297918"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"8c61b7d9017cac0babe27d568d0a93041598c02e","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"        try:"},{"line_number":1044,"context_line":"            db_api.software_deployment_delete(cnxt, deployment_id)"},{"line_number":1045,"context_line":"        except Exception as ex:"},{"line_number":1046,"context_line":"            logger.warn(\u0027delete_software_config db error %s\u0027 % str(ex))"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2FCn4%3D","line":1046,"updated":"2014-01-18 02:02:25.000000000","message":"Minor observation- \u0027delete_software_deployment\u0027  instead of \u0027delete_software_config\u0027 in the warning.","commit_id":"df408e333669b9bce7dc73e28ef5ed0e1f3dd411"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"6f107a275022aa9f25dcd9e66a3492eb9f4d08b7","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"        try:"},{"line_number":1044,"context_line":"            db_api.software_deployment_delete(cnxt, deployment_id)"},{"line_number":1045,"context_line":"        except Exception as ex:"},{"line_number":1046,"context_line":"            logger.warn(\u0027delete_software_config db error %s\u0027 % str(ex))"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2FCWE%3D","line":1046,"in_reply_to":"AAAAUH%2F%2FCn4%3D","updated":"2014-01-18 05:04:24.000000000","message":"Done","commit_id":"df408e333669b9bce7dc73e28ef5ed0e1f3dd411"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"fa46e64e6c42ece243d8ad51fa730415491ec560","unresolved":false,"context_lines":[{"line_number":945,"context_line":""},{"line_number":946,"context_line":"    @request_context"},{"line_number":947,"context_line":"    def create_software_config(self, cnxt, group, name, config,"},{"line_number":948,"context_line":"                               inputs\u003d[], outputs\u003d[], options\u003d{}):"},{"line_number":949,"context_line":"        try:"},{"line_number":950,"context_line":"            sc \u003d db_api.software_config_create(cnxt, {"},{"line_number":951,"context_line":"                \u0027group\u0027: group,"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2B9jE%3D","line":948,"updated":"2014-01-20 11:27:22.000000000","message":"All of the arguments are already defaulted in the rpc.client code, is there any advantage to defaulting all the values again here?  Might just cause confusion if anyone ever wants to change the default and wonders why changing them here has no effect?","commit_id":"ca19c478c8788c57d191c0f321aa89870d6c8807"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"2916c1a12a2570b09baa0d4bcfb6b3829098835c","unresolved":false,"context_lines":[{"line_number":945,"context_line":""},{"line_number":946,"context_line":"    @request_context"},{"line_number":947,"context_line":"    def create_software_config(self, cnxt, group, name, config,"},{"line_number":948,"context_line":"                               inputs\u003d[], outputs\u003d[], options\u003d{}):"},{"line_number":949,"context_line":"        try:"},{"line_number":950,"context_line":"            sc \u003d db_api.software_config_create(cnxt, {"},{"line_number":951,"context_line":"                \u0027group\u0027: group,"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2B5Kg%3D","line":948,"in_reply_to":"AAAAUH%2F%2B5n8%3D","updated":"2014-01-21 00:54:36.000000000","message":"Done","commit_id":"ca19c478c8788c57d191c0f321aa89870d6c8807"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"b319e1a21b3ec3c4e71080016fc34926046ef6a4","unresolved":false,"context_lines":[{"line_number":945,"context_line":""},{"line_number":946,"context_line":"    @request_context"},{"line_number":947,"context_line":"    def create_software_config(self, cnxt, group, name, config,"},{"line_number":948,"context_line":"                               inputs\u003d[], outputs\u003d[], options\u003d{}):"},{"line_number":949,"context_line":"        try:"},{"line_number":950,"context_line":"            sc \u003d db_api.software_config_create(cnxt, {"},{"line_number":951,"context_line":"                \u0027group\u0027: group,"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2B5n8%3D","line":948,"in_reply_to":"AAAAUH%2F%2B9jE%3D","updated":"2014-01-20 22:51:13.000000000","message":"You\u0027re right, it looks like the convention is mandatory args here, optional args in the RPC API.","commit_id":"ca19c478c8788c57d191c0f321aa89870d6c8807"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"fa46e64e6c42ece243d8ad51fa730415491ec560","unresolved":false,"context_lines":[{"line_number":959,"context_line":"                \u0027tenant\u0027: cnxt.tenant_id"},{"line_number":960,"context_line":"            })"},{"line_number":961,"context_line":"        except Exception as ex:"},{"line_number":962,"context_line":"            logger.warn(\u0027create_software_config db error %s\u0027 % str(ex))"},{"line_number":963,"context_line":"            return"},{"line_number":964,"context_line":"        return api.format_software_config(sc)"},{"line_number":965,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2B9ms%3D","line":962,"updated":"2014-01-20 11:27:22.000000000","message":"In keeping with the current translatable-all-the-things trend these log warning should be _()\u0027d?\n\nAlso, I don\u0027t think we should be silently (well, OK we\u0027re logging a warning, but..) hiding this exception, since presumably we should be raising some appropriate error which will then be exposed to the user via an API response?\n\nDitto all the other cases where this is happening.","commit_id":"ca19c478c8788c57d191c0f321aa89870d6c8807"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"2916c1a12a2570b09baa0d4bcfb6b3829098835c","unresolved":false,"context_lines":[{"line_number":959,"context_line":"                \u0027tenant\u0027: cnxt.tenant_id"},{"line_number":960,"context_line":"            })"},{"line_number":961,"context_line":"        except Exception as ex:"},{"line_number":962,"context_line":"            logger.warn(\u0027create_software_config db error %s\u0027 % str(ex))"},{"line_number":963,"context_line":"            return"},{"line_number":964,"context_line":"        return api.format_software_config(sc)"},{"line_number":965,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2B5Kc%3D","line":962,"in_reply_to":"AAAAUH%2F%2B5oM%3D","updated":"2014-01-21 00:54:36.000000000","message":"Done","commit_id":"ca19c478c8788c57d191c0f321aa89870d6c8807"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"b319e1a21b3ec3c4e71080016fc34926046ef6a4","unresolved":false,"context_lines":[{"line_number":959,"context_line":"                \u0027tenant\u0027: cnxt.tenant_id"},{"line_number":960,"context_line":"            })"},{"line_number":961,"context_line":"        except Exception as ex:"},{"line_number":962,"context_line":"            logger.warn(\u0027create_software_config db error %s\u0027 % str(ex))"},{"line_number":963,"context_line":"            return"},{"line_number":964,"context_line":"        return api.format_software_config(sc)"},{"line_number":965,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2B5oM%3D","line":962,"in_reply_to":"AAAAUH%2F%2B9ms%3D","updated":"2014-01-20 22:51:13.000000000","message":"I think I just copied the pattern for all the watch service methods, but you\u0027re right.\n\nThe try/except blocks should just be removed.","commit_id":"ca19c478c8788c57d191c0f321aa89870d6c8807"}],"heat/tests/test_engine_service.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"1011c934db596a4f3634574c610f857a013ee47c","unresolved":false,"context_lines":[{"line_number":2078,"context_line":"        self.assertIsNotNone(config)"},{"line_number":2079,"context_line":"        config_id \u003d config[\u0027id\u0027]"},{"line_number":2080,"context_line":"        config \u003d self._create_software_config()"},{"line_number":2081,"context_line":"        self.assertNotEqual(config_id, config[\u0027id\u0027])"},{"line_number":2082,"context_line":""},{"line_number":2083,"context_line":"    def test_delete_software_config(self):"},{"line_number":2084,"context_line":"        config \u003d self._create_software_config()"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F%2BkPE%3D","line":2081,"updated":"2014-01-24 10:42:07.000000000","message":"You should add more assertions here, in particular making sure that the proper information are stored in the database.","commit_id":"b5c4149de258a28547414f1f1c580a715359d2a7"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"f7543c04bce13806a0252e35620d182a892181ac","unresolved":false,"context_lines":[{"line_number":2078,"context_line":"        self.assertIsNotNone(config)"},{"line_number":2079,"context_line":"        config_id \u003d config[\u0027id\u0027]"},{"line_number":2080,"context_line":"        config \u003d self._create_software_config()"},{"line_number":2081,"context_line":"        self.assertNotEqual(config_id, config[\u0027id\u0027])"},{"line_number":2082,"context_line":""},{"line_number":2083,"context_line":"    def test_delete_software_config(self):"},{"line_number":2084,"context_line":"        config \u003d self._create_software_config()"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F%2BeYE%3D","line":2081,"in_reply_to":"AAAAUH%2F%2BkPE%3D","updated":"2014-01-25 13:07:33.000000000","message":"Done","commit_id":"b5c4149de258a28547414f1f1c580a715359d2a7"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"1011c934db596a4f3634574c610f857a013ee47c","unresolved":false,"context_lines":[{"line_number":2123,"context_line":""},{"line_number":2124,"context_line":"    def test_create_software_deployment(self):"},{"line_number":2125,"context_line":"        deployment \u003d self._create_software_deployment()"},{"line_number":2126,"context_line":"        self.assertIsNotNone(deployment)"},{"line_number":2127,"context_line":""},{"line_number":2128,"context_line":"    def test_update_software_deployment(self):"},{"line_number":2129,"context_line":"        deployment \u003d self._create_software_deployment()"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F%2BkPA%3D","line":2126,"updated":"2014-01-24 10:42:07.000000000","message":"Same as above, please check the stored data.","commit_id":"b5c4149de258a28547414f1f1c580a715359d2a7"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"f7543c04bce13806a0252e35620d182a892181ac","unresolved":false,"context_lines":[{"line_number":2123,"context_line":""},{"line_number":2124,"context_line":"    def test_create_software_deployment(self):"},{"line_number":2125,"context_line":"        deployment \u003d self._create_software_deployment()"},{"line_number":2126,"context_line":"        self.assertIsNotNone(deployment)"},{"line_number":2127,"context_line":""},{"line_number":2128,"context_line":"    def test_update_software_deployment(self):"},{"line_number":2129,"context_line":"        deployment \u003d self._create_software_deployment()"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F%2BeYI%3D","line":2126,"in_reply_to":"AAAAUH%2F%2BkPA%3D","updated":"2014-01-25 13:07:33.000000000","message":"Done","commit_id":"b5c4149de258a28547414f1f1c580a715359d2a7"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"75e11a64eed1a763d35ff309f4b99a98f687329f","unresolved":false,"context_lines":[{"line_number":2196,"context_line":""},{"line_number":2197,"context_line":"    def test_create_software_deployment(self):"},{"line_number":2198,"context_line":"        deployment \u003d self._create_software_deployment()"},{"line_number":2199,"context_line":"        self.assertIsNotNone(deployment)"},{"line_number":2200,"context_line":"        kwargs \u003d {"},{"line_number":2201,"context_line":"            \u0027group\u0027: \u0027Heat::Chef\u0027,"},{"line_number":2202,"context_line":"            \u0027name\u0027: \u0027config_heat\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2BZik%3D","line":2199,"updated":"2014-01-27 10:54:03.000000000","message":"Those 2 lines should be removed.","commit_id":"28333fcc6aa662f0de26fe299eedc251cbdfd028"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"a829fe94a51da3c352f302c4bc4b59ae86135b13","unresolved":false,"context_lines":[{"line_number":2196,"context_line":""},{"line_number":2197,"context_line":"    def test_create_software_deployment(self):"},{"line_number":2198,"context_line":"        deployment \u003d self._create_software_deployment()"},{"line_number":2199,"context_line":"        self.assertIsNotNone(deployment)"},{"line_number":2200,"context_line":"        kwargs \u003d {"},{"line_number":2201,"context_line":"            \u0027group\u0027: \u0027Heat::Chef\u0027,"},{"line_number":2202,"context_line":"            \u0027name\u0027: \u0027config_heat\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2BYmQ%3D","line":2199,"in_reply_to":"AAAAUH%2F%2BZik%3D","updated":"2014-01-27 14:21:38.000000000","message":"Done","commit_id":"28333fcc6aa662f0de26fe299eedc251cbdfd028"}]}
