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

Commit 7f45cf9

Browse files
authored
Hot fix for initializing blob data and using template in v1.4.0 (#165)
1 parent d48c658 commit 7f45cf9

File tree

4 files changed

+45
-37
lines changed

4 files changed

+45
-37
lines changed

rest_server/src/models/marketplace_item.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ class MarketplaceItem {
1616
type: DataTypes.STRING,
1717
dataType: DataTypes.STRING,
1818
dataUrl: DataTypes.STRING,
19+
useBlob: {
20+
type: DataTypes.BOOLEAN,
21+
defaultValue: false,
22+
},
1923
categories: DataTypes.ARRAY(DataTypes.STRING),
2024
tags: DataTypes.ARRAY(DataTypes.STRING),
2125
summary: DataTypes.STRING,

rest_server/src/models/model_init_handler.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,18 @@ const createTemplates = async models => {
5353

5454
const createStorageBlobs = async models => {
5555
try {
56-
const envBlob = JSON.parse(process.env.AZURE_STORAGE);
57-
const defaultBlob = {
58-
type: envBlob.type,
59-
storageAccount: envBlob.storage_account,
60-
containerName: 'marketplace',
61-
connectionStrings: envBlob.connection_strings,
62-
tokens: [''],
63-
users: [''],
64-
};
65-
await models.Blob.orm.create(defaultBlob);
56+
if (process.env.AZURE_STORAGE) {
57+
const envBlob = JSON.parse(process.env.AZURE_STORAGE);
58+
const defaultBlob = {
59+
type: envBlob.type,
60+
storageAccount: envBlob.storage_account,
61+
containerName: 'marketplace',
62+
connectionStrings: envBlob.connection_strings,
63+
tokens: [''],
64+
users: [''],
65+
};
66+
await models.Blob.orm.create(defaultBlob);
67+
}
6668
} catch (err) {
6769
console.log(err.message);
6870
}

webportal/src/app/market_detail/components/summary.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default function Summary(props) {
3737

3838
async function clickUse() {
3939
try {
40-
const jobProtocol = await generateJobProtocol(marketItem, user);
40+
const jobProtocol = await generateJobProtocol(marketItem, user, marketItem.useBlob);
4141
window.localStorage.removeItem('marketItem');
4242
window.localStorage.setItem('marketItem', JSON.stringify(jobProtocol));
4343
window.location.href = `/submit.html`;
Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,32 @@
11
import { getConnectionString } from 'App/utils/marketplace_api';
22

3-
export async function generateJobProtocol(item, user) {
4-
const connectionString = await getConnectionString(); // can add user as key to get connection string
5-
const npmInstallToken = process.env.NPM_INSTALL_TOKEN;
6-
const protocolHeaderArray = [
7-
'curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh',
8-
'bash nodesource_setup.sh',
9-
'apt update',
10-
'apt install -y nodejs',
11-
'npm config set @swordfaith:registry https://npm.pkg.github.com/',
12-
`echo "//npm.pkg.github.com/:_authToken=${npmInstallToken}" >> ~/.npmrc`,
13-
'npm install -g @swordfaith/pai_copy',
14-
`export STORAGE_CONNECTION_STRING="${connectionString}"`,
15-
];
16-
// pai_copy upload [filePath] [containerName] [blobFolder]
17-
const protocolFooterArray = [
18-
'if [ -z ${OUTPUT_DIR+x}]; then', // eslint-disable-line no-template-curly-in-string
19-
'\techo "Not found OUTPUT_DIR environ"',
20-
'else',
21-
'\tpai_copy upload ${OUTPUT_DIR} paiuploadtest ${PAI_USER_NAME}/${PAI_JOB_NAME}/', // eslint-disable-line no-template-curly-in-string
22-
'fi',
23-
];
24-
const taskRoleName = Object.keys(item.protocol.taskRoles)[0];
25-
item.protocol.taskRoles[taskRoleName].commands = protocolHeaderArray.concat(
26-
item.protocol.taskRoles[taskRoleName].commands,
27-
protocolFooterArray,
28-
);
3+
export async function generateJobProtocol(item, user, useBlob) {
4+
if (useBlob === true) {
5+
const connectionString = await getConnectionString(); // can add user as key to get connection string
6+
const npmInstallToken = process.env.NPM_INSTALL_TOKEN;
7+
const protocolHeaderArray = [
8+
'curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh',
9+
'bash nodesource_setup.sh',
10+
'apt update',
11+
'apt install -y nodejs',
12+
'npm config set @swordfaith:registry https://npm.pkg.github.com/',
13+
`echo "//npm.pkg.github.com/:_authToken=${npmInstallToken}" >> ~/.npmrc`,
14+
'npm install -g @swordfaith/pai_copy',
15+
`export STORAGE_CONNECTION_STRING="${connectionString}"`,
16+
];
17+
// pai_copy upload [filePath] [containerName] [blobFolder]
18+
const protocolFooterArray = [
19+
'if [ -z ${OUTPUT_DIR+x}]; then', // eslint-disable-line no-template-curly-in-string
20+
'\techo "Not found OUTPUT_DIR environ"',
21+
'else',
22+
'\tpai_copy upload ${OUTPUT_DIR} paiuploadtest ${PAI_USER_NAME}/${PAI_JOB_NAME}/', // eslint-disable-line no-template-curly-in-string
23+
'fi',
24+
];
25+
const taskRoleName = Object.keys(item.protocol.taskRoles)[0];
26+
item.protocol.taskRoles[taskRoleName].commands = protocolHeaderArray.concat(
27+
item.protocol.taskRoles[taskRoleName].commands,
28+
protocolFooterArray,
29+
);
30+
}
2931
return item.protocol;
3032
}

0 commit comments

Comments
 (0)