Inheritance: NodeDriver
Esempio n. 1
0
        internal LinodeAPI(LinodeDriver driver)
        {
            this.driver = driver;
            this.base_url = GenerateBaseURL ();

            ServicePointManager.CertificatePolicy = new LinodeCertificatePolicy ();
            webclient = new WebClient ();
        }
Esempio n. 2
0
        public static void Main(string[] args)
        {
            ///
            /// To run this sample you must have a
            /// LINODE-KEY.txt file with your Linode API
            /// key in it.  See the getting started guide for
            /// info on how to get a key.
            ///
            /// Note that this sample will create a new node
            /// on your account and you will be billed at least
            /// 1 day for that node.  You can manually destroy the
            /// node when you are done at linode.com or you can
            /// make a call to node.Destroy.
            ///

            if (!File.Exists ("LINODE-KEY.txt"))
                throw new Exception ("You must have a LINODE-KEY.txt file to run this sample.");

            var key = File.ReadAllText ("LINODE-KEY.txt").Trim ();
            if (key.Length < 40)
                throw new Exception ("Your LINODE-KEY.txt file must contain a Linode API key.");

            var driver = new LinodeDriver (key);

            // Find a location in the USA
            var location = driver.ListLocations ().FirstOrDefault (l => l.Country == "US");

            // Pick the cheapest plan possible
            var size = driver.ListSizes ().OrderBy (s => s.Price).FirstOrDefault ();

            // Grab any OpenSuse image.
            var image = driver.ListImages ().FirstOrDefault (i => i.Name.Contains ("OpenSUSE"));

            Console.WriteLine ("location: {0}  size:  {1}  image:  {2}", location, size, image);

            // Create the new with a random password
            string password = System.Web.Security.Membership.GeneratePassword (10, 3);
            NodeAuth auth = new NodeAuth (NodeAuthType.Password, password);
            Node n = driver.CreateNode ("my new node", size, image, location, auth);

            Console.WriteLine ("created new node located at {0} with password {1}", n.PublicIPs [0], password);

            var deployment = new MultiStepDeployment () {
                // Create a file on the node
                new RunCommand ("touch /root/test"),
                // Upload a file to the node
                new PutFile ("CreateLinode.exe"),
            };
            n.Deploy (deployment, auth);

            Console.WriteLine ("Your node has been deployed.");
        }
Esempio n. 3
0
        internal static LinodeNode FromData(JObject node_data, LinodeDriver driver)
        {
            List<IPAddress> public_ips = new List<IPAddress> ();
            List<IPAddress> private_ips = new List<IPAddress> ();

            string id = node_data ["LINODEID"].ToString ();

            driver.API.IPsForNode (id, public_ips, private_ips);

            return new LinodeNode (id,
                    (string) node_data ["LABEL"],
                    LinodeAPI.StateFromStatus ((int) node_data ["STATUS"]),
                    public_ips, private_ips, driver);
        }
Esempio n. 4
0
    public static void Main(string [] args)
    {
        if (args.Length < 1) {
            Console.WriteLine ("You need to supply your Linode API key.");
            return;
        }

        LinodeDriver driver = new LinodeDriver (args [0], null);

        Console.WriteLine (" -- available locations -- ");
        List<NodeLocation> locations = driver.ListLocations ();
        foreach (NodeLocation location in locations) {
            Console.WriteLine (location);
        }

        Console.WriteLine (" -- available images -- ");
        List<NodeImage> images = driver.ListImages ();
        foreach (NodeImage image in images) {
            Console.WriteLine (image);
        }

        Console.WriteLine (" -- available sizes -- ");
        List<NodeSize> sizes = driver.ListSizes ();
        foreach (NodeSize size in sizes) {
            Console.WriteLine (size);
        }

        Console.WriteLine (" -- your nodes -- ");
        List<Node> nodes = driver.ListNodes ();
        foreach (Node node in nodes) {
            Console.WriteLine (node);
        }

        Node new_node = driver.CreateNode ("test node", sizes [0], images [0], locations [0]);

        Console.WriteLine ("just created the node:  {0}", new_node);

        new_node.Destroy ();
        Console.WriteLine ("destroyed the new node");
    }