Skip to content
This repository was archived by the owner on Apr 20, 2023. It is now read-only.

Commit 1fa473e

Browse files
committed
Initial Commit
1 parent 159f5c3 commit 1fa473e

38 files changed

+6012
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
# mysqllinux
1+
# msyql_sdk_plugin
22
MySQL SDK Plugin for Delphix

artifact.json

Lines changed: 436 additions & 0 deletions
Large diffs are not rendered by default.

plugin_config.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
id: ebc2548c-a4c3-402a-b617-389da41292d7
2+
name: mysql-sdk-plugin
3+
language: PYTHON27
4+
hostTypes:
5+
- UNIX
6+
pluginType: STAGED
7+
entryPoint: plugin_runner:plugin
8+
srcDir: src
9+
schemaFile: schema.json
10+
buildNumber: 1.66.0

schema.json

Lines changed: 354 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,354 @@
1+
{
2+
"repositoryDefinition": {
3+
"type": "object",
4+
"additionalProperties": false,
5+
"manualrepositoryDiscovery" : true,
6+
"properties": {
7+
"name": {
8+
"type": "string",
9+
"prettyName": "Name",
10+
"description": "Displayable Name for the MySQL Binary"
11+
},
12+
"version": {
13+
"type": "string",
14+
"prettyName": "Version",
15+
"description": "The version of the MySQL DB binaries"
16+
},
17+
"installPath": {
18+
"type": "string",
19+
"prettyName": "Location",
20+
"description": "This is the path to MySQL executables"
21+
}
22+
},
23+
"nameField": "name",
24+
"identityFields": ["installPath"]
25+
},
26+
"sourceConfigDefinition": {
27+
"type": "object",
28+
"ordering": ["dataDir","port","baseDir","dbName"],
29+
"required": ["dataDir","port","baseDir","dbName"],
30+
"additionalProperties": false,
31+
"properties": {
32+
"dataDir": {
33+
"type": "string",
34+
"prettyName": "Data Directory",
35+
"description": "Full path of the MySQL DB data directory (include the data directory)"
36+
},
37+
"port": {
38+
"type": "string",
39+
"prettyName": "Port",
40+
"description": "Port for the MySQL database"
41+
},
42+
"baseDir": {
43+
"type": "string",
44+
"prettyName": "Base Directory",
45+
"description": "Path of the MySQL Installation, where binaries (/bin) is located "
46+
},
47+
"dbName": {
48+
"type": "string",
49+
"prettyName": "MySQL Instance Name",
50+
"description": "Name of the MySQL Instance."
51+
}
52+
},
53+
"nameField": "dbName",
54+
"identityFields": ["dataDir","port"]
55+
},
56+
"virtualSourceDefinition": {
57+
"type": "object",
58+
"additionalProperties" : false,
59+
"ordering": [
60+
"vdbHost",
61+
"vdbUser",
62+
"vdbPass",
63+
"baseDir",
64+
"port",
65+
"serverId",
66+
"mPath",
67+
"config_settings_prov"
68+
],
69+
"required": [
70+
"vdbHost",
71+
"vdbUser",
72+
"vdbPass",
73+
"baseDir",
74+
"port",
75+
"serverId",
76+
"mPath"
77+
],
78+
"properties" : {
79+
"vdbHost": {
80+
"type": "string",
81+
"prettyName": "HostName or IP",
82+
"description": "HostName or IP Address of Target Host for VDBs",
83+
"default": "localhost"
84+
},
85+
"vdbUser": {
86+
"type": "string",
87+
"prettyName": "DB User",
88+
"description": "DB user for the virtual database",
89+
"default": "delphix1"
90+
},
91+
"vdbPass": {
92+
"type": "string",
93+
"format": "password",
94+
"prettyName": "DB Password",
95+
"description": "DB user password for the virtual database",
96+
"default": "delphix"
97+
},
98+
"baseDir": {
99+
"type": "string",
100+
"prettyName": "BaseDir",
101+
"description": "Path of the MySQL Installation, where binaries (./bin) exists",
102+
"default": "/opt/mysql57/mysql57d"
103+
},
104+
"port": {
105+
"type": "string",
106+
"prettyName": "VDB Port",
107+
"description": "Port for the MySQL VDB",
108+
"default": "3308"
109+
},
110+
"serverId": {
111+
"type": "string",
112+
"prettyName": "VDB Server ID",
113+
"description": "Server ID for the MySQL VDB",
114+
"default": "201"
115+
},
116+
"config_settings_prov" : {
117+
"type" : "array",
118+
"prettyName" : "my.cnf Config Settings",
119+
"description" : "Custom Database-Level config settings",
120+
"items": {
121+
"type": "object",
122+
"required": ["propertyName","value"],
123+
"ordering": ["propertyName", "value"],
124+
"properties": {
125+
"propertyName" : {
126+
"type" : "string",
127+
"prettyName": "Property Name",
128+
"pattern": "^$|^[_a-zA-Z0-9]*$",
129+
"default": "",
130+
"maxLength": 40
131+
},
132+
"value": {
133+
"type": "string",
134+
"prettyName": "Value",
135+
"pattern": "^$|^[_a-zA-Z0-9]*$",
136+
"default": "",
137+
"maxLength": 40
138+
}
139+
}
140+
}
141+
},
142+
"mPath": {
143+
"type": "string",
144+
"prettyName": "Mount Location",
145+
"description": "NFS Mount folder for Delphix",
146+
"default": "/home/mysql/delphix/mount3"
147+
}
148+
}
149+
},
150+
"linkedSourceDefinition": {
151+
"type": "object",
152+
"additionalProperties" : false,
153+
"required": [
154+
"dSourceType",
155+
"serverId",
156+
"stagingPort",
157+
"mountPath",
158+
"stagingip"
159+
],
160+
"ordering" : [
161+
"dSourceType",
162+
"stagingip",
163+
"stagingUser",
164+
"stagingPass",
165+
"stagingBasedir",
166+
"serverId",
167+
"stagingPort",
168+
"mountPath",
169+
"sourceip",
170+
"backupPath",
171+
"sourceUser",
172+
"sourcePass",
173+
"logSync",
174+
"replicationUser",
175+
"replicationPass",
176+
"sourceDatabase",
177+
"sourceTables",
178+
"scpUser",
179+
"scpPass"
180+
],
181+
"properties" : {
182+
"dSourceType": {
183+
"type": "string",
184+
"prettyName": "dSource Type",
185+
"description": "",
186+
"enum": ["Manual Backup Ingestion", "Replication","Simple (Tablespace Backup)"],
187+
"default": "Replication"
188+
},
189+
"backupPath": {
190+
"type": "string",
191+
"prettyName": "Full path (including filename) to MySQL backup.",
192+
"description": "* Leave blank if Delphix is taking backups",
193+
"default": ""
194+
},
195+
"stagingip": {
196+
"type": "string",
197+
"prettyName": "MySQL Staging Server IP address",
198+
"description": "HostName or IP address of the staging server",
199+
"default": "localhost"
200+
},
201+
"sourceip": {
202+
"type": "string",
203+
"prettyName": "Source DB Host IP address",
204+
"description": "* Required if using Replication Method",
205+
"default": "neomysqlsrc.dlpxdc.co"
206+
},
207+
"mountPath": {
208+
"type": "string",
209+
"prettyName": "Mount Location on Staging Host",
210+
"description": "NFS mount directory on the Staging Host",
211+
"default": "/home/mysql/delphix/mount"
212+
},
213+
"sourceUser": {
214+
"type": "string",
215+
"prettyName": "Source DB UserName",
216+
"description": "* Required if Delphix is taking backups",
217+
"default": "delphix1"
218+
},
219+
"sourcePass": {
220+
"type": "string",
221+
"format": "password",
222+
"prettyName": "Source Connection Password",
223+
"description": "* Required if Delphix is taking backups",
224+
"default": "delphix"
225+
},
226+
"logSync": {
227+
"default": true,
228+
"prettyName": "LogSync",
229+
"type": "boolean",
230+
"description": "LogSync needs to be enabled if using Replication Method."
231+
},
232+
"replicationUser": {
233+
"type": "string",
234+
"prettyName": "Replication UserName",
235+
"description": "* Required if using Replication Method with LogSync",
236+
"default": "delphixdb"
237+
},
238+
"replicationPass": {
239+
"type": "string",
240+
"format": "password",
241+
"prettyName": "Replication User's Password",
242+
"description": "* Required if using Replication Method with LogSync",
243+
"default": "delphix"
244+
},
245+
"stagingUser": {
246+
"type": "string",
247+
"prettyName": "Staging DB User Name",
248+
"description": "MySQL Staging DB User Name",
249+
"default": "root"
250+
},
251+
"stagingPass": {
252+
"type": "string",
253+
"format": "password",
254+
"prettyName": "Staging DB Password",
255+
"description": "Staging DB User's Password",
256+
"default": "***REMOVED***"
257+
},
258+
"serverId": {
259+
"type": "string",
260+
"prettyName": "Staging DB Server ID",
261+
"description": "ServerID for the Stagine DB. Must be different from Source DB Server ID",
262+
"default": "102"
263+
},
264+
"sourceDatabase": {
265+
"type": "string",
266+
"prettyName": "Source DB",
267+
"description": "* Name of the Source DB to backup. Required for Simple Tablespace Backup Method",
268+
"default": ""
269+
},
270+
"sourceTables": {
271+
"type": "string",
272+
"prettyName": "Source Tables to backup",
273+
"description": "* ALL or table names separated by comma. Required for Simple Tablespace Backup Method",
274+
"default": "ALL"
275+
},
276+
"scpUser": {
277+
"type": "string",
278+
"prettyName": "Source scp Username",
279+
"description": "* Required for Simple Tablespace Backup Method",
280+
"default": "mysql"
281+
},
282+
"scpPass": {
283+
"type": "string",
284+
"prettyName": "Source scp Password",
285+
"description": "* Required for Simple Tablespace Backup Method",
286+
"default": "mysql"
287+
},
288+
"stagingPort": {
289+
"type": "string",
290+
"prettyName": "Staging DB Port",
291+
"description": "Staging Database Port",
292+
"default": "3307"
293+
},
294+
"stagingBasedir": {
295+
"type": "string",
296+
"prettyName": "MySQL Base Directory",
297+
"description": "Base Directory of MySQL Installation (Location of /bin/mysql)",
298+
"default": "/opt/mysql57/mysql57d"
299+
}
300+
}
301+
},
302+
"snapshotDefinition": {
303+
"type" : "object",
304+
"additionalProperties" : false,
305+
"properties" : {
306+
"snapshotId": {
307+
"type": "string",
308+
"prettyName": "Snapshot ID",
309+
"description": "A unique ID for this snapshot"
310+
},
311+
"snapHost": {
312+
"type": "string",
313+
"prettyName": "Snapshot Host",
314+
"description": ""
315+
},
316+
"snapPort": {
317+
"type": "string",
318+
"prettyName": "Snapshot Port",
319+
"description": ""
320+
},
321+
"snapDataDir": {
322+
"type": "string",
323+
"prettyName": "Snapshot --datadir",
324+
"description": ""
325+
},
326+
"snapBaseDir": {
327+
"type": "string",
328+
"prettyName": "Snapshot --basedir",
329+
"description": ""
330+
},
331+
"snapConn": {
332+
"type": "string",
333+
"prettyName": "Snapshot Connection String",
334+
"description": ""
335+
},
336+
"snapPass": {
337+
"type": "string",
338+
"format": "password",
339+
"prettyName": "Snapshot Connection Password",
340+
"description": ""
341+
},
342+
"snapBackupPath": {
343+
"type": "string",
344+
"prettyName": "Snapshot Backup Path",
345+
"description": ""
346+
},
347+
"snapTime": {
348+
"type": "string",
349+
"prettyName": "Snapshot Timestamp",
350+
"description": "Time when the snapshot was taken."
351+
}
352+
}
353+
}
354+
}

src/common/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)