public static Instance CreateInstance(AWSModel.RunningInstance runningInstance) { Instance instance = new Instance(); instance.ImageId = runningInstance.ImageId; instance.InstanceId = runningInstance.InstanceId; instance.PrivateDnsName = runningInstance.PrivateDnsName; // Openstack sends Public IP address in PublicDnsName if (!string.IsNullOrEmpty(runningInstance.PublicDnsName)) { instance.IpAddress = runningInstance.PublicDnsName; } else { instance.IpAddress = runningInstance.IpAddress; } if (runningInstance.InstanceState != null) { instance.State = runningInstance.InstanceState.Name; } instance.Type = runningInstance.InstanceType; return(instance); }
internal static EC2Node FromRunningInstance(RunningInstance r, EC2Driver driver) { List<IPAddress> public_ips = new List<IPAddress> (); List<IPAddress> private_ips = new List<IPAddress> (); IPAddress ip; if (IPAddress.TryParse (r.IpAddress, out ip)) public_ips.Add (ip); if (IPAddress.TryParse (r.PrivateIpAddress, out ip)) private_ips.Add (ip); EC2Node node = new EC2Node (r.InstanceId, r.InstanceId, ToNodeState (r.InstanceState), public_ips, private_ips, driver); return node; }
private static string GetInstanceStatusCss(string instanceStatus, Dictionary<string, TimeSpan> stateTimeMap, RunningInstance description) { var status = "ok"; if (instanceStatus != "InService") { status = "warning"; if (stateTimeMap.ContainsKey(description.InstanceId) && stateTimeMap[description.InstanceId].Minutes >= 10) { status = "error"; if (stateTimeMap[description.InstanceId].Minutes >= 20) { status = "danger"; } } } return status; }
/* public static string getPassword(this API_AmazonEC2 amazonEC2, RunningInstance runningInstance) { return amazonEC2.getPassword(runningInstance,null); } public static string getPassword(this API_AmazonEC2 amazonEC2, RunningInstance runningInstance, string pathToPemFile) { "Tests on instance with ID: {0}".info(runningInstance.InstanceId); var ec2Client = amazonEC2.getEC2Client(runningInstance.Placement.AvailabilityZone.removeLastChar()); var passwordResponse = ec2Client.GetPasswordData(new GetPasswordDataRequest().WithInstanceId(runningInstance.InstanceId)); "raw password data : {0}".info(passwordResponse.GetPasswordDataResult.ToXML()); if (amazonEC2.ApiRsa.isNull()) amazonEC2.ApiRsa = new API_RSA(pathToPemFile); var decryptedPassword = amazonEC2.ApiRsa.decryptPasswordUsingPem(passwordResponse.GetPasswordDataResult.PasswordData.Data); "decrypted password: {0}".info(decryptedPassword); return decryptedPassword; }*/ public static string getRunningInstanceSignature(this API_AmazonEC2 amazonEC2, RunningInstance runningInstance) { var signature = "{0} - {1} - {2} - {3} - {4} ".format( runningInstance.InstanceId, runningInstance.InstanceType, runningInstance.IpAddress, runningInstance.Placement.AvailabilityZone, runningInstance.InstanceState.Name); foreach(var tag in runningInstance.Tag) //signature = "{0}= {1} - {2}".format(tag.Key, tag.Value, signature); signature = "{1} - {2}".format(tag.Key, tag.Value, signature); return signature; }
public static RunningInstance showConsoleOut(this API_AmazonEC2 amazonEC2, RunningInstance runningInstance) { "Getting Console out instance with ID: {0}".info(runningInstance.InstanceId); var ec2Client = amazonEC2.getEC2Client(runningInstance.Placement.AvailabilityZone.removeLastChar()); var consoleOutResult = ec2Client.GetConsoleOutput(new GetConsoleOutputRequest() .WithInstanceId(runningInstance.InstanceId)); var consoleOut = consoleOutResult.GetConsoleOutputResult.ConsoleOutput.Output.base64Decode(); consoleOut.showInCodeViewer(".bat"); return runningInstance; }
public static RunningInstance rebootInstance(this API_AmazonEC2 amazonEC2, RunningInstance runningInstance) { "Rebooting instance with ID: {0}".info(runningInstance.InstanceId); var ec2Client = amazonEC2.getEC2Client(runningInstance.Placement.AvailabilityZone.removeLastChar()); var result = ec2Client.RebootInstances(new RebootInstancesRequest() .WithInstanceId(runningInstance.InstanceId)); return runningInstance; }
public static string getPassword(this API_AmazonEC2 amazonEC2, RunningInstance runningInstance, string pathToPemFile) { "Tests on instance with ID: {0}".info(runningInstance.InstanceId); var ec2Client = amazonEC2.getEC2Client(runningInstance.Placement.AvailabilityZone.removeLastChar()); var passwordResponse = ec2Client.GetPasswordData(new GetPasswordDataRequest().WithInstanceId(runningInstance.InstanceId)); "raw password data : {0}".info(passwordResponse.GetPasswordDataResult.ToXML()); if (amazonEC2.ApiRsa.isNull()) amazonEC2.ApiRsa = new API_RSA(pathToPemFile); var decryptedPassword = amazonEC2.ApiRsa.decryptPasswordUsingPem(passwordResponse.GetPasswordDataResult.PasswordData.Data); "decrypted password: {0}".info(decryptedPassword); return decryptedPassword; }
public static string getPassword(this API_AmazonEC2 amazonEC2, RunningInstance runningInstance) { return amazonEC2.getPassword(runningInstance,null); }
static bool IsRunning(RunningInstance instance) { return !string.Equals(instance.InstanceState.Name, "stopped", StringComparison.OrdinalIgnoreCase); }
InstanceState Stop(RunningInstance instance) { using (var client = CreateClient()) { var request = new StopInstancesRequest(); request.InstanceId.Add(instance.InstanceId); var response = client.StopInstances(request); return response.StopInstancesResult.StoppingInstances[0].CurrentState; } }
private void SetOutputProperties(RunningInstance instance) { AmiLaunchIndex = instance.AmiLaunchIndex; Architecture = instance.Architecture; ImageId = instance.ImageId; InstanceLifecycle = instance.InstanceLifecycle; if (instance.InstanceState != null) { InstanceStateCode = instance.InstanceState.Code; InstanceStateName = instance.InstanceState.Name; } InstanceType = instance.InstanceType; IpAddress = instance.IpAddress; KernelId = instance.KernelId; KeyName = instance.KeyName; LaunchTime = instance.LaunchTime; if (instance.Monitoring!=null) { MonitoringState = instance.Monitoring.MonitoringState; } if (instance.Placement!=null) { AvailabilityZone = instance.Placement.AvailabilityZone; } Platform = instance.Platform; PrivateDnsName = instance.PrivateDnsName; PublicDnsName = instance.PublicDnsName; RamdiskId = instance.RamdiskId; RootDeviceName = instance.RootDeviceName; RootDeviceType = instance.RootDeviceType; SpotInstanceRequestId = instance.SpotInstanceRequestId; if (instance.StateReason != null) { StateReason = instance.StateReason.Message; } StateTransitionReason = instance.StateTransitionReason; SubnetId = instance.SubnetId; VpcId = instance.VpcId; }
private string GetGraylogUrl(RunningInstance description) { var graylogDns = ConfigurationManager.AppSettings["GraylogDns"]; if (string.IsNullOrEmpty(graylogDns)) throw new ConfigurationErrorsException("GraylogDns setting is missing from configuration."); var host = description.PrivateDnsName.Split('.')[0]; return string.Format( "http://{0}/messages?filters%5Bseverity%5D=3&filters%5Bhost%5D={1}", graylogDns, host ); }