From 80d064ac6b7d544fcfed90583e0c2a4605c30e30 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 13 Apr 2018 20:46:31 +0200 Subject: [PATCH] BLOBs Realease --- .vs/AACloud/v15/.suo | Bin 73728 -> 88576 bytes Blob Storage.js | 14 +++++++------- Context.js | 6 +++--- Datasource.js | 18 +++++++++--------- Dependencies.js | 4 ++-- Extraction Bot Main Loop.js | 6 +++--- Indicator Bot Main Loop.js | 6 +++--- Status Report.js | 6 +++--- Trading Bot Main Loop.js | 8 ++++---- this.config.json | 7 ++++++- 10 files changed, 40 insertions(+), 35 deletions(-) diff --git a/.vs/AACloud/v15/.suo b/.vs/AACloud/v15/.suo index fcee3c0978c2b262c96c5f8fb4f36067d6078b3e..d74108c89df3721648ecf4c31507ee30574d2487 100644 GIT binary patch delta 5749 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 diff --git a/Blob Storage.js b/Blob Storage.js index 4d6ab16c4..32b22b57d 100644 --- a/Blob Storage.js +++ b/Blob Storage.js @@ -1,5 +1,5 @@  -exports.newFileStorage = function newFileStorage(BOT) { +exports.newBlobStorage = function newBlobStorage(BOT) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -34,18 +34,18 @@ exports.newFileStorage = function newFileStorage(BOT) { return thisObject; - function initialize(pDataOwnerBotCodeName, callBackFunction) { + function initialize(pDataOwner, callBackFunction) { try { - if (pDataOwnerBotCodeName === undefined) { - dataOwner = bot.codeName; + if (pDataOwner === undefined) { + dataOwner = bot.devTeam; + logger.fileName = MODULE_NAME + '.' + bot.devTeam + '.' + bot.codeName; } else { - dataOwner = pDataOwnerBotCodeName; + dataOwner = pDataOwner.devTeam; + logger.fileName = MODULE_NAME + '.' + pDataOwner.devTeam + '.' + pDataOwner.bot; } - logger.fileName = MODULE_NAME + '.' + dataOwner; - if (FULL_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } readConnectionStringConfigFile(onConnectionStringReady); diff --git a/Context.js b/Context.js index 51b246cbe..242eca792 100644 --- a/Context.js +++ b/Context.js @@ -1,4 +1,4 @@ -exports.newContext = function newContext(BOT, DEBUG_MODULE, FILE_STORAGE, UTILITIES, STATUS_REPORT) { +exports.newContext = function newContext(BOT, DEBUG_MODULE, BLOB_STORAGE, UTILITIES, STATUS_REPORT) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -74,7 +74,7 @@ /* Storage account to be used here. */ - let cloudStorage = FILE_STORAGE.newFileStorage(bot); + let cloudStorage = BLOB_STORAGE.newBlobStorage(bot); let dependencies; @@ -97,7 +97,7 @@ function initializeStorage() { - cloudStorage.initialize(bot.codeName, onInizialized); + cloudStorage.initialize(bot, onInizialized); function onInizialized(err) { diff --git a/Datasource.js b/Datasource.js index b03af1daa..8fdd9dbc0 100644 --- a/Datasource.js +++ b/Datasource.js @@ -1,4 +1,4 @@ -exports.newDatasource = function newDatasource(BOT, DEBUG_MODULE, FILE_STORAGE, UTILITIES) { +exports.newDatasource = function newDatasource(BOT, DEBUG_MODULE, BLOB_STORAGE, UTILITIES) { const FULL_LOG = true; @@ -24,8 +24,8 @@ logger.fileName = MODULE_NAME; logger.bot = bot; - let oliviaAzureFileStorage = FILE_STORAGE.newFileStorage(bot); - let tomAzureFileStorage = FILE_STORAGE.newFileStorage(bot); + let oliviaStorage = BLOB_STORAGE.newBlobStorage(bot); + let tomStorage = BLOB_STORAGE.newBlobStorage(bot); /* Utilities needed. */ @@ -45,7 +45,7 @@ if (FULL_LOG === true) { logger.write("[INFO] initializeOliviaStorage -> Entering function."); } - oliviaAzureFileStorage.initialize("AAOlivia", onInizialized); + oliviaStorage.initialize({ bot: "AAOlivia", devTeam: "AAMasters" }, onInizialized); function onInizialized(err) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { @@ -61,7 +61,7 @@ if (FULL_LOG === true) { logger.write("[INFO] initializeTomStorage -> Entering function."); } - tomAzureFileStorage.initialize("AATom", onInizialized); + tomStorage.initialize({ bot: "AATom", devTeam: "AAMasters" }, onInizialized); function onInizialized(err) { if (err.result === global.DEFAULT_OK_RESPONSE.result) { @@ -129,7 +129,7 @@ let periodTime = global.marketFilesPeriods[i][0]; let periodName = global.marketFilesPeriods[i][1]; - getFile(oliviaAzureFileStorage, "@AssetA_@AssetB.json", "@Exchange/Output/Candles/Multi-Period-Market/@Period", periodName, undefined, onFileReceived, callBack); + getFile(oliviaStorage, "@AssetA_@AssetB.json", "@Exchange/Output/Candles/Multi-Period-Market/@Period", periodName, undefined, onFileReceived, callBack); function onFileReceived(err, file) { @@ -175,7 +175,7 @@ let periodTime = global.dailyFilePeriods[i][0]; let periodName = global.dailyFilePeriods[i][1]; - getFile(oliviaAzureFileStorage, "@AssetA_@AssetB.json", "@Exchange/Output/Candles/Multi-Period-Daily/@Period/@Year/@Month/@Day", periodName, bot.processDatetime, onFileReceived, callBack); + getFile(oliviaStorage, "@AssetA_@AssetB.json", "@Exchange/Output/Candles/Multi-Period-Daily/@Period/@Year/@Month/@Day", periodName, bot.processDatetime, onFileReceived, callBack); function onFileReceived(err, file) { @@ -308,7 +308,7 @@ let periodTime = global.marketFilesPeriods[i][0]; let periodName = global.marketFilesPeriods[i][1]; - getFile(tomAzureFileStorage, "@AssetA_@AssetB.json", "@Exchange/Tom/dataSet.V1/Output/Candle-Stairs/Multi-Period-Market/@Period", periodName, undefined, onFileReceived, callBack); + getFile(tomStorage, "@AssetA_@AssetB.json", "@Exchange/Tom/dataSet.V1/Output/Candle-Stairs/Multi-Period-Market/@Period", periodName, undefined, onFileReceived, callBack); function onFileReceived(err, file) { @@ -354,7 +354,7 @@ let periodTime = global.dailyFilePeriods[i][0]; let periodName = global.dailyFilePeriods[i][1]; - getFile(tomAzureFileStorage, "@AssetA_@AssetB.json", "@Exchange/Tom/dataSet.V1/Output/Candle-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day", periodName, bot.processDatetime, onFileReceived, callBack); + getFile(tomStorage, "@AssetA_@AssetB.json", "@Exchange/Tom/dataSet.V1/Output/Candle-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day", periodName, bot.processDatetime, onFileReceived, callBack); function onFileReceived(err, file) { diff --git a/Dependencies.js b/Dependencies.js index 7d4db3bbb..580a66e08 100644 --- a/Dependencies.js +++ b/Dependencies.js @@ -1,4 +1,4 @@ -exports.newDependencies = function newDependencies(BOT, DEBUG_MODULE, STATUS_REPORT, FILE_STORAGE, UTILITIES) { +exports.newDependencies = function newDependencies(BOT, DEBUG_MODULE, STATUS_REPORT, BLOB_STORAGE, UTILITIES) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -42,7 +42,7 @@ for (let i = 0; i < pDependenciesConfig.length; i++) { - let statusReportModule = STATUS_REPORT.newStatusReport(BOT, DEBUG_MODULE, FILE_STORAGE, UTILITIES); + let statusReportModule = STATUS_REPORT.newStatusReport(BOT, DEBUG_MODULE, BLOB_STORAGE, UTILITIES); statusReportModule.initialize(pDependenciesConfig[i], pMonth, pYear, onInitilized); diff --git a/Extraction Bot Main Loop.js b/Extraction Bot Main Loop.js index 62f2129c6..d344a0da4 100644 --- a/Extraction Bot Main Loop.js +++ b/Extraction Bot Main Loop.js @@ -63,7 +63,7 @@ /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ const UTILITIES = require(ROOT_DIR + 'Utilities'); - const FILE_STORAGE = require(ROOT_DIR + 'File Storage'); + const BLOB_STORAGE = require(ROOT_DIR + 'Blob Storage'); const DEBUG_MODULE = require(ROOT_DIR + 'Debug Log'); const STATUS_REPORT = require(ROOT_DIR + 'Status Report'); const POLONIEX_CLIENT_MODULE = require(ROOT_DIR + 'Poloniex API Client'); @@ -86,7 +86,7 @@ if (FULL_LOG === true) { logger.write("[INFO] run -> loop -> initializeDependencies -> Entering function."); } - dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, FILE_STORAGE, UTILITIES); + dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, BLOB_STORAGE, UTILITIES); dependencies.initialize(processConfig.dependencies, pMonth, pYear, onInizialized); @@ -117,7 +117,7 @@ if (FULL_LOG === true) { logger.write("[INFO] run -> loop -> initializeUserBot -> Entering function."); } - usertBot = USER_BOT_MODULE.newUserBot(bot, COMMONS_MODULE, UTILITIES, DEBUG_MODULE, FILE_STORAGE, STATUS_REPORT, POLONIEX_CLIENT_MODULE); + usertBot = USER_BOT_MODULE.newUserBot(bot, COMMONS_MODULE, UTILITIES, DEBUG_MODULE, BLOB_STORAGE, STATUS_REPORT, POLONIEX_CLIENT_MODULE); usertBot.initialize(dependencies, pMonth, pYear, onInizialized); diff --git a/Indicator Bot Main Loop.js b/Indicator Bot Main Loop.js index 34ab73660..8c2497ddc 100644 --- a/Indicator Bot Main Loop.js +++ b/Indicator Bot Main Loop.js @@ -63,7 +63,7 @@ /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ const UTILITIES = require(ROOT_DIR + 'Utilities'); - const FILE_STORAGE = require(ROOT_DIR + 'File Storage'); + const BLOB_STORAGE = require(ROOT_DIR + 'Blob Storage'); const DEBUG_MODULE = require(ROOT_DIR + 'Debug Log'); const STATUS_REPORT = require(ROOT_DIR + 'Status Report'); const DEPENDENCIES = require(ROOT_DIR + 'Dependencies'); @@ -85,7 +85,7 @@ if (FULL_LOG === true) { logger.write("[INFO] run -> loop -> initializeDependencies -> Entering function."); } - dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, FILE_STORAGE, UTILITIES); + dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, BLOB_STORAGE, UTILITIES); dependencies.initialize(processConfig.dependencies, pMonth, pYear, onInizialized); @@ -116,7 +116,7 @@ if (FULL_LOG === true) { logger.write("[INFO] run -> loop -> initializeUserBot -> Entering function."); } - usertBot = USER_BOT_MODULE.newUserBot(bot, COMMONS_MODULE, UTILITIES, DEBUG_MODULE, FILE_STORAGE); + usertBot = USER_BOT_MODULE.newUserBot(bot, COMMONS_MODULE, UTILITIES, DEBUG_MODULE, BLOB_STORAGE, BLOB_STORAGE); usertBot.initialize(dependencies, pMonth, pYear, onInizialized); diff --git a/Status Report.js b/Status Report.js index 8d8ba7a8b..5e8419bce 100644 --- a/Status Report.js +++ b/Status Report.js @@ -1,4 +1,4 @@ -exports.newStatusReport = function newStatusReport(BOT, DEBUG_MODULE, FILE_STORAGE, UTILITIES) { +exports.newStatusReport = function newStatusReport(BOT, DEBUG_MODULE, BLOB_STORAGE, UTILITIES) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -34,7 +34,7 @@ /* Storage account to be used here. */ - let cloudStorage = FILE_STORAGE.newFileStorage(bot); + let cloudStorage = BLOB_STORAGE.newBlobStorage(bot); let month; let year; @@ -66,7 +66,7 @@ function initializeStorage() { - cloudStorage.initialize(owner.bot, onInizialized); + cloudStorage.initialize(owner, onInizialized); function onInizialized(err) { diff --git a/Trading Bot Main Loop.js b/Trading Bot Main Loop.js index 9f4c2dfac..b20d17cd7 100644 --- a/Trading Bot Main Loop.js +++ b/Trading Bot Main Loop.js @@ -63,7 +63,7 @@ /* We define here all the modules that the rest of the infraestructure, including the bots themselves can consume. */ const UTILITIES = require(ROOT_DIR + 'Utilities'); - const FILE_STORAGE = require(ROOT_DIR + 'File Storage'); + const BLOB_STORAGE = require(ROOT_DIR + 'Blob Storage'); const DEBUG_MODULE = require(ROOT_DIR + 'Debug Log'); const POLONIEX_CLIENT_MODULE = require(ROOT_DIR + 'Poloniex API Client'); const EXCHANGE_API = require(ROOT_DIR + 'ExchangeAPI'); @@ -94,7 +94,7 @@ if (FULL_LOG === true) { logger.write("[INFO] run -> loop -> initializeDependencies -> Entering function."); } - dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, FILE_STORAGE, UTILITIES); + dependencies = DEPENDENCIES.newDependencies(bot, DEBUG_MODULE, STATUS_REPORT, BLOB_STORAGE, UTILITIES); dependencies.initialize(processConfig.dependencies, undefined, undefined, onInizialized); @@ -125,7 +125,7 @@ if (FULL_LOG === true) { logger.write("[INFO] run -> loop -> initializeContext -> Entering function."); } - context = CONTEXT.newContext(bot, DEBUG_MODULE, FILE_STORAGE, UTILITIES, STATUS_REPORT); + context = CONTEXT.newContext(bot, DEBUG_MODULE, BLOB_STORAGE, UTILITIES, STATUS_REPORT); context.initialize(dependencies, onInizialized); function onInizialized(err) { @@ -155,7 +155,7 @@ if (FULL_LOG === true) { logger.write("[INFO] run -> loop -> initializeDatasource -> Entering function."); } - datasource = DATASOURCE.newDatasource(bot, DEBUG_MODULE, FILE_STORAGE, UTILITIES); + datasource = DATASOURCE.newDatasource(bot, DEBUG_MODULE, BLOB_STORAGE, UTILITIES); datasource.initialize(onInizialized); function onInizialized(err) { diff --git a/this.config.json b/this.config.json index d98f6a7ca..8888b3e01 100644 --- a/this.config.json +++ b/this.config.json @@ -35,10 +35,15 @@ "enabled": "true", "botPath": "../Bots/AAMasters/AACharly-Extraction-Bot", "process": "Poloniex-Live-Trades" + }, + { + "enabled": "false", + "botPath": "../Bots/AAMasters/AAMiguel-Indicator-Bot", + "process": "Trades-Files-To-Blobs" } ], "stopGracefully": "false", "exchangeSimulationMode": "false", - "storageConnStringFolder": "Testnet", + "storageConnStringFolder": "Production", "maxLogLoops": 5 } \ No newline at end of file