mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	hyperkube: add alpha subcommand
This commit is contained in:
		@@ -42,6 +42,7 @@ type HyperKube struct {
 | 
			
		||||
	Long string // A long description of the binary.  It will be world wrapped before output.
 | 
			
		||||
 | 
			
		||||
	servers             []Server
 | 
			
		||||
	alphaServers        []Server
 | 
			
		||||
	baseFlags           *pflag.FlagSet
 | 
			
		||||
	out                 io.Writer
 | 
			
		||||
	helpFlagVal         bool
 | 
			
		||||
@@ -54,9 +55,24 @@ func (hk *HyperKube) AddServer(s *Server) {
 | 
			
		||||
	hk.servers[len(hk.servers)-1].hk = hk
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AddServer adds an alpha server to the HyperKube object.
 | 
			
		||||
func (hk *HyperKube) AddAlphaServer(s *Server) {
 | 
			
		||||
	hk.alphaServers = append(hk.alphaServers, *s)
 | 
			
		||||
	hk.alphaServers[len(hk.alphaServers)-1].hk = hk
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FindServer will find a specific server named name.
 | 
			
		||||
func (hk *HyperKube) FindServer(name string) (*Server, error) {
 | 
			
		||||
	for _, s := range hk.servers {
 | 
			
		||||
	return findServer(name, hk.servers)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FindServer will find a specific alpha server named name.
 | 
			
		||||
func (hk *HyperKube) FindAlphaServer(name string) (*Server, error) {
 | 
			
		||||
	return findServer(name, hk.alphaServers)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func findServer(name string, servers []Server) (*Server, error) {
 | 
			
		||||
	for _, s := range servers {
 | 
			
		||||
		if s.Name() == name || s.AlternativeName == name {
 | 
			
		||||
			return &s, nil
 | 
			
		||||
		}
 | 
			
		||||
@@ -154,7 +170,23 @@ func (hk *HyperKube) Run(args []string, stopCh <-chan struct{}) error {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	s, err := hk.FindServer(serverName)
 | 
			
		||||
	var s *Server
 | 
			
		||||
	var err error
 | 
			
		||||
	if serverName == "alpha" {
 | 
			
		||||
		if len(args) > 0 && len(args[0]) > 0 {
 | 
			
		||||
			serverName = args[0]
 | 
			
		||||
			args = args[1:]
 | 
			
		||||
			hk.Printf("Warning: alpha command syntax is unable!\n\n")
 | 
			
		||||
		} else {
 | 
			
		||||
			err = errors.New("no alpha server specified")
 | 
			
		||||
			hk.Printf("Error: %v\n\n", err)
 | 
			
		||||
			hk.Usage()
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		s, err = hk.FindAlphaServer(serverName)
 | 
			
		||||
	} else {
 | 
			
		||||
		s, err = hk.FindServer(serverName)
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		hk.Printf("Error: %v\n\n", err)
 | 
			
		||||
		hk.Usage()
 | 
			
		||||
 
 | 
			
		||||
@@ -151,6 +151,7 @@ func runFull(t *testing.T, args string, stopCh <-chan struct{}) *result {
 | 
			
		||||
	hk.AddServer(testServer("test1"))
 | 
			
		||||
	hk.AddServer(testServer("test2"))
 | 
			
		||||
	hk.AddServer(testServer("test3"))
 | 
			
		||||
	hk.AddAlphaServer(testServer("testAlpha1"))
 | 
			
		||||
	hk.AddServer(testServerError("test-error"))
 | 
			
		||||
	hk.AddServer(testStopChIgnoringServer("test-stop-ch-ignoring"))
 | 
			
		||||
	hk.AddServer(testStopChRespectingServer("test-stop-ch-respecting"))
 | 
			
		||||
@@ -236,6 +237,22 @@ func TestServerError(t *testing.T) {
 | 
			
		||||
	assert.EqualError(t, x.err, "server returning error")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestAlphaRun(t *testing.T) {
 | 
			
		||||
	x := runFull(t, "hyperkube alpha testAlpha1", wait.NeverStop)
 | 
			
		||||
	assert.NoError(t, x.err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestAlphaNoArgs(t *testing.T) {
 | 
			
		||||
	x := runFull(t, "hyperkube alpha", wait.NeverStop)
 | 
			
		||||
	assert.EqualError(t, x.err, "no alpha server specified")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestAlphaBadServer(t *testing.T) {
 | 
			
		||||
	x := runFull(t, "hyperkube alpha bad-server", wait.NeverStop)
 | 
			
		||||
	assert.EqualError(t, x.err, "Server not found: bad-server")
 | 
			
		||||
	assert.Contains(t, x.output, "Usage")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestStopChIgnoringServer(t *testing.T) {
 | 
			
		||||
	stopCh := make(chan struct{})
 | 
			
		||||
	returnedCh := make(chan struct{})
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,6 @@ func main() {
 | 
			
		||||
	hk.AddServer(NewKubectlServer())
 | 
			
		||||
	hk.AddServer(NewKubeAPIServer())
 | 
			
		||||
	hk.AddServer(NewKubeControllerManager())
 | 
			
		||||
	hk.AddServer(NewCloudControllerManager())
 | 
			
		||||
	hk.AddServer(NewScheduler())
 | 
			
		||||
	if kubelet, err := NewKubelet(); err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "error: %v\n", err)
 | 
			
		||||
@@ -47,5 +46,11 @@ func main() {
 | 
			
		||||
	hk.AddServer(NewKubeProxy())
 | 
			
		||||
	hk.AddServer(NewKubeAggregator())
 | 
			
		||||
 | 
			
		||||
	// Alpha servers
 | 
			
		||||
	hk.AddAlphaServer(NewCloudControllerManager())
 | 
			
		||||
 | 
			
		||||
	// Alpha servers
 | 
			
		||||
	hk.AddAlphaServer(NewCloudControllerManager())
 | 
			
		||||
 | 
			
		||||
	hk.RunToExit(os.Args)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user