//---------------------------------------------------------------------------------------------------------------------

        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);
        }
Exemplo n.º 2
0
        //---------------------------------------------------------------------------------------------------------------------

        /// <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);
        }
Exemplo n.º 3
0
        //---------------------------------------------------------------------------------------------------------------------

        public override bool DeleteInstance(CloudAppliance appliance)
        {
            try{
                appliance.Delete();
            }catch (Exception) {
                return(false);
            }
            return(true);
        }
Exemplo n.º 4
0
        //---------------------------------------------------------------------------------------------------------------------

        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);
        }
Exemplo n.º 5
0
        //---------------------------------------------------------------------------------------------------------------------

        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);
        }
Exemplo n.º 6
0
        //---------------------------------------------------------------------------------------------------------------------

        public override bool DeleteInstance(CloudAppliance appliance)
        {
            return(false);
        }
Exemplo n.º 7
0
        //---------------------------------------------------------------------------------------------------------------------

        public abstract bool DeleteInstance(CloudAppliance appliance);