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); }
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); }
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); }