)]}'
{"heat/engine/resources/software_config/software_config.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"12dde7cd57bdfd10dc037eb434230aefb7d4ecb2","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    input_schema \u003d {"},{"line_number":41,"context_line":"        NAME: properties.Schema("},{"line_number":42,"context_line":"            properties.Schema.STRING,"},{"line_number":43,"context_line":"            _(\u0027Name of the input\u0027),"},{"line_number":44,"context_line":"            required\u003dTrue"},{"line_number":45,"context_line":"        ),"},{"line_number":46,"context_line":"        DESCRIPTION: properties.Schema("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B9%2FU%3D","line":43,"updated":"2014-01-20 09:30:19.000000000","message":"missing full stops in descriptions here and in some places further.","commit_id":"b2bc8904b22707cee91626bfcbb62981110c3da0"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"6720861b965096da5058edf487d10057d58f3185","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    input_schema \u003d {"},{"line_number":41,"context_line":"        NAME: properties.Schema("},{"line_number":42,"context_line":"            properties.Schema.STRING,"},{"line_number":43,"context_line":"            _(\u0027Name of the input\u0027),"},{"line_number":44,"context_line":"            required\u003dTrue"},{"line_number":45,"context_line":"        ),"},{"line_number":46,"context_line":"        DESCRIPTION: properties.Schema("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B97c%3D","line":43,"in_reply_to":"AAAAUH%2F%2B9%2FU%3D","updated":"2014-01-20 09:47:39.000000000","message":"Done","commit_id":"b2bc8904b22707cee91626bfcbb62981110c3da0"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"dbf0abea89badab1898ae7c5897d17654fd077fb","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            _(\u0027Namespace to group this software config by when delivered to \u0027"},{"line_number":92,"context_line":"              \u0027a server. This may imply what configuration tool is going to \u0027"},{"line_number":93,"context_line":"              \u0027perform the configuration.\u0027),"},{"line_number":94,"context_line":"            required\u003dTrue"},{"line_number":95,"context_line":"        ),"},{"line_number":96,"context_line":"        CONFIG: properties.Schema("},{"line_number":97,"context_line":"            properties.Schema.STRING,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BtwM%3D","line":94,"updated":"2014-01-22 21:20:49.000000000","message":"I still think this should be mandatory, but it should be given a default value of something like \"Heat::Ungrouped\"","commit_id":"9112b6bc6b52e549b93bfb6c2a0355dbbdfe080c"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"35de0c1fa84ba38c37ae1c18c582af3d2b3e8725","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            _(\u0027Namespace to group this software config by when delivered to \u0027"},{"line_number":92,"context_line":"              \u0027a server. This may imply what configuration tool is going to \u0027"},{"line_number":93,"context_line":"              \u0027perform the configuration.\u0027),"},{"line_number":94,"context_line":"            required\u003dTrue"},{"line_number":95,"context_line":"        ),"},{"line_number":96,"context_line":"        CONFIG: properties.Schema("},{"line_number":97,"context_line":"            properties.Schema.STRING,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2Br%2FI%3D","line":94,"in_reply_to":"AAAAUH%2F%2BtwM%3D","updated":"2014-01-23 06:59:51.000000000","message":"Done","commit_id":"9112b6bc6b52e549b93bfb6c2a0355dbbdfe080c"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"c29fe446658b9387aaf281fcba634494a7ff9d9f","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            _(\u0027Namespace to group this software config by when delivered to \u0027"},{"line_number":94,"context_line":"              \u0027a server. This may imply what configuration tool is going to \u0027"},{"line_number":95,"context_line":"              \u0027perform the configuration.\u0027),"},{"line_number":96,"context_line":"            required\u003dTrue"},{"line_number":97,"context_line":"        ),"},{"line_number":98,"context_line":"        CONFIG: properties.Schema("},{"line_number":99,"context_line":"            properties.Schema.STRING,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2BnRo%3D","line":96,"updated":"2014-01-23 21:36:14.000000000","message":"This still needs default Heat::Ungrouped","commit_id":"b9ea6a1cf5063d274b568a9732a33f179a00b24a"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"dd706cfd0ba72feea3a890e7838702af2f6cb88c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            _(\u0027Namespace to group this software config by when delivered to \u0027"},{"line_number":94,"context_line":"              \u0027a server. This may imply what configuration tool is going to \u0027"},{"line_number":95,"context_line":"              \u0027perform the configuration.\u0027),"},{"line_number":96,"context_line":"            required\u003dTrue"},{"line_number":97,"context_line":"        ),"},{"line_number":98,"context_line":"        CONFIG: properties.Schema("},{"line_number":99,"context_line":"            properties.Schema.STRING,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Bi6U%3D","line":96,"in_reply_to":"AAAAUH%2F%2BnRo%3D","updated":"2014-01-24 15:47:07.000000000","message":"Done","commit_id":"b9ea6a1cf5063d274b568a9732a33f179a00b24a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"596a2a74b351fc40e5ecf5db60b0d68db351e55b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        except heat_exp.HTTPNotFound:"},{"line_number":154,"context_line":"            raise exception.SoftwareConfigMissing("},{"line_number":155,"context_line":"                software_config_id\u003dsoftware_config_id)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"def resource_mapping():"},{"line_number":159,"context_line":"    return {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Bm30%3D","line":156,"updated":"2014-01-23 22:40:28.000000000","message":"Could you please implement a _resolve_attribute \u0027config\u0027 that returns the result of get_software_config? It should return an empty string on SoftwareConfigMissing","commit_id":"b9ea6a1cf5063d274b568a9732a33f179a00b24a"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"dd706cfd0ba72feea3a890e7838702af2f6cb88c","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        except heat_exp.HTTPNotFound:"},{"line_number":154,"context_line":"            raise exception.SoftwareConfigMissing("},{"line_number":155,"context_line":"                software_config_id\u003dsoftware_config_id)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"def resource_mapping():"},{"line_number":159,"context_line":"    return {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2BipQ%3D","line":156,"in_reply_to":"AAAAUH%2F%2Bm30%3D","updated":"2014-01-24 15:47:07.000000000","message":"Done","commit_id":"b9ea6a1cf5063d274b568a9732a33f179a00b24a"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"dbccad5a37a361583731b8f7a985fb32e16893ca","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            _(\u0027Schema representing the outputs that this software config \u0027"},{"line_number":118,"context_line":"              \u0027 will produce.\u0027),"},{"line_number":119,"context_line":"            schema\u003dproperties.Schema(properties.Schema.MAP,"},{"line_number":120,"context_line":"                                     schema\u003dinput_schema)"},{"line_number":121,"context_line":"        ),"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2BZwA%3D","line":120,"updated":"2014-01-27 10:16:44.000000000","message":"shouldn\u0027t here be output_schema?","commit_id":"51c702fc5bf731620b5cacd49a56bc4292e42b5c"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"045892c7510c9aa392264077eba64ffe02c02120","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            _(\u0027Schema representing the outputs that this software config \u0027"},{"line_number":118,"context_line":"              \u0027 will produce.\u0027),"},{"line_number":119,"context_line":"            schema\u003dproperties.Schema(properties.Schema.MAP,"},{"line_number":120,"context_line":"                                     schema\u003dinput_schema)"},{"line_number":121,"context_line":"        ),"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2BYeE%3D","line":120,"in_reply_to":"AAAAUH%2F%2BZwA%3D","updated":"2014-01-27 14:29:15.000000000","message":"Yes, Done.","commit_id":"51c702fc5bf731620b5cacd49a56bc4292e42b5c"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"bdc47338f90659ac3978b70c45b0dd7ced61f8ae","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    input_schema \u003d {"},{"line_number":42,"context_line":"        NAME: properties.Schema("},{"line_number":43,"context_line":"            properties.Schema.STRING,"},{"line_number":44,"context_line":"            _(\u0027Name of the input.\u0027),"},{"line_number":45,"context_line":"            required\u003dTrue"},{"line_number":46,"context_line":"        ),"},{"line_number":47,"context_line":"        DESCRIPTION: properties.Schema("}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2BYUE%3D","line":44,"updated":"2014-01-27 14:56:37.000000000","message":"I\u0027m not sure, shouldn\u0027t the _ be explicitly imported from heat.openstack.common.gettextutils to work? or it is available here by some other means?","commit_id":"060d24da78882ea3ac2bdc6a165044f383160004"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"c1b5fb674c86f7f6ae8345e241c1a74ce12fbecf","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    input_schema \u003d {"},{"line_number":42,"context_line":"        NAME: properties.Schema("},{"line_number":43,"context_line":"            properties.Schema.STRING,"},{"line_number":44,"context_line":"            _(\u0027Name of the input.\u0027),"},{"line_number":45,"context_line":"            required\u003dTrue"},{"line_number":46,"context_line":"        ),"},{"line_number":47,"context_line":"        DESCRIPTION: properties.Schema("}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2BLMo%3D","line":44,"in_reply_to":"AAAAUH%2F%2BYUE%3D","updated":"2014-01-29 12:45:58.000000000","message":"I agree with you that we should import _","commit_id":"060d24da78882ea3ac2bdc6a165044f383160004"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"68862b6772a468c764148ecdea71b17b2b8dfbdb","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import heatclient.exc as heat_exp"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"logger \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class SoftwareConfig(resource.Resource):"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2BE1Y%3D","line":26,"updated":"2014-01-30 12:28:00.000000000","message":"This is unused.","commit_id":"ac8eb1e7a01d53a956c4f20c4329f282ccd709d2"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"019b5b46803590ffb1d18ddc3e8df04242486126","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import heatclient.exc as heat_exp"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"logger \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class SoftwareConfig(resource.Resource):"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F94wQ%3D","line":26,"in_reply_to":"AAAAUH%2F%2BE1Y%3D","updated":"2014-02-02 11:18:38.000000000","message":"Done","commit_id":"ac8eb1e7a01d53a956c4f20c4329f282ccd709d2"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"68862b6772a468c764148ecdea71b17b2b8dfbdb","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        OUTPUTS: properties.Schema("},{"line_number":117,"context_line":"            properties.Schema.LIST,"},{"line_number":118,"context_line":"            _(\u0027Schema representing the outputs that this software config \u0027"},{"line_number":119,"context_line":"              \u0027 will produce.\u0027),"},{"line_number":120,"context_line":"            schema\u003dproperties.Schema(properties.Schema.MAP,"},{"line_number":121,"context_line":"                                     schema\u003doutput_schema)"},{"line_number":122,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2BE00%3D","line":119,"updated":"2014-01-30 12:28:00.000000000","message":"There is an extra space here.","commit_id":"ac8eb1e7a01d53a956c4f20c4329f282ccd709d2"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"019b5b46803590ffb1d18ddc3e8df04242486126","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        OUTPUTS: properties.Schema("},{"line_number":117,"context_line":"            properties.Schema.LIST,"},{"line_number":118,"context_line":"            _(\u0027Schema representing the outputs that this software config \u0027"},{"line_number":119,"context_line":"              \u0027 will produce.\u0027),"},{"line_number":120,"context_line":"            schema\u003dproperties.Schema(properties.Schema.MAP,"},{"line_number":121,"context_line":"                                     schema\u003doutput_schema)"},{"line_number":122,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F94wM%3D","line":119,"in_reply_to":"AAAAUH%2F%2BE00%3D","updated":"2014-02-02 11:18:38.000000000","message":"Done","commit_id":"ac8eb1e7a01d53a956c4f20c4329f282ccd709d2"}]}
