)]}'
{"trove/extensions/routes/mysql.py":[{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"b292d018738116c96391941f36ff6ed411256433","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            custom_routes\u003d[{\u0027include_parent_path\u0027: True,"},{"line_number":76,"context_line":"                            \u0027path\u0027: \u0027/root\u0027,"},{"line_number":77,"context_line":"                            \u0027action\u0027: \u0027delete\u0027,"},{"line_number":78,"context_line":"                            \u0027method\u0027: \u0027DELETE\u0027}])"},{"line_number":79,"context_line":"        resources.append(resource)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_ca2aac90","line":78,"updated":"2015-06-26 16:46:36.000000000","message":"There is no need of a custom_routes\n\nYou can simply achieve this by using something similar to https://github.com/openstack/trove/blob/master/trove/extensions/routes/mysql.py#L67\n\n\ncollection_actions\u003d{\u0027delete\u0027: \u0027DELETE\u0027}\n\nI tried this and it was working if you want to request against the URL \n\nDELETE \u003ctenant-id\u003e/instances/\u003cinstance-id\u003e/root","commit_id":"cab0afabfed8140885827a513f25f959f1b27489"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"2f67fabd3bc0da9a532ae9bd8b1629581dfaf47e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            custom_routes\u003d[{\u0027include_parent_path\u0027: True,"},{"line_number":76,"context_line":"                            \u0027path\u0027: \u0027/root\u0027,"},{"line_number":77,"context_line":"                            \u0027action\u0027: \u0027delete\u0027,"},{"line_number":78,"context_line":"                            \u0027method\u0027: \u0027DELETE\u0027}])"},{"line_number":79,"context_line":"        resources.append(resource)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_3b94c942","line":78,"in_reply_to":"fa32b979_124d2ac4","updated":"2015-06-26 18:54:11.000000000","message":"I retested and found that the change I have suggested in earlier comment helps both URLs to work:\n\n1. DELETE \u003ctenant-id\u003e/instances/\u003cinstance-id\u003e/root\n\n2. DELETE \u003ctenant-id\u003e/instances/\u003cinstance-id\u003e/root/delete","commit_id":"cab0afabfed8140885827a513f25f959f1b27489"},{"author":{"_account_id":12673,"name":"Duk Loi","email":"duk@tesora.com","username":"duktesora"},"change_message_id":"fac5a77d5079c30da23bfaf689fc0655285d552a","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            custom_routes\u003d[{\u0027include_parent_path\u0027: True,"},{"line_number":76,"context_line":"                            \u0027path\u0027: \u0027/root\u0027,"},{"line_number":77,"context_line":"                            \u0027action\u0027: \u0027delete\u0027,"},{"line_number":78,"context_line":"                            \u0027method\u0027: \u0027DELETE\u0027}])"},{"line_number":79,"context_line":"        resources.append(resource)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_cf2abb2f","line":78,"in_reply_to":"fa32b979_ca2aac90","updated":"2015-06-26 17:15:24.000000000","message":"I don\u0027t think that is the case.  When I tested it the path was not generated as you stated.  It actually turned out to be\n\nDELETE \u003ctenant-id\u003e/instances/\u003cinstance-id\u003e/root/delete\n\nwhich matches the code that generates the route that is found here.\n\nhttps://github.com/openstack/trove/blob/master/trove/common/extensions.py#L310\n\nI will check again but I am pretty sure I tried what you suggested above and the url I specified above was generated.","commit_id":"cab0afabfed8140885827a513f25f959f1b27489"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"8c2ffd03c7e5accddfcd016cdbd671e2967c9971","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            custom_routes\u003d[{\u0027include_parent_path\u0027: True,"},{"line_number":76,"context_line":"                            \u0027path\u0027: \u0027/root\u0027,"},{"line_number":77,"context_line":"                            \u0027action\u0027: \u0027delete\u0027,"},{"line_number":78,"context_line":"                            \u0027method\u0027: \u0027DELETE\u0027}])"},{"line_number":79,"context_line":"        resources.append(resource)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_124d2ac4","line":78,"in_reply_to":"fa32b979_cf2abb2f","updated":"2015-06-26 17:50:00.000000000","message":"I have tested this using a call\n\ncurl -g -i --cacert \"/opt/stack/data/CA/int-ca/ca-chain.pem\" -X DELETE http://192.168.0.113:8779/v1.0/d2f872c2de4e46b3805155bd41705433/instances/c8476b73-8e1e-4c54-991e-ce5340202a92/root -H \"User-Agent: python-keystoneclient\" -H \"Content-Type: application/json\" -H \"Accept: application/json\" -H \"X-Auth-Token: d2ae2f47da724211b596c576659cafff\"\n\nand this works.\n\nI just added the suggested change in trove/extensions/routes/mysql.py and dummy delete method in RootController in trove/extensions/mysql/service.py","commit_id":"cab0afabfed8140885827a513f25f959f1b27489"}],"trove/guestagent/datastore/experimental/cassandra/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"374f427eff020135293aa07adc279500214d623f","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":146,"context_line":"            operation\u003d\u0027enable_root_with_password\u0027, datastore\u003dself.manager)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def disable_root(self, context):"},{"line_number":149,"context_line":"        LOG.debug(\"Disabling root.\")"},{"line_number":150,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":151,"context_line":"            operation\u003d\u0027disable_root\u0027, datastore\u003dself.manager)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def is_root_enabled(self, context):"},{"line_number":154,"context_line":"        raise exception.DatastoreOperationNotSupported("}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_dd2c3004","line":151,"range":{"start_line":148,"start_character":0,"end_line":151,"end_character":61},"updated":"2015-12-20 02:12:53.000000000","message":"This should be moved to guestagent/datastore/manager.py so it\u0027s there for all datastores","commit_id":"3dd74f53c67a51c25b6264e9c44da54965eb6f81"}],"trove/guestagent/datastore/experimental/couchbase/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"374f427eff020135293aa07adc279500214d623f","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    def disable_root(self, context):"},{"line_number":153,"context_line":"        LOG.debug(\"Disabling root.\")"},{"line_number":154,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":155,"context_line":"            operation\u003d\u0027disable_root\u0027, datastore\u003dself.manager)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def is_root_enabled(self, context):"},{"line_number":158,"context_line":"        LOG.debug(\"Checking if root is enabled.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_fd31ec5a","line":155,"updated":"2015-12-20 02:12:53.000000000","message":"not needed (once in guestagent/datastore/manager.py)","commit_id":"3dd74f53c67a51c25b6264e9c44da54965eb6f81"}],"trove/guestagent/datastore/experimental/couchdb/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"374f427eff020135293aa07adc279500214d623f","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def disable_root(self, context):"},{"line_number":163,"context_line":"        LOG.debug(\"Disabling root.\")"},{"line_number":164,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":165,"context_line":"            operation\u003d\u0027disable_root\u0027, datastore\u003dself.manager)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def is_root_enabled(self, context):"},{"line_number":168,"context_line":"        LOG.debug(\"Checking if root is enabled.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_9d32285d","line":165,"updated":"2015-12-20 02:12:53.000000000","message":"not needed (once in guestagent/datastore/manager.py)","commit_id":"3dd74f53c67a51c25b6264e9c44da54965eb6f81"}],"trove/guestagent/datastore/experimental/db2/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"374f427eff020135293aa07adc279500214d623f","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def disable_root(self, context):"},{"line_number":168,"context_line":"        LOG.debug(\"Disabling root.\")"},{"line_number":169,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":170,"context_line":"            operation\u003d\u0027disable_root\u0027, datastore\u003dself.manager)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def is_root_enabled(self, context):"},{"line_number":173,"context_line":"        LOG.debug(\"Checking if root is enabled.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_5d4120a8","line":170,"updated":"2015-12-20 02:12:53.000000000","message":"not needed (once in guestagent/datastore/manager.py)","commit_id":"3dd74f53c67a51c25b6264e9c44da54965eb6f81"}],"trove/guestagent/datastore/experimental/mongodb/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"374f427eff020135293aa07adc279500214d623f","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    def disable_root(self, context):"},{"line_number":181,"context_line":"        LOG.debug(\"Disabling root.\")"},{"line_number":182,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":183,"context_line":"            operation\u003d\u0027disable_root\u0027, datastore\u003dself.manager)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def is_root_enabled(self, context):"},{"line_number":186,"context_line":"        LOG.debug(\"Checking if root is enabled.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_7d3e5c29","line":183,"updated":"2015-12-20 02:12:53.000000000","message":"not needed (once in guestagent/datastore/manager.py)","commit_id":"3dd74f53c67a51c25b6264e9c44da54965eb6f81"}],"trove/guestagent/datastore/experimental/redis/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"374f427eff020135293aa07adc279500214d623f","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    def disable_root(self, context):"},{"line_number":242,"context_line":"        LOG.debug(\"Disabling root.\")"},{"line_number":243,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":244,"context_line":"            operation\u003d\u0027disable_root\u0027, datastore\u003dMANAGER)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    def is_root_enabled(self, context):"},{"line_number":247,"context_line":"        LOG.debug(\"Checking if root is enabled.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_3d4454b5","line":244,"updated":"2015-12-20 02:12:53.000000000","message":"not needed (once in guestagent/datastore/manager.py)","commit_id":"3dd74f53c67a51c25b6264e9c44da54965eb6f81"}],"trove/guestagent/datastore/experimental/vertica/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"374f427eff020135293aa07adc279500214d623f","unresolved":false,"context_lines":[{"line_number":174,"context_line":"    def disable_root(self, context):"},{"line_number":175,"context_line":"        LOG.debug(\"Disabling root.\")"},{"line_number":176,"context_line":"        raise exception.DatastoreOperationNotSupported("},{"line_number":177,"context_line":"            operation\u003d\u0027disable_root\u0027, datastore\u003dself.manager)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def is_root_enabled(self, context):"},{"line_number":180,"context_line":"        LOG.debug(\"Checking if root is enabled.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_dd13d0b6","line":177,"updated":"2015-12-20 02:12:53.000000000","message":"not needed (once in guestagent/datastore/manager.py)","commit_id":"3dd74f53c67a51c25b6264e9c44da54965eb6f81"}]}
