in src/resourceExplorers/BlockchainDataManagerResourceExplorer.ts [430:490]
private async createBlockchainDataManagerInstance(
azureClient: AzureBlockchainServiceClient,
bdmItems: IAzureBlockchainDataManagerDto[],
location: string,
memberName: string,
transactionNodeName: string,
eventGridUrl: string,
): Promise<BlockchainDataManagerProject> {
const { bdmResource, subscriptionId, resourceGroup } = azureClient;
const bodyParamsForCreateBDM: ICreateBlockchainDataManagerDto = {
location,
properties: {
sku: '',
state: Constants.provisioningState.stopped,
},
};
const bodyParamsForCreateBDMInput: ICreateBlockchainDataManagerInputDto = {
properties: {
dataSource: {
enableBackfilling: 'False',
resourceId: this.getTransactionNodeUrl(subscriptionId, resourceGroup, memberName, transactionNodeName),
},
inputType: 'Ethereum',
},
};
const bodyParamsForCreateBDMOutput: ICreateBlockchainDataManagerOutputDto = {
properties: {
dataSource: {
resourceId: eventGridUrl,
},
outputType: 'EventGrid',
},
};
const connectionName = await this.getBlockchainDataManagerConnectionName();
const bdmName = await this.getBlockchainDataManagerName(bdmItems);
return await window.withProgress({
location: ProgressLocation.Window,
title: `${Constants.statusBarMessages.creatingBlockchainDataManager} - ${bdmName}`,
}, async () => {
const createdBDM = await bdmResource.createBlockchainDataManager(bdmName, bodyParamsForCreateBDM);
const createdInput =
await bdmResource.createBlockchainDataManagerInput(bdmName, transactionNodeName, bodyParamsForCreateBDMInput);
const createdOutput =
await bdmResource.createBlockchainDataManagerOutput(bdmName, connectionName, bodyParamsForCreateBDMOutput);
await this.startBlockchainDataManager(bdmResource, createdBDM.id, bdmName);
const bdmProject = new BlockchainDataManagerProject(bdmName, subscriptionId, resourceGroup);
const bdmInputs = await this.getBlockchainDataManagerInputs([createdInput], subscriptionId, resourceGroup);
const bdmOutputs = await this.getBlockchainDataManagerOutputs([createdOutput], subscriptionId, resourceGroup);
bdmProject.setChildren([bdmInputs, bdmOutputs]);
return bdmProject;
});
}