How to Enable UPM Safe Mode using UPM REST API
Background
Sometimes, it might be useful to set up the UPM to Safe Mode in your instance.
When troubleshooting your instance, some plugins can be the culprit of issues and you want to isolate that. For example:
While the link above explains it how to do so manually, you might want to programmatically perform this action using the UPM REST API.
Ok, but how can I write a script then?
Enable
You can run the following curl command to enable safe mode over the REST API, also expect the output following:
$ curl -H "Content-Type:application/vnd.atl.plugins.safe.mode.flag+json" --user admin:admin -X PUT -d '{"enabled": true, "links": {}}' http://localhost:7990/rest/plugins/1.0/safe-mode
{"enabled":true,"links":{"exit-safe-mode-restore":"/rest/plugins/1.0/safe-mode?keepState=false","exit-safe-mode-keep":"/rest/plugins/1.0/safe-mode?keepState=true"}}
Disable
You can run the following cURL call to disable the UPM Safe mode:
$ curl -H "Content-Type:application/vnd.atl.plugins.safe.mode.flag+json" --user admin:admin -X PUT -d '{"enabled": false, "links": {}}' http://localhost:7990/rest/plugins/1.0/safe-mode?keepState=true
{"enabled":false,"links":{"safe-mode":"/rest/plugins/1.0/safe-mode"}}
The value for keepState
is asking if you want to keep the current state which, because you are now in Safe mode, the current state is disabled. If you want to exit UPM Safe mode and have your plugins return to the state they were in when you entered Safe mode then you should set keepState=false
Check
You can always check UPM status by using the call below:
$ curl -u admin:admin http://localhost:7990/rest/plugins/latest/safe-mode
{"enabled":false,"links":{"safe-mode":"/rest/plugins/1.0/safe-mode"}}