diff --git a/analytics-core/src/main/scala/org/ekstep/analytics/framework/util/CommonUtil.scala b/analytics-core/src/main/scala/org/ekstep/analytics/framework/util/CommonUtil.scala index 37873054..54b47f83 100644 --- a/analytics-core/src/main/scala/org/ekstep/analytics/framework/util/CommonUtil.scala +++ b/analytics-core/src/main/scala/org/ekstep/analytics/framework/util/CommonUtil.scala @@ -748,4 +748,20 @@ object CommonUtil { connProperties.setProperty("password", pass) connProperties } + + def getBlobUrl(store: String, filePath: String, bucket:String): String = { + store match { + case "local" => + filePath + case "azure" => + getAzureFile(bucket,filePath) + case "s3" => + getS3File(bucket, filePath) + // $COVERAGE-OFF$ for azure testing + case "gcp" => + //TODO - Need to support the GCP As well. + throw new Exception("gcp is currently not supported.") + // $COVERAGE-ON$ + } + } } \ No newline at end of file diff --git a/analytics-core/src/test/scala/org/ekstep/analytics/framework/util/TestCommonUtil.scala b/analytics-core/src/test/scala/org/ekstep/analytics/framework/util/TestCommonUtil.scala index 685cd749..04838e01 100644 --- a/analytics-core/src/test/scala/org/ekstep/analytics/framework/util/TestCommonUtil.scala +++ b/analytics-core/src/test/scala/org/ekstep/analytics/framework/util/TestCommonUtil.scala @@ -324,7 +324,16 @@ class TestCommonUtil extends BaseSpec { val copiedFile = fileUtil.copy("src/test/resources/sample_telemetry.log", "src/test/resources/sample_telemetry.json", sc.hadoopConfiguration) sc.textFile(copiedFile, 1).count() should be (7437) fileUtil.delete(sc.hadoopConfiguration, copiedFile) - + + val localUrl = CommonUtil.getBlobUrl("local", "src/test/resources/batch-001/2021-21-*.csv.gz", "local") + localUrl should be ("src/test/resources/batch-001/2021-21-*.csv.gz") + + val azureUrl = CommonUtil.getBlobUrl("azure", "report/archival-data/batch-001/2021-21-*.csv.gz", "telemetry-data-store") + azureUrl should be ("wasb://telemetry-data-store@azure-test-key.blob.core.windows.net/report/archival-data/batch-001/2021-21-*.csv.gz") + + val s3Url = CommonUtil.getBlobUrl("s3", "report/archival-data/batch-001/2021-21-*.csv.gz", "telemetry-data-store") + s3Url should be ("s3n://telemetry-data-store/report/archival-data/batch-001/2021-21-*.csv.gz") + sc.stop() }