private JObject GetTemplate() { var generator = new TemplateGenerator("INT0012C.Workday.Rehire.Leavers", "c107df29-a4af-4bc9-a733-f88f0eaa4296", "blobtest", new MockResourceCollector("BlobConnector")); generator.GenerateHttpTriggerUrlOutput = true; return(generator.GenerateTemplate().GetAwaiter().GetResult()); }
public void LoadLogicAppManual() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); Assert.IsNotNull(template); }
public void TestDiagnosticSettings() { // /subscriptions/89d02439-770d-43f3-9e4a-8b910457a10c/resourceGroups/INT001.Invoice/providers/Microsoft.Logic/workflows/INT001.Invoice/providers/microsoft.insights/diagnosticSettings/service var generator = new TemplateGenerator("INT001.Invoice", "89d02439-770d-43f3-9e4a-8b910457a10c", "INT001.Invoice", new MockResourceCollector("DiagnosticSettings")); generator.DiagnosticSettings = true; var defintion = generator.GenerateTemplate().GetAwaiter().GetResult(); Assert.AreEqual("providers/diagnosticSettings", defintion["resources"][0]["resources"][0]["type"]); Assert.AreEqual("[concat('Microsoft.Insights/', parameters('diagnosticSettings_name'))]", defintion["resources"][0]["resources"][0]["name"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('diagnosticSettings_resourceGroupName'), '/providers/Microsoft.OperationalInsights/workspaces/', parameters('diagnosticSettings_workspaceName'))]", defintion["resources"][0]["resources"][0]["properties"]["workspaceId"]); Assert.AreEqual("service", defintion["parameters"]["diagnosticSettings_name"]["defaultValue"]); Assert.AreEqual("twobits", defintion["parameters"]["diagnosticSettings_workspaceName"]["defaultValue"]); Assert.AreEqual("shared.infrastructure", defintion["parameters"]["diagnosticSettings_resourceGroupName"]["defaultValue"]); Assert.AreEqual("[parameters('logicAppName')]", defintion["resources"][0]["resources"][0]["dependsOn"][0]); // Logs Assert.AreEqual("[parameters('diagnosticSettings_logsEnabled')]", defintion["resources"][0]["resources"][0]["properties"]["logs"][0]["enabled"]); Assert.AreEqual("WorkflowRuntime", defintion["resources"][0]["resources"][0]["properties"]["logs"][0]["category"]); Assert.AreEqual(true, defintion["parameters"]["diagnosticSettings_logsEnabled"]["defaultValue"]); Assert.AreEqual(true, defintion["parameters"]["diagnosticSettings_logsRetentionPolicyEnabled"]["defaultValue"]); Assert.AreEqual(3, defintion["parameters"]["diagnosticSettings_logsRetentionPolicyDays"]["defaultValue"]); // Metrics Assert.AreEqual("[parameters('diagnosticSettings_metricsEnabled')]", defintion["resources"][0]["resources"][0]["properties"]["metrics"][0]["enabled"]); Assert.AreEqual("AllMetrics", defintion["resources"][0]["resources"][0]["properties"]["metrics"][0]["category"]); Assert.AreEqual(false, defintion["parameters"]["diagnosticSettings_metricsEnabled"]["defaultValue"]); Assert.AreEqual(false, defintion["parameters"]["diagnosticSettings_metricsRetentionPolicyEnabled"]["defaultValue"]); Assert.AreEqual(0, defintion["parameters"]["diagnosticSettings_metricsRetentionPolicyDays"]["defaultValue"]); Assert.AreEqual("[parameters('logicAppLocation')]", defintion["resources"][0]["location"]); }
public void Send() { if (image != null) { Board.Instance.Regenerate(TemplateGenerator.GenerateTemplate(image, pixelsPerTile, middleOffset, horizontalOffset, verticalOffset), size, startWithGround, groundTileIndex); } }
public async Task ValidateSingleVnetWithNoSubnetsGetsNewDefaultSubet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET4")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("asmnet")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("asmnet-vnet", vnets.First()["name"].Value <string>()); Assert.AreEqual("10.0.0.0/20", vnets.First()["properties"]["addressSpace"]["addressPrefixes"][0].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(1, subnets.Count()); Assert.AreEqual("Subnet1", subnets[0]["name"].Value <string>()); Assert.AreEqual("10.0.0.0/20", subnets[0]["properties"]["addressPrefix"].Value <string>()); }
public async Task ValidateVMInExistingArmSubnetId() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM3")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); TestHelper.SetTargetSubnets(artifacts); TemplateResult templateReault = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateReault.GenerateTemplate(); // Validate VM var vmResource = templateJson["resources"].Where( j => j["type"].Value <string>() == "Microsoft.Compute/virtualMachines").Single(); Assert.AreEqual("VM3-vm", vmResource["name"].Value <string>()); StringAssert.Contains(vmResource["properties"]["networkProfile"]["networkInterfaces"][0]["id"].Value <string>(), "'" + ArmConst.ProviderNetworkInterfaces + "VM3-nic'"); // Validate NIC var nicResource = templateJson["resources"].Where( j => j["type"].Value <string>() == "Microsoft.Network/networkInterfaces").Single(); Assert.AreEqual("VM3-nic", nicResource["name"].Value <string>()); StringAssert.Contains(nicResource["properties"]["ipConfigurations"][0]["properties"]["subnet"]["id"].Value <string>(), "/subscriptions/22222222-2222-2222-2222-222222222222/resourceGroups/dummygroup-rg/providers/Microsoft.Network/virtualNetworks/DummyVNet/subnets/subnet01"); }
public async Task ValidateVMInVnetButNotInTargetVNet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM3")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); bool exceptionThrown = false; try { TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); } catch (Exception exc) { if (exc.GetType() == typeof(ArgumentException) && exc.Message == "Target Virtual Network for ASM Virtual Machine 'VM3' must be specified.") { exceptionThrown = true; } } Assert.IsFalse(!exceptionThrown, "Did not receive Null Target Virtual Network Argument Exception"); }
public void TestAPI() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = ((JArray)template["resources"]).Where(rr => rr.Value <string>("type") == "Microsoft.ApiManagement/service/apis").First(); Assert.AreEqual("Microsoft.ApiManagement/service/apis", obj.Value <string>("type")); Assert.AreEqual("2017-03-01", obj.Value <string>("apiVersion")); Assert.AreEqual("[concat(parameters('service_apidev_name'), '/' ,parameters('api_invoice-retrieval-api_name'))]", obj.Value <string>("name")); Assert.AreEqual(2, obj["resources"].Count()); Assert.AreEqual(2, obj["dependsOn"].Count()); var prop = obj["properties"]; Assert.AreEqual("Invoices", prop.Value <string>("displayName")); Assert.AreEqual("[parameters('invoice-retrieval-api_apiRevision')]", prop.Value <string>("apiRevision")); Assert.AreEqual("Retrieves invoices depending on market and invoice id", prop.Value <string>("description")); Assert.AreEqual("[parameters('invoice-retrieval-api_serviceUrl')]", prop.Value <string>("serviceUrl")); Assert.AreEqual("api/documents/invoices", prop.Value <string>("path")); Assert.AreEqual("[parameters('invoice-retrieval-api_isCurrent')]", prop.Value <string>("isCurrent")); Assert.AreEqual("[parameters('invoice-retrieval-api_apiVersion')]", prop.Value <string>("apiVersion")); Assert.AreEqual("[resourceId('Microsoft.ApiManagement/service/api-version-sets',parameters('service_apidev_name'),'5b1fb4607e5c66b5cb2fe2e8')]", prop.Value <string>("apiVersionSetId")); Assert.AreEqual("https", prop.Value <JArray>("protocols").First().Value <string>()); }
public async Task ValidateSingleVnetWithNsgAndRT() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET2")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("asmtest")); artifacts.NetworkSecurityGroups.Add(await azureContextUSCommercialRetriever.GetAzureAsmNetworkSecurityGroup("asmnsg")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate NSG var nsgs = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/networkSecurityGroups"); Assert.AreEqual(1, nsgs.Count()); Assert.AreEqual("asmnsg-nsg", nsgs.First()["name"].Value <string>()); // Validate NSG rules JArray rules = (JArray)nsgs.First()["properties"]["securityRules"]; Assert.AreEqual(2, rules.Count()); Assert.AreEqual("Enable-Internal-DNS", rules[0]["name"].Value <string>()); Assert.AreEqual("Port-7777-rule", rules[1]["name"].Value <string>()); // Validate RouteTable var rt = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/routeTables"); Assert.AreEqual(1, rt.Count()); Assert.AreEqual("asmrt", rt.First()["name"].Value <string>()); // Validate Routes JArray routes = (JArray)rt.First()["properties"]["routes"]; Assert.AreEqual(1, routes.Count()); Assert.AreEqual("all-traffic-to-fw", routes[0]["name"].Value <string>()); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("asmtest-vnet", vnets.First()["name"].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(1, subnets.Count()); Assert.AreEqual("Subnet-1", subnets.First()["name"].Value <string>()); StringAssert.Contains(subnets.First()["properties"]["networkSecurityGroup"]["id"].Value <string>(), "networkSecurityGroups/asmnsg"); StringAssert.Contains(subnets.First()["properties"]["routeTable"]["id"].Value <string>(), "routeTables/asmrt"); }
private JObject GetTemplate(bool exportProducts = false) { if (this._template != null) return this._template; var generator = new TemplateGenerator("ibizmalo", "c107df29-a4af-4bc9-a733-f88f0eaa4296", "PreDemoTest", "maloapimtestclean", false, exportProducts, false, false, this.collector); this._template = generator.GenerateTemplate().GetAwaiter().GetResult(); return this._template; }
public void TestResourcesCount() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = (JArray)template["resources"]; Assert.AreEqual(4, obj.Count); }
public void XmlConversionTest_DoSomething() { var generator = new TemplateGenerator(); string filename = Path.Combine(Environment.CurrentDirectory, @"xml\TemplateTest.xml"); Template template = generator.GenerateTemplate(filename); Assert.That(template.Author, Is.EqualTo("MyFirstAuthor")); }
public async Task ValidateSingleVnetWithExpressRouteGateway() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET3")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("vnet3")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("vnet3-vnet", vnets.First()["name"].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(2, subnets.Count()); // Validate gateway var gw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworkGateways"); Assert.AreEqual(1, gw.Count()); Assert.AreEqual("vnet3-gw", gw.First()["name"].Value <string>()); Assert.AreEqual("ExpressRoute", gw.First()["properties"]["gatewayType"].Value <string>()); // Validate no local network var localGw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/localNetworkGateways"); Assert.AreEqual(0, localGw.Count()); // Validate connection var conn = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/connections"); Assert.AreEqual(1, conn.Count()); Assert.AreEqual("vnet3-gw-localsite-connection", conn.First()["name"].Value <string>()); Assert.AreEqual("ExpressRoute", conn.First()["properties"]["connectionType"].Value <string>()); Assert.IsNotNull(conn.First()["properties"]["peer"]["id"].Value <string>()); // Validate message Assert.AreEqual(1, templateResult.Messages.Count); StringAssert.Contains(templateResult.Messages[0], "ExpressRoute"); }
private JObject GetTemplate() { if (this._template != null) { return(this._template); } var generator = new TemplateGenerator("ibizmalo", "c107df29-a4af-4bc9-a733-f88f0eaa4296", "PreDemoTest", "maloapimtest", false, false, false, false, this.collector); this._template = generator.GenerateTemplate().GetAwaiter().GetResult(); return(this._template); }
private JObject GetTemplate(bool exportProducts = false, bool parametrizePropertiesOnly = true, bool replaceSetBackendServiceBaseUrlAsProperty = false, bool fixedServiceNameParameter = false, bool createApplicationInsightsInstance = false) { if (this._template != null) { return(this._template); } var generator = new TemplateGenerator("ibizmalo", "c107df29-a4af-4bc9-a733-f88f0eaa4296", "PreDemoTest", "maloapimtestclean", false, exportProducts, true, parametrizePropertiesOnly, this.collector, replaceSetBackendServiceBaseUrlAsProperty, fixedServiceNameParameter, createApplicationInsightsInstance); this._template = generator.GenerateTemplate().GetAwaiter().GetResult(); return(this._template); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (String.IsNullOrEmpty(returnUrl)) { returnUrl = Url.Action("SuccessRegister", "Account"); } if (ModelState.IsValid) { var result = await _authServices.Register(new RegisterModel { Username = model.Email, Email = model.Email, Password = model.Password, ConfirmPassword = model.ConfirmPassword }, true, true); if (result.Result.Succeeded) { AssignModelState(); var response = _userDetailService.Create(new UserDetailMediCoreModel { Id = 0, FirstName = model.FirstName, LastName = model.LastName, UserId = result.UserId }); if (!String.IsNullOrWhiteSpace(result.GeneratedToken)) { var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = result.UserId, code = result.GeneratedToken }, protocol: HttpContext.Request.Scheme); var sendgrid = _sender.Create(SenderFactory.EMAIL); string template = TemplateGenerator.GenerateTemplate(new TemplateOption { TemplateType = TemplateType.Activation, TemplateFolderPath = String.Format("{0}/{1}/{2}", _hostingEnvironment.ContentRootPath, "Resources", "Template") }); template = template.Replace("{CONFIRMATION_LINK}", callbackUrl); template = template.Replace("{FIRST_NAME}", model.FirstName); //send email confirmation to user await sendgrid.SendAsync(model.Email, "Aktivasi", template); } return(RedirectToLocal(returnUrl)); } AddErrors(result.Result); } // If we got this far, something failed, redisplay form return(View(model)); }
private void btnExport_Click(object sender, EventArgs e) { btnExport.Enabled = false; var artefacts = new AsmArtefacts(); foreach (var selectedItem in lvwStorageAccounts.CheckedItems) { var listItem = (ListViewItem)selectedItem; artefacts.StorageAccounts.Add(listItem.Text); } foreach (var selectedItem in lvwVirtualNetworks.CheckedItems) { var listItem = (ListViewItem)selectedItem; artefacts.VirtualNetworks.Add(listItem.Text); } foreach (var selectedItem in lvwVirtualMachines.CheckedItems) { var listItem = (ListViewItem)selectedItem; artefacts.VirtualMachines.Add( new CloudServiceVM { CloudService = listItem.Text, VirtualMachine = listItem.SubItems[1].Text, }); } if (!Directory.Exists(txtDestinationFolder.Text)) { MessageBox.Show("The chosen output folder does not exist.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { // If save selection option is enabled if (app.Default.SaveSelection) { lblStatus.Text = "BUSY: Reading saved selection"; Application.DoEvents(); _saveSelectionProvider.Save(Guid.Parse(subscriptionid), lvwVirtualNetworks, lvwStorageAccounts, lvwVirtualMachines); } var templateWriter = new StreamWriter(Path.Combine(txtDestinationFolder.Text, "export.json")); var blobDetailWriter = new StreamWriter(Path.Combine(txtDestinationFolder.Text, "copyblobdetails.json")); _templateGenerator.GenerateTemplate(subscriptionsAndTenants[subscriptionid], subscriptionid, artefacts, templateWriter, blobDetailWriter); MessageBox.Show("Template has been generated successfully.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } btnExport.Enabled = true; }
public void TestParameters() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = template["parameters"]; Assert.AreEqual("ibizmalo", obj["service_ibizmalo_name"].Value <string>("defaultValue")); Assert.AreEqual("custom-trigger-displayname", obj["api_custom-trigger-displayname_name"].Value <string>("defaultValue")); Assert.AreEqual("1", obj["custom-trigger-displayname_apiRevision"].Value <string>("defaultValue")); Assert.AreEqual("https://prod-26.westeurope.logic.azure.com/workflows/18edd660cbae4a8da712a2f3fc1a1122/triggers", obj["custom-trigger-displayname_serviceUrl"].Value <string>("defaultValue")); Assert.AreEqual(true, obj["custom-trigger-displayname_isCurrent"].Value <bool>("defaultValue")); Assert.AreEqual("maloapimtest", obj["LogicApp_customtrigger_resourceGroup"].Value <string>("defaultValue")); Assert.AreEqual("customtrigger", obj["LogicApp_customtrigger_logicAppName"].Value <string>("defaultValue")); }
public void TestParameters() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = template["parameters"]; Assert.AreEqual("ibizmalo", obj["service_ibizmalo_name"].Value <string>("defaultValue")); Assert.AreEqual("malologicapptestmanual", obj["api_malologicapptestmanual_name"].Value <string>("defaultValue")); Assert.AreEqual("1", obj["malologicapptestmanual_apiRevision"].Value <string>("defaultValue")); Assert.AreEqual("https://prod-27.westeurope.logic.azure.com/workflows/a8beb87660a44d1f90d427be186160c7/triggers", obj["malologicapptestmanual_serviceUrl"].Value <string>("defaultValue")); Assert.AreEqual(true, obj["malologicapptestmanual_isCurrent"].Value <bool>("defaultValue")); Assert.AreEqual("maloapimtest", obj["LogicApp_malologicapptestManual_resourceGroup"].Value <string>("defaultValue")); Assert.AreEqual("malologicapptestManual", obj["LogicApp_malologicapptestManual_logicAppName"].Value <string>("defaultValue")); }
public async Task ValidateComplexSingleVnet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET1")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("10.2.0.0")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("10.2.0.0-vnet", vnets.First()["name"].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(8, subnets.Count()); // Validate gateway var gw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworkGateways"); Assert.AreEqual(1, gw.Count()); Assert.AreEqual("10.2.0.0-gw", gw.First()["name"].Value <string>()); var localGw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/localNetworkGateways"); Assert.AreEqual(2, localGw.Count()); Assert.AreEqual("MOBILEDATACENTER-LocalGateway", localGw.First()["name"].Value <string>()); Assert.AreEqual("EastUSNet-LocalGateway", localGw.Last()["name"].Value <string>()); var pips = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/publicIPAddresses"); Assert.AreEqual(1, pips.Count()); Assert.AreEqual("10.2.0.0-gw-pip", pips.First()["name"].Value <string>()); Assert.AreEqual("Dynamic", pips.First()["properties"]["publicIPAllocationMethod"].Value <string>()); }
public void TestCustomConnector() { var generator = new TemplateGenerator("INT001.Invoice", "89d02439-770d-43f3-9e4a-8b910457a10c", "INT001.Invoice", new MockResourceCollector("CustomConnector")); var defintion = generator.GenerateTemplate().GetAwaiter().GetResult(); Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('Billogram-ResourceGroup'),'/providers/Microsoft.Web/customApis/',parameters('Billogram_name'),'')]", defintion["resources"][0]["properties"]["parameters"]["$connections"]["value"]["Billogram"]["id"]); Assert.AreEqual("Microsoft.Web/connections", defintion["resources"][1]["type"]); Assert.AreEqual("[parameters('logicAppLocation')]", defintion["resources"][1]["location"]); Assert.AreEqual("[parameters('Billogram_name')]", defintion["resources"][1]["name"]); //subscriptions/89d02439-770d-43f3-9e4a-8b910457a10c/resourceGroups/Messaging/providers/Microsoft.Web/customApis/Billogram //subscriptions/fakeecb73-d0ff-455d-a2bf-eae0b300696d/providers/Microsoft.Web/locations/westeurope/managedApis/filesystem Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('Billogram-ResourceGroup'),'/providers/Microsoft.Web/customApis/',parameters('Billogram_name'),'')]", defintion["resources"][1]["properties"]["api"]["id"]); }
public void TestParameters() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = template["parameters"]; Assert.AreEqual("ibizmalo", obj["service_ibizmalo_name"].Value <string>("defaultValue")); Assert.AreEqual("malologicapptestrequest", obj["api_malologicapptestrequest_name"].Value <string>("defaultValue")); Assert.AreEqual("1", obj["malologicapptestrequest_apiRevision"].Value <string>("defaultValue")); Assert.AreEqual("https://prod-17.westeurope.logic.azure.com/workflows/b4ed5ace841d4c8da1378fa65572ff84/triggers", obj["malologicapptestrequest_serviceUrl"].Value <string>("defaultValue")); Assert.AreEqual("v1", obj["malologicapptestrequest_apiVersion"].Value <string>("defaultValue")); Assert.AreEqual(true, obj["malologicapptestrequest_isCurrent"].Value <bool>("defaultValue")); Assert.AreEqual("maloapimtest", obj["LogicApp_malologicapptestRequest_resourceGroup"].Value <string>("defaultValue")); Assert.AreEqual("malologicapptestRequest", obj["LogicApp_malologicapptestRequest_logicAppName"].Value <string>("defaultValue")); }
public void TestParameters() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = template["parameters"]; Assert.AreEqual("iBizUtbildningAPIM", obj["service_iBizUtbildningAPIM_name"].Value <string>("defaultValue")); Assert.AreEqual("sales-orders", obj["api_sales-orders_name"].Value <string>("defaultValue")); Assert.AreEqual("1", obj["sales-orders_apiRevision"].Value <string>("defaultValue")); Assert.AreEqual("http://localhost", obj["sales-orders_serviceUrl"].Value <string>("defaultValue")); Assert.AreEqual(true, obj["sales-orders_isCurrent"].Value <bool>("defaultValue")); Assert.AreEqual("LabResources", obj["LogicApp_salesinvoice-la_LabResources_resourceGroup"].Value <string>("defaultValue")); Assert.AreEqual("salesinvoice-la", obj["LogicApp_salesinvoice-la_LabResources_logicAppName"].Value <string>("defaultValue")); Assert.AreEqual("sales-api-s", obj["product_sales-api-s_name"].Value <string>("defaultValue")); }
public void TestAPIOperation() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var api = ((JArray)template["resources"]).Where(rr => rr.Value <string>("type") == "Microsoft.ApiManagement/service/apis").First(); var obj = ((JArray)api["resources"]).Where(rr => rr.Value <string>("type") == "Microsoft.ApiManagement/service/apis/operations").First(); Assert.AreEqual("Microsoft.ApiManagement/service/apis/operations", obj.Value <string>("type")); Assert.AreEqual("2017-03-01", obj.Value <string>("apiVersion")); Assert.AreEqual("[concat(parameters('service_apidev_name'), '/', parameters('api_invoice-retrieval-api_name'), '/', 'get-invoice')]", obj.Value <string>("name")); Assert.AreEqual(1, obj["resources"].Count()); Assert.AreEqual(2, obj["dependsOn"].Count()); }
public void TestParameters() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = template["parameters"]; Assert.AreEqual("apidev", obj["service_apidev_name"].Value <string>("defaultValue")); Assert.AreEqual("invoice-retrieval-api", obj["api_invoice-retrieval-api_name"].Value <string>("defaultValue")); Assert.AreEqual("1", obj["invoice-retrieval-api_apiRevision"].Value <string>("defaultValue")); Assert.AreEqual("https://apidev.azure-api.net/", obj["invoice-retrieval-api_serviceUrl"].Value <string>("defaultValue")); Assert.AreEqual("v1", obj["invoice-retrieval-api_apiVersion"].Value <string>("defaultValue")); Assert.AreEqual(true, obj["invoice-retrieval-api_isCurrent"].Value <bool>("defaultValue")); Assert.AreEqual("https://i-dev.azurewebsites.net/api/Base64ToStream", obj["api_invoice-retrieval-api_get-invoice_backendurl"].Value <string>("defaultValue")); Assert.AreEqual("secretvalue", obj["int0001functionkey_value"].Value <string>("defaultValue")); }
private void btnExport_Click(object sender, EventArgs e) { btnExport.Enabled = false; Hashtable teleinfo = new Hashtable(); teleinfo.Add("Region", cmbRegion.Text); teleinfo.Add("AccessKey", accessKeyID); var artefacts = new AWSArtefacts(); foreach (var selectedItem in lvwVirtualNetworks.CheckedItems) { var listItem = (ListViewItem)selectedItem; artefacts.VirtualNetworks.Add(new VPC(listItem.Text, listItem.SubItems[1].Text)); } foreach (var selectedItem in lvwVirtualMachines.CheckedItems) { var listItem = (ListViewItem)selectedItem; artefacts.Instances.Add(new Ec2Instance(listItem.Text, listItem.SubItems[1].Text)); } if (!Directory.Exists(txtDestinationFolder.Text)) { MessageBox.Show("The chosen output folder does not exist.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { // If save selection option is enabled if (app.Default.SaveSelection) { lblStatus.Text = "BUSY: Reading saved selection"; _saveSelectionProvider.Save(cmbRegion.Text, lvwVirtualNetworks, lvwVirtualMachines); } var templateWriter = new StreamWriter(Path.Combine(txtDestinationFolder.Text, "export.json")); //var blobDetailWriter = new StreamWriter(Path.Combine(txtDestinationFolder.Text, "copyblobdetails.json")); _templateGenerator.GenerateTemplate(artefacts, _awsObjectRetriever, templateWriter, teleinfo); MessageBox.Show("Template has been generated successfully.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } btnExport.Enabled = true; }
private async Task <JObject> GenerateSingleVMTemplate() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM1")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); TestHelper.SetTargetSubnets(artifacts); TemplateResult tempalteResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); return(tempalteResult.GenerateTemplate()); }
public async Task <IActionResult> SendEmail(string destination) { var sendgrid = _sender.Create(SenderFactory.EMAIL); string message = TemplateGenerator.GenerateTemplate(new TemplateOption { TemplateType = TemplateType.Activation, TemplateFolderPath = String.Format("{0}\\{1}\\{2}", _hostingEnvironment.ContentRootPath, "Resources", "Template") }); var response = await sendgrid.SendAsync(destination, "Activation", message); if (response.Successful) { return(Ok(response.Message)); } else { return(BadRequest(response.Message)); } }
public void TestResourcesProperties() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = ((JArray)template["resources"]).Where(rr => rr.Value <string>("type") == "Microsoft.ApiManagement/service/properties").First(); Assert.AreEqual("Microsoft.ApiManagement/service/properties", obj.Value <string>("type")); Assert.AreEqual("2019-01-01", obj.Value <string>("apiVersion")); Assert.AreEqual("[concat(parameters('service_ibizmalo_name'), '/', '5b418fd358c38dab47be6782')]", obj.Value <string>("name")); Assert.AreEqual(0, obj["resources"].Count()); Assert.AreEqual(0, obj["dependsOn"].Count()); var prop = obj["properties"]; Assert.AreEqual("[listCallbackUrl(resourceId(parameters('LogicApp_malologicapptestRequest_resourceGroup'), 'Microsoft.Logic/workflows/triggers', parameters('LogicApp_malologicapptestRequest_logicAppName'), 'request'), '2017-07-01').queries.sig]", prop.Value <string>("value")); Assert.AreEqual(true, prop.Value <bool>("secret")); Assert.AreEqual(0, prop["tags"].Count()); }
public void TestResourcesBackend() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = ((JArray)template["resources"]).Where(rr => rr.Value <string>("type") == "Microsoft.ApiManagement/service/backends").First(); Assert.AreEqual("Microsoft.ApiManagement/service/backends", obj.Value <string>("type")); Assert.AreEqual("2019-01-01", obj.Value <string>("apiVersion")); Assert.AreEqual("[concat(parameters('service_ibizmalo_name'), '/' ,'LogicApp_malologicapptestRequest')]", obj.Value <string>("name")); Assert.AreEqual(0, obj["resources"].Count()); Assert.AreEqual(0, obj["dependsOn"].Count()); var prop = obj["properties"]; Assert.AreEqual("[substring(listCallbackUrl(resourceId(parameters('LogicApp_malologicapptestRequest_resourceGroup'), 'Microsoft.Logic/workflows/triggers', parameters('LogicApp_malologicapptestRequest_logicAppName'), 'request'), '2017-07-01').basePath,0,add(10,indexOf(listCallbackUrl(resourceId(parameters('LogicApp_malologicapptestRequest_resourceGroup'), 'Microsoft.Logic/workflows/triggers', parameters('LogicApp_malologicapptestRequest_logicAppName'), 'request'), '2017-07-01').basePath,'/triggers/')))]", prop.Value <string>("url")); Assert.AreEqual("http", prop.Value <string>("protocol")); Assert.AreEqual("[concat('https://management.azure.com/','subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('LogicApp_malologicapptestRequest_resourceGroup'),'/providers/Microsoft.Logic/workflows/',parameters('LogicApp_malologicapptestRequest_logicAppName'))]", prop.Value <string>("resourceId")); }