コード例 #1
0
ファイル: EndLabController.cs プロジェクト: Xyrvyre/athena
        public IActionResult Index()
        {
            string userName        = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var    k8SClientConfig = KubernetesClientConfiguration.BuildDefaultConfig();
            var    client          = new Kubernetes(k8SClientConfig);
            var    TemplateId      = HttpContext.Session.GetInt32("TemplateId");
            var    labName         = _context.Template.Find(TemplateId).Lab;

            var list  = client.ListNamespacedDeployment(userName, null, null, null, "lab = " + labName);
            var slist = client.ListNamespacedService(userName, null, null, null, "lab = " + labName);
            var ilist = client.ListNamespacedIngress1(userName, null, null, null, "lab = " + labName);
            var nlist = client.ListNamespacedNetworkPolicy(userName, null, null, null, "lab = " + labName);

            foreach (var item in list.Items)
            {
                client.DeleteNamespacedDeployment(item.Metadata.Name, userName);
            }
            foreach (var item in slist.Items)
            {
                client.DeleteNamespacedService(item.Metadata.Name, userName);
            }
            foreach (var item in ilist.Items)
            {
                client.DeleteNamespacedIngress1(item.Metadata.Name, userName);
            }
            foreach (var item in nlist.Items)
            {
                client.DeleteNamespacedNetworkPolicy(item.Metadata.Name, userName);
            }

            return(View());
        }
コード例 #2
0
        public virtual IActionResult ServersDelete(string servername)
        {
            try
            {
                var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();

                IKubernetes client = new Kubernetes(config);

                var v1Status = client.DeleteNamespacedDeployment(body: new V1DeleteOptions(apiVersion: "apps/v1"), name: servername, namespaceParameter: "default");

                return(new ObjectResult(v1Status));
            }
            catch (Exception ex)
            {
                return(new ObjectResult(ex));
            }
        }
コード例 #3
0
        public static void DeleteCompute([ActivityTrigger] Compute compute, ExecutionContext context, ILogger log)
        {
            log.LogInformation($"Deleting compute {compute.Key}");

            var name = compute.Key;

            var homeDirectory = context.FunctionAppDirectory;

            var config
                = KubernetesClientConfiguration.BuildConfigFromConfigFile(Path.Combine(homeDirectory, "kubeconfig.json"));
            var client = new Kubernetes(config);

            ///TODO: Exception condition handling
            var deleteStatus = client.DeleteNamespacedDeployment(name, "default");

            deleteStatus = client.DeleteNamespacedService(name, "default");
        }