/// <summary> /// Gets the current state of an EC2 instance /// </summary> /// <param name="instanceId"></param> /// <returns></returns> public static EC2Instance GetInstance(string instanceId) { var instance = new EC2Instance() { InstanceId = instanceId }; var request = new DescribeInstancesRequest(); request.InstanceId = new List <string>(); request.InstanceId.Add(instanceId); try { var response = Provider.DescribeInstances(request); var reservation = response.DescribeInstancesResult.Reservation[0]; var runningInstance = (from i in reservation.RunningInstance where i.InstanceId == instanceId select i).FirstOrDefault(); if (runningInstance != null) { instance.CurrentStateName = runningInstance.InstanceState.Name; if (instance.IsRunning()) { instance.PublicDnsName = runningInstance.PublicDnsName; } } } catch (Exception ex) { MessageBox.Show(string.Format("Error calling AWS.DescribeInstances: {0}", ex.Message)); } return(instance); }
/// <summary> /// Starts an EC2 instance /// </summary> /// <param name="instanceId"></param> /// <returns></returns> public static EC2Instance StartInstance(string instanceId) { var instance = new EC2Instance() { InstanceId = instanceId }; var request = new StartInstancesRequest(); request.InstanceId = new List <string>(); request.InstanceId.Add(instanceId); try { var response = EC2.Provider.StartInstances(request); var stateChanges = response.StartInstancesResult.StartingInstances; var runningInstance = (from i in stateChanges where i.InstanceId == instanceId select i).FirstOrDefault(); if (runningInstance != null) { instance.CurrentStateName = runningInstance.CurrentState.Name; } } catch (Exception ex) { MessageBox.Show(string.Format("Error calling AWS.StartInstances: {0}", ex.Message)); } return(instance); }
private void DestroyInstance(EC2Instance ec2Instance) { var terminateResponse = _ec2Client.TerminateInstances(new TerminateInstancesRequest { InstanceIds = new List <string> { ec2Instance.InstanceId } }); }
public void TerminateInstance(EC2Instance ec2Instance) { if (ec2Instance.PublicIpAddress != null) { string allocationId = GetAllocationAddress(ec2Instance.PublicIpAddress); string associationId = GetAssociationAddress(ec2Instance.PublicIpAddress); if (DisassociateAddress(associationId)) { ReleaseAddress(allocationId); } } DestroyInstance(ec2Instance); }
public List <EC2Instance> GetEC2InstanceList(IAmazonEC2 ec2) { // List<string> ec2list = new List<string>(); List <EC2Instance> ec2list; ec2list = new List <EC2Instance>(); List <GroupIdentifier> sg; List <string> sgstrlist; List <string> bdevicelist; try { DescribeInstancesRequest ec2Request = new DescribeInstancesRequest(); DescribeInstancesResponse ec2Response = ec2.DescribeInstances(ec2Request); foreach (Reservation reservation in ec2Response.Reservations) { foreach (Instance instance in reservation.Instances) { EC2Instance EC2Ins; EC2Ins = new EC2Instance(); sg = new List <GroupIdentifier>(); sgstrlist = new List <string>(); bdevicelist = new List <string>(); EC2Ins.setid(instance.InstanceId); EC2Ins.setName(instance.PrivateDnsName); EC2Ins.setPrivateDNSName(instance.PrivateDnsName); EC2Ins.setPrivateIP(instance.PrivateIpAddress); EC2Ins.setPublicIP(instance.PublicIpAddress); EC2Ins.setType(instance.InstanceType); EC2Ins.setPublicDNSName(instance.PublicDnsName); EC2Ins.setTokenName(instance.ClientToken); EC2Ins.setPlatform(instance.Platform); EC2Ins.setState(instance.State.Name.Value); EC2Ins.setPlacment(instance.Placement.AvailabilityZone); // EC2Ins.setTagName(instance.Tags[0].Value); EC2Ins.setKeyName(instance.KeyName); EC2Ins.setVpcId(instance.VpcId); EC2Ins.setSubnetId(instance.SubnetId); EC2Ins.setAmiId(instance.ImageId); foreach (Amazon.EC2.Model.Tag EC2tag in instance.Tags) { if (EC2tag.Key == "Name") { EC2Ins.setTagName(EC2tag.Value); } } // EC2Ins.setBlockDevice() // instance.BlockDeviceMappings foreach (InstanceBlockDeviceMapping bdevice in instance.BlockDeviceMappings) { // string bdstr = bdevice.DeviceName + ":" + ":" + bdevice.Ebs; bdevice. bdevicelist.Add(bdevice.DeviceName + ":" + ":" + bdevice.Ebs.Status + ":" + bdevice.Ebs.VolumeId); } EC2Ins.setSG(sgstrlist); foreach (GroupIdentifier sgi in instance.SecurityGroups) { sgstrlist.Add(sgi.GroupId); // sgi.GroupId } EC2Ins.setBlockDevice(bdevicelist); Monitoring m; List <InstanceNetworkInterface> ln; ln = new List <InstanceNetworkInterface>(); m = instance.Monitoring; ln = instance.NetworkInterfaces; //instance.NetworkInterfaces //instance. ec2list.Add(EC2Ins); // ec2list.Add(instance.InstanceId); /* instance.ImageId; * instance.KeyName; * instance.LaunchTime; * instance.Placement; * instance.Platform; * instance.RootDeviceType; * instance.SecurityGroups; * instance.SriovNetSupport; //enhance network is supported * instance.State; * instance.StateReason; * instance.SubnetId; * instance.Tags; * instance.VirtualizationType; * instance.VpcId * instance.KeyName; * instance.VpcId; */ } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\n"); // + ex.StackTrace); } return(ec2list); }