// NewMemoryServer returns a new instance of Master backed with memory (not etcd). func NewMemoryServer(c *Config) *Master { m := &Master{ podRegistry: memory.NewRegistry(), controllerRegistry: memory.NewRegistry(), serviceRegistry: memory.NewRegistry(), minionRegistry: minion.NewRegistry(c.Minions), client: c.Client, } m.init(c.Cloud, c.PodInfoGetter) return m }
func TestServiceStorageValidatesUpdate(t *testing.T) { registry := memory.NewRegistry() registry.CreateService(api.Service{ JSONBase: api.JSONBase{ID: "foo"}, Selector: map[string]string{"bar": "baz"}, }) storage := NewRegistryStorage(registry, nil, nil) failureCases := map[string]api.Service{ "empty ID": { JSONBase: api.JSONBase{ID: ""}, Selector: map[string]string{"bar": "baz"}, }, "empty selector": { JSONBase: api.JSONBase{ID: "foo"}, Selector: map[string]string{}, }, } for _, failureCase := range failureCases { c, err := storage.Update(&failureCase) if c != nil { t.Errorf("Expected nil channel") } if err == nil { t.Errorf("Expected to get an error") } } }
func TestServiceRegistryDeleteExternal(t *testing.T) { registry := memory.NewRegistry() fakeCloud := &cloudprovider.FakeCloud{} machines := []string{"foo", "bar", "baz"} storage := NewRegistryStorage(registry, fakeCloud, minion.NewRegistry(machines)) svc := api.Service{ JSONBase: api.JSONBase{ID: "foo"}, Selector: map[string]string{"bar": "baz"}, CreateExternalLoadBalancer: true, } registry.CreateService(svc) c, _ := storage.Delete(svc.ID) <-c if len(fakeCloud.Calls) != 2 || fakeCloud.Calls[0] != "get-zone" || fakeCloud.Calls[1] != "delete" { t.Errorf("Unexpected call(s): %#v", fakeCloud.Calls) } srv, err := registry.GetService(svc.ID) if !apiserver.IsNotFound(err) { if err != nil { t.Errorf("registry.GetService(%q) failed with %v; expected failure with not found error", svc.ID, err) } else { t.Errorf("registry.GetService(%q) = %v; expected failure with not found error", svc.ID, srv) } } }
func TestRegistry(t *testing.T) { registry := memory.NewRegistry() fakeCloud := &cloudprovider.FakeCloud{} machines := []string{"foo", "bar", "baz"} storage := NewRegistryStorage(registry, fakeCloud, minion.NewRegistry(machines)) svc := &api.Service{ JSONBase: api.JSONBase{ID: "foo"}, Selector: map[string]string{"bar": "baz"}, } c, _ := storage.Create(svc) <-c if len(fakeCloud.Calls) != 0 { t.Errorf("Unexpected call(s): %#v", fakeCloud.Calls) } srv, err := registry.GetService(svc.ID) if err != nil { t.Errorf("unexpected error: %v", err) } if srv == nil { t.Errorf("Failed to find service: %s", svc.ID) } }