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());
        }
Esempio n. 2
0
        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);
     }
 }
Esempio n. 5
0
        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>());
        }
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
        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>());
        }
Esempio n. 9
0
        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");
        }
Esempio n. 10
0
 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;
 }
Esempio n. 11
0
        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"));
        }
Esempio n. 13
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        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));
        }
Esempio n. 17
0
        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"));
        }
Esempio n. 20
0
        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"]);
        }
Esempio n. 22
0
        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"));
        }
Esempio n. 26
0
        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;
        }
Esempio n. 27
0
        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());
        }
Esempio n. 28
0
        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));
            }
        }
Esempio n. 29
0
        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());
        }
Esempio n. 30
0
        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"));
        }