maestrodev/maestro-rightscale-plugin

View on GitHub
manifest.template.json

Summary

Maintainability
Test Coverage
{
  "image": "rightscale.png",
    "source_types": [
        {
            "name": "RightScale",
            "options": {
                "account_id": "Integer",
                "username": "String",
                "password": "Password",
                "api_url": "Url",
                "oauth_url": "Url",
                "refresh_token": "String"
            }
        }
    ],
    "tasks": [
        {
            "name": "rightscale start server",
            "description": "Start a server defined in RightScale",
            "license": "Apache License 2.0",
            "author": "Brett Porter",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/start",
                "inputs": {
                    "nickname": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Server nickname, ignored if server_id is set"
                    },
                    "server_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Server id. If not set then nickname is used"
                    },
                    "deployment_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Deployment id. Used in combination with (non-unique) nickname to find the correct server"
                    },
                    "deployment_name": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Deployment name. Used in combination with (non-unique) nickname to find the correct server"
                    },
                    "wait_until_started": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Make the composition wait until the server is started"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": false,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    },
                    "oauth_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com/api/oauth2",
                        "description": "RightScale OAuth API endpoint URL"
                    },
                    "refresh_token": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale API Refresh Token"
                    }
                },
                "outputs": {
                    "rightscale_server_id": {
                        "type": "Integer"
                    },
                    "rightscale_ip_address": {
                        "type": "String"
                    },
                    "rightscale_private_ip_address": {
                        "type": "String"
                    }
                },
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        },
        {
            "name": "rightscale get server",
            "description": "Get a server defined in RightScale",
            "license": "Apache License 2.0",
            "author": "Brett Porter",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/get_server",
                "inputs": {
                    "nickname": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Server nickname, ignored if server_id is set"
                    },
                    "server_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Server id. If not set then nickname is used"
                    },
                    "deployment_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Deployment id. Used in combination with (non-unique) nickname to find the correct server"
                    },
                    "deployment_name": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Deployment name. Used in combination with (non-unique) nickname to find the correct server"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": false,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    }
                },
                "outputs": {
                    "rightscale_server_id": {
                        "type": "Integer"
                    },
                    "rightscale_ip_address": {
                        "type": "String"
                    },
                    "rightscale_private_ip_address": {
                        "type": "String"
                    }
                },
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        },
        {
            "name": "rightscale stop server",
            "description": "Stop a server defined in RightScale",
            "license": "Apache License 2.0",
            "author": "Brett Porter",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/stop",
                "inputs": {
                    "nickname": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Server nickname, ignored if server_id is set"
                    },
                    "server_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Server id. If not set then nickname is used"
                    },
                    "deployment_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Deployment id. Used in combination with (non-unique) nickname to find the correct server"
                    },
                    "deployment_name": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Deployment name. Used in combination with (non-unique) nickname to find the correct server"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": false,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    },
                    "wait_until_stopped": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Make the composition wait until the server is stopped"
                    },
                    "oauth_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com/api/oauth2",
                        "description": "RightScale OAuth API endpoint URL"
                    },
                    "refresh_token": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale API Refresh Token"
                    }
                },
                "outputs": {
                    "rightscale_server_id": {
                        "type": "Integer"
                    },
                    "state": {
                        "type": "String"
                    }
                },
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        },
        {
            "name": "rightscale wait for server state",
            "description": "Wait for a server defined in RightScale to be in a certain state",
            "license": "Apache License 2.0",
            "author": "Brett Porter",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/wait",
                "inputs": {
                    "nickname": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Server nickname, ignored if server_id is set"
                    },
                    "server_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Server id. If not set then nickname is used"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": false,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    },
                    "oauth_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com/api/oauth2",
                        "description": "RightScale OAuth API endpoint URL"
                    },
                    "refresh_token": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale API Refresh Token"
                    },
                    "state": {
                        "required": true,
                        "type": "String",
                        "value": "operational",
                        "description": "Make the composition wait until the server is in this state (pending, booting, stopped, terminated, operational,...)"
                    },
                    "timeout": {
                        "required": false,
                        "type": "Integer",
                        "value": 600,
                        "description": "The number of seconds to wait before timing out)"
                    },
                    "timeout_interval": {
                        "required": false,
                        "type": "Integer",
                        "value": 10,
                        "description": "The frequency of polling between state checks)"
                    }
                },
                "outputs": {
                    "rightscale_server_id": {
                        "type": "Integer"
                    },
                    "state": {
                        "type": "String"
                    }
                },
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        },
        {
            "name": "rightscale start deployment",
            "description": "Start all servers in a deployment defined in RightScale",
            "license": "Apache License 2.0",
            "author": "David Castro",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/start_deployment",
                "inputs": {
                    "deployment_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "ID of the deployment to start servers in"
                    },
                    "deployment_name": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Name of the deployment to start servers in"
                    },
                    "wait_until_started": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Make the composition wait until the servers are started"
                    },
                    "show_progress": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Show progress of the checks for server state"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": false,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "oauth_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com/api/oauth2",
                        "description": "RightScale OAuth API endpoint URL"
                    },
                    "refresh_token": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale API Refresh Token"
                    }
                },
                "outputs": {
                    "rightscale_servers": {
                        "type": "Integer"
                    }
                },
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        },
        {
            "name": "rightscale stop deployment",
            "description": "Stop all servers in a deployment defined in RightScale",
            "license": "Apache License 2.0",
            "author": "David Castro",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/stop_deployment",
                "inputs": {
                    "deployment_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "ID of the deployment to stop servers in"
                    },
                    "deployment_name": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Name of the deployment to stop servers in"
                    },
                    "wait_until_stopped": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Make the composition wait until the servers are stopped"
                    },
                    "show_progress": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Show progress of the checks for server state"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": false,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "oauth_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com/api/oauth2",
                        "description": "RightScale OAuth API endpoint URL"
                    },
                    "refresh_token": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale API Refresh Token"
                    }
                },
                "outputs": {
                    "rightscale_servers": {
                        "type": "Integer"
                    }
                },
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        },
        {
            "name": "rightscale execute script",
            "description": "Execute a RightScript",
            "license": "Apache License 2.0",
            "author": "Brett Porter",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/execute",
                "inputs": {
                    "nickname": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "Server nickname, ignored if server_id is set"
                    },
                    "server_id": {
                        "required": false,
                        "type": "Integer",
                        "value": null,
                        "description": "Server id. If not set then nickname is used"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": true,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": true,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    },
                    "recipe": {
                        "required": true,
                        "type": "String",
                        "value": "",
                        "description": "The RightScript to run (currently supports recipes only)"
                    },
                    "wait_for_completion": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Make the composition wait until the task is complete"
                    }
                },
                "outputs": {},
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        },
        {
            "name": "rightscale create cloudflow",
            "description": "Create a RightScale CloudFlow process",
            "license": "Apache License 2.0",
            "author": "David Castro",
            "version": "updated at build time",
            "class": "MaestroDev::Plugin::RightScaleWorker",
            "type": "ruby",
            "dependencies": [],
            "task": {
                "command": "/rightscale/create_cloudflow",
                "inputs": {
                    "cloudflow_name": {
                        "required": true,
                        "type": "String",
                        "value": null,
                        "description": "CloudFlow name"
                    },
                    "cloudflow_inputs": {
                        "required": false,
                        "type": "Array",
                        "value": null,
                        "description": "A list of CloudFlow input params (format: [$var]=value)"
                    },
                    "command_string": {
                        "description": "The CloudFlow definition string",
                        "required": true,
                        "type": "String",
                        "value": "define func()\nend"
                    },
                    "wait_until_complete": {
                        "required": false,
                        "type": "Boolean",
                        "value": true,
                        "description": "Make the composition wait until the CloudFlow is done executing"
                    },
                    "account_id": {
                        "required": true,
                        "type": "Integer",
                        "value": null,
                        "description": "RightScale account id"
                    },
                    "username": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale username"
                    },
                    "password": {
                        "required": false,
                        "type": "Password",
                        "value": null,
                        "description": "RightScale password"
                    },
                    "api_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com",
                        "description": "RightScale API endpoint URL"
                    },
                    "oauth_url": {
                        "required": false,
                        "type": "Url",
                        "value": "https://my.rightscale.com/api/oauth2",
                        "description": "RightScale OAuth API endpoint URL"
                    },
                    "refresh_token": {
                        "required": false,
                        "type": "String",
                        "value": null,
                        "description": "RightScale API Refresh Token"
                    }
                },
                "outputs": {
                    "rightscale_cloudflow_process_id": {
                        "type": "String"
                    }
                },
                "icon": "rightscale.png",
                "tool_name": "Cloud"
            }
        }
    ]
}