Skip to content

Service

Purpose

List and perform request/response exchanges with deployed Platform 6 services.

Methods

Binding name: p6.service

Common Message Maps

The Common Message is the single unit of exchange between Platform 6 service. The common message is represent by a Groovy Map when using the service DSL:

def cm = [
    headers: [
        hello: 'world',
        'platform6.request.user': 'admin'
    ],
    attachments: [
        [
            headers: [
                name: 'body',
                type: 'text/plain'
            ],
            bytes: 'This is the content of the attachment'.getBytes()
        ]
    ]
]
The map contains a headers Map and an attachments List. The attachments List can contain a headers Map and a bytes content.

Both headers and attachments are optional.


Method: void post(String destination, Map cmMap)

Sends the provided common message to the named service destination endpoint. This method is fire and forget. I.e. It does not wait for a response.


Method: Map request(String destination, Map cmMap)

Sends the provided common message to the named service destination endpoint and waits indefinitely for a response which is returned as a Map.


Method: Map request(String destination, Map cmMap, long timeOut, TimeUnit tu)

Sends the provided common message to the named service destination endpoint and waiting for up to timeOut time units for a response. Any response is returned as a Map.


Method: void request(String destination, Map cmMap, Closure cb)

Sends the provided common message to the named service destination endpoint and waits indefinitely for a response which is returned as a Map via the supplied asynchronous callback. The Callback will receive one of two parameters in the following order (CommonMessageMap, Exception).


Method: List list()

Returns a List of all deployed Platform 6 services attached to the common message bus represented as destination names.


Method: String getServiceStatus( String serviceId )

Get the service’s status. The status can be: SERVICE_STATE_STARTED, SERVICE_STATE_STARTED_RESTART (if the configuration has changed) and SERVICE_STATE_STOPPED.


Method: void startService( String serviceId )

Start the serviceId service.


Method: void stopService( String serviceId )

Stop the serviceId service.


Method: void restartService( String serviceId )

Restart the serviceId service.

Examples

def lst = p6.service.list()
println lst
p6.service.post("platform6.echo", cm)
def cmResponse = p6.service.request("platform6.echo", cm)
println cmResponse
import java.util.concurrent.TimeUnit

def cmResponse = p6.service.request("platform6.scripts", cm, 5, TimeUnit.SECONDS)
println cmResponse
p6.service.request("platform6.scripts", cm, {
    cmr, e -> 
        println cmr
        if( null != e) throw e
})

sleep 2000

For more information, please refer to the Common Message Bus API Guide.