)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"a92c2efc33b0c3ae5627646e9a1da846f5d394f7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds cascading delete command for LBaaSv2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds the \"lbaas-loadbalancer-cascade-delete\" command"},{"line_number":10,"context_line":"to support the cascading delete of a load balancer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I30f036f92d1f861f2d982ec95cc71b7237a34335"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7af24918_b885a2ae","line":9,"updated":"2016-03-07 00:58:26.000000000","message":"Why cant you use lbaas-loadbalancer-delete --cascade (introduce a new cascade option).\nIf user does pass the --cascade option, then you can call the cascade API Endpoint, or otherwise, call the normal loadbalancer delete?\nYou may need to play around with the DeleteLoadBalancer class in neutronclient/neutron/v2_0/lb/v2/loadbalancer.py but atleast user would not have to use 2 different CLIs to delete 2 different types of Loadbalancers.\nThey can simply use --cascade option in the current CLI.\nIt does seem a bit tricky because the resource end point is different ( lbaas/loadbalancer/lb_id/.. ) but if it is possible to add the --cascade option, then enduser would be at a more beneficial position.","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"f5548bd4bab5d3bb50215d4665af8635ddafb41c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Adds cascading delete command for LBaaSv2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds the \"lbaas-loadbalancer-cascade-delete\" command"},{"line_number":10,"context_line":"to support the cascading delete of a load balancer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I30f036f92d1f861f2d982ec95cc71b7237a34335"},{"line_number":13,"context_line":"Partial-Bug: #1521783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7af24918_4a08202e","line":10,"updated":"2016-03-04 22:58:35.000000000","message":"consider adding a depends-on: I9556d78620971fd47b7834d5ff534b9c159d14fb","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"a92c2efc33b0c3ae5627646e9a1da846f5d394f7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Adds cascading delete command for LBaaSv2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds the \"lbaas-loadbalancer-cascade-delete\" command"},{"line_number":10,"context_line":"to support the cascading delete of a load balancer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I30f036f92d1f861f2d982ec95cc71b7237a34335"},{"line_number":13,"context_line":"Partial-Bug: #1521783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7af24918_78ecba8f","line":10,"in_reply_to":"7af24918_4a08202e","updated":"2016-03-07 00:58:26.000000000","message":"+1","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"277068aa921896139b31000725bc31bc120dde2c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds cascading delete command for LBaaSv2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds the \"lbaas-loadbalancer-cascade-delete\" command"},{"line_number":10,"context_line":"to support the cascading delete of a load balancer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #1521783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5aef4532_9b2a222b","line":9,"updated":"2016-03-08 22:27:31.000000000","message":"We are not using this command, but infact adding the --cascade option.\nI guess the commit message should be reworded","commit_id":"34d9f753b986f69e098f9f583b5235ebc76b409b"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"277068aa921896139b31000725bc31bc120dde2c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch adds the \"lbaas-loadbalancer-cascade-delete\" command"},{"line_number":10,"context_line":"to support the cascading delete of a load balancer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #1521783"},{"line_number":13,"context_line":"Depends-On: I9556d78620971fd47b7834d5ff534b9c159d14fb"},{"line_number":14,"context_line":"Change-Id: I30f036f92d1f861f2d982ec95cc71b7237a34335"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5aef4532_fbcfe67c","line":12,"range":{"start_line":12,"start_character":14,"end_line":12,"end_character":21},"updated":"2016-03-08 22:27:31.000000000","message":"Instead of the partial bug, I would suggest you add \"python-neutronclient\" also as an affected project, and this patch closes that bug","commit_id":"34d9f753b986f69e098f9f583b5235ebc76b409b"}],"neutronclient/neutron/v2_0/lb/v2/loadbalancer.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"ac8d9b75337f2ab9563d71d53e87455517f58ba4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"class CascadeDeleteLoadBalancer(neutronV20.DeleteCommand):"},{"line_number":100,"context_line":"    \"\"\"LBaaS v2 Cascade delete of a given loadbalancer.\"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    resource \u003d \u0027lbaas_lb_tree\u0027"},{"line_number":103,"context_line":"    allow_names \u003d True"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_36b9ac2f","line":102,"updated":"2016-03-06 03:04:49.000000000","message":"update this to reflect agreement of using cascade_delete","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"a29b73c757b5ef493535768cf561cad27814aea1","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":103,"context_line":"        parser.add_argument("},{"line_number":104,"context_line":"            \u0027--cascade\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":105,"context_line":"            help\u003d_(\u0027Cascade the delete to all elements of the load balancer.\u0027))"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # We need to override this to handle the cascade flag at"},{"line_number":108,"context_line":"    # the right time in this method.  We lookup with loadbalancer"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_98309f58","line":105,"range":{"start_line":105,"start_character":20,"end_line":105,"end_character":75},"updated":"2016-03-07 23:38:49.000000000","message":"Can we rewrite it as  \"Delete all elements of the loadbalancer\" ?\nCascading would basically be sending out the delete command in sequence.However, for the user, cascade may not be too important of a keyword. This is just my opinion.","commit_id":"e1f85878d8e91c036c9c77aefa491c7078f84e92"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"a29b73c757b5ef493535768cf561cad27814aea1","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.set_extra_attrs(parsed_args)"},{"line_number":112,"context_line":"        neutron_client \u003d self.get_client()"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        if self.allow_names:"},{"line_number":115,"context_line":"            params \u003d {\u0027cmd_resource\u0027: self.cmd_resource,"},{"line_number":116,"context_line":"                      \u0027parent_id\u0027: self.parent_id}"},{"line_number":117,"context_line":"            _id \u003d neutronV20.find_resourceid_by_name_or_id(neutron_client,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_b860fb36","line":114,"updated":"2016-03-07 23:38:49.000000000","message":"if you are providing allow_names\u003dTrue, do we really need this if condition?","commit_id":"e1f85878d8e91c036c9c77aefa491c7078f84e92"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"a29b73c757b5ef493535768cf561cad27814aea1","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            obj_deleter \u003d getattr(neutron_client,"},{"line_number":126,"context_line":"                                  \"delete_loadbalancer_cascade\")"},{"line_number":127,"context_line":"        else:"},{"line_number":128,"context_line":"            obj_deleter \u003d getattr(neutron_client, \"delete_loadbalancer\")"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if self.parent_id:"},{"line_number":131,"context_line":"            obj_deleter(_id, self.parent_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_1852cf67","line":128,"updated":"2016-03-07 23:38:49.000000000","message":"+1, something in the lines of what I would like :)","commit_id":"e1f85878d8e91c036c9c77aefa491c7078f84e92"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"3e4a59ac51947d92313db3617590cc3c3674991b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            obj_deleter \u003d getattr(neutron_client, \"delete_loadbalancer\")"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if self.parent_id:"},{"line_number":127,"context_line":"            obj_deleter(_id, self.parent_id)"},{"line_number":128,"context_line":"        else:"},{"line_number":129,"context_line":"            obj_deleter(_id)"},{"line_number":130,"context_line":"        print((_(\u0027Deleted %(resource)s: %(id)s\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_033525f6","line":127,"updated":"2016-03-08 13:12:32.000000000","message":"\"delete_loadbalancer_cascade\" doesn\u0027t do anything with the parent-id... Why we are passing it then?? Am I missing anything? \n\ndef delete_loadbalancer_cascade(self, lbaas_loadbalancer):","commit_id":"ac40f389274ecfe33bb84955cdee062a15f56a1f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"aaeeb8c203b525db9ce37b3f2f52050ace884c50","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            obj_deleter \u003d getattr(neutron_client, \"delete_loadbalancer\")"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if self.parent_id:"},{"line_number":127,"context_line":"            obj_deleter(_id, self.parent_id)"},{"line_number":128,"context_line":"        else:"},{"line_number":129,"context_line":"            obj_deleter(_id)"},{"line_number":130,"context_line":"        print((_(\u0027Deleted %(resource)s: %(id)s\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_7f990b1f","line":127,"in_reply_to":"5aef4532_033525f6","updated":"2016-03-08 19:06:53.000000000","message":"I believe the parent_id is possibly used by the APIParamsCall decorator.  This is modeled after the method in the parent we are overriding.","commit_id":"ac40f389274ecfe33bb84955cdee062a15f56a1f"}],"neutronclient/shell.py":[{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"533ad174aec688d74814fb113a8350a9320f318b","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    \u0027lbaas-loadbalancer-create\u0027: lbaas_loadbalancer.CreateLoadBalancer,"},{"line_number":217,"context_line":"    \u0027lbaas-loadbalancer-update\u0027: lbaas_loadbalancer.UpdateLoadBalancer,"},{"line_number":218,"context_line":"    \u0027lbaas-loadbalancer-delete\u0027: lbaas_loadbalancer.DeleteLoadBalancer,"},{"line_number":219,"context_line":"    \u0027lbaas-loadbalancer-cascade-delete\u0027:"},{"line_number":220,"context_line":"        lbaas_loadbalancer.CascadeDeleteLoadBalancer,"},{"line_number":221,"context_line":"    \u0027lbaas-loadbalancer-stats\u0027: lbaas_loadbalancer.RetrieveLoadBalancerStats,"},{"line_number":222,"context_line":"    \u0027lbaas-loadbalancer-status\u0027: lbaas_loadbalancer.RetrieveLoadBalancerStatus,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_0350fe30","line":219,"range":{"start_line":219,"start_character":31,"end_line":219,"end_character":32},"updated":"2016-03-04 00:30:02.000000000","message":"like that name!","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"}],"neutronclient/tests/unit/lb/v2/test_cli20_loadbalancer.py":[{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"533ad174aec688d74814fb113a8350a9320f318b","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_cascade_delete_loadbalancer(self):"},{"line_number":136,"context_line":"        # lbaas-loadbalancer-cascade-delete my-id."},{"line_number":137,"context_line":"        resource \u003d \u0027lbaas_lb_tree\u0027"},{"line_number":138,"context_line":"        cmd_resource \u003d \u0027lbaas_lb_tree\u0027"},{"line_number":139,"context_line":"        cmd \u003d lb.CascadeDeleteLoadBalancer(test_cli20.MyApp(sys.stdout), None)"},{"line_number":140,"context_line":"        my_id \u003d \u0027my-id\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_e357d223","line":137,"range":{"start_line":137,"start_character":20,"end_line":137,"end_character":33},"updated":"2016-03-04 00:30:02.000000000","message":"this not intuitive prefer loadabalncer/\u003clb_id\u003e/cascacde_delete","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":17211,"name":"Brandon Palm","email":"bapalm@us.ibm.com","username":"bapalm"},"change_message_id":"7bbde54c44f2ba5b877ae8faddf4be4e2fbc9ad2","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        cmd_resource \u003d \u0027lbaas_lb_tree\u0027"},{"line_number":139,"context_line":"        cmd \u003d lb.CascadeDeleteLoadBalancer(test_cli20.MyApp(sys.stdout), None)"},{"line_number":140,"context_line":"        my_id \u003d \u0027my-id\u0027"},{"line_number":141,"context_line":"        args \u003d [my_id]"},{"line_number":142,"context_line":"        self._test_delete_resource(resource, cmd, my_id, args,"},{"line_number":143,"context_line":"                                   cmd_resource\u003dcmd_resource)"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_5404297d","line":141,"range":{"start_line":141,"start_character":15,"end_line":141,"end_character":22},"updated":"2016-03-07 21:29:31.000000000","message":"Seems like a weird way to go about initializing this array..\n\nWhat about:\n\nargs \u003d []\nargs.append(\u0027my-id\u0027)\n\nI don\u0027t know, maybe I\u0027m overthinking it.","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"}],"neutronclient/v2_0/client.py":[{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"533ad174aec688d74814fb113a8350a9320f318b","unresolved":false,"context_lines":[{"line_number":459,"context_line":"    lbaas_healthmonitor_path \u003d \"/lbaas/healthmonitors/%s\""},{"line_number":460,"context_line":"    lbaas_members_path \u003d lbaas_pool_path + \"/members\""},{"line_number":461,"context_line":"    lbaas_member_path \u003d lbaas_pool_path + \"/members/%s\""},{"line_number":462,"context_line":"    lbaas_lb_tree_path \u003d \"/lbaas/lb_tree/%s\""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    vips_path \u003d \"/lb/vips\""},{"line_number":465,"context_line":"    vip_path \u003d \"/lb/vips/%s\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_c3529634","line":462,"range":{"start_line":462,"start_character":33,"end_line":462,"end_character":40},"updated":"2016-03-04 00:30:02.000000000","message":"not intuitive","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"a92c2efc33b0c3ae5627646e9a1da846f5d394f7","unresolved":false,"context_lines":[{"line_number":459,"context_line":"    lbaas_healthmonitor_path \u003d \"/lbaas/healthmonitors/%s\""},{"line_number":460,"context_line":"    lbaas_members_path \u003d lbaas_pool_path + \"/members\""},{"line_number":461,"context_line":"    lbaas_member_path \u003d lbaas_pool_path + \"/members/%s\""},{"line_number":462,"context_line":"    lbaas_lb_tree_path \u003d \"/lbaas/lb_tree/%s\""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    vips_path \u003d \"/lb/vips\""},{"line_number":465,"context_line":"    vip_path \u003d \"/lb/vips/%s\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_f8a60a52","line":462,"range":{"start_line":462,"start_character":33,"end_line":462,"end_character":40},"in_reply_to":"7af24918_5686f865","updated":"2016-03-07 00:58:26.000000000","message":"Also, somehow I feel that instead of putting it at the end, if we put this variable before lbaas_loadbalancers_path in Line#446, it would be more in an orderly readable format","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"ac8d9b75337f2ab9563d71d53e87455517f58ba4","unresolved":false,"context_lines":[{"line_number":459,"context_line":"    lbaas_healthmonitor_path \u003d \"/lbaas/healthmonitors/%s\""},{"line_number":460,"context_line":"    lbaas_members_path \u003d lbaas_pool_path + \"/members\""},{"line_number":461,"context_line":"    lbaas_member_path \u003d lbaas_pool_path + \"/members/%s\""},{"line_number":462,"context_line":"    lbaas_lb_tree_path \u003d \"/lbaas/lb_tree/%s\""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    vips_path \u003d \"/lb/vips\""},{"line_number":465,"context_line":"    vip_path \u003d \"/lb/vips/%s\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_5686f865","line":462,"range":{"start_line":462,"start_character":33,"end_line":462,"end_character":40},"in_reply_to":"7af24918_c3529634","updated":"2016-03-06 03:04:49.000000000","message":"needs update for  agreed upon /lbaas/loadbalancers/{lb_id}/cascade_delete","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"533ad174aec688d74814fb113a8350a9320f318b","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"                           (lbaas_loadbalancer))"},{"line_number":1070,"context_line":""},{"line_number":1071,"context_line":"    @APIParamsCall"},{"line_number":1072,"context_line":"    def delete_lbaas_lb_tree(self, lbaas_loadbalancer):"},{"line_number":1073,"context_line":"        \"\"\"Cascading delete of the specified load balancer.\"\"\""},{"line_number":1074,"context_line":"        return self.delete(self.lbaas_lb_tree_path % (lbaas_loadbalancer))"},{"line_number":1075,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_433de6db","line":1072,"range":{"start_line":1072,"start_character":8,"end_line":1072,"end_character":28},"updated":"2016-03-04 00:30:02.000000000","message":"crazy name for cascade delete","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"a92c2efc33b0c3ae5627646e9a1da846f5d394f7","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"                           (lbaas_loadbalancer))"},{"line_number":1070,"context_line":""},{"line_number":1071,"context_line":"    @APIParamsCall"},{"line_number":1072,"context_line":"    def delete_lbaas_lb_tree(self, lbaas_loadbalancer):"},{"line_number":1073,"context_line":"        \"\"\"Cascading delete of the specified load balancer.\"\"\""},{"line_number":1074,"context_line":"        return self.delete(self.lbaas_lb_tree_path % (lbaas_loadbalancer))"},{"line_number":1075,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_38c072e0","line":1072,"range":{"start_line":1072,"start_character":8,"end_line":1072,"end_character":28},"in_reply_to":"7af24918_433de6db","updated":"2016-03-07 00:58:26.000000000","message":"+1","commit_id":"bccb51cc1c14e82cda5a9126a0dbaca90bca61c7"}]}
