/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { DescribeAddressesResponse response = new DescribeAddressesResponse(); 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("addressesSet/item", targetDepth)) { var unmarshaller = AddressUnmarshaller.Instance; var item = unmarshaller.Unmarshall(context); response.Addresses.Add(item); continue; } } } return(response); }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonSnowballConfig config = new AmazonSnowballConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonSnowballClient client = new AmazonSnowballClient(creds, config); DescribeAddressesResponse resp = new DescribeAddressesResponse(); do { DescribeAddressesRequest req = new DescribeAddressesRequest { NextToken = resp.NextToken , MaxResults = maxItems }; resp = client.DescribeAddresses(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.Addresses) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextToken)); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { DescribeAddressesResponse response = new DescribeAddressesResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("Addresses", targetDepth)) { var unmarshaller = new ListUnmarshaller <Address, AddressUnmarshaller>(AddressUnmarshaller.Instance); response.Addresses = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("NextToken", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.NextToken = unmarshaller.Unmarshall(context); continue; } } return(response); }
private DescribeAddressesResponse GetElasticIps() { DescribeAddressesRequest request = new DescribeAddressesRequest(); DescribeAddressesResponse resp = ec2.DescribeAddresses(request); return(resp); }
public async Task <List <Address> > DescribeAddresses() { DescribeAddressesRequest request = new DescribeAddressesRequest(); DescribeAddressesResponse response = await _ec2Client.DescribeAddressesAsync(request); List <AwsForensicRefresh.Models.Address> addresses = new List <Address>(); foreach (var item in response.Addresses) { addresses.Add(new Address(item.AllocationId, item.AssociationId, item.InstanceId, item.NetworkInterfaceId, item.PrivateIpAddress, item.PublicIp)); } return(addresses); }
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); DescribeAddressesResponse resp = new DescribeAddressesResponse(); DescribeAddressesRequest req = new DescribeAddressesRequest { }; resp = client.DescribeAddresses(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.Addresses) { AddObject(obj); } }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { DescribeAddressesResponse response = new DescribeAddressesResponse(); int targetDepth = 2; while (context.Read()) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("addressesSet/item", targetDepth)) { response.Addresses.Add(AddressUnmarshaller.GetInstance().Unmarshall(context)); continue; } } } return(response); }
void MonitorFunction() { Thread.CurrentThread.Name = "MonitorThread"; Program.TraceLine("Monitoring thread started..."); Program.MonitorMessage = "Monitor starting..."; while (true) { try { //TEST ZONE { } //Now continues normally lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeInstancesResponse respEc2 = GetRunningInstances(); UpdateClassOfObjects(currentStatusEc2, respEc2.DescribeInstancesResult.Reservation); Program.MonitorMessage = "Updated EC2s..."; foreach (ZAwsEc2 ec2Instance in CurrentEc2s) { lock (Ec2Lock) { if (!RunMonitoring) { return; } } ec2Instance.UpdateInfo(); Program.MonitorMessage = "Updated EC2 " + ec2Instance.Name; } lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeAddressesResponse respElasitIp = GetElasticIps(); UpdateClassOfObjects(currentStatusElIps, respElasitIp.DescribeAddressesResult.Address); Program.MonitorMessage = "Updated elastic IPs"; lock (Ec2Lock) { if (!RunMonitoring) { return; } } ListHostedZonesResponse route53Zones = GetHostedZones(); UpdateClassOfObjects(currentHostedZones, route53Zones.ListHostedZonesResult.HostedZones); Program.MonitorMessage = "Updated hosted zones..."; foreach (ZAwsHostedZone zone in CurrentHostedZones) { lock (Ec2Lock) { if (!RunMonitoring) { return; } } zone.UpdateInfo(); Program.MonitorMessage = "Updated zone " + zone.Name; } /* * We will not be checking S3 service, because that actually costs money! * lock (Ec2Lock) { if (!RunMonitoring) { return; } } * ListBucketsResponse s3Buckects = GetBuckets(); * UpdateClassOfObjects(currentS3Buckets, s3Buckects.Buckets); * Program.MonitorMessage = "Updated S3 Buckets..."; * */ lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeSnapshotsResponse respEc2Snapshots = GetSnapshots(); UpdateClassOfObjects(currentSnapshots, respEc2Snapshots.DescribeSnapshotsResult.Snapshot); Program.MonitorMessage = "Updated EC2 Snapshots..."; lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeKeyPairsResponse respKeyPairs = GetKeyPairs(); UpdateClassOfObjects(currentKeyPairs, respKeyPairs.DescribeKeyPairsResult.KeyPair); Program.MonitorMessage = "Updated KeyPairs..."; lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeSecurityGroupsResponse respSecGroups = GetSecurityGroups(); UpdateClassOfObjects(currentSecGroups, respSecGroups.DescribeSecurityGroupsResult.SecurityGroup); Program.MonitorMessage = "Updated Sec Groups..."; lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeImagesResponse respAmis = GetAmis(); UpdateClassOfObjects(currentAmis, respAmis.DescribeImagesResult.Image); Program.MonitorMessage = "Updated AMIs..."; lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeVolumesResponse respEbsVolumes = GetEbsVolumes(); UpdateClassOfObjects(currentEbsVolumes, respEbsVolumes.DescribeVolumesResult.Volume); Program.MonitorMessage = "Updated EBS volumes..."; lock (Ec2Lock) { if (!RunMonitoring) { return; } } DescribeSpotInstanceRequestsResponse respSpotRequests = GetSpotRequests(); UpdateClassOfObjects(currentSpotRequests, respSpotRequests.DescribeSpotInstanceRequestsResult.SpotInstanceRequest); Program.MonitorMessage = "Updated spot requests..."; lock (Ec2Lock) { if (!RunMonitoring) { return; } } if (ThreadInRecovery) { Program.TraceLine("Monitoring working fine again..."); ThreadInRecovery = false; } } catch (Exception ex) { Program.TraceLine("Monitoring thread encountered an error. Will restart in {0}...", ex, ThreadInRecovery ? "1 minute" : "5 seconds"); Program.MonitorMessage = "Monitor paused..."; for (int i = 0; i < (ThreadInRecovery ? 600 : 50); i++) { lock (Ec2Lock) { if (!RunMonitoring) { return; } } Thread.Sleep(100); } Program.TraceLine("Monitoring thread trying to recover..."); Program.MonitorMessage = "Monitor restarting..."; ThreadInRecovery = true; } finally { if (!RunMonitoring) { Program.MonitorMessage = "Monitor stopped."; } } } }