public static DescribeVpcsResponse Unmarshall(UnmarshallerContext context) { DescribeVpcsResponse describeVpcsResponse = new DescribeVpcsResponse(); describeVpcsResponse.HttpResponse = context.HttpResponse; describeVpcsResponse.RequestId = context.StringValue("DescribeVpcs.RequestId"); describeVpcsResponse.TotalCount = context.IntegerValue("DescribeVpcs.TotalCount"); describeVpcsResponse.PageNumber = context.IntegerValue("DescribeVpcs.PageNumber"); describeVpcsResponse.PageSize = context.IntegerValue("DescribeVpcs.PageSize"); List <DescribeVpcsResponse.DescribeVpcs_Vpc> describeVpcsResponse_vpcs = new List <DescribeVpcsResponse.DescribeVpcs_Vpc>(); for (int i = 0; i < context.Length("DescribeVpcs.Vpcs.Length"); i++) { DescribeVpcsResponse.DescribeVpcs_Vpc vpc = new DescribeVpcsResponse.DescribeVpcs_Vpc(); vpc.VpcId = context.StringValue("DescribeVpcs.Vpcs[" + i + "].VpcId"); vpc.RegionId = context.StringValue("DescribeVpcs.Vpcs[" + i + "].RegionId"); vpc.Status = context.StringValue("DescribeVpcs.Vpcs[" + i + "].Status"); vpc.VpcName = context.StringValue("DescribeVpcs.Vpcs[" + i + "].VpcName"); vpc.CreationTime = context.StringValue("DescribeVpcs.Vpcs[" + i + "].CreationTime"); vpc.CidrBlock = context.StringValue("DescribeVpcs.Vpcs[" + i + "].CidrBlock"); vpc.VRouterId = context.StringValue("DescribeVpcs.Vpcs[" + i + "].VRouterId"); vpc.Description = context.StringValue("DescribeVpcs.Vpcs[" + i + "].Description"); vpc.IsDefault = context.BooleanValue("DescribeVpcs.Vpcs[" + i + "].IsDefault"); vpc.ResourceGroupId = context.StringValue("DescribeVpcs.Vpcs[" + i + "].ResourceGroupId"); List <string> vpc_vSwitchIds = new List <string>(); for (int j = 0; j < context.Length("DescribeVpcs.Vpcs[" + i + "].VSwitchIds.Length"); j++) { vpc_vSwitchIds.Add(context.StringValue("DescribeVpcs.Vpcs[" + i + "].VSwitchIds[" + j + "]")); } vpc.VSwitchIds = vpc_vSwitchIds; List <string> vpc_userCidrs = new List <string>(); for (int j = 0; j < context.Length("DescribeVpcs.Vpcs[" + i + "].UserCidrs.Length"); j++) { vpc_userCidrs.Add(context.StringValue("DescribeVpcs.Vpcs[" + i + "].UserCidrs[" + j + "]")); } vpc.UserCidrs = vpc_userCidrs; List <string> vpc_natGatewayIds = new List <string>(); for (int j = 0; j < context.Length("DescribeVpcs.Vpcs[" + i + "].NatGatewayIds.Length"); j++) { vpc_natGatewayIds.Add(context.StringValue("DescribeVpcs.Vpcs[" + i + "].NatGatewayIds[" + j + "]")); } vpc.NatGatewayIds = vpc_natGatewayIds; List <string> vpc_routerTableIds = new List <string>(); for (int j = 0; j < context.Length("DescribeVpcs.Vpcs[" + i + "].RouterTableIds.Length"); j++) { vpc_routerTableIds.Add(context.StringValue("DescribeVpcs.Vpcs[" + i + "].RouterTableIds[" + j + "]")); } vpc.RouterTableIds = vpc_routerTableIds; describeVpcsResponse_vpcs.Add(vpc); } describeVpcsResponse.Vpcs = describeVpcsResponse_vpcs; return(describeVpcsResponse); }
public static DescribeVpcsResponse Unmarshall(UnmarshallerContext _ctx) { DescribeVpcsResponse describeVpcsResponse = new DescribeVpcsResponse(); describeVpcsResponse.HttpResponse = _ctx.HttpResponse; describeVpcsResponse.RequestId = _ctx.StringValue("DescribeVpcs.RequestId"); describeVpcsResponse.Success = _ctx.BooleanValue("DescribeVpcs.Success"); describeVpcsResponse.Code = _ctx.StringValue("DescribeVpcs.Code"); describeVpcsResponse.Message = _ctx.StringValue("DescribeVpcs.Message"); describeVpcsResponse.TotalCount = _ctx.IntegerValue("DescribeVpcs.TotalCount"); describeVpcsResponse.PageNumber = _ctx.IntegerValue("DescribeVpcs.PageNumber"); describeVpcsResponse.PageSize = _ctx.IntegerValue("DescribeVpcs.PageSize"); List <DescribeVpcsResponse.DescribeVpcs_Vpc> describeVpcsResponse_vpcs = new List <DescribeVpcsResponse.DescribeVpcs_Vpc>(); for (int i = 0; i < _ctx.Length("DescribeVpcs.Vpcs.Length"); i++) { DescribeVpcsResponse.DescribeVpcs_Vpc vpc = new DescribeVpcsResponse.DescribeVpcs_Vpc(); vpc.Name = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Name"); vpc.Id = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Id"); vpc.IsDefault = _ctx.BooleanValue("DescribeVpcs.Vpcs[" + i + "].IsDefault"); vpc.CidrBlock = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].CidrBlock"); describeVpcsResponse_vpcs.Add(vpc); } describeVpcsResponse.Vpcs = describeVpcsResponse_vpcs; return(describeVpcsResponse); }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { DescribeVpcsResponse response = new DescribeVpcsResponse(); int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; if (context.IsStartOfDocument) { targetDepth = 2; } while (context.ReadAtDepth(originalDepth)) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("vpcSet/item", targetDepth)) { var unmarshaller = VpcUnmarshaller.Instance; var item = unmarshaller.Unmarshall(context); response.Vpcs.Add(item); continue; } } } return(response); }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonEC2Config config = new AmazonEC2Config(); config.RegionEndpoint = region; ConfigureClient(config); AmazonEC2Client client = new AmazonEC2Client(creds, config); DescribeVpcsResponse resp = new DescribeVpcsResponse(); do { DescribeVpcsRequest req = new DescribeVpcsRequest { NextToken = resp.NextToken , MaxResults = maxItems }; resp = client.DescribeVpcs(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.Vpcs) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextToken)); }
internal static void WriteVpcs(IAmazonEC2 ec2, DateTime captureTime, string accountId, string region) { DescribeVpcsResponse vpcResponse = ec2.DescribeVpcs(); foreach (Vpc vpc in vpcResponse.Vpcs) { var topologyVPC = new Data.Vpc() { Id = vpc.VpcId }; var nameTag = vpc.Tags.Find(t => t.Key == "Name"); if (nameTag != null) { topologyVPC.Name = nameTag.Value; } else { topologyVPC.Name = vpc.VpcId; } topologyVPC.CidrBlock = vpc.CidrBlock; string vpcJson = JsonConvert.SerializeObject(topologyVPC); //var vpcJson = JsonConvert.SerializeObject(vpc); Common.UpdateTopology(captureTime, accountId, region, "vpc", vpc.VpcId, vpcJson, "UPDATE"); } }
public async Task <List <Vpc> > DescribeVpcs() { DescribeVpcsRequest request = new DescribeVpcsRequest(); DescribeVpcsResponse response = await _ec2Client.DescribeVpcsAsync(); List <Vpc> vpcs = new List <Vpc>(); foreach (var vpc in response.Vpcs) { vpcs.Add(new Vpc(vpc.VpcId, vpc.OwnerId, vpc.CidrBlock)); } return(vpcs); }
public AwsObjectRetriever(string accessKeyID, string secretKeyID, Amazon.RegionEndpoint region, ILogProvider logProvider, IStatusProvider statusProvider) { _logProvider = logProvider; _statusProvider = statusProvider; createEC2Client(accessKeyID, secretKeyID, region); createLBClient(accessKeyID, secretKeyID, region); REGION = region.SystemName; _vpcs = GetAllVpcs(); _instances = GetAllInstances(); _volumes = GetAllVolumes(); Application.DoEvents(); _Loadbalancers = GetAllLBs(); }
public DescribeVpcModel MapForDescribe(DescribeVpcsResponse describeVpcsResponse) { var viewModel = new DescribeVpcModel(); var firstVpc = describeVpcsResponse.Vpcs.Count > 0 ? describeVpcsResponse.Vpcs.Where(vpc => vpc.IsDefault).First() : new Amazon.EC2.Model.Vpc(); viewModel.VpcId = firstVpc.VpcId; viewModel.State = firstVpc.State.ToString(); viewModel.CidrBlock = firstVpc.CidrBlock; viewModel.Tenancy = firstVpc.InstanceTenancy.ToString(); viewModel.OwnerId = firstVpc.OwnerId; return(viewModel); }
public static DescribeVpcsResponse Unmarshall(UnmarshallerContext context) { DescribeVpcsResponse describeVpcsResponse = new DescribeVpcsResponse() { HttpResponse = context.HttpResponse, RequestId = context.StringValue("DescribeVpcs.RequestId"), TotalCount = context.IntegerValue("DescribeVpcs.TotalCount"), PageNumber = context.IntegerValue("DescribeVpcs.PageNumber"), PageSize = context.IntegerValue("DescribeVpcs.PageSize") }; List <DescribeVpcsResponse.Vpc> vpcs = new List <DescribeVpcsResponse.Vpc>(); for (int i = 0; i < context.Length("DescribeVpcs.Vpcs.Length"); i++) { DescribeVpcsResponse.Vpc vpc = new DescribeVpcsResponse.Vpc() { VpcId = context.StringValue($"DescribeVpcs.Vpcs[{i}].VpcId"), RegionId = context.StringValue($"DescribeVpcs.Vpcs[{i}].RegionId"), Status = context.StringValue($"DescribeVpcs.Vpcs[{i}].Status"), VpcName = context.StringValue($"DescribeVpcs.Vpcs[{i}].VpcName"), CreationTime = context.StringValue($"DescribeVpcs.Vpcs[{i}].CreationTime"), CidrBlock = context.StringValue($"DescribeVpcs.Vpcs[{i}].CidrBlock"), VRouterId = context.StringValue($"DescribeVpcs.Vpcs[{i}].VRouterId"), Description = context.StringValue($"DescribeVpcs.Vpcs[{i}].Description"), IsDefault = context.StringValue($"DescribeVpcs.Vpcs[{i}].IsDefault") }; List <string> vSwitchIds = new List <string>(); for (int j = 0; j < context.Length($"DescribeVpcs.Vpcs[{i}].VSwitchIds.Length"); j++) { vSwitchIds.Add(context.StringValue($"DescribeVpcs.Vpcs[{i}].VSwitchIds[{j}]")); } vpc.VSwitchIds = vSwitchIds; List <string> userCidrs = new List <string>(); for (int j = 0; j < context.Length($"DescribeVpcs.Vpcs[{i}].UserCidrs.Length"); j++) { userCidrs.Add(context.StringValue($"DescribeVpcs.Vpcs[{i}].UserCidrs[{j}]")); } vpc.UserCidrs = userCidrs; vpcs.Add(vpc); } describeVpcsResponse.Vpcs = vpcs; return(describeVpcsResponse); }
public async Task disassociateAndDeleteDhcpOptionSet(string vpcid) { DescribeVpcsResponse response = await _ec2Client.DescribeVpcsAsync(new DescribeVpcsRequest { VpcIds = new List <string> { vpcid } }); string dhcpOptionsId = response.Vpcs[0].DhcpOptionsId; await _ec2Client.AssociateDhcpOptionsAsync(new AssociateDhcpOptionsRequest { VpcId = vpcid, DhcpOptionsId = "default" }); await _ec2Client.DeleteDhcpOptionsAsync(new DeleteDhcpOptionsRequest { DhcpOptionsId = dhcpOptionsId }); }
public static void GetTopology() { IAmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(); IAmazonAutoScaling asg = AWSClientFactory.CreateAmazonAutoScalingClient(); IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(); DescribeVpcsResponse vpcResponse = ec2.DescribeVpcs(); WriteFile("vpcs.csv", vpcResponse.Vpcs); DescribeInstancesResponse instanceResponse = ec2.DescribeInstances(); var reservationIndex = 0; foreach (var reservation in instanceResponse.Reservations) { if (reservationIndex == 0) { WriteFile("instances.csv", reservation.Instances); } else { AppendFile("instances.csv", reservation.Instances); } reservationIndex++; } DescribeNetworkAclsResponse naclResponse = ec2.DescribeNetworkAcls(); WriteFile("nacls.csv", naclResponse.NetworkAcls); Amazon.EC2.Model.DescribeTagsResponse tagsResponse = ec2.DescribeTags(); WriteFile("tags.csv", tagsResponse.Tags); DescribeVolumesResponse volumesResponse = ec2.DescribeVolumes(); WriteFile("volumes.csv", volumesResponse.Volumes); DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers(); WriteFile("elbs.csv", elbResponse.LoadBalancerDescriptions); DescribeInternetGatewaysResponse igResponse = ec2.DescribeInternetGateways(); WriteFile("igs.csv", igResponse.InternetGateways); }
public void GetVpcs_Ok() { // Arrange var vpcs = new List <Vpc> { new Vpc() }; var response = new DescribeVpcsResponse { Vpcs = vpcs }; Ec2ClientMock.Setup(x => x.DescribeVpcs(It.IsAny <DescribeVpcsRequest>())).Returns(response); // Act var actualVpcs = NetworkService.GetVpcs(); // Assert actualVpcs.Should().BeSameAs(vpcs); }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonEC2Config config = new AmazonEC2Config(); config.RegionEndpoint = region; ConfigureClient(config); AmazonEC2Client client = new AmazonEC2Client(creds, config); DescribeVpcsResponse resp = new DescribeVpcsResponse(); DescribeVpcsRequest req = new DescribeVpcsRequest { }; resp = client.DescribeVpcs(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.Vpcs) { AddObject(obj); } }
public static List <TcsData.Vpc> GetVpcs() { IAmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(); DescribeVpcsRequest vpcRequest = new DescribeVpcsRequest(); var vpcList = new List <TcsData.Vpc>(); try { DescribeVpcsResponse ec2Response = ec2.DescribeVpcs(vpcRequest); int numVpcs = 0; numVpcs = ec2Response.Vpcs.Count; foreach (var vpc in ec2Response.Vpcs) { var tcsVpc = new TcsData.Vpc(); //tcsVpc.AvailableVolumes = vpc. } } catch (AmazonEC2Exception ex) { } return(vpcList); }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { DescribeVpcsResponse response = new DescribeVpcsResponse(); int targetDepth = 2; while (context.Read()) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("vpcSet/item", targetDepth)) { response.Vpcs.Add(VpcUnmarshaller.GetInstance().Unmarshall(context)); continue; } } } return(response); }
public async Task <IActionResult> Create() { if (_context.VPCs.ToList().Count == 0) { return(RedirectToAction("", "Home", "")); } VPC vpc = await _context.VPCs.FindAsync(1); DescribeVpcsResponse response = await EC2Client.DescribeVpcsAsync(new DescribeVpcsRequest { Filters = new List <Filter> { new Filter("vpc-id", new List <string> { vpc.AWSVPCReference }) } }); String[] IPBlocks = response.Vpcs[0].CidrBlock.Split("."); ViewData["IPCIDR"] = IPBlocks[0] + "." + IPBlocks[1]; return(View()); }
//public Dictionary<string, XmlDocument> _documentCache = new Dictionary<string, XmlDocument>(); public AwsObjectRetriever(string accessKeyID, string secretKeyID, Amazon.RegionEndpoint region, ILogProvider logProvider, IStatusProvider statusProvider) { _logProvider = logProvider; _statusProvider = statusProvider; createEC2Client(accessKeyID, secretKeyID, region); createLBClient(accessKeyID, secretKeyID, region); REGION = region.SystemName; try { _vpcs = GetAllVpcs(); Application.DoEvents(); _instances = GetAllInstances(); Application.DoEvents(); // _volumes = GetAllVolumes(); // Application.DoEvents(); _Loadbalancers = GetAllLBs(); } catch (Exception ex) { MessageBox.Show("Error during accessing the AWS Resources. Error Message: " + ex.Message, "Access Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void Load_Items() { writeLog("GetToken_Click", "Start"); lvwVirtualNetworks.Items.Clear(); lvwVirtualMachines.Items.Clear(); createEC2Client(); instResponse = getEC2Instances(); Application.DoEvents(); //lblStatus.Text = "BUSY: Getting the VPC details"; vpcResponse = getVPCs(); Application.DoEvents(); //List Instances if (instResponse != null) { lblStatus.Text = "BUSY: Processing Instances"; if (instResponse.Reservations.Count > 0) { foreach (var instanceResp in instResponse.Reservations) { foreach (var instance in instanceResp.Instances) { ListViewItem listItem = new ListViewItem(instance.InstanceId); string name = ""; foreach (var tag in instance.Tags) { if (tag.Key == "Name") { name = tag.Value; } } listItem.SubItems.AddRange(new[] { name }); lvwVirtualMachines.Items.Add(listItem); Application.DoEvents(); } } } //List VPCs lblStatus.Text = "BUSY: Processing VPC"; foreach (var vpc in vpcResponse.Vpcs) { ListViewItem listItem = new ListViewItem(vpc.VpcId); string VpcName = ""; foreach (var tag in vpc.Tags) { if (tag.Key == "Name") { VpcName = tag.Value; } } listItem.SubItems.AddRange(new[] { VpcName }); lvwVirtualNetworks.Items.Add(listItem); Application.DoEvents(); } } btnChoosePath.Enabled = true; lblStatus.Text = "Ready"; }
internal void LaunchServer(ref bool actionSucceeded, ref string actionMessage) { try { string keyPairPath = string.Empty; LaunchRequest.KeyPairName = $"KeyPair-{Guid.NewGuid().ToString()}"; while (!CreateKeyPair(LaunchRequest.KeyPairName, ref keyPairPath)) { LaunchRequest.KeyPairName = Guid.NewGuid().ToString(); } DescribeVpcsRequest vpcRequest = new DescribeVpcsRequest(); DescribeVpcsResponse vpcResponse = Ec2Client.DescribeVpcsAsync(vpcRequest).GetAwaiter().GetResult(); Vpc defaultVPC = vpcResponse.Vpcs.Find(x => x.IsDefault); //get the default vpc List <Filter> subnetFilter = new List <Filter>() { new Filter() { Name = "availability-zone", Values = new List <string>() { LaunchRequest.AvailabilityZone } }, new Filter() { Name = "vpc-id", Values = new List <string>() { defaultVPC.VpcId } } }; DescribeSubnetsRequest subnetRequest = new DescribeSubnetsRequest(); subnetRequest.Filters = subnetFilter; DescribeSubnetsResponse subnetResponse = Ec2Client.DescribeSubnetsAsync(subnetRequest).GetAwaiter().GetResult(); Subnet defaultSubnet = subnetResponse.Subnets.FirstOrDefault(); Filter SGFilter = new Filter { Name = "vpc-id", Values = new List <string>() { defaultVPC.VpcId } }; DescribeSecurityGroupsRequest SGrequest = new DescribeSecurityGroupsRequest(); SGrequest.Filters.Add(SGFilter); DescribeSecurityGroupsResponse SGresponse = Ec2Client.DescribeSecurityGroupsAsync(SGrequest).GetAwaiter().GetResult(); SecurityGroup defaultSG = SGresponse.SecurityGroups.FirstOrDefault(); InstanceNetworkInterfaceSpecification defaultENI = new InstanceNetworkInterfaceSpecification() { DeviceIndex = 0, SubnetId = defaultSubnet.SubnetId, Groups = new List <string>() { defaultSG.GroupId }, AssociatePublicIpAddress = true }; List <InstanceNetworkInterfaceSpecification> enis = new List <InstanceNetworkInterfaceSpecification>() { defaultENI }; EbsBlockDevice ebsBlockDevice = new EbsBlockDevice { VolumeSize = 10, VolumeType = GetActualStorageType(LaunchRequest.StorageType) }; BlockDeviceMapping blockDeviceMapping = new BlockDeviceMapping { DeviceName = "/dev/xvda" }; blockDeviceMapping.Ebs = ebsBlockDevice; var launchRequest = new RunInstancesRequest() { ImageId = GetImageID(LaunchRequest.AMIType), InstanceType = GetActualInstanceType(LaunchRequest.InstanceType), MinCount = LaunchRequest.NumOfInstances, MaxCount = LaunchRequest.NumOfInstances, KeyName = LaunchRequest.KeyPairName, Placement = new Placement(LaunchRequest.AvailabilityZone), NetworkInterfaces = enis, BlockDeviceMappings = new List <BlockDeviceMapping>() { blockDeviceMapping } }; RunInstancesResponse launchResponse = Ec2Client.RunInstancesAsync(launchRequest).GetAwaiter().GetResult(); List <String> instanceIds = new List <string>(); foreach (Instance instance in launchResponse.Reservation.Instances) { Console.WriteLine(instance.InstanceId); instanceIds.Add(instance.InstanceId); } actionSucceeded = true; actionMessage = $"The instance(s) are being launched. Please check the AWS Console to verify. {keyPairPath}"; } catch (Exception ex) { context.Logger.LogLine($"ServerOperationsHelper::LaunchServer {ex.Message}"); context.Logger.LogLine($"ServerOperationsHelper::LaunchServer {ex.StackTrace}"); actionSucceeded = false; actionMessage = $"Could not launch the server . Please contact your administrator."; } }
public void toname(string accessKey, string secretKey, TreeNode subscriptionNode, ILogProvider logProvider, IStatusProvider statusProvider) { List <Amazon.RegionEndpoint> regionsList = new List <Amazon.RegionEndpoint>(); foreach (var region in Amazon.RegionEndpoint.EnumerableAllRegions) { try { _awsObjectRetriever = new AwsObjectRetriever(accessKey, secretKey, region, logProvider, statusProvider); //// todo, not needed in this method_templateGenerator = new TemplateGenerator(_logProvider, _statusProvider, _awsObjectRetriever, telemetryProvider); TreeNode amazonRegionNode = new TreeNode(region.DisplayName); amazonRegionNode.Text = region.DisplayName; amazonRegionNode.Tag = region; //DescribeVolumesResponse ebsVolumesResponse; statusProvider.UpdateStatus("BUSY: Getting the VPC details"); DescribeVpcsResponse vpcResponse = getVPCs(); Application.DoEvents(); statusProvider.UpdateStatus("BUSY: Processing VPC"); foreach (var vpc in vpcResponse.Vpcs) { MigAz.AWS.MigrationSource.VirtualNetwork sourceVirtualNetwork = new MigrationSource.VirtualNetwork(_awsObjectRetriever, vpc); Azure.MigrationTarget.VirtualNetwork targetVirtualNetwork = new Azure.MigrationTarget.VirtualNetwork(sourceVirtualNetwork); TreeNode vpcTreeNode = new TreeNode(sourceVirtualNetwork.Id + " - " + sourceVirtualNetwork.Name); vpcTreeNode.Tag = targetVirtualNetwork; amazonRegionNode.Nodes.Add(vpcTreeNode); Application.DoEvents(); } DescribeInstancesResponse instResponse = getEC2Instances(); Application.DoEvents(); if (instResponse != null) { statusProvider.UpdateStatus("BUSY: Processing Instances"); if (instResponse.Reservations.Count > 0) { foreach (var instanceResp in instResponse.Reservations) { foreach (var instance in instanceResp.Instances) { string name = ""; foreach (var tag in instance.Tags) { if (tag.Key == "Name") { name = tag.Value; } } TreeNode instanceTreeNode = new TreeNode(instance.InstanceId + " - " + name); instanceTreeNode.Tag = instance; amazonRegionNode.Nodes.Add(instanceTreeNode); Application.DoEvents(); } } } } if (amazonRegionNode.Nodes.Count > 0) { subscriptionNode.Nodes.Add(amazonRegionNode); } else { logProvider.WriteLog("Load_Items", "Not adding Amazon Region '" + region.DisplayName + "' to Source Node list, as it contains no resources to export."); } } catch (Exception exc) { logProvider.WriteLog("Load_Items", "AWS Exception - " + region.DisplayName + ": " + exc.Message); } } }
public async Task <IActionResult> Create([Bind("Name,Type,IPv4CIDR,SubnetSize")] Subnet subnet) { if (ModelState.IsValid) { subnet.editable = true; switch (Int32.Parse(subnet.SubnetSize)) { case 32766: subnet.IPv4CIDR = subnet.IPv4CIDR + "/17"; break; case 16382: subnet.IPv4CIDR = subnet.IPv4CIDR + "/18"; break; case 8190: subnet.IPv4CIDR = subnet.IPv4CIDR + "/19"; break; case 4094: subnet.IPv4CIDR = subnet.IPv4CIDR + "/20"; break; case 2046: subnet.IPv4CIDR = subnet.IPv4CIDR + "/21"; break; case 1022: subnet.IPv4CIDR = subnet.IPv4CIDR + "/22"; break; case 510: subnet.IPv4CIDR = subnet.IPv4CIDR + "/23"; break; case 254: subnet.IPv4CIDR = subnet.IPv4CIDR + "/24"; break; case 126: subnet.IPv4CIDR = subnet.IPv4CIDR + "/25"; break; case 62: subnet.IPv4CIDR = subnet.IPv4CIDR + "/26"; break; case 30: subnet.IPv4CIDR = subnet.IPv4CIDR + "/27"; break; case 14: subnet.IPv4CIDR = subnet.IPv4CIDR + "/28"; break; case 6: subnet.IPv4CIDR = subnet.IPv4CIDR + "/29"; break; case 2: subnet.IPv4CIDR = subnet.IPv4CIDR + "/30"; break; default: ViewData["Exception"] = "Input Invaild!"; return(View()); } VPC vpc = await _context.VPCs.FindAsync(1); subnet.VPCID = vpc.ID; DescribeSubnetsResponse response = await EC2Client.DescribeSubnetsAsync(new DescribeSubnetsRequest { Filters = new List <Amazon.EC2.Model.Filter> { new Amazon.EC2.Model.Filter { Name = "vpc-id", Values = new List <string> { vpc.AWSVPCReference } } } }); List <int> ipv6CIDR = new List <int>(); List <Amazon.EC2.Model.Subnet> subnets = response.Subnets; int ipv6Subnet = 0; string[] ipv6CIDRstr = new string[6]; DescribeVpcsResponse responseV = await EC2Client.DescribeVpcsAsync(new DescribeVpcsRequest { Filters = new List <Amazon.EC2.Model.Filter> { new Amazon.EC2.Model.Filter { Name = "vpc-id", Values = new List <string> { vpc.AWSVPCReference } } } }); Vpc vpcR = responseV.Vpcs[0]; VpcIpv6CidrBlockAssociation ipv6CidrBlockAssociation = vpcR.Ipv6CidrBlockAssociationSet[0]; ipv6CIDRstr = ipv6CidrBlockAssociation.Ipv6CidrBlock.Split(":"); if (subnets.Count != 0) { foreach (Amazon.EC2.Model.Subnet s in subnets) { List <SubnetIpv6CidrBlockAssociation> ipv6 = s.Ipv6CidrBlockAssociationSet; ipv6CIDRstr = ipv6.ElementAt(0).Ipv6CidrBlock.Split(":"); ipv6Subnet = int.Parse(ipv6CIDRstr[3].Substring(2, 2), System.Globalization.NumberStyles.HexNumber); ipv6CIDR.Add(ipv6Subnet); } Boolean flag = false; while (flag != true) { Console.WriteLine("Doing while loop"); Console.WriteLine(ipv6Subnet); Boolean passed = false; ++ipv6Subnet; foreach (int i in ipv6CIDR) { if (ipv6Subnet <= ipv6CIDR[i]) { passed = false; break; } else { passed = true; } } if (passed == true) { flag = true; } } } if (ipv6CIDRstr[5].Equals("/56")) { if (ipv6Subnet < 9) { subnet.IPv6CIDR = ipv6CIDRstr[0] + ":" + ipv6CIDRstr[1] + ":" + ipv6CIDRstr[2] + ":" + ipv6CIDRstr[3].Substring(0, 2) + "0" + ipv6Subnet.ToString() + "::/64"; } else { subnet.IPv6CIDR = ipv6CIDRstr[0] + ":" + ipv6CIDRstr[1] + ":" + ipv6CIDRstr[2] + ":" + ipv6CIDRstr[3].Substring(0, 2) + Convert.ToInt32(ipv6Subnet).ToString() + "::/64"; } } else { if (ipv6Subnet < 9) { subnet.IPv6CIDR = ipv6CIDRstr[0] + ":" + ipv6CIDRstr[1] + ":" + ipv6CIDRstr[2] + ":" + ipv6CIDRstr[3].Substring(0, 2) + "0" + ipv6Subnet.ToString() + "::" + ipv6CIDRstr[5]; } else { subnet.IPv6CIDR = ipv6CIDRstr[0] + ":" + ipv6CIDRstr[1] + ":" + ipv6CIDRstr[2] + ":" + ipv6CIDRstr[3].Substring(0, 2) + Convert.ToInt32(ipv6Subnet).ToString() + "::" + ipv6CIDRstr[5]; } } CreateSubnetRequest requestS = new CreateSubnetRequest() { CidrBlock = subnet.IPv4CIDR, VpcId = vpc.AWSVPCReference, Ipv6CidrBlock = subnet.IPv6CIDR }; try { CreateSubnetResponse responseS = await EC2Client.CreateSubnetAsync(requestS); if (responseS.HttpStatusCode == HttpStatusCode.OK) { subnet.AWSVPCSubnetReference = responseS.Subnet.SubnetId; await EC2Client.CreateTagsAsync(new CreateTagsRequest { Resources = new List <string> { responseS.Subnet.SubnetId }, Tags = new List <Tag> { new Tag("Name", subnet.Name) } }); AssociateRouteTableRequest requestRT = new AssociateRouteTableRequest { SubnetId = responseS.Subnet.SubnetId, }; if (subnet.Type == Models.SubnetType.Internet) { RouteTable Internet = await _context.RouteTables.FindAsync(2); requestRT.RouteTableId = Internet.AWSVPCRouteTableReference; subnet.RouteTableID = Internet.ID; await EC2Client.ModifySubnetAttributeAsync(new ModifySubnetAttributeRequest { SubnetId = responseS.Subnet.SubnetId, MapPublicIpOnLaunch = true }); await EC2Client.ModifySubnetAttributeAsync(new ModifySubnetAttributeRequest { SubnetId = responseS.Subnet.SubnetId, AssignIpv6AddressOnCreation = true }); } else if (subnet.Type == Models.SubnetType.Extranet) { RouteTable Extranet = await _context.RouteTables.FindAsync(3); requestRT.RouteTableId = Extranet.AWSVPCRouteTableReference; subnet.RouteTableID = Extranet.ID; } else if (subnet.Type == Models.SubnetType.Intranet) { RouteTable Intranet = await _context.RouteTables.FindAsync(2); requestRT.RouteTableId = Intranet.AWSVPCRouteTableReference; subnet.RouteTableID = Intranet.ID; } AssociateRouteTableResponse responseRT = await EC2Client.AssociateRouteTableAsync(requestRT); if (responseRT.HttpStatusCode == HttpStatusCode.OK) { subnet.AWSVPCRouteTableAssoicationID = responseRT.AssociationId; _context.Subnets.Add(subnet); await _context.SaveChangesAsync(); TempData["Result"] = "Successfully Created!"; return(RedirectToAction("Index")); } else { await EC2Client.DeleteSubnetAsync(new DeleteSubnetRequest { SubnetId = subnet.AWSVPCSubnetReference }); DescribeVpcsResponse responseD = await EC2Client.DescribeVpcsAsync(new DescribeVpcsRequest { Filters = new List <Amazon.EC2.Model.Filter> { new Amazon.EC2.Model.Filter { Name = "vpc-id", Values = new List <string> { vpc.AWSVPCReference } } } }); String[] IPBlocks = responseD.Vpcs[0].CidrBlock.Split("."); ViewData["IPCIDR"] = IPBlocks[0] + "." + IPBlocks[1]; ViewData["Exception"] = "Failed to Create!"; return(View()); } } else { DescribeVpcsResponse responseD = await EC2Client.DescribeVpcsAsync(new DescribeVpcsRequest { Filters = new List <Amazon.EC2.Model.Filter> { new Amazon.EC2.Model.Filter { Name = "vpc-id", Values = new List <string> { vpc.AWSVPCReference } } } }); String[] IPBlocks = responseD.Vpcs[0].CidrBlock.Split("."); ViewData["IPCIDR"] = IPBlocks[0] + "." + IPBlocks[1]; ViewData["Exception"] = "Failed to Create!"; ViewData["Exception"] = "Failed to Create!"; return(View()); } } catch (Amazon.EC2.AmazonEC2Exception e) { DescribeVpcsResponse responseD = await EC2Client.DescribeVpcsAsync(new DescribeVpcsRequest { Filters = new List <Amazon.EC2.Model.Filter> { new Amazon.EC2.Model.Filter { Name = "vpc-id", Values = new List <string> { vpc.AWSVPCReference } } } }); String[] IPBlocks = responseD.Vpcs[0].CidrBlock.Split("."); ViewData["IPCIDR"] = IPBlocks[0] + "." + IPBlocks[1]; ViewData["Exception"] = "Failed to Create!"; ViewData["Exception"] = e.Message; return(View()); } } else { return(View()); } }
public void toname(string accessKey, string secretKey, TreeNode subscriptionNode) { List <Amazon.RegionEndpoint> regionsList = new List <Amazon.RegionEndpoint>(); foreach (var region in Amazon.RegionEndpoint.EnumerableAllRegions) { try { _awsObjectRetriever = new AwsObjectRetriever(accessKey, secretKey, region, _LogProvider, _StatusProvider); //// todo, not needed in this method_templateGenerator = new TemplateGenerator(_logProvider, _statusProvider, _awsObjectRetriever, telemetryProvider); TreeNode amazonRegionNode = new TreeNode(region.DisplayName); amazonRegionNode.Text = region.DisplayName; amazonRegionNode.Tag = region; //DescribeVolumesResponse ebsVolumesResponse; _StatusProvider.UpdateStatus("BUSY: Getting the VPC details"); DescribeVpcsResponse vpcResponse = getVPCs(); Application.DoEvents(); List <Azure.MigrationTarget.VirtualNetwork> targetVirtualNetworks = new List <Azure.MigrationTarget.VirtualNetwork>(); _StatusProvider.UpdateStatus("BUSY: Processing VPC"); foreach (var vpc in vpcResponse.Vpcs) { MigAz.AWS.MigrationSource.VirtualNetwork sourceVirtualNetwork = new MigrationSource.VirtualNetwork(_awsObjectRetriever, vpc); Azure.MigrationTarget.VirtualNetwork targetVirtualNetwork = new Azure.MigrationTarget.VirtualNetwork(sourceVirtualNetwork, null); targetVirtualNetworks.Add(targetVirtualNetwork); TreeNode vpcTreeNode = new TreeNode(sourceVirtualNetwork.Id + " - " + sourceVirtualNetwork.Name); vpcTreeNode.Tag = targetVirtualNetwork; vpcTreeNode.ImageKey = "VirtualNetwork"; vpcTreeNode.SelectedImageKey = "VirtualNetwork"; amazonRegionNode.Nodes.Add(vpcTreeNode); // // todo, this is foreach subnet // foreach (Subnet subnet in subnets) // { // //QUES: Single Sec group? // // add Network Security Group if exists - 2 subnets - each acl is associated with both // List<Amazon.EC2.Model.NetworkAcl> networkAcls = _awsObjectRetriever.getNetworkAcls(subnetnode.SubnetId); // List<Amazon.EC2.Model.RouteTable> routeTable = _awsObjectRetriever.getRouteTables(subnetnode.SubnetId); // //var nodes = networkAcls.SelectSingleNode("DescribeNetworkAclsResponse ").SelectSingleNode("networkAclSet").SelectNodes("item"); // if (networkAcls.Count > 0) // { // NetworkSecurityGroup networksecuritygroup = BuildNetworkSecurityGroup(networkAcls[0]); // //NetworkSecurityGroup networksecuritygroup = BuildNetworkSecurityGroup(subnet.name); // // Add NSG reference to the subnet // Reference networksecuritygroup_ref = new Reference(); // networksecuritygroup_ref.id = "[concat(resourceGroup().id,'/providers/Microsoft.Network/networkSecurityGroups/" + networksecuritygroup.name + "')]"; // properties.networkSecurityGroup = networksecuritygroup_ref; // // Add NSG dependsOn to the Virtual Network object // if (!virtualnetwork.dependsOn.Contains(networksecuritygroup_ref.id)) // { // virtualnetwork.dependsOn.Add(networksecuritygroup_ref.id); // } // } // if (routeTable.Count > 0) // { // RouteTable routetable = BuildRouteTable(routeTable[0]); // if (routetable.properties != null) // { // // Add Route Table reference to the subnet // Reference routetable_ref = new Reference(); // routetable_ref.id = "[concat(resourceGroup().id,'/providers/Microsoft.Network/routeTables/" + routetable.name + "')]"; // properties.routeTable = routetable_ref; // // Add Route Table dependsOn to the Virtual Network object // if (!virtualnetwork.dependsOn.Contains(routetable_ref.id)) // { // virtualnetwork.dependsOn.Add(routetable_ref.id); // } // } // } // } //} Application.DoEvents(); } DescribeInstancesResponse instResponse = getEC2Instances(); Application.DoEvents(); foreach (LoadBalancerDescription loadBalancerDescription in _awsObjectRetriever.GetAllLBs().LoadBalancerDescriptions) { MigAz.AWS.MigrationSource.LoadBalancer sourceLoadBalancer = new MigAz.AWS.MigrationSource.LoadBalancer(loadBalancerDescription); Azure.MigrationTarget.LoadBalancer targetLoadBalancer = new Azure.MigrationTarget.LoadBalancer(); targetLoadBalancer.SetTargetName(loadBalancerDescription.LoadBalancerName, null); Azure.MigrationTarget.FrontEndIpConfiguration targetFrontEndIpConfiguration = new Azure.MigrationTarget.FrontEndIpConfiguration(targetLoadBalancer); targetFrontEndIpConfiguration.Name = "ipconfig1"; // can this come from Amazon? if (loadBalancerDescription.Scheme != "internet-facing") // if internal load balancer { foreach (Azure.MigrationTarget.VirtualNetwork targetVirtualNetwork in targetVirtualNetworks) { if (targetVirtualNetwork.SourceVirtualNetwork != null) { AWS.MigrationSource.VirtualNetwork amazonVirtualNetwork = (AWS.MigrationSource.VirtualNetwork)targetVirtualNetwork.SourceVirtualNetwork; if (amazonVirtualNetwork.Id == loadBalancerDescription.VPCId) { targetFrontEndIpConfiguration.TargetVirtualNetwork = targetVirtualNetwork; foreach (Azure.MigrationTarget.Subnet targetSubnet in targetVirtualNetwork.TargetSubnets) { if (targetSubnet.SourceSubnet.Id == loadBalancerDescription.Subnets[0]) { targetFrontEndIpConfiguration.TargetSubnet = targetSubnet; break; } } break; } } } targetFrontEndIpConfiguration.TargetPrivateIPAllocationMethod = IPAllocationMethodEnum.Static; try { IPHostEntry host = Dns.GetHostEntry(loadBalancerDescription.DNSName); targetFrontEndIpConfiguration.TargetPrivateIpAddress = host.AddressList[0].ToString(); } catch { targetFrontEndIpConfiguration.TargetPrivateIPAllocationMethod = IPAllocationMethodEnum.Dynamic; } } else // if external (public) load balancer { Azure.MigrationTarget.PublicIp targetPublicIp = new Azure.MigrationTarget.PublicIp(); targetPublicIp.SetTargetName(loadBalancerDescription.LoadBalancerName, null); targetPublicIp.DomainNameLabel = loadBalancerDescription.LoadBalancerName; targetLoadBalancer.LoadBalancerType = Azure.MigrationTarget.LoadBalancerType.Public; targetFrontEndIpConfiguration.PublicIp = targetPublicIp; TreeNode loadBalancerPublicIpNode = new TreeNode(targetPublicIp.TargetName); loadBalancerPublicIpNode.Tag = targetPublicIp; loadBalancerPublicIpNode.ImageKey = "PublicIp"; loadBalancerPublicIpNode.SelectedImageKey = "PublicIp"; amazonRegionNode.Nodes.Add(loadBalancerPublicIpNode); } TreeNode loadBalancerNode = new TreeNode(targetLoadBalancer.TargetName); loadBalancerNode.Tag = targetLoadBalancer; loadBalancerNode.ImageKey = "LoadBalancer"; loadBalancerNode.SelectedImageKey = "LoadBalancer"; amazonRegionNode.Nodes.Add(loadBalancerNode); } if (instResponse != null) { _StatusProvider.UpdateStatus("BUSY: Processing Instances"); if (instResponse.Reservations.Count > 0) { foreach (var instanceResp in instResponse.Reservations) { foreach (var instance in instanceResp.Instances) { var selectedInstances = _awsObjectRetriever.getInstancebyId(instance.InstanceId); // List<NetworkProfile_NetworkInterface> networkinterfaces = new List<NetworkProfile_NetworkInterface>(); String vpcId = selectedInstances.Instances[0].VpcId.ToString(); //Process LBs var LBs = _awsObjectRetriever.GetAllLBs().LoadBalancerDescriptions; string instanceLBName = ""; foreach (var LB in LBs) { foreach (var LBInstance in LB.Instances) { if ((LB.VPCId == vpcId) && (LBInstance.InstanceId == instance.InstanceId)) { if (LB.Scheme == "internet-facing") { // BuildPublicIPAddressObject(LB); } instanceLBName = LB.LoadBalancerName; //BuildLoadBalancerObject(LB, instance.InstanceId.ToString()); } } } //Process Network Interface // todo now BuildNetworkInterfaceObject(selectedInstances.Instances[0], ref networkinterfaces, LBs); //Process EC2 Instance // todo now BuildVirtualMachineObject(selectedInstances.Instances[0], networkinterfaces, storageAccountName, instanceLBName); string name = ""; foreach (var tag in instance.Tags) { if (tag.Key == "Name") { name = tag.Value; } } TreeNode instanceTreeNode = new TreeNode(instance.InstanceId + " - " + name); instanceTreeNode.Tag = instance; amazonRegionNode.Nodes.Add(instanceTreeNode); Application.DoEvents(); } } } } if (amazonRegionNode.Nodes.Count > 0) { subscriptionNode.Nodes.Add(amazonRegionNode); } else { _LogProvider.WriteLog("Load_Items", "Not adding Amazon Region '" + region.DisplayName + "' to Source Node list, as it contains no resources to export."); } } catch (Exception exc) { _LogProvider.WriteLog("Load_Items", "AWS Exception - " + region.DisplayName + ": " + exc.Message); } } }
public async Task DoWorkAsync() { _logger.LogInformation("Update Background Service is running"); try { _logger.LogInformation("Update Background Service is checking VPCs"); if (context.VPCs.Any()) { DescribeVpcsResponse responseDescribeVPC = await ec2Client.DescribeVpcsAsync(); List <VPC> vpcs = await context.VPCs.ToListAsync(); foreach (VPC vpc in vpcs) { Boolean Flag = false; foreach (Vpc AWSVPC in responseDescribeVPC.Vpcs) { if (vpc.AWSVPCReference.Equals(AWSVPC.VpcId)) { Flag = true; break; } } if (Flag == false) { context.VPCs.Remove(vpc); } } context.SaveChanges(); _logger.LogInformation("Update Background Service completed checking of VPCs"); } if (context.VPCs.Any()) { VPC vpc = await context.VPCs.FindAsync(1); if (context.Servers.Any()) { _logger.LogInformation("Update Background Service is checking servers"); List <Server> servers = await context.Servers.ToListAsync(); DescribeInstancesResponse response = await ec2Client.DescribeInstancesAsync(new DescribeInstancesRequest { Filters = new List <Filter> { new Filter { Name = "vpc-id", Values = new List <string> { vpc.AWSVPCReference } } } }); foreach (var server in servers) { foreach (var reservation in response.Reservations) { foreach (var instance in reservation.Instances) { bool Flag = false; if (server.AWSEC2Reference.Equals(instance.InstanceId)) { if (instance.State.Code == 0 && server.State != State.Starting) { server.State = State.Starting; Flag = true; } else if (instance.State.Code == 16 && server.State != State.Running) { server.State = State.Running; Flag = true; } else if (instance.State.Code == 64 && server.State != State.Stopping) { server.State = State.Stopping; Flag = true; } else if (instance.State.Code == 80 && server.State != State.Stopped) { server.State = State.Stopped; Flag = true; } if (server.Visibility == Visibility.Internet && (server.IPAddress != instance.PublicIpAddress || server.DNSHostname != instance.PublicDnsName) && server.State != State.Stopped) { server.IPAddress = instance.PublicIpAddress; server.DNSHostname = instance.PublicDnsName; Flag = true; } else if (server.Visibility == Visibility.Internet && (server.IPAddress != instance.PublicIpAddress || server.DNSHostname != instance.PublicDnsName)) { server.IPAddress = "Public IP Address is not available when server is stopped"; server.DNSHostname = "Public DNS Hostname is not available when server is stopped"; Flag = true; } else if ((server.Visibility == Visibility.Extranet || server.Visibility == Visibility.Intranet) && (server.IPAddress != instance.PrivateIpAddress || server.DNSHostname != instance.PrivateDnsName)) { server.IPAddress = instance.PrivateIpAddress; server.DNSHostname = instance.PrivateDnsName; Flag = true; } if (Flag == true) { context.Servers.Update(server); } break; } } } } context.SaveChanges(); } if (context.CloudWatchLogGroups.Any() && context.CloudWatchLogStreams.Any()) { _logger.LogInformation("Update Background Service is checking cloudwatch groups"); List <CloudWatchLogGroup> allStreams = await context.CloudWatchLogGroups.ToListAsync(); foreach (CloudWatchLogGroup g in allStreams) { DescribeLogStreamsResponse response = await cwlClient.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { LogGroupName = g.Name.Replace("@", "/") }); foreach (LogStream ls in response.LogStreams) { Boolean Flag = false; foreach (CloudWatchLogStream CWLS in g.LogStreams) { if (ls.Arn.Equals(CWLS.ARN)) { Flag = true; break; } } if (Flag == false) { CloudWatchLogStream newS = new CloudWatchLogStream { ARN = ls.Arn, CreationTime = ls.CreationTime, FirstEventTime = ls.FirstEventTimestamp, LastEventTime = ls.LastEventTimestamp, Name = ls.LogStreamName, LinkedGroupID = g.ID }; if (g.Name.Equals("VMVPCLogs")) { newS.DisplayName = "Network Flow Log For Challenge Network Interface (" + newS.Name.Substring(0, newS.Name.Length - 4) + ")"; } else if (g.Name.Equals("PlatformVPCLogs")) { newS.DisplayName = "Network Flow Log For Platform Network Interface (" + newS.Name.Substring(0, newS.Name.Length - 4) + ")"; } else if (g.Name.Equals("@aws@elasticbeanstalk@User-Side@IIS-Log")) { newS.DisplayName = "IIS Logs for User Side Web Server"; } else if (g.Name.Equals("@aws@elasticbeanstalk@Admin-Side@IIS-Log")) { newS.DisplayName = "IIS Logs for Admin Side Web Server"; } else if (g.Name.Equals("@aws@elasticbeanstalk@User-Side@EBDeploy-Log")) { newS.DisplayName = "Elastic Beanstalk Deployment Tool Logs for User Side"; } else if (g.Name.Equals("@aws@elasticbeanstalk@Admin-Side@EBDeploy-Log")) { newS.DisplayName = "Elastic Beanstalk Deployment Tool Logs for Admin Side"; } else if (g.Name.Equals("@aws@elasticbeanstalk@User-Side@EBHooks-Log")) { newS.DisplayName = "Elastic Beanstalk Deployment Hook Logs for User Side"; } else if (g.Name.Equals("@aws@elasticbeanstalk@Admin-Side@EBHooks-Log")) { newS.DisplayName = "Elastic Beanstalk Deployment Hook Logs for Admin Side"; } else { newS.DisplayName = newS.Name; } if (!g.Name.Equals("RDSOSMetrics") || !g.Name.Contains("sns")) { context.CloudWatchLogStreams.Add(newS); } } } foreach (CloudWatchLogStream CWLS in g.LogStreams) { Boolean Flag = false; foreach (LogStream ls in response.LogStreams) { if (CWLS.ARN.Equals(ls.Arn)) { Flag = true; break; } } if (Flag == false) { context.CloudWatchLogStreams.Remove(CWLS); } } } await context.SaveChangesAsync(); } if (context.Templates.Any()) { DescribeSnapshotsResponse response = await ec2Client.DescribeSnapshotsAsync(new DescribeSnapshotsRequest()); List <Template> templates = await context.Templates.FromSql("SELECT * FROM dbo.Templates WHERE AWSSnapshotReference = NULL").ToListAsync(); foreach (Template t in templates) { foreach (Snapshot s in response.Snapshots) { if (s.Description.Contains(t.AWSAMIReference)) { t.AWSSnapshotReference = s.SnapshotId; break; } } } await context.SaveChangesAsync(); } } _logger.LogInformation("Update Background Service has completed!"); } catch (SqlException e) { _logger.LogInformation("Update Background Service faced an SQL exception! " + e.Message + " | " + e.Source); return; } catch (Exception e) { _logger.LogInformation("Update Background Service faced an exception! " + e.Message + " | " + e.Source); return; } }
public static DescribeVpcsResponse Unmarshall(UnmarshallerContext _ctx) { DescribeVpcsResponse describeVpcsResponse = new DescribeVpcsResponse(); describeVpcsResponse.HttpResponse = _ctx.HttpResponse; describeVpcsResponse.RequestId = _ctx.StringValue("DescribeVpcs.RequestId"); describeVpcsResponse.TotalCount = _ctx.IntegerValue("DescribeVpcs.TotalCount"); describeVpcsResponse.PageNumber = _ctx.IntegerValue("DescribeVpcs.PageNumber"); describeVpcsResponse.PageSize = _ctx.IntegerValue("DescribeVpcs.PageSize"); List <DescribeVpcsResponse.DescribeVpcs_Vpc> describeVpcsResponse_vpcs = new List <DescribeVpcsResponse.DescribeVpcs_Vpc>(); for (int i = 0; i < _ctx.Length("DescribeVpcs.Vpcs.Length"); i++) { DescribeVpcsResponse.DescribeVpcs_Vpc vpc = new DescribeVpcsResponse.DescribeVpcs_Vpc(); vpc.VpcId = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].VpcId"); vpc.RegionId = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].RegionId"); vpc.Status = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Status"); vpc.VpcName = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].VpcName"); vpc.CreationTime = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].CreationTime"); vpc.CidrBlock = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].CidrBlock"); vpc.Ipv6CidrBlock = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Ipv6CidrBlock"); vpc.VRouterId = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].VRouterId"); vpc.Description = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Description"); vpc.IsDefault = _ctx.BooleanValue("DescribeVpcs.Vpcs[" + i + "].IsDefault"); vpc.NetworkAclNum = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].NetworkAclNum"); vpc.ResourceGroupId = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].ResourceGroupId"); vpc.CenStatus = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].CenStatus"); vpc.OwnerId = _ctx.LongValue("DescribeVpcs.Vpcs[" + i + "].OwnerId"); vpc.SupportAdvancedFeature = _ctx.BooleanValue("DescribeVpcs.Vpcs[" + i + "].SupportAdvancedFeature"); vpc.AdvancedResource = _ctx.BooleanValue("DescribeVpcs.Vpcs[" + i + "].AdvancedResource"); vpc.DhcpOptionsSetId = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].DhcpOptionsSetId"); vpc.DhcpOptionsSetStatus = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].DhcpOptionsSetStatus"); List <string> vpc_vSwitchIds = new List <string>(); for (int j = 0; j < _ctx.Length("DescribeVpcs.Vpcs[" + i + "].VSwitchIds.Length"); j++) { vpc_vSwitchIds.Add(_ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].VSwitchIds[" + j + "]")); } vpc.VSwitchIds = vpc_vSwitchIds; List <string> vpc_userCidrs = new List <string>(); for (int j = 0; j < _ctx.Length("DescribeVpcs.Vpcs[" + i + "].UserCidrs.Length"); j++) { vpc_userCidrs.Add(_ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].UserCidrs[" + j + "]")); } vpc.UserCidrs = vpc_userCidrs; List <string> vpc_natGatewayIds = new List <string>(); for (int j = 0; j < _ctx.Length("DescribeVpcs.Vpcs[" + i + "].NatGatewayIds.Length"); j++) { vpc_natGatewayIds.Add(_ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].NatGatewayIds[" + j + "]")); } vpc.NatGatewayIds = vpc_natGatewayIds; List <string> vpc_routerTableIds = new List <string>(); for (int j = 0; j < _ctx.Length("DescribeVpcs.Vpcs[" + i + "].RouterTableIds.Length"); j++) { vpc_routerTableIds.Add(_ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].RouterTableIds[" + j + "]")); } vpc.RouterTableIds = vpc_routerTableIds; List <string> vpc_secondaryCidrBlocks = new List <string>(); for (int j = 0; j < _ctx.Length("DescribeVpcs.Vpcs[" + i + "].SecondaryCidrBlocks.Length"); j++) { vpc_secondaryCidrBlocks.Add(_ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].SecondaryCidrBlocks[" + j + "]")); } vpc.SecondaryCidrBlocks = vpc_secondaryCidrBlocks; List <DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Tag> vpc_tags = new List <DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Tag>(); for (int j = 0; j < _ctx.Length("DescribeVpcs.Vpcs[" + i + "].Tags.Length"); j++) { DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Tag tag = new DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Tag(); tag.Key = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Tags[" + j + "].Key"); tag._Value = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Tags[" + j + "].Value"); vpc_tags.Add(tag); } vpc.Tags = vpc_tags; List <DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Ipv6CidrBlock> vpc_ipv6CidrBlocks = new List <DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Ipv6CidrBlock>(); for (int j = 0; j < _ctx.Length("DescribeVpcs.Vpcs[" + i + "].Ipv6CidrBlocks.Length"); j++) { DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Ipv6CidrBlock ipv6CidrBlock = new DescribeVpcsResponse.DescribeVpcs_Vpc.DescribeVpcs_Ipv6CidrBlock(); ipv6CidrBlock.Ipv6CidrBlock = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Ipv6CidrBlocks[" + j + "].Ipv6CidrBlock"); ipv6CidrBlock.Ipv6Isp = _ctx.StringValue("DescribeVpcs.Vpcs[" + i + "].Ipv6CidrBlocks[" + j + "].Ipv6Isp"); vpc_ipv6CidrBlocks.Add(ipv6CidrBlock); } vpc.Ipv6CidrBlocks = vpc_ipv6CidrBlocks; describeVpcsResponse_vpcs.Add(vpc); } describeVpcsResponse.Vpcs = describeVpcsResponse_vpcs; return(describeVpcsResponse); }