Skip to content

Commit a4a8fc0

Browse files
committed
Cleanup
1 parent 7cabd8a commit a4a8fc0

File tree

5 files changed

+36
-37
lines changed

5 files changed

+36
-37
lines changed

forward_engineering/api.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module.exports = {
2929
}
3030
const progress = createLogger(logger, containerProps.dbId, graphName);
3131

32-
const cosmosClient = applyToInstanceHelper(_).setUpDocumentClient(data);
32+
const cosmosClient = applyToInstanceHelper().setUpDocumentClient(data);
3333

3434
progress('Create database if not exists ...');
3535

@@ -41,9 +41,9 @@ module.exports = {
4141

4242
const containerResponse = await cosmosClient.database(containerProps.dbId).containers.createIfNotExists({
4343
id: graphName,
44-
partitionKey: getPartitionKey(_)(data.containerData),
45-
...applyToInstanceHelper(_).getContainerThroughputProps(containerProps),
46-
defaultTtl: applyToInstanceHelper(_).getTTL(containerProps),
44+
partitionKey: getPartitionKey()(data.containerData),
45+
...applyToInstanceHelper().getContainerThroughputProps(containerProps),
46+
defaultTtl: applyToInstanceHelper().getTTL(containerProps),
4747
});
4848

4949
progress('Applying Cosmos DB script ...');
@@ -66,19 +66,19 @@ module.exports = {
6666
const storedProcs = _.get(cosmosDBScript, 'Stored Procedures', []);
6767
if (storedProcs.length) {
6868
progress('Upload stored procs ...');
69-
await applyToInstanceHelper(_).createStoredProcs(storedProcs, containerResponse.container);
69+
await applyToInstanceHelper().createStoredProcs(storedProcs, containerResponse.container);
7070
}
7171

7272
const udfs = _.get(cosmosDBScript, 'User Defined Functions', []);
7373
if (udfs.length) {
7474
progress('Upload user defined functions ...');
75-
await applyToInstanceHelper(_).createUDFs(udfs, containerResponse.container);
75+
await applyToInstanceHelper().createUDFs(udfs, containerResponse.container);
7676
}
7777

7878
const triggers = _.get(cosmosDBScript, 'Triggers', []);
7979
if (triggers.length) {
8080
progress('Upload triggers ...');
81-
await applyToInstanceHelper(_).createTriggers(triggers, containerResponse.container);
81+
await applyToInstanceHelper().createTriggers(triggers, containerResponse.container);
8282
}
8383

8484
if (!gremlinScript) {
@@ -87,16 +87,16 @@ module.exports = {
8787

8888
progress('Applying Gremlin script ...');
8989

90-
const { labels, edges } = applyToInstanceHelper(_).parseScriptStatements(gremlinScript);
91-
const gremlinClient = await applyToInstanceHelper(_).getGremlinClient(data, containerProps.dbId, graphName);
90+
const { labels, edges } = applyToInstanceHelper().parseScriptStatements(gremlinScript);
91+
const gremlinClient = await applyToInstanceHelper().getGremlinClient(data, containerProps.dbId, graphName);
9292

9393
progress('Uploading labels ...');
9494

95-
await applyToInstanceHelper(_).runGremlinQueries(gremlinClient, labels);
95+
await applyToInstanceHelper().runGremlinQueries(gremlinClient, labels);
9696

9797
progress('Uploading edges ...');
9898

99-
await applyToInstanceHelper(_).runGremlinQueries(gremlinClient, edges);
99+
await applyToInstanceHelper().runGremlinQueries(gremlinClient, edges);
100100

101101
cb();
102102
} catch (err) {
@@ -109,8 +109,8 @@ module.exports = {
109109
logger.clear();
110110
logger.log('info', connectionInfo, 'Test connection', connectionInfo.hiddenKeys);
111111
try {
112-
const client = applyToInstanceHelper(_).setUpDocumentClient(connectionInfo);
113-
await applyToInstanceHelper(_).testConnection(client);
112+
const client = applyToInstanceHelper().setUpDocumentClient(connectionInfo);
113+
await applyToInstanceHelper().testConnection(client);
114114
return cb();
115115
} catch (err) {
116116
logger.log('error', mapError(err), 'Connection failed');

forward_engineering/applyToInstanceHelper.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
const { CosmosClient, StoredProcedure, UserDefinedFunction, Trigger } = require('@azure/cosmos');
22
const gremlin = require('gremlin');
3+
const _ = require('lodash');
34

4-
const applyToInstanceHelper = _ => ({
5+
const applyToInstanceHelper = () => ({
56
setUpDocumentClient(connectionInfo) {
67
const dbNameRegExp = /wss:\/\/(\S*).gremlin\.cosmos\./i;
78
const dbName = dbNameRegExp.exec(connectionInfo.gremlinEndpoint);

reverse_engineering/api.js

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ module.exports = {
1515
},
1616

1717
disconnect: function (connectionInfo, logger, cb, app) {
18-
const sshService = app.require('@hackolade/ssh-service');
19-
gremlinHelper.close(sshService);
2018
cb();
2119
},
2220

@@ -54,7 +52,6 @@ module.exports = {
5452
},
5553

5654
getDbCollectionsNames: async function (connectionInfo, logger, cb, app) {
57-
const sshService = app.require('@hackolade/ssh-service');
5855
try {
5956
client = setUpDocumentClient(connectionInfo);
6057
logger.log('info', connectionInfo, 'Reverse-Engineering connection settings', connectionInfo.hiddenKeys);
@@ -74,7 +71,7 @@ module.exports = {
7471
);
7572
const result = await collections.reduce(async (acc, collection) => {
7673
const res = await acc;
77-
await gremlinHelper.connect({ ...connectionInfo, collection: collection.id }, sshService);
74+
await gremlinHelper.connect({ ...connectionInfo, collection: collection.id });
7875
logger.log('info', '', 'Connected to the Gremlin API', connectionInfo.hiddenKeys);
7976
let collectionLabels;
8077
try {
@@ -85,7 +82,7 @@ module.exports = {
8582
'Collection labels list',
8683
connectionInfo.hiddenKeys,
8784
);
88-
gremlinHelper.close(sshService);
85+
gremlinHelper.close();
8986
} catch (err) {
9087
if (err.message?.includes('NullReferenceException')) {
9188
logger.log(
@@ -94,7 +91,7 @@ module.exports = {
9491
'Skipping document collection',
9592
connectionInfo.hiddenKeys,
9693
);
97-
gremlinHelper.close(sshService);
94+
gremlinHelper.close();
9895
return res;
9996
} else {
10097
throw err;
@@ -118,8 +115,6 @@ module.exports = {
118115
},
119116

120117
getDbCollectionsData: async function (data, logger, cb, app) {
121-
const sshService = app.require('@hackolade/ssh-service');
122-
123118
try {
124119
logger.clear();
125120
logger.log('info', data, 'connectionInfo', data.hiddenKeys);
@@ -171,7 +166,7 @@ module.exports = {
171166
};
172167

173168
logger.log('info', { collection: collectionName }, 'Getting container nodes data', data.hiddenKeys);
174-
await gremlinHelper.connect({ collection: collectionName }, sshService);
169+
await gremlinHelper.connect({ collection: collectionName });
175170
const nodesData = await getNodesData(collectionName, labels, logger, {
176171
recordSamplingSettings,
177172
fieldInference,
@@ -202,7 +197,7 @@ module.exports = {
202197
fieldInference,
203198
);
204199
packages.relationships.push(relationshipData);
205-
gremlinHelper.close(sshService);
200+
gremlinHelper.close();
206201

207202
return packages;
208203
},
@@ -214,7 +209,7 @@ module.exports = {
214209

215210
cb(null, packages.labels, modelInfo, [].concat(...packages.relationships));
216211
} catch (err) {
217-
gremlinHelper.close(sshService);
212+
gremlinHelper.close();
218213
logger.log('error', mapError(err), 'Error');
219214
cb(mapError(err));
220215
}
@@ -447,12 +442,12 @@ function createSchemaByPartitionKeyPath(path, documents = []) {
447442
}
448443

449444
const setUpDocumentClient = connectionInfo => {
450-
const dbNameRegExp = /wss:\/\/(\S*).gremlin\.cosmos\./i;
445+
const dbNameRegExp = /(\S*).gremlin\.cosmos\.azure.com/i;
451446
const dbName = dbNameRegExp.exec(connectionInfo.gremlinEndpoint);
452447
if (!dbName?.[1]) {
453-
throw new Error('Incorrect endpoint provided. Expected format: wss://<account name>.gremlin.cosmos.');
448+
throw new Error('Incorrect endpoint provided. Expected format: <account name>.gremlin.cosmos.azurecom');
454449
}
455-
const endpoint = `https://${dbName[1]}.documents.azure.com:443/`;
450+
const endpoint = `https://${dbName[1]}.documents.azure.com/`;
456451
const key = connectionInfo.accountKey;
457452

458453
return new CosmosClient({ endpoint, key });

reverse_engineering/connection_settings_modal/connectionSettingsModalConfig.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
"inputLabel": "Gremlin endpoint",
1717
"inputKeyword": "gremlinEndpoint",
1818
"inputType": "text",
19-
"inputPlaceholder": "wss://*.gremlin.cosmos.azure.com:443/",
19+
"inputPlaceholder": "*.gremlin.cosmos.azure.com",
2020
"inputTooltip": "Paste Gremlin endpoint",
2121
"defaultValue": "",
2222
"validation": [
2323
{
24-
"regex": "^wss://.+\\.gremlin\\.cosmos\\.azure\\.com:443",
25-
"message": "Gremlin endpoint must satisfy the template:\nwss://<account name>.gremlin.cosmos.azure.com:443/"
24+
"regex": "^.+\\.gremlin\\.cosmos\\.azure\\.com",
25+
"message": "Gremlin endpoint must satisfy the template:\n<account name>.gremlin.cosmos.azure.com"
2626
}
2727
]
2828
},

reverse_engineering/gremlinHelper.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,15 @@ const connectToInstance = info => {
2727
accountKeyString,
2828
);
2929

30-
client = new gremlin.driver.Client(gremlinEndpointString, {
31-
authenticator,
32-
traversalSource,
33-
rejectUnauthorized: true,
34-
mimeType: 'application/vnd.gremlin-v2.0+json',
35-
});
30+
client = new gremlin.driver.Client(
31+
`wss://${gremlinEndpointString.replaceAll('wss://', '').replaceAll(':443', '')}`,
32+
{
33+
authenticator,
34+
traversalSource,
35+
rejectUnauthorized: true,
36+
mimeType: 'application/vnd.gremlin-v2.0+json',
37+
},
38+
);
3639

3740
client
3841
.open()

0 commit comments

Comments
 (0)