public static InvokeResult <IDataStreamConnector> GetConnector(DataStreamTypes type, IAdminLogger logger) { IDataStreamConnector _streamConnector = null; switch (type) { case DataStreamTypes.AWSElasticSearch: _streamConnector = new AWSElasticSearchConnector(logger); break; case DataStreamTypes.AWSS3: _streamConnector = new AWSS3Connector(logger); break; case DataStreamTypes.AzureBlob: _streamConnector = new AzureBlobConnector(logger); break; case DataStreamTypes.AzureEventHub: _streamConnector = new AzureEventHubConnector(logger); break; case DataStreamTypes.AzureTableStorage: case DataStreamTypes.AzureTableStorage_Managed: _streamConnector = new AzureTableStorageConnector(logger); break; case DataStreamTypes.SQLServer: _streamConnector = new SQLServerConnector(logger); break; case DataStreamTypes.Redis: _streamConnector = new RedisConnector(logger); break; case DataStreamTypes.Postgresql: _streamConnector = new PostgresqlConnector(logger); break; case DataStreamTypes.PointArrayStorage: _streamConnector = new PointArrayPostgresqlConnector(logger); break; } if (_streamConnector == null) { return(InvokeResult <IDataStreamConnector> .FromError("Unsupported Stream Type")); } return(InvokeResult <IDataStreamConnector> .Create(_streamConnector)); }
private async Task AWSInsertAsync(EntityHeader org, DataStreamTypes streamType) { var stream = GetDataStream(streamType); var originalSecretKey = stream.AwsSecretKey; var result = await _dataStreamManager.AddDataStreamAsync(stream, _org, _user); Assert.IsTrue(result.Successful); _secureStorage.Verify <Task <Core.Validation.InvokeResult <string> > >(obj => obj.AddSecretAsync(org, originalSecretKey), Times.Once); Assert.IsNull(stream.AwsSecretKey); Assert.AreEqual(GENERATD_SECURE_ID_VALUE, stream.AWSSecretKeySecureId); }
private async Task AzureReplaceKeyAsync(EntityHeader org, DataStreamTypes streamType) { var updatedAccesKey = "newlycreatedaccesskey"; var stream = GetDataStream(streamType); stream.AzureAccessKeySecureId = OLD_SECURE_ID_VALUE; stream.AzureAccessKey = updatedAccesKey; var result = await _dataStreamManager.UpdateDataStreamAsync(stream, _org, _user); Assert.IsTrue(result.Successful); _secureStorage.Verify <Task <Core.Validation.InvokeResult <string> > >(obj => obj.AddSecretAsync(org, updatedAccesKey), Times.Once); _secureStorage.Verify <Task <Core.Validation.InvokeResult> >(obj => obj.RemoveSecretAsync(org, OLD_SECURE_ID_VALUE), Times.Once); Assert.IsNull(stream.AzureAccessKey); Assert.AreEqual(GENERATD_SECURE_ID_VALUE, stream.AzureAccessKeySecureId); }
private async Task AzureUpdateAsync(EntityHeader org, DataStreamTypes streamType) { var stream = GetDataStream(streamType); stream.AzureAccessKeySecureId = OLD_SECURE_ID_VALUE; stream.AzureAccessKey = null; var result = await _dataStreamManager.UpdateDataStreamAsync(stream, _org, _user); Assert.IsTrue(result.Successful); _secureStorage.Verify <Task <Core.Validation.InvokeResult <string> > >(obj => obj.AddSecretAsync(org, It.IsAny <string>()), Times.Never); _secureStorage.Verify <Task <Core.Validation.InvokeResult> >(obj => obj.RemoveSecretAsync(org, It.IsAny <string>()), Times.Never); Assert.IsNull(stream.AzureAccessKey); Assert.AreEqual(OLD_SECURE_ID_VALUE, stream.AzureAccessKeySecureId); }
private async Task AzureInsertAsync(EntityHeader org, DataStreamTypes streamType) { var stream = GetDataStream(streamType); var originalAccessKey = stream.AzureAccessKey; var result = await _dataStreamManager.AddDataStreamAsync(stream, _org, _user); Assert.IsTrue(result.Successful); if (streamType == DataStreamTypes.AzureTableStorage_Managed) { Assert.AreEqual(DEFAULT_TS_ACCOUNT_ID, stream.AzureStorageAccountName); _secureStorage.Verify <Task <Core.Validation.InvokeResult <string> > >(obj => obj.AddSecretAsync(org, DEFAULT_TS_ACCESS_KEY), Times.Once); } else { _secureStorage.Verify <Task <Core.Validation.InvokeResult <string> > >(obj => obj.AddSecretAsync(org, originalAccessKey), Times.Once); } Assert.IsNull(stream.AzureAccessKey); Assert.AreEqual(GENERATD_SECURE_ID_VALUE, stream.AzureAccessKeySecureId); }
private DataStream GetDataStream(DataStreamTypes type) { var stream = new DataStream(); stream.Id = "A8A087E53D2043538F32FB18C2CA67F7"; stream.Name = "mystream"; stream.Key = "streamkey"; stream.CreationDate = DateTime.Now.ToJSONString(); stream.LastUpdatedDate = DateTime.Now.ToJSONString(); stream.CreatedBy = _user; stream.LastUpdatedBy = _user; stream.OwnerOrganization = _org; stream.StreamType = Core.Models.EntityHeader <DataStreamTypes> .Create(type); switch (type) { case DataStreamTypes.AWSElasticSearch: stream.AwsAccessKey = "accesskey"; stream.AwsSecretKey = "accesskey"; stream.AwsRegion = "us-west-1"; stream.ElasticSearchDomainName = "https://www.foo.com"; stream.ElasticSearchIndexName = "index"; stream.ElasticSearchTypeName = "type"; break; case DataStreamTypes.AWSS3: stream.AwsAccessKey = "accesskey"; stream.AwsSecretKey = "accesskey"; stream.AwsRegion = "USWest1"; stream.S3BucketName = "mybucket"; break; case DataStreamTypes.AzureBlob: stream.AzureAccessKey = "accesskey"; stream.AzureStorageAccountName = "accountid"; stream.AzureBlobStorageContainerName = "blobcontainer"; break; case DataStreamTypes.AzureEventHub: stream.AzureAccessKey = "accesskey"; stream.AzureStorageAccountName = "accountid"; stream.AzureEventHubName = "ehname"; stream.AzureEventHubEntityPath = "path"; break; case DataStreamTypes.AzureTableStorage: stream.AzureAccessKey = "accesskey"; stream.AzureStorageAccountName = "accountid"; stream.AzureTableStorageName = "tablestorage"; break; case DataStreamTypes.AzureTableStorage_Managed: stream.AzureTableStorageName = "tablestorage"; break; case DataStreamTypes.SQLServer: stream.DbName = "mydb"; stream.DbPassword = "******"; stream.DbTableName = "mytablename"; stream.DbURL = "www.foo.com"; stream.DbUserName = "******"; break; } return(stream); }