예제 #1
0
        public Task StartAsync(CancellationToken cancellationToken)
        {
            try
            {
                MySettings.DefaultSettings();

                _timer.Interval  = MySettings.SampleRate * 1000;
                _timer.Elapsed  += TimerMethod;
                _timer.AutoReset = false;
                _timer.Start();

                var json  = GetJsonData.GetJson(MySettings.nodepoolsurl, MySettings.token);
                var Pools = json["data"].ToObject <List <Rancher.NodePool> >();
                nodePools = Pools.Where(np => np.worker).ToList();
                if (nodePools.Count == 0)
                {
                    Console.WriteLine("Node pools empty!");
                    return(StopAsync(cancellationToken));
                }

                Console.WriteLine($"[{nameof(NodeAutoScaler)}] has been started.....");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(Task.CompletedTask);
        }
예제 #2
0
        public static void AddNode(NodePool nodePool)
        {
            var nodepollurl = MySettings.nodepoolsurl + nodePool.id;
            var json        = GetJsonData.GetJson(nodepollurl, MySettings.token);
            var q           = json["quantity"];

            json["quantity"] = (int)q + 1;
            var resault = PutJsonData.PutJson(nodepollurl, MySettings.token, json.ToString());

            Console.WriteLine("AddNode " + resault);
        }
예제 #3
0
        public static void RemoveNode(NodePool nodePool)
        {
            foreach (var node in nodePool.Nodes)
            {
                if (node.hostName == nodePool.hostnamePrefix + nodePool.quantity.ToString())
                {
                    Console.WriteLine("DrainNode " + node.hostName);
                    DrainNode(node);
                }
            }
            var nodepollurl = MySettings.nodepoolsurl + nodePool.id;
            var json        = GetJsonData.GetJson(nodepollurl, MySettings.token);
            var q           = json["quantity"];

            json["quantity"] = (int)q - 1;
            var resault = PutJsonData.PutJson(nodepollurl, MySettings.token, json.ToString());

            Console.WriteLine("RemoveNode " + resault);
        }