public async Task <string> RunActivity( [ActivityTrigger] Project project, ILogger log) { if (project is null) { throw new ArgumentNullException(nameof(project)); } using (log.BeginProjectScope(project)) { try { var template = new ProjectCreateTemplate(); template.Parameters["ProviderName"] = Assembly.GetExecutingAssembly().GetName().Name; template.Parameters["ProjectName"] = project.Name; var deployment = await azureDeploymentService .DeployResourceGroupTemplateAsync(template, project.ResourceGroup.SubscriptionId, project.ResourceGroup.Name) .ConfigureAwait(false); return(deployment.ResourceId); } catch (Exception exc) { log.LogError(exc, $"{nameof(ProjectCreateActivity)} failed: {exc.Message}"); throw exc.AsSerializable(); } } }
public async Task <string> RunActivity( [ActivityTrigger] Project project, ILogger log) { if (project is null) { throw new ArgumentNullException(nameof(project)); } using (log.BeginProjectScope(project)) { try { var vnetPrefix = "10.0.0.0/16"; var snetPrefix = new object[] { new { subnetname = "TeamCloud", subnetprefix = "10.0.0.0/24" }, new { subnetname = "AzureBastionSubnet", subnetprefix = "10.0.1.0/24" } }; var template = new ProjectCreateTemplate(); template.Parameters["ProjectName"] = project.Name; //template.Parameters["Repositories"] = Array.Empty<object>(); //template.Parameters["ImageGallery"] = ""; template.Parameters["LabBastionHostEnabled"] = false; template.Parameters["LabMarketplaceEnabled"] = false; template.Parameters["LabPublicEnvironmentsEnabled"] = false; template.Parameters["LabPublicArtifactsEnabled"] = false; template.Parameters["LabVNetPrefix"] = vnetPrefix; template.Parameters["LabSNetPrefix"] = snetPrefix; var deployment = await azureDeploymentService .DeployResourceGroupTemplateAsync(template, project.ResourceGroup.SubscriptionId, project.ResourceGroup.Name) .ConfigureAwait(false); return(deployment.ResourceId); } catch (Exception exc) { log.LogError(exc, $"{nameof(ProjectCreateActivity)} failed: {exc.Message}"); throw exc.AsSerializable(); } } }
public async Task <Dictionary <string, string> > RunActivity( [ActivityTrigger] ProviderProjectCreateCommand command, ILogger log) { if (command is null) { throw new ArgumentNullException(nameof(command)); } var vnetPrefix = "10.0.0.0/16"; var snetPrefix = new object[] { new { subnetname = "TeamCloud", subnetprefix = "10.0.0.0/24" }, new { subnetname = "AzureBastionSubnet", subnetprefix = "10.0.1.0/24" } }; var template = new ProjectCreateTemplate(); template.Parameters["ProjectName"] = command.Payload.Name; //template.Parameters["Repositories"] = Array.Empty<object>(); //template.Parameters["ImageGallery"] = ""; template.Parameters["LabPublicEnvironments"] = "Enabled"; template.Parameters["LabPublicArtifacts"] = "Enabled"; template.Parameters["LabVNetPrefix"] = vnetPrefix; template.Parameters["LabSNetPrefix"] = snetPrefix; var deployment = await azureDeploymentService .DeployResourceGroupTemplateAsync(template, command.Payload.ResourceGroup.SubscriptionId, command.Payload.ResourceGroup.ResourceGroupName) .ConfigureAwait(false); var deploymentOutput = await deployment .WaitAndGetOutputAsync(throwOnError : true) .ConfigureAwait(false); return(deploymentOutput .ToDictionary(kvp => kvp.Key, kvp => kvp.Value?.ToString())); }
public async Task <Dictionary <string, string> > RunActivity( [ActivityTrigger] ProviderProjectCreateCommand command, ILogger log) { if (command is null) { throw new ArgumentNullException(nameof(command)); } var template = new ProjectCreateTemplate(); template.Parameters["ProjectName"] = command.Payload.Name; var deployment = await azureDeploymentService .DeployResourceGroupTemplateAsync(template, command.Payload.ResourceGroup.SubscriptionId, command.Payload.ResourceGroup.ResourceGroupName) .ConfigureAwait(false); var deploymentOutput = await deployment .WaitAndGetOutputAsync(throwOnError : true) .ConfigureAwait(false); return(deploymentOutput .ToDictionary(kvp => kvp.Key, kvp => kvp.Value?.ToString())); }