1) Presentation
In this chapter we will create all necessary files in order to show our share service in the portal. We will need the config.json, the metadata.json and a new file specific to the shared service the appmodel.json. The appmodel.json provides the name and the version of the shared service but also to which pattern-type it is belong to and which client version can call it.
1.1) Define the application model:
As any other type of plugin an application model must be defined, so let’s create a metadata.json under the plugin/appmodel directory with the following content:
[
{
"id": "poolmanager",
"type": "component",
"label": "Pool Manager",
"attributes": [
{
"id": "poolsize",
"type": "number",
"required": true,
"label": "Pool Size",
"description": "The number of resources in the Pool."
}
]
}
]
So, we defined here a component with range attribute of type ‘number’ to specify the poolsize.
1.2) The config.json file.
Again as any other plugin, we have to define a config.json file and here the primary pattern-type can be “foundation” but if you want to use your own pattern-type don’t forget to modify accordingly the appmodel.json (chap 1.3 below) to define your own pattern-type instead of the “foundation”.
{
"name":"poolmanager",
"version" : "1.0.0.4",
"patterntypes":{
"primary":{
"foundation":"2.0"
}
}
}
1.3) Define the shared service application model.
A shared service needs also an application model to define the parameters that have to be captured at deployment time. This application model reference the attribute defined in the appmodel/metadata.json.
{
"model": {
"name": "Pool Manager (Sample)",
"app_type": "service",
"servicename": "poolmanager",
"servicedisplayname": "Pool Manager (Sample)",
"serviceversion": "1.0.0.4",
"servicesupportedclients": "[1.0,1.0]",
"patterntype": "foundation",
"version": "2.0",
"description": "This is a sample shared services which manage a dummy pool of resources.",
"nodes": [
{
"attributes": {
"poolsize": 20
},
"id": "poolmanagerservice",
"type": "POOLMANAGER"
}
],
"links": [
]
}
}
1.4) Test
Now, we can build and upload the plugin as a System-plugin.
You can notice that the plugin will be uploaded under the ‘Foundation 2.0’ as described in the config.json file.
Now, open the ‘Cloud’ -> ‘Shared Services’ tab and you will see our shared service ‘Pool Manager (Sample)’.
click on it and look at the details:
Click on ‘deploy’ and you see our attribute defined in the metadata.json and referenced in the appmodel.json.


