)]}'
{"shade/__init__.py":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"ee4389bc8eeb3bb5547da5de069346c1cd55a5ce","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        # TODO(mordred): caching"},{"line_number":384,"context_line":"        try:"},{"line_number":385,"context_line":"            return self.heat_client.get(name)"},{"line_number":386,"context_line":"        except Exception:"},{"line_number":387,"context_line":"            self.log.debug(\"heat cannot find stack\", exc_info\u003dTrue)"},{"line_number":388,"context_line":"            return None"},{"line_number":389,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_a4a2edab","line":386,"updated":"2015-02-03 18:07:14.000000000","message":"This seems overly broad. It seems like \"not found\" would be a return of None, but \"there was a problem\" should raise OpenStackCloudException.","commit_id":"d51c1e1d1bc4638a224ea6cff2121fb68f26cfe3"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"ee4389bc8eeb3bb5547da5de069346c1cd55a5ce","unresolved":false,"context_lines":[{"line_number":390,"context_line":"    def delete_stack(self, name, wait\u003dFalse, timeout\u003d180):"},{"line_number":391,"context_line":"        try:"},{"line_number":392,"context_line":"            self.heat_client.stacks.delete(stack_id\u003dname)"},{"line_number":393,"context_line":"        except Exception as e:"},{"line_number":394,"context_line":"            # TODO(mordred) is there an exception which is \"not found\""},{"line_number":395,"context_line":"            # that is different from \"there was a problem\"?"},{"line_number":396,"context_line":"            # If so, we should just happily ignore \"not found\" - since"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_24fa7dbd","line":393,"updated":"2015-02-03 18:07:14.000000000","message":"I see your TODO, but I wonder why not just implement the NotFound now? It is a pass at this point,","commit_id":"d51c1e1d1bc4638a224ea6cff2121fb68f26cfe3"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"7a3bb88e02c208fff58c11d855d94e6db6521152","unresolved":false,"context_lines":[{"line_number":694,"context_line":"    def create_stack("},{"line_number":695,"context_line":"            self, name,"},{"line_number":696,"context_line":"            template_file\u003dNone, template_url\u003dNone,"},{"line_number":697,"context_line":"            template_object\u003dNone, object_request\u003dNone, files\u003dNone,"},{"line_number":698,"context_line":"            rollback\u003dTrue,"},{"line_number":699,"context_line":"            wait\u003dFalse, timeout\u003d180,"},{"line_number":700,"context_line":"            **parameters):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_1220eb9a","line":697,"updated":"2015-09-24 22:29:21.000000000","message":"same thing here, this object_request thing is not really \"the shade way\", IMO.","commit_id":"e725114c366d989733bf7e2462f1804e742c85e4"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"7a3bb88e02c208fff58c11d855d94e6db6521152","unresolved":false,"context_lines":[{"line_number":712,"context_line":"            files\u003dtpl_files,"},{"line_number":713,"context_line":"        )"},{"line_number":714,"context_line":"        try:"},{"line_number":715,"context_line":"            stack \u003d self.heat_client.stacks.create(**params)"},{"line_number":716,"context_line":"        except Exception as e:"},{"line_number":717,"context_line":"            self.log.debug(\"heat cannot create stack\", exc_info\u003dTrue)"},{"line_number":718,"context_line":"            raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_3225efaa","line":715,"updated":"2015-09-24 22:29:21.000000000","message":"can haz Task?","commit_id":"e725114c366d989733bf7e2462f1804e742c85e4"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"7a3bb88e02c208fff58c11d855d94e6db6521152","unresolved":false,"context_lines":[{"line_number":915,"context_line":"        \"\"\""},{"line_number":916,"context_line":"        stacks \u003d self.list_stacks()"},{"line_number":917,"context_line":"        return _utils._filter_list("},{"line_number":918,"context_line":"            stacks, name_or_id, filters, name_name\u003d\u0027stack_name\u0027)"},{"line_number":919,"context_line":""},{"line_number":920,"context_line":"    def list_keypairs(self):"},{"line_number":921,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_d23a73cd","line":918,"updated":"2015-09-24 22:29:21.000000000","message":"SO, funny thing. Heat has unique stack name. You do not need to filter list. Just get by name.","commit_id":"e725114c366d989733bf7e2462f1804e742c85e4"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"7a3bb88e02c208fff58c11d855d94e6db6521152","unresolved":false,"context_lines":[{"line_number":1178,"context_line":"            openstack API call or if multiple matches are found."},{"line_number":1179,"context_line":"        \"\"\""},{"line_number":1180,"context_line":"        return _utils._get_entity("},{"line_number":1181,"context_line":"            self.search_stacks, name_or_id, filters)"},{"line_number":1182,"context_line":""},{"line_number":1183,"context_line":"    def create_keypair(self, name, public_key):"},{"line_number":1184,"context_line":"        \"\"\"Create a new keypair."}],"source_content_type":"text/x-python","patch_set":7,"id":"9a1a9d01_f23777e1","line":1181,"updated":"2015-09-24 22:29:21.000000000","message":"Yeah so Heat\u0027s use of unique names I think changes this pattern. Just do two gets. First passing id\u003dname_or_id, second passing stack_name\u003dname_or_id.","commit_id":"e725114c366d989733bf7e2462f1804e742c85e4"}]}
