1
votes

At the moment, in order to restart a Mule application, I need to:

  • Log into Mule via a browser
  • Navigate to the Runtime Manager
  • Select my environment
  • Locate my application
  • Navigate to Settings
  • Then restart

I know that MuleSoft have a Management API (CloudHub API), but I cannot find an example of how to restart an application via a REST call.

If anyone has a working example or can point me in the right direction I would appreciate it.

Thanks

3

3 Answers

2
votes

Just in case if anyone wants to know how to restart a Mule application hosted on CloudHub via REST API.

Call this API

https://anypoint.mulesoft.com/cloudhub/api/applications/{domain}/status with payload "RESTART"

  • API Endpoint: /applications/{domain}/status
  • Method: POST

Example payload in request body:

{
"status": " 'RESTART' or 'stop' or 'start' ",
"staticIpAddress": "10.4.6.22"
}

Postman code snippet: update the bearer token, domain and environment id

curl --request POST \
--url https://anypoint.mulesoft.com/cloudhub/api/applications/{cloudhub-app- 
      domain}/status \
--header 'Authorization: Bearer token' \
--header 'Content-Type: application/json' \
--header 'Postman-Token: 42539dcd-1d33-4b66-80d9-6cfcc4ed8f77' \
--header 'X-ANYPNT-ENV-ID: environment ID' \
--header 'cache-control: no-cache' \
--data '{\n "status":"RESTART"\n}'
0
votes

First, you need to install the runtime manager agent

https://docs.mulesoft.com/runtime-manager/installing-and-configuring-runtime-manager-agent

Second, you can find an example in below link:

https://docs.mulesoft.com/runtime-manager/managing-applications-and-domains

Operation: Restart an Application

PUT http://localhost:9999/mule/applications/myapp/restart HTTP/1.1
Content-Type: application/json
0
votes

Further to developer9's answer, here's how to obtain the Bearer token: https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/version/v1/pages/Authentication/

To access Platform APIs, you must obtain a token from either the login endpoint or using the OAuth authorization process. To authenticate using a username and password, you must invoke the /login API.

    POST /accounts/login HTTP/1.1
    Content-Type: application/json
    {
       "username" : "joe",
       "password" : "password"
    }

This returns the following response and token:

    {
    "access_token": "d127e2ec-a703-4e2a-8629-e9158804748b",
    "token_type": "bearer"
    }

You can then use that in the restart (or other API request). Eg (note, update the bearer token, domain and environment id)

    curl --request POST \
    --url https://anypoint.mulesoft.com/cloudhub/api/applications/{cloudhub-app- 
          domain}/status \
    --header 'Authorization: Bearer d127e2ec-a703-4e2a-8629-e9158804748b' \
    --header 'Content-Type: application/json' \
    --header 'Postman-Token: 42539dcd-1d33-4b66-80d9-6cfcc4ed8f77' \
    --header 'X-ANYPNT-ENV-ID: environment ID' \
    --header 'cache-control: no-cache' \
    --data '{\n "status":"RESTART"\n}'