Rebase to master, change JSONBase to TypeMeta.

This commit is contained in:
Deyuan Deng 2014-10-07 16:02:52 -04:00
parent c3d9197a4b
commit 4de810efb4
7 changed files with 16 additions and 15 deletions

View File

@ -114,7 +114,7 @@ func makeMinionRegistry(c *Config) minion.Registry {
minionRegistry = etcd.NewRegistry(c.EtcdHelper, nil)
for _, minionID := range c.Minions {
minionRegistry.CreateMinion(nil, &api.Minion{
JSONBase: api.JSONBase{ID: minionID},
TypeMeta: api.TypeMeta{ID: minionID},
NodeResources: c.NodeResources,
})
}

View File

@ -34,7 +34,7 @@ import (
// TODO: Need to add a reconciler loop that makes sure that things in pods are reflected into
// kubelet (and vice versa)
// Registry implements PodRegistry, ControllerRegistry, ServiceRegistry and MinionRegitry, backed by etcd.
// Registry implements PodRegistry, ControllerRegistry, ServiceRegistry and MinionRegistry, backed by etcd.
type Registry struct {
tools.EtcdHelper
manifestFactory pod.ManifestFactory
@ -393,6 +393,7 @@ func (r *Registry) ListMinions(ctx api.Context) (*api.MinionList, error) {
}
func (r *Registry) CreateMinion(ctx api.Context, minion *api.Minion) error {
// TODO: Add some validations.
err := r.CreateObj(makeMinionKey(minion.ID), minion, 0)
return etcderr.InterpretCreateError(err, "minion", minion.ID)
}

View File

@ -1029,12 +1029,12 @@ func TestEtcdListMinions(t *testing.T) {
Nodes: []*etcd.Node{
{
Value: runtime.EncodeOrDie(latest.Codec, &api.Minion{
JSONBase: api.JSONBase{ID: "foo"},
TypeMeta: api.TypeMeta{ID: "foo"},
}),
},
{
Value: runtime.EncodeOrDie(latest.Codec, &api.Minion{
JSONBase: api.JSONBase{ID: "bar"},
TypeMeta: api.TypeMeta{ID: "bar"},
}),
},
},
@ -1058,7 +1058,7 @@ func TestEtcdCreateMinion(t *testing.T) {
fakeClient := tools.NewFakeEtcdClient(t)
registry := NewTestEtcdRegistry(fakeClient)
err := registry.CreateMinion(ctx, &api.Minion{
JSONBase: api.JSONBase{ID: "foo"},
TypeMeta: api.TypeMeta{ID: "foo"},
})
if err != nil {
t.Errorf("unexpected error: %v", err)
@ -1083,7 +1083,7 @@ func TestEtcdCreateMinion(t *testing.T) {
func TestEtcdContainsMinion(t *testing.T) {
ctx := api.NewContext()
fakeClient := tools.NewFakeEtcdClient(t)
fakeClient.Set("/registry/minions/foo", runtime.EncodeOrDie(latest.Codec, &api.Minion{JSONBase: api.JSONBase{ID: "foo"}}), 0)
fakeClient.Set("/registry/minions/foo", runtime.EncodeOrDie(latest.Codec, &api.Minion{TypeMeta: api.TypeMeta{ID: "foo"}}), 0)
registry := NewTestEtcdRegistry(fakeClient)
contains, err := registry.ContainsMinion(ctx, "foo")
if err != nil {

View File

@ -57,7 +57,7 @@ func NewCachingRegistry(delegate Registry, ttl time.Duration) (Registry, error)
}, nil
}
func (r *CachingRegistry) ContainsMinion(ctx api.Context, minionID string) (bool, error) {
func (r *CachingRegistry) ContainsMinion(ctx api.Context, nodeID string) (bool, error) {
if r.expired() {
if err := r.refresh(ctx, false); err != nil {
return false, err
@ -67,15 +67,15 @@ func (r *CachingRegistry) ContainsMinion(ctx api.Context, minionID string) (bool
r.lock.RLock()
defer r.lock.RUnlock()
for _, node := range r.nodes.Items {
if node.ID == minionID {
if node.ID == nodeID {
return true, nil
}
}
return false, nil
}
func (r *CachingRegistry) DeleteMinion(ctx api.Context, minionID string) error {
if err := r.delegate.DeleteMinion(ctx, minionID); err != nil {
func (r *CachingRegistry) DeleteMinion(ctx api.Context, nodeID string) error {
if err := r.delegate.DeleteMinion(ctx, nodeID); err != nil {
return err
}
return r.refresh(ctx, true)

View File

@ -95,7 +95,7 @@ func TestCachingInsert(t *testing.T) {
nodes: expected,
}
err := cache.CreateMinion(ctx, &api.Minion{
JSONBase: api.JSONBase{ID: "foo"},
TypeMeta: api.TypeMeta{ID: "foo"},
})
if err != nil {
t.Errorf("unexpected error: %v", err)

View File

@ -37,21 +37,21 @@ func NewCloudRegistry(cloud cloudprovider.Interface, matchRE string, staticResou
}, nil
}
func (r *CloudRegistry) ContainsMinion(ctx api.Context, minionID string) (bool, error) {
func (r *CloudRegistry) ContainsMinion(ctx api.Context, nodeID string) (bool, error) {
instances, err := r.ListMinions(ctx)
if err != nil {
return false, err
}
for _, node := range instances.Items {
if node.ID == minionID {
if node.ID == nodeID {
return true, nil
}
}
return false, nil
}
func (r CloudRegistry) DeleteMinion(ctx api.Context, minionID string) error {
func (r CloudRegistry) DeleteMinion(ctx api.Context, nodeID string) error {
return fmt.Errorf("unsupported")
}

View File

@ -55,7 +55,7 @@ func TestBasicDelegation(t *testing.T) {
t.Errorf("Expected %v, Got %v", mockMinionRegistry.Minions, list)
}
err = healthy.CreateMinion(ctx, &api.Minion{
JSONBase: api.JSONBase{ID: "foo"},
TypeMeta: api.TypeMeta{ID: "foo"},
})
if err != nil {
t.Errorf("unexpected error: %v", err)