//--------------------------------------------------------------------------------------------------------------------- public override CloudAppliance CreateInstance(string name, VirtualMachineTemplate template, VirtualDisk[] disks, VirtualNetwork network) { CloudAppliance appliance = OcciCloudAppliance.FromResources(context, template as OcciInstanceType, disks as OcciStorage[], network as OcciNetwork); appliance.Name = name; appliance.Create(); return(appliance); }
//--------------------------------------------------------------------------------------------------------------------- /// <summary>Returns an instance of a CloudAppliance subclass representing the cloud appliance with the specified ID.</summary> /// <param name="context">the execution environment context</param> /// <param name="id">the cloud appliance ID</param> /// <returns>the created Terradue.Cloud#CloudAppliance subclass instance</returns> public static CloudAppliance FromId(IfyContext context, int id) { EntityType entityType = EntityType.GetEntityType(typeof(CloudAppliance)); CloudAppliance result = (CloudAppliance)entityType.GetEntityInstanceFromId(context, id); result.Id = id; result.Load(); return(result); }
//--------------------------------------------------------------------------------------------------------------------- public override bool DeleteInstance(CloudAppliance appliance) { try{ appliance.Delete(); }catch (Exception) { return(false); } return(true); }
//--------------------------------------------------------------------------------------------------------------------- public static OcciStorage FromComputeXml(IfyContext context, CloudAppliance appliance, XmlElement elem) { OcciStorage result = new OcciStorage(context); result.Appliance = appliance; result.Id = int.Parse(elem.Attributes ["id"].Value); foreach (XmlNode node in elem) { XmlElement subElem = node as XmlElement; if (subElem == null) { continue; } switch (subElem.Name) { case "STORAGE": if (subElem.HasAttribute("href")) { result.RemoteId = Regex.Replace(subElem.Attributes ["href"].Value, "^.*/", String.Empty); } if (subElem.HasAttribute("name")) { result.Name = subElem.Attributes ["name"].Value; } break; case "TYPE": result.Type = subElem.InnerXml; break; case "TARGET": result.Target = subElem.InnerXml; break; case "SAVE_AS": if (subElem.HasAttribute("href")) { result.SavedAs = Regex.Replace(subElem.Attributes ["href"].Value, "^.*/", String.Empty); } break; } } return(result); }
//--------------------------------------------------------------------------------------------------------------------- public static OcciNetwork FromComputeXml(IfyContext context, CloudAppliance appliance, XmlElement elem) { OcciNetwork result = new OcciNetwork(context); result.Appliance = appliance; foreach (XmlNode node in elem) { XmlElement subElem = node as XmlElement; if (subElem == null) { continue; } switch (subElem.Name) { case "NETWORK": if (subElem.HasAttribute("href")) { result.RemoteId = subElem.Attributes["href"].Value; } if (subElem.HasAttribute("name")) { result.Name = subElem.Attributes["name"].Value; } break; case "IP": result.IpAddress = subElem.InnerXml; break; case "MAC": result.MacAddress = subElem.InnerXml; break; } } return(result); }
//--------------------------------------------------------------------------------------------------------------------- public override bool DeleteInstance(CloudAppliance appliance) { return(false); }
//--------------------------------------------------------------------------------------------------------------------- public abstract bool DeleteInstance(CloudAppliance appliance);