)]}'
{"heat/engine/resources/template_resource.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"65f0dbc72bc74016cdc6e70124b2fd47fcbe1bf2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        try:"},{"line_number":62,"context_line":"            # do a quick check to see if the template is provided"},{"line_number":63,"context_line":"            # if not, assume it is stored."},{"line_number":64,"context_line":"            tdata \u003d self.template_data"},{"line_number":65,"context_line":"        except ValueError as download_error:"},{"line_number":66,"context_line":"            if self.nested() is None:"},{"line_number":67,"context_line":"                self.validation_exception \u003d download_error"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BT9g%3D","line":64,"updated":"2013-11-27 14:34:25.000000000","message":"Ugh, template_data should really be a method, and parse_nested as well... Not new here though.","commit_id":"cb5fc574890b4a6db5387dd5e7dc812f2b2056f2"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"636c194f78801c16d02d5b0a15846a3183df10e2","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        # 3. look in the db"},{"line_number":127,"context_line":"        reported_excp \u003d None"},{"line_number":128,"context_line":"        t_data \u003d self.stack.t.files.get(self.template_name)"},{"line_number":129,"context_line":"        if not t_data and self.template_name.endswith((\".yaml\", \".template\")):"},{"line_number":130,"context_line":"            try:"},{"line_number":131,"context_line":"                t_data \u003d urlfetch.get(self.template_name,"},{"line_number":132,"context_line":"                                      allowed_schemes\u003dself.allowed_schemes)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BHc0%3D","line":129,"updated":"2013-12-02 13:34:18.000000000","message":"What happens if they pass a URL with a template name which has an unexpected suffix?  Seems like we might end up with a broken constructor again?  Probably need another test..","commit_id":"a11a23d1cf904bdc121be2a72bed408ccaed94ba"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"833b94094b201945500cf522ce48844e14fa6728","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        # 3. look in the db"},{"line_number":127,"context_line":"        reported_excp \u003d None"},{"line_number":128,"context_line":"        t_data \u003d self.stack.t.files.get(self.template_name)"},{"line_number":129,"context_line":"        if not t_data and self.template_name.endswith((\".yaml\", \".template\")):"},{"line_number":130,"context_line":"            try:"},{"line_number":131,"context_line":"                t_data \u003d urlfetch.get(self.template_name,"},{"line_number":132,"context_line":"                                      allowed_schemes\u003dself.allowed_schemes)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BEfU%3D","line":129,"in_reply_to":"AAAATn%2F%2BHc0%3D","updated":"2013-12-02 21:09:54.000000000","message":"OK, I\u0027ll add at test for urlfetch() failing with a broken/unreachable url and see what happens.","commit_id":"a11a23d1cf904bdc121be2a72bed408ccaed94ba"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"636c194f78801c16d02d5b0a15846a3183df10e2","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        if t_data is not None:"},{"line_number":144,"context_line":"            self.stack.t.files[self.template_name] \u003d t_data"},{"line_number":145,"context_line":"            return t_data"},{"line_number":146,"context_line":"        raise reported_excp"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _validate_against_facade(self, facade_cls):"},{"line_number":149,"context_line":"        facade_schemata \u003d properties.schemata(facade_cls.properties_schema)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BHco%3D","line":146,"updated":"2013-12-02 13:34:18.000000000","message":"I\u0027m trying to figure out, related to the above comment, if there\u0027s any way we can end up trying to do raise None here, if we fail in all three attempts to get t_data and drop through the last if?","commit_id":"a11a23d1cf904bdc121be2a72bed408ccaed94ba"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"279bcbf8bccdfab0da4c565eaac4367dee18ef31","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            self.stack.t.files[self.template_name] \u003d t_data"},{"line_number":150,"context_line":"            return t_data"},{"line_number":151,"context_line":"        if reported_excp is None:"},{"line_number":152,"context_line":"            reported_excp \u003d ValueError(_(\u0027Unknow error retrieving %s\u0027) %"},{"line_number":153,"context_line":"                                       self.template_name)"},{"line_number":154,"context_line":"        raise reported_excp"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BCHk%3D","line":152,"updated":"2013-12-03 08:26:56.000000000","message":"Typo s/Unknow/Unknown","commit_id":"6a826fe8816b531ceead2a2a38681c508d4d83b7"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"084e939d49a7191c4ab948340eee5eb51c304e62","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":"from requests import exceptions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from heat.common import exception"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F9sn8%3D","line":16,"updated":"2013-12-07 03:14:38.000000000","message":"nit: json is stdlib, so should be separate from requests","commit_id":"0711fe9237b374c4382c02e34d6be0999a67ecce"}],"heat/tests/test_provider_template.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"65f0dbc72bc74016cdc6e70124b2fd47fcbe1bf2","unresolved":false,"context_lines":[{"line_number":544,"context_line":"        # assertion: updating a template resource is never destructive"},{"line_number":545,"context_line":"        #            as it defers to the nested stack to determine if anything"},{"line_number":546,"context_line":"        #            needs to be replaced."},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"        stack \u003d self.create_file_based_template_resource()"},{"line_number":549,"context_line":"        templ_resource \u003d stack[\u0027the_nested\u0027]"},{"line_number":550,"context_line":"        self.assertEqual(\u0027myname\u0027, templ_resource.FnGetAtt(\u0027Foo\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BT9E%3D","line":547,"updated":"2013-11-27 14:34:25.000000000","message":"Awesome, thanks for those. I think you could remove the \"assertion: \" and turn them into docstrings.","commit_id":"cb5fc574890b4a6db5387dd5e7dc812f2b2056f2"}]}
