提交 71b26029 编写于 作者: M Medya Gh

remove more code

上级 12df0138
/*
Copyright 2019 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package node
import (
"bufio"
"bytes"
"fmt"
"os/exec"
"strings"
"github.com/pkg/errors"
"k8s.io/minikube/pkg/drivers/kic/oci"
)
// Spec describes a node to create purely from the container aspect
// this does not inlude eg starting kubernetes (see actions for that)
type Spec struct {
Name string
Profile string
Role string
Image string // for example 4000mb based on https://docs.docker.com/config/containers/resource_constraints/
CPUs string // for example 2
Memory string
ExtraMounts []oci.Mount
ExtraPortMappings []oci.PortMapping
APIServerPort int32
APIServerAddress string
IPv6 bool
Envs map[string]string // environment variables to be passsed to passed to create nodes
}
// ListNodes lists all the nodes (containers) created by kic on the system
func (d *Spec) ListNodes() ([]string, error) {
args := []string{
"ps",
"-q", // quiet output for parsing
"-a", // show stopped nodes
"--no-trunc", // don't truncate
// filter for nodes with the cluster label
"--filter", "label=" + ClusterLabelKey,
// format to include friendly name and the cluster name
"--format", fmt.Sprintf(`{{.Names}}\t{{.Label "%s"}}`, ClusterLabelKey),
}
cmd := exec.Command("docker", args...)
var buff bytes.Buffer
cmd.Stdout = &buff
cmd.Stderr = &buff
err := cmd.Run()
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("failed to list containers for %s", d.Profile))
}
lines := []string{}
scanner := bufio.NewScanner(&buff)
for scanner.Scan() {
lines = append(lines, scanner.Text())
}
names := []string{}
for _, line := range lines {
parts := strings.Split(line, "\t")
if len(parts) != 2 {
return nil, errors.Errorf("invalid output when listing containers: %s", line)
}
ns := strings.Split(parts[0], ",")
names = append(names, ns...)
}
return names, nil
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册