Commit 1e323d77 authored by nikhiljindal's avatar nikhiljindal

Updating the guestbook example to v1beta3

parent 162b0db7
...@@ -130,14 +130,6 @@ func TestExampleObjectSchemas(t *testing.T) { ...@@ -130,14 +130,6 @@ func TestExampleObjectSchemas(t *testing.T) {
"redis-master-service": &api.Service{}, "redis-master-service": &api.Service{},
"redis-slave-service": &api.Service{}, "redis-slave-service": &api.Service{},
}, },
"../examples/guestbook/v1beta3": {
"frontend-controller": &api.ReplicationController{},
"redis-slave-controller": &api.ReplicationController{},
"redis-master": &api.ReplicationController{},
"frontend-service": &api.Service{},
"redis-master-service": &api.Service{},
"redis-slave-service": &api.Service{},
},
"../examples/guestbook-go": { "../examples/guestbook-go": {
"guestbook-controller": &api.ReplicationController{}, "guestbook-controller": &api.ReplicationController{},
"redis-slave-controller": &api.ReplicationController{}, "redis-slave-controller": &api.ReplicationController{},
......
{ {
"id": "frontend-controller", "kind":"ReplicationController",
"kind": "ReplicationController", "apiVersion":"v1beta3",
"apiVersion": "v1beta1", "metadata":{
"desiredState": { "name":"frontend",
"replicas": 3, "labels":{
"replicaSelector": {"name": "frontend"}, "name":"frontend"
"podTemplate": {
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "frontend",
"containers": [{
"name": "php-redis",
"image": "gcr.io/google_containers/example-guestbook-php-redis:v2",
"ports": [{"name": "http-server", "containerPort": 80}]
}]
} }
}, },
"labels": { "spec":{
"name": "frontend", "replicas":3,
"uses": "redis-slave-or-redis-master", "selector":{
"app": "frontend" "name":"frontend"
},
"template":{
"metadata":{
"labels":{
"name":"frontend"
}
},
"spec":{
"containers":[
{
"name":"php-redis",
"image":"kubernetes/example-guestbook-php-redis:v2",
"ports":[
{
"containerPort":80,
"protocol":"TCP"
}
]
}
]
}
}
} }
}},
"labels": {"name": "frontend"}
} }
{ {
"id": "frontend", "kind":"Service",
"kind": "Service", "apiVersion":"v1beta3",
"apiVersion": "v1beta1", "metadata":{
"port": 8000, "name":"frontend",
"containerPort": "http-server", "labels":{
"selector": { "name":"frontend"
"name": "frontend" }
}, },
"labels": { "spec":{
"name": "frontend" "ports": [
}, {
"createExternalLoadBalancer": true "port":80,
"targetPort":80,
"protocol":"TCP"
}
],
"selector":{
"name":"frontend"
}
}
} }
{ {
"id": "redis-master-controller", "kind":"ReplicationController",
"kind": "ReplicationController", "apiVersion":"v1beta3",
"apiVersion": "v1beta1", "metadata":{
"desiredState": { "name":"redis-master",
"replicas": 1, "labels":{
"replicaSelector": {"name": "redis-master"}, "name":"redis-master"
"podTemplate": {
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "redis-master",
"containers": [{
"name": "redis-master",
"image": "gcr.io/google_containers/redis",
"ports": [{"containerPort": 6379}]
}]
} }
}, },
"labels": { "spec":{
"name": "redis-master", "replicas":1,
"app": "redis" "selector":{
} "name":"redis-master"
},
"template":{
"metadata":{
"labels":{
"name":"redis-master"
} }
}, },
"labels": { "spec":{
"name": "redis-master" "containers":[
{
"name":"master",
"image":"redis",
"ports":[
{
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
} }
} }
{ {
"id": "redis-master", "kind":"Service",
"kind": "Service", "apiVersion":"v1beta3",
"apiVersion": "v1beta1", "metadata":{
"port": 6379, "name":"redis-master",
"containerPort": 6379, "labels":{
"selector": { "name":"redis-master"
"name": "redis-master" }
}, },
"labels": { "spec":{
"name": "redis-master" "ports": [
{
"port":6379,
"targetPort":6379,
"protocol":"TCP"
}
],
"selector":{
"name":"redis-master"
}
} }
} }
{ {
"id": "redis-slave-controller", "kind":"ReplicationController",
"kind": "ReplicationController", "apiVersion":"v1beta3",
"apiVersion": "v1beta1", "metadata":{
"desiredState": { "name":"redis-slave",
"replicas": 2, "labels":{
"replicaSelector": {"name": "redis-slave"}, "name":"redis-slave"
"podTemplate": {
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "redis-slave",
"containers": [{
"name": "redis-slave",
"image": "gcr.io/google_containers/redis-slave:v2",
"ports": [{"containerPort": 6379}]
}]
} }
}, },
"labels": { "spec":{
"name": "redis-slave", "replicas":2,
"uses": "redis-master", "selector":{
"app": "redis" "name":"redis-slave"
} },
"template":{
"metadata":{
"labels":{
"name":"redis-slave"
} }
}, },
"labels": {"name": "redis-slave"} "spec":{
"containers":[
{
"name":"slave",
"image":"kubernetes/redis-slave:v2",
"ports":[
{
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
}
} }
{ {
"id": "redis-slave", "kind":"Service",
"kind": "Service", "apiVersion":"v1beta3",
"apiVersion": "v1beta1", "metadata":{
"port": 6379, "name":"redis-slave",
"containerPort": 6379, "labels":{
"labels": { "name":"redis-slave"
"name": "redis-slave" }
}, },
"selector": { "spec":{
"name": "redis-slave" "ports": [
{
"port":6379,
"targetPort":6379,
"protocol":"TCP"
}
],
"selector":{
"name":"redis-slave"
}
} }
} }
## GuestBook v1beta3 example
This example shows how to build a simple, multi-tier web application using Kubernetes and Docker.
The example consists of:
- A web frontend
- A redis master (for storage and a replicated set of redis slaves)
The web front end interacts with the redis master via javascript redis API calls.
The v1beta3 API is not enabled by default. The kube-apiserver process needs to run with the --runtime_config=api/v1beta3 argument. Use the following command to enable it:
````
sudo sed -i 's|KUBE_API_ARGS="|KUBE_API_ARGS="--runtime_config=api/v1beta3 |' /etc/kubernetes/apiserver
````
{
"kind":"ReplicationController",
"apiVersion":"v1beta3",
"metadata":{
"name":"frontend",
"labels":{
"name":"frontend"
}
},
"spec":{
"replicas":2,
"selector":{
"name":"frontend"
},
"template":{
"metadata":{
"labels":{
"name":"frontend"
}
},
"spec":{
"containers":[
{
"name":"php-redis",
"image":"kubernetes/example-guestbook-php-redis:v2",
"ports":[
{
"containerPort":80,
"protocol":"TCP"
}
]
}
]
}
}
}
}
{
"kind":"Service",
"apiVersion":"v1beta3",
"metadata":{
"name":"frontend",
"labels":{
"name":"frontend"
}
},
"spec":{
"ports": [
{
"port":80,
"targetPort":80,
"protocol":"TCP"
}
],
"selector":{
"name":"frontend"
}
}
}
{
"kind":"Service",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-master",
"labels":{
"name":"redis-master"
}
},
"spec":{
"ports": [
{
"port":6379,
"targetPort":6379,
"protocol":"TCP"
}
],
"selector":{
"name":"redis-master"
}
}
}
{
"kind":"ReplicationController",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-master",
"labels":{
"name":"redis-master"
}
},
"spec":{
"replicas":1,
"selector":{
"name":"redis-master"
},
"template":{
"metadata":{
"labels":{
"name":"redis-master"
}
},
"spec":{
"containers":[
{
"name":"master",
"image":"redis",
"ports":[
{
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
}
}
{
"kind":"ReplicationController",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-slave",
"labels":{
"name":"redis-slave"
}
},
"spec":{
"replicas":2,
"selector":{
"name":"redis-slave"
},
"template":{
"metadata":{
"labels":{
"name":"redis-slave"
}
},
"spec":{
"containers":[
{
"name":"slave",
"image":"kubernetes/redis-slave:v2",
"ports":[
{
"containerPort":6379,
"protocol":"TCP"
}
]
}
]
}
}
}
}
{
"kind":"Service",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-slave",
"labels":{
"name":"redis-slave"
}
},
"spec":{
"ports": [
{
"port":6379,
"targetPort":6379,
"protocol":"TCP"
}
],
"selector":{
"name":"redis-slave"
}
}
}
...@@ -493,59 +493,59 @@ __EOF__ ...@@ -493,59 +493,59 @@ __EOF__
# Command # Command
kubectl create -f examples/guestbook/frontend-controller.json "${kube_flags[@]}" kubectl create -f examples/guestbook/frontend-controller.json "${kube_flags[@]}"
# Post-condition: frontend replication controller is running # Post-condition: frontend replication controller is running
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:' kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend:'
# Describe command should print detailed information # Describe command should print detailed information
kube::test::describe_object_assert rc 'frontend-controller' "Name:" "Image(s):" "Labels:" "Selector:" "Replicas:" "Pods Status:" kube::test::describe_object_assert rc 'frontend' "Name:" "Image(s):" "Labels:" "Selector:" "Replicas:" "Pods Status:"
### Resize replication controller frontend with current-replicas and replicas ### Resize replication controller frontend with current-replicas and replicas
# Pre-condition: 3 replicas # Pre-condition: 3 replicas
kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '3' kube::test::get_object_assert 'rc frontend' "{{$rc_replicas_field}}" '3'
# Command # Command
kubectl resize --current-replicas=3 --replicas=2 replicationcontrollers frontend-controller "${kube_flags[@]}" kubectl resize --current-replicas=3 --replicas=2 replicationcontrollers frontend "${kube_flags[@]}"
# Post-condition: 2 replicas # Post-condition: 2 replicas
kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' kube::test::get_object_assert 'rc frontend' "{{$rc_replicas_field}}" '2'
### Resize replication controller frontend with (wrong) current-replicas and replicas ### Resize replication controller frontend with (wrong) current-replicas and replicas
# Pre-condition: 2 replicas # Pre-condition: 2 replicas
kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' kube::test::get_object_assert 'rc frontend' "{{$rc_replicas_field}}" '2'
# Command # Command
! kubectl resize --current-replicas=3 --replicas=2 replicationcontrollers frontend-controller "${kube_flags[@]}" ! kubectl resize --current-replicas=3 --replicas=2 replicationcontrollers frontend "${kube_flags[@]}"
# Post-condition: nothing changed # Post-condition: nothing changed
kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' kube::test::get_object_assert 'rc frontend' "{{$rc_replicas_field}}" '2'
### Resize replication controller frontend with replicas only ### Resize replication controller frontend with replicas only
# Pre-condition: 2 replicas # Pre-condition: 2 replicas
kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '2' kube::test::get_object_assert 'rc frontend' "{{$rc_replicas_field}}" '2'
# Command # Command
kubectl resize --replicas=3 replicationcontrollers frontend-controller "${kube_flags[@]}" kubectl resize --replicas=3 replicationcontrollers frontend "${kube_flags[@]}"
# Post-condition: 3 replicas # Post-condition: 3 replicas
kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '3' kube::test::get_object_assert 'rc frontend' "{{$rc_replicas_field}}" '3'
### Expose replication controller as service ### Expose replication controller as service
# Pre-condition: 3 replicas # Pre-condition: 3 replicas
kube::test::get_object_assert 'rc frontend-controller' "{{$rc_replicas_field}}" '3' kube::test::get_object_assert 'rc frontend' "{{$rc_replicas_field}}" '3'
# Command # Command
kubectl expose rc frontend-controller --port=80 "${kube_flags[@]}" kubectl expose rc frontend --port=80 "${kube_flags[@]}"
# Post-condition: service exists # Post-condition: service exists
kube::test::get_object_assert 'service frontend-controller' "{{$port_field}}" '80' kube::test::get_object_assert 'service frontend' "{{$port_field}}" '80'
# Command # Command
kubectl expose service frontend-controller --port=443 --service-name=frontend-controller-2 "${kube_flags[@]}" kubectl expose service frontend --port=443 --service-name=frontend-2 "${kube_flags[@]}"
# Post-condition: service exists # Post-condition: service exists
kube::test::get_object_assert 'service frontend-controller-2' "{{$port_field}}" '443' kube::test::get_object_assert 'service frontend-2' "{{$port_field}}" '443'
# Command # Command
kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}" kubectl create -f examples/limitrange/valid-pod.json "${kube_flags[@]}"
kubectl expose pod valid-pod --port=444 --service-name=frontend-controller-3 "${kube_flags[@]}" kubectl expose pod valid-pod --port=444 --service-name=frontend-3 "${kube_flags[@]}"
# Post-condition: service exists # Post-condition: service exists
kube::test::get_object_assert 'service frontend-controller-3' "{{$port_field}}" '444' kube::test::get_object_assert 'service frontend-3' "{{$port_field}}" '444'
# Cleanup services # Cleanup services
kubectl delete pod valid-pod "${kube_flags[@]}" kubectl delete pod valid-pod "${kube_flags[@]}"
kubectl delete service frontend-controller{,-2,-3} "${kube_flags[@]}" kubectl delete service frontend{,-2,-3} "${kube_flags[@]}"
### Delete replication controller with id ### Delete replication controller with id
# Pre-condition: frontend replication controller is running # Pre-condition: frontend replication controller is running
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:' kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend:'
# Command # Command
kubectl stop rc frontend-controller "${kube_flags[@]}" kubectl stop rc frontend "${kube_flags[@]}"
# Post-condition: no replication controller is running # Post-condition: no replication controller is running
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" ''
...@@ -556,13 +556,13 @@ __EOF__ ...@@ -556,13 +556,13 @@ __EOF__
kubectl create -f examples/guestbook/frontend-controller.json "${kube_flags[@]}" kubectl create -f examples/guestbook/frontend-controller.json "${kube_flags[@]}"
kubectl create -f examples/guestbook/redis-slave-controller.json "${kube_flags[@]}" kubectl create -f examples/guestbook/redis-slave-controller.json "${kube_flags[@]}"
# Post-condition: frontend and redis-slave # Post-condition: frontend and redis-slave
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:redis-slave-controller:' kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend:redis-slave:'
### Delete multiple controllers at once ### Delete multiple controllers at once
# Pre-condition: frontend and redis-slave # Pre-condition: frontend and redis-slave
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend-controller:redis-slave-controller:' kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" 'frontend:redis-slave:'
# Command # Command
kubectl stop rc frontend-controller redis-slave-controller "${kube_flags[@]}" # delete multiple controllers at once kubectl stop rc frontend redis-slave "${kube_flags[@]}" # delete multiple controllers at once
# Post-condition: no replication controller is running # Post-condition: no replication controller is running
kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" ''
......
...@@ -27,6 +27,7 @@ import ( ...@@ -27,6 +27,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/testapi"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client" "github.com/GoogleCloudPlatform/kubernetes/pkg/client"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl" "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
...@@ -67,14 +68,15 @@ func newExternalScheme() (*runtime.Scheme, meta.RESTMapper, runtime.Codec) { ...@@ -67,14 +68,15 @@ func newExternalScheme() (*runtime.Scheme, meta.RESTMapper, runtime.Codec) {
scheme.AddKnownTypeWithName("v1beta1", "Type", &ExternalType2{}) scheme.AddKnownTypeWithName("v1beta1", "Type", &ExternalType2{})
codec := runtime.CodecFor(scheme, "unlikelyversion") codec := runtime.CodecFor(scheme, "unlikelyversion")
mapper := meta.NewDefaultRESTMapper([]string{"unlikelyversion", "v1beta1"}, func(version string) (*meta.VersionInterfaces, bool) { validVersion := testapi.Version()
mapper := meta.NewDefaultRESTMapper([]string{"unlikelyversion", validVersion}, func(version string) (*meta.VersionInterfaces, bool) {
return &meta.VersionInterfaces{ return &meta.VersionInterfaces{
Codec: runtime.CodecFor(scheme, version), Codec: runtime.CodecFor(scheme, version),
ObjectConvertor: scheme, ObjectConvertor: scheme,
MetadataAccessor: meta.NewAccessor(), MetadataAccessor: meta.NewAccessor(),
}, (version == "v1beta1" || version == "unlikelyversion") }, (version == validVersion || version == "unlikelyversion")
}) })
for _, version := range []string{"unlikelyversion", "v1beta1"} { for _, version := range []string{"unlikelyversion", validVersion} {
for kind := range scheme.KnownTypes(version) { for kind := range scheme.KnownTypes(version) {
mixedCase := false mixedCase := false
scope := meta.RESTScopeNamespace scope := meta.RESTScopeNamespace
...@@ -198,7 +200,7 @@ func NewAPIFactory() (*cmdutil.Factory, *testFactory, runtime.Codec) { ...@@ -198,7 +200,7 @@ func NewAPIFactory() (*cmdutil.Factory, *testFactory, runtime.Codec) {
ClientConfig: func() (*client.Config, error) { ClientConfig: func() (*client.Config, error) {
return t.ClientConfig, t.Err return t.ClientConfig, t.Err
}, },
}, t, latest.Codec }, t, testapi.Codec()
} }
func objBody(codec runtime.Codec, obj runtime.Object) io.ReadCloser { func objBody(codec runtime.Codec, obj runtime.Object) io.ReadCloser {
......
...@@ -60,7 +60,7 @@ func TestCreateObject(t *testing.T) { ...@@ -60,7 +60,7 @@ func TestCreateObject(t *testing.T) {
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
// uses the name from the file, not the response // uses the name from the file, not the response
if buf.String() != "replicationControllers/redis-master-controller\n" { if buf.String() != "replicationcontrollers/redis-master-controller\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -93,7 +93,7 @@ func TestCreateMultipleObject(t *testing.T) { ...@@ -93,7 +93,7 @@ func TestCreateMultipleObject(t *testing.T) {
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
// Names should come from the REST response, NOT the files // Names should come from the REST response, NOT the files
if buf.String() != "replicationControllers/rc1\nservices/baz\n" { if buf.String() != "replicationcontrollers/rc1\nservices/baz\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -125,7 +125,7 @@ func TestCreateDirectory(t *testing.T) { ...@@ -125,7 +125,7 @@ func TestCreateDirectory(t *testing.T) {
cmd.Flags().Set("filename", "../../../examples/guestbook") cmd.Flags().Set("filename", "../../../examples/guestbook")
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
if buf.String() != "replicationControllers/name\nservices/baz\nreplicationControllers/name\nservices/baz\nreplicationControllers/name\nservices/baz\n" { if buf.String() != "replicationcontrollers/name\nservices/baz\nreplicationcontrollers/name\nservices/baz\nreplicationcontrollers/name\nservices/baz\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -96,7 +96,7 @@ func TestDeleteObject(t *testing.T) { ...@@ -96,7 +96,7 @@ func TestDeleteObject(t *testing.T) {
Codec: codec, Codec: codec,
Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
switch p, m := req.URL.Path, req.Method; { switch p, m := req.URL.Path, req.Method; {
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "DELETE": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "DELETE":
return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil
default: default:
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
...@@ -112,7 +112,7 @@ func TestDeleteObject(t *testing.T) { ...@@ -112,7 +112,7 @@ func TestDeleteObject(t *testing.T) {
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
// uses the name from the file, not the response // uses the name from the file, not the response
if buf.String() != "replicationControllers/redis-master-controller\n" { if buf.String() != "replicationcontrollers/redis-master\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -124,7 +124,7 @@ func TestDeleteObjectIgnoreNotFound(t *testing.T) { ...@@ -124,7 +124,7 @@ func TestDeleteObjectIgnoreNotFound(t *testing.T) {
Codec: codec, Codec: codec,
Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
switch p, m := req.URL.Path, req.Method; { switch p, m := req.URL.Path, req.Method; {
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "DELETE": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "DELETE":
return &http.Response{StatusCode: 404, Body: stringBody("")}, nil return &http.Response{StatusCode: 404, Body: stringBody("")}, nil
default: default:
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
...@@ -153,7 +153,7 @@ func TestDeleteMultipleObject(t *testing.T) { ...@@ -153,7 +153,7 @@ func TestDeleteMultipleObject(t *testing.T) {
Codec: codec, Codec: codec,
Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
switch p, m := req.URL.Path, req.Method; { switch p, m := req.URL.Path, req.Method; {
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "DELETE": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "DELETE":
return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil
case p == "/namespaces/test/services/frontend" && m == "DELETE": case p == "/namespaces/test/services/frontend" && m == "DELETE":
return &http.Response{StatusCode: 200, Body: objBody(codec, &svc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &svc.Items[0])}, nil
...@@ -171,7 +171,7 @@ func TestDeleteMultipleObject(t *testing.T) { ...@@ -171,7 +171,7 @@ func TestDeleteMultipleObject(t *testing.T) {
cmd.Flags().Set("filename", "../../../examples/guestbook/frontend-service.json") cmd.Flags().Set("filename", "../../../examples/guestbook/frontend-service.json")
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
if buf.String() != "replicationControllers/redis-master-controller\nservices/frontend\n" { if buf.String() != "replicationcontrollers/redis-master\nservices/frontend\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -185,7 +185,7 @@ func TestDeleteMultipleObjectIgnoreMissing(t *testing.T) { ...@@ -185,7 +185,7 @@ func TestDeleteMultipleObjectIgnoreMissing(t *testing.T) {
Codec: codec, Codec: codec,
Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
switch p, m := req.URL.Path, req.Method; { switch p, m := req.URL.Path, req.Method; {
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "DELETE": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "DELETE":
return &http.Response{StatusCode: 404, Body: stringBody("")}, nil return &http.Response{StatusCode: 404, Body: stringBody("")}, nil
case p == "/namespaces/test/services/frontend" && m == "DELETE": case p == "/namespaces/test/services/frontend" && m == "DELETE":
return &http.Response{StatusCode: 200, Body: objBody(codec, &svc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &svc.Items[0])}, nil
...@@ -234,7 +234,7 @@ func TestDeleteDirectory(t *testing.T) { ...@@ -234,7 +234,7 @@ func TestDeleteDirectory(t *testing.T) {
cmd.Flags().Set("filename", "../../../examples/guestbook") cmd.Flags().Set("filename", "../../../examples/guestbook")
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
if buf.String() != "replicationControllers/frontend-controller\nservices/frontend\nreplicationControllers/redis-master-controller\nservices/redis-master\nreplicationControllers/redis-slave-controller\nservices/redis-slave\n" { if buf.String() != "replicationcontrollers/frontend\nservices/frontend\nreplicationcontrollers/redis-master\nservices/redis-master\nreplicationcontrollers/redis-slave\nservices/redis-slave\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
......
...@@ -34,9 +34,9 @@ func TestUpdateObject(t *testing.T) { ...@@ -34,9 +34,9 @@ func TestUpdateObject(t *testing.T) {
Codec: codec, Codec: codec,
Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
switch p, m := req.URL.Path, req.Method; { switch p, m := req.URL.Path, req.Method; {
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "GET": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "GET":
return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "PUT": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "PUT":
return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil
default: default:
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
...@@ -52,7 +52,7 @@ func TestUpdateObject(t *testing.T) { ...@@ -52,7 +52,7 @@ func TestUpdateObject(t *testing.T) {
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
// uses the name from the file, not the response // uses the name from the file, not the response
if buf.String() != "replicationControllers/rc1\n" { if buf.String() != "replicationcontrollers/rc1\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -66,9 +66,9 @@ func TestUpdateMultipleObject(t *testing.T) { ...@@ -66,9 +66,9 @@ func TestUpdateMultipleObject(t *testing.T) {
Codec: codec, Codec: codec,
Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
switch p, m := req.URL.Path, req.Method; { switch p, m := req.URL.Path, req.Method; {
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "GET": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "GET":
return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil
case p == "/namespaces/test/replicationcontrollers/redis-master-controller" && m == "PUT": case p == "/namespaces/test/replicationcontrollers/redis-master" && m == "PUT":
return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &rc.Items[0])}, nil
case p == "/namespaces/test/services/frontend" && m == "GET": case p == "/namespaces/test/services/frontend" && m == "GET":
return &http.Response{StatusCode: 200, Body: objBody(codec, &svc.Items[0])}, nil return &http.Response{StatusCode: 200, Body: objBody(codec, &svc.Items[0])}, nil
...@@ -88,7 +88,7 @@ func TestUpdateMultipleObject(t *testing.T) { ...@@ -88,7 +88,7 @@ func TestUpdateMultipleObject(t *testing.T) {
cmd.Flags().Set("filename", "../../../examples/guestbook/frontend-service.json") cmd.Flags().Set("filename", "../../../examples/guestbook/frontend-service.json")
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
if buf.String() != "replicationControllers/rc1\nservices/baz\n" { if buf.String() != "replicationcontrollers/rc1\nservices/baz\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -120,7 +120,7 @@ func TestUpdateDirectory(t *testing.T) { ...@@ -120,7 +120,7 @@ func TestUpdateDirectory(t *testing.T) {
cmd.Flags().Set("namespace", "test") cmd.Flags().Set("namespace", "test")
cmd.Run(cmd, []string{}) cmd.Run(cmd, []string{})
if buf.String() != "replicationControllers/rc1\nservices/baz\nreplicationControllers/rc1\nservices/baz\nreplicationControllers/rc1\nservices/baz\n" { if buf.String() != "replicationcontrollers/rc1\nservices/baz\nreplicationcontrollers/rc1\nservices/baz\nreplicationcontrollers/rc1\nservices/baz\n" {
t.Errorf("unexpected output: %s", buf.String()) t.Errorf("unexpected output: %s", buf.String())
} }
} }
...@@ -178,7 +178,7 @@ func TestPathBuilder(t *testing.T) { ...@@ -178,7 +178,7 @@ func TestPathBuilder(t *testing.T) {
} }
info := test.Infos[0] info := test.Infos[0]
if info.Name != "redis-master-controller" || info.Namespace != "" || info.Object == nil { if info.Name != "redis-master" || info.Namespace != "" || info.Object == nil {
t.Errorf("unexpected info: %#v", info) t.Errorf("unexpected info: %#v", info)
} }
} }
...@@ -230,7 +230,7 @@ func TestPathBuilderWithMultiple(t *testing.T) { ...@@ -230,7 +230,7 @@ func TestPathBuilderWithMultiple(t *testing.T) {
} }
info := test.Infos[1] info := test.Infos[1]
if info.Name != "redis-master-controller" || info.Namespace != "test" || info.Object == nil { if info.Name != "redis-master" || info.Namespace != "test" || info.Object == nil {
t.Errorf("unexpected info: %#v", info) t.Errorf("unexpected info: %#v", info)
} }
} }
...@@ -250,7 +250,7 @@ func TestDirectoryBuilder(t *testing.T) { ...@@ -250,7 +250,7 @@ func TestDirectoryBuilder(t *testing.T) {
found := false found := false
for _, info := range test.Infos { for _, info := range test.Infos {
if info.Name == "redis-master-controller" && info.Namespace == "test" && info.Object != nil { if info.Name == "redis-master" && info.Namespace == "test" && info.Object != nil {
found = true found = true
} }
} }
...@@ -612,7 +612,7 @@ func TestSingularObject(t *testing.T) { ...@@ -612,7 +612,7 @@ func TestSingularObject(t *testing.T) {
if !ok { if !ok {
t.Fatalf("unexpected object: %#v", obj) t.Fatalf("unexpected object: %#v", obj)
} }
if rc.Name != "redis-master-controller" || rc.Namespace != "test" { if rc.Name != "redis-master" || rc.Namespace != "test" {
t.Errorf("unexpected controller: %#v", rc) t.Errorf("unexpected controller: %#v", rc)
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment