Plugin Config¶
For all regular fields in a plugin config go here. The following fields described are the ones needed to migrate lua toolkits to python plugins.
Fields¶
| Field Name | Required | Type | Description |
|---|---|---|---|
| luaName | N | string | The name of the lua toolkit this plugin should upgrade from. This field is required if the minimumLuaVersion is defined. |
| minimumLuaVersion | N | string | The lowest major minor version of the lua toolkit that upgrade is supported from. This field is required if the luaName is defined. |
Example¶
Assume a lua toolkit with the following main.json file:
{
"type": "Toolkit",
"name": "delphixdb",
"prettyName": "DelphixDB",
"version": "1.0.0",
"defaultLocale": "en-us",
"hostTypes": ["UNIX"],
"discoveryDefinition": {
"type": "ToolkitDiscoveryDefinition",
"repositorySchema": {
"type": "object",
"properties": {
"installPath": {
"type": "string",
"prettyName": "Delphix DB Binary Installation Path",
"description": "The path to the Delphix DB installation binaries"
},
"version": {
"type": "string",
"prettyName": "Version",
"description": "The version of the Delphix DB binaries"
}
}
},
"repositoryIdentityFields": ["installPath"],
"repositoryNameField": "installPath",
"sourceConfigSchema": {
"type": "object",
"properties": {
"dataPath": {
"type": "string",
"prettyName": "Data Path",
"description": "The path to the Delphix DB instance's data"
},
"port": {
"type": "integer",
"prettyName": "Port",
"description": "The port of the Delphix DB"
},
"dbName": {
"type": "string",
"prettyName": "Delphix DB Name",
"description": "The name of the Delphix DB instance."
}
}
},
"sourceConfigIdentityFields": ["dataPath"],
"sourceConfigNameField": "dataPath"
},
"linkedSourceDefinition": {
"type": "ToolkitLinkedStagedSource",
"parameters": {
"type": "object",
"additionalProperties": false,
"properties": {
"primaryDbName": {
"type": "string",
"prettyName": "Primary DB Name",
"description": "The name of the primary database to link.",
"default": "primaryDB"
},
"stagingDbName": {
"type": "string",
"prettyName": "Staging DB Name",
"description": "The name of the staging database to create."
},
"stagingPort": {
"type": "integer",
"prettyName": "Staging Port",
"description": "The port of the staging database to create.",
"default": 1234
}
}
}
},
"virtualSourceDefinition": {
"type": "ToolkitVirtualSource",
"parameters": {
"type": "object",
"additionalProperties": false,
"properties": {
"port": {
"type": "integer",
"prettyName": "Port",
"description": "Port that provisioned database should use.",
"default": 1234
},
"dbName": {
"type": "string",
"prettyName": "Database Name",
"description": "Name to use for newly provisioned database.",
"default": "vdb"
}
}
}
},
"snapshotSchema": {
"type": "object",
"properties": {
"snapshotID": {
"type": "string",
"prettyName": "Snapshot ID",
"description": "A unique ID for this snapshot"
}
}
}
}
Here is a valid plugin config for a plugin that wants to be upgradable from the toolkit:
id: ea009cb4-f76b-46dc-bbb6-689e7acecce4
name: DelphixDB
luaName: delphixdb
minimumLuaVersion: "1.0"
language: PYTHON27
hostTypes:
- UNIX
pluginType: STAGED
entryPoint: plugin_runner:plugin
srcDir: src
schemaFile: schema.json
buildNumber: 2.0.0
id and luaName fields in plugins versus name field in toolkits
- If the
idof the plugin being uploaded happens to match thenamein the toolkit already installed on the engine, the upload will fail regardless of what theluaNameis. Otherwise, theluaNamewill be used to determine if an already uploaded lua toolkit is considered a lower version of the plugin being uploaded. If theluaNameis not set then no lua toolkit will be upgraded. - When uploading a plugin with the
luaNameset, thatluaNameandidpair will be the only pair uploaded successfully. Uploading a new plugin with the sameluaNamebut differentidwill fail.