本文整理汇总了Golang中github.com/globocom/tsuru/api/service.ServiceInstance类的典型用法代码示例。如果您正苦于以下问题:Golang ServiceInstance类的具体用法?Golang ServiceInstance怎么用?Golang ServiceInstance使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ServiceInstance类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestServicesInstancesHandler
func (s *S) TestServicesInstancesHandler(c *C) {
srv := service.Service{Name: "redis", Teams: []string{s.team.Name}}
err := srv.Create()
c.Assert(err, IsNil)
instance := service.ServiceInstance{
Name: "redis-globo",
ServiceName: "redis",
Apps: []string{"globo"},
Teams: []string{s.team.Name},
}
err = instance.Create()
c.Assert(err, IsNil)
request, err := http.NewRequest("GET", "/services/instances", nil)
c.Assert(err, IsNil)
recorder := httptest.NewRecorder()
err = ServicesInstancesHandler(recorder, request, s.user)
c.Assert(err, IsNil)
body, err := ioutil.ReadAll(recorder.Body)
c.Assert(err, IsNil)
var instances []service.ServiceModel
err = json.Unmarshal(body, &instances)
c.Assert(err, IsNil)
expected := []service.ServiceModel{
{Service: "redis", Instances: []string{"redis-globo"}},
}
c.Assert(instances, DeepEquals, expected)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:27,代码来源:handler_test.go
示例2: TestServicesInstancesHandlerReturnsOnlyServicesThatTheUserHasAccess
func (s *S) TestServicesInstancesHandlerReturnsOnlyServicesThatTheUserHasAccess(c *C) {
u := &auth.User{Email: "[email protected]", Password: "123"}
err := u.Create()
c.Assert(err, IsNil)
defer db.Session.Users().Remove(bson.M{"email": u.Email})
srv := service.Service{Name: "redis", IsRestricted: true}
err = db.Session.Services().Insert(srv)
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "redis"})
instance := service.ServiceInstance{
Name: "redis-globo",
ServiceName: "redis",
Apps: []string{"globo"},
}
err = instance.Create()
c.Assert(err, IsNil)
request, err := http.NewRequest("GET", "/services/instances", nil)
c.Assert(err, IsNil)
recorder := httptest.NewRecorder()
err = ServicesInstancesHandler(recorder, request, u)
c.Assert(err, IsNil)
body, err := ioutil.ReadAll(recorder.Body)
c.Assert(err, IsNil)
var instances []service.ServiceModel
err = json.Unmarshal(body, &instances)
c.Assert(err, IsNil)
c.Assert(instances, DeepEquals, []service.ServiceModel{})
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:28,代码来源:handler_test.go
示例3: TestDestroyShouldUnbindAppFromInstance
func (s *S) TestDestroyShouldUnbindAppFromInstance(c *C) {
h := testHandler{}
tsg := s.t.StartGandalfTestServer(&h)
defer tsg.Close()
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNoContent)
}))
defer ts.Close()
srvc := service.Service{Name: "my", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": srvc.Name})
instance := service.ServiceInstance{Name: "MyInstance", Apps: []string{"whichapp"}, ServiceName: srvc.Name}
err = instance.Create()
c.Assert(err, IsNil)
defer db.Session.ServiceInstances().Remove(bson.M{"_id": instance.Name})
a := App{
Name: "whichapp",
Framework: "",
Teams: []string{},
Units: []Unit{
{Ip: "10.10.10.10", Machine: 1},
},
}
err = CreateApp(&a)
c.Assert(err, IsNil)
err = a.Destroy()
c.Assert(err, IsNil)
n, err := db.Session.ServiceInstances().Find(bson.M{"apps": bson.M{"$in": []string{a.Name}}}).Count()
c.Assert(err, IsNil)
c.Assert(n, Equals, 0)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:32,代码来源:bind_test.go
示例4: TestUnbindRemovesAppFromServiceInstance
func (s *S) TestUnbindRemovesAppFromServiceInstance(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNoContent)
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{
Name: "my-mysql",
ServiceName: "mysql",
Teams: []string{s.team.Name},
Apps: []string{"painkiller"},
}
instance.Create()
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a, err := createTestApp("painkiller", "", []string{s.team.Name}, []app.Unit{{Ip: "10.10.10.10"}})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Unbind(&a)
c.Assert(err, IsNil)
db.Session.ServiceInstances().Find(bson.M{"_id": instance.Name}).One(&instance)
c.Assert(instance.Apps, DeepEquals, []string{})
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:25,代码来源:bind_test.go
示例5: TestUnbindRemovesEnvironmentVariableFromApp
func (s *S) TestUnbindRemovesEnvironmentVariableFromApp(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNoContent)
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{
Name: "my-mysql",
ServiceName: "mysql",
Teams: []string{s.team.Name},
Apps: []string{"painkiller"},
}
err = instance.Create()
c.Assert(err, IsNil)
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a := app.App{
Name: "painkiller",
Teams: []string{s.team.Name},
Env: map[string]bind.EnvVar{
"DATABASE_HOST": {
Name: "DATABASE_HOST",
Value: "arrea",
Public: false,
InstanceName: instance.Name,
},
"MY_VAR": {
Name: "MY_VAR",
Value: "123",
},
},
Units: []app.Unit{
{
Ip: "10.10.10.10",
},
},
}
err = db.Session.Apps().Insert(&a)
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Unbind(&a)
c.Assert(err, IsNil)
newApp := app.App{Name: a.Name}
err = newApp.Get()
c.Assert(err, IsNil)
expected := map[string]bind.EnvVar{
"MY_VAR": {
Name: "MY_VAR",
Value: "123",
},
}
c.Assert(a.Env, DeepEquals, expected)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:55,代码来源:bind_test.go
示例6: TestRemoveServiceHandlerWIthAssociatedAppsShouldFailAndReturnError
func (s *S) TestRemoveServiceHandlerWIthAssociatedAppsShouldFailAndReturnError(c *C) {
se := service.Service{Name: "foo"}
err := se.Create()
defer db.Session.Services().Remove(bson.M{"_id": se.Name})
c.Assert(err, IsNil)
si := service.ServiceInstance{Name: "foo-instance", ServiceName: "foo", Apps: []string{"foo-bar"}, Teams: []string{s.team.Name}}
err = si.Create()
defer db.Session.ServiceInstances().Remove(bson.M{"name": si.Name})
c.Assert(err, IsNil)
recorder, request := makeRequestToRemoveInstanceHandler("foo-instance", c)
err = RemoveServiceInstanceHandler(recorder, request, s.user)
c.Assert(err, ErrorMatches, "^This service instance has binded apps. Unbind them before removing it$")
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:13,代码来源:handler_test.go
示例7: TestRemoveServiceHandlerWithoutPermissionShouldReturn401
func (s *S) TestRemoveServiceHandlerWithoutPermissionShouldReturn401(c *C) {
se := service.Service{Name: "foo"}
err := se.Create()
defer db.Session.Services().Remove(bson.M{"_id": se.Name})
c.Assert(err, IsNil)
si := service.ServiceInstance{Name: "foo-instance", ServiceName: "foo"}
err = si.Create()
defer db.Session.ServiceInstances().Remove(bson.M{"name": si.Name})
c.Assert(err, IsNil)
recorder, request := makeRequestToRemoveInstanceHandler("foo-instance", c)
err = RemoveServiceInstanceHandler(recorder, request, s.user)
c.Assert(err, ErrorMatches, "^This user does not have access to this service instance$")
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:13,代码来源:handler_test.go
示例8: TestServicesInstancesHandlerFilterInstancesPerServiceIncludingServicesThatDoesNotHaveInstances
func (s *S) TestServicesInstancesHandlerFilterInstancesPerServiceIncludingServicesThatDoesNotHaveInstances(c *C) {
u := &auth.User{Email: "[email protected]", Password: "123"}
err := u.Create()
c.Assert(err, IsNil)
defer db.Session.Users().Remove(bson.M{"email": u.Email})
serviceNames := []string{"redis", "mysql", "pgsql", "memcached"}
defer db.Session.Services().RemoveAll(bson.M{"name": bson.M{"$in": serviceNames}})
defer db.Session.ServiceInstances().RemoveAll(bson.M{"service_name": bson.M{"$in": serviceNames}})
for _, name := range serviceNames {
srv := service.Service{Name: name, Teams: []string{s.team.Name}}
err = srv.Create()
c.Assert(err, IsNil)
instance := service.ServiceInstance{
Name: srv.Name + "1",
ServiceName: srv.Name,
Teams: []string{s.team.Name},
}
err = instance.Create()
c.Assert(err, IsNil)
instance = service.ServiceInstance{
Name: srv.Name + "2",
ServiceName: srv.Name,
Teams: []string{s.team.Name},
}
err = instance.Create()
}
srv := service.Service{Name: "oracle", Teams: []string{s.team.Name}}
err = srv.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"name": "oracle"})
request, err := http.NewRequest("GET", "/services/instances", nil)
c.Assert(err, IsNil)
recorder := httptest.NewRecorder()
err = ServicesInstancesHandler(recorder, request, s.user)
c.Assert(err, IsNil)
body, err := ioutil.ReadAll(recorder.Body)
c.Assert(err, IsNil)
var instances []service.ServiceModel
err = json.Unmarshal(body, &instances)
c.Assert(err, IsNil)
expected := []service.ServiceModel{
{Service: "redis", Instances: []string{"redis1", "redis2"}},
{Service: "mysql", Instances: []string{"mysql1", "mysql2"}},
{Service: "pgsql", Instances: []string{"pgsql1", "pgsql2"}},
{Service: "memcached", Instances: []string{"memcached1", "memcached2"}},
{Service: "oracle", Instances: []string(nil)},
}
c.Assert(instances, DeepEquals, expected)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:49,代码来源:handler_test.go
示例9: TestServicesHandlerShoudGetAllServicesFromUsersTeam
func (s *S) TestServicesHandlerShoudGetAllServicesFromUsersTeam(c *C) {
srv := service.Service{Name: "mongodb", OwnerTeams: []string{s.team.Name}}
srv.Create()
defer db.Session.Services().Remove(bson.M{"_id": srv.Name})
si := service.ServiceInstance{Name: "my_nosql", ServiceName: srv.Name, Teams: []string{s.team.Name}}
si.Create()
defer si.Delete()
recorder, request := s.makeRequestToServicesHandler(c)
err := ServicesHandler(recorder, request, s.user)
c.Assert(err, IsNil)
b, err := ioutil.ReadAll(recorder.Body)
c.Assert(err, IsNil)
services := make([]service.ServiceModel, 1)
err = json.Unmarshal(b, &services)
expected := []service.ServiceModel{
{Service: "mongodb", Instances: []string{"my_nosql"}},
}
c.Assert(services, DeepEquals, expected)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:19,代码来源:handler_test.go
示例10: TestRemoveServiceShouldCallTheServiceAPI
func (s *S) TestRemoveServiceShouldCallTheServiceAPI(c *C) {
var called bool
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
called = r.Method == "DELETE" && r.URL.Path == "/resources/purity-instance"
}))
defer ts.Close()
se := service.Service{Name: "purity", Endpoint: map[string]string{"production": ts.URL}}
err := se.Create()
defer db.Session.Services().Remove(bson.M{"_id": se.Name})
c.Assert(err, IsNil)
si := service.ServiceInstance{Name: "purity-instance", ServiceName: "purity", Teams: []string{s.team.Name}}
err = si.Create()
c.Assert(err, IsNil)
defer db.Session.ServiceInstances().Remove(bson.M{"name": si.Name})
recorder, request := makeRequestToRemoveInstanceHandler("purity-instance", c)
err = RemoveServiceInstanceHandler(recorder, request, s.user)
c.Assert(err, IsNil)
c.Assert(called, Equals, true)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:19,代码来源:handler_test.go
示例11: TestDeleteHandlerReturns403WhenTheServiceHasInstance
func (s *S) TestDeleteHandlerReturns403WhenTheServiceHasInstance(c *C) {
se := service.Service{Name: "mysql", OwnerTeams: []string{s.team.Name}}
err := se.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": se.Name})
instance := service.ServiceInstance{Name: "my-mysql", ServiceName: se.Name}
err = instance.Create()
c.Assert(err, IsNil)
defer instance.Delete()
request, err := http.NewRequest("DELETE", fmt.Sprintf("/services/%s?:name=%s", se.Name, se.Name), nil)
c.Assert(err, IsNil)
recorder := httptest.NewRecorder()
err = DeleteHandler(recorder, request, s.user)
c.Assert(err, NotNil)
e, ok := err.(*errors.Http)
c.Assert(ok, Equals, true)
c.Assert(e.Code, Equals, http.StatusForbidden)
c.Assert(e, ErrorMatches, "^This service cannot be removed because it has instances.\nPlease remove these instances before removing the service.$")
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:19,代码来源:handler_test.go
示例12: TestServiceInstanceStatusHandler
func (s *S) TestServiceInstanceStatusHandler(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNoContent)
w.Write([]byte(`Service instance "my_nosql" is up`))
}))
defer ts.Close()
srv := service.Service{Name: "mongodb", OwnerTeams: []string{s.team.Name}, Endpoint: map[string]string{"production": ts.URL}}
err := srv.Create()
c.Assert(err, IsNil)
defer srv.Delete()
si := service.ServiceInstance{Name: "my_nosql", ServiceName: srv.Name}
err = si.Create()
c.Assert(err, IsNil)
defer si.Delete()
recorder, request := makeRequestToStatusHandler("my_nosql", c)
err = ServiceInstanceStatusHandler(recorder, request, s.user)
c.Assert(err, IsNil)
b, err := ioutil.ReadAll(recorder.Body)
c.Assert(string(b), Equals, "Service instance \"my_nosql\" is up")
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:20,代码来源:handler_test.go
示例13: TestBindDoNotAddsAppToServiceInstanceIfCommunicationWithEndpointGoesWrong
func (s *S) TestBindDoNotAddsAppToServiceInstanceIfCommunicationWithEndpointGoesWrong(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{Name: "my-mysql", ServiceName: "mysql", Teams: []string{s.team.Name}}
instance.Create()
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a, err := createTestApp("somecoolapp", "", []string{s.team.Name}, []app.Unit{{Ip: "127.0.0.1"}})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Bind(&a)
c.Assert(err, Not(IsNil))
n, err := db.Session.ServiceInstances().Find(bson.M{"app": []string{}}).Count()
c.Assert(n, Equals, 0)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:20,代码来源:bind_test.go
示例14: TestBindAddsAppToTheServiceInstance
func (s *S) TestBindAddsAppToTheServiceInstance(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`{"DATABASE_USER":"root","DATABASE_PASSWORD":"s3cr3t"}`))
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{Name: "my-mysql", ServiceName: "mysql", Teams: []string{s.team.Name}}
instance.Create()
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a, err := createTestApp("painkiller", "", []string{s.team.Name}, []app.Unit{{Ip: "10.10.10.10"}})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Bind(&a)
c.Assert(err, IsNil)
db.Session.ServiceInstances().Find(bson.M{"_id": instance.Name}).One(&instance)
c.Assert(instance.Apps, DeepEquals, []string{a.Name})
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:20,代码来源:bind_test.go
示例15: TestBindCallTheServiceAPIAndSetsEnvironmentVariableReturnedFromTheCall
func (s *S) TestBindCallTheServiceAPIAndSetsEnvironmentVariableReturnedFromTheCall(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`{"DATABASE_USER":"root","DATABASE_PASSWORD":"s3cr3t"}`))
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{
Name: "my-mysql",
ServiceName: "mysql",
Teams: []string{s.team.Name},
}
err = instance.Create()
c.Assert(err, IsNil)
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a, err := createTestApp("painkiller", "", []string{s.team.Name}, []app.Unit{{Ip: "127.0.0.1"}})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Bind(&a)
c.Assert(err, IsNil)
newApp := app.App{Name: a.Name}
err = newApp.Get()
c.Assert(err, IsNil)
expectedEnv := map[string]bind.EnvVar{
"DATABASE_USER": {
Name: "DATABASE_USER",
Value: "root",
Public: false,
InstanceName: instance.Name,
},
"DATABASE_PASSWORD": {
Name: "DATABASE_PASSWORD",
Value: "s3cr3t",
Public: false,
InstanceName: instance.Name,
},
}
c.Assert(a.Env, DeepEquals, expectedEnv)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:41,代码来源:bind_test.go
示例16: TestUnbindReturnsPreconditionFailedIfTheAppIsNotBindedToTheInstance
func (s *S) TestUnbindReturnsPreconditionFailedIfTheAppIsNotBindedToTheInstance(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNoContent)
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{Name: "my-mysql", ServiceName: "mysql", Teams: []string{s.team.Name}}
instance.Create()
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a, err := createTestApp("painkiller", "", []string{s.team.Name}, []app.Unit{{Ip: "10.10.10.10"}})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Unbind(&a)
c.Assert(err, NotNil)
e, ok := err.(*errors.Http)
c.Assert(ok, Equals, true)
c.Assert(e, ErrorMatches, "^This app is not binded to this service instance.$")
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:21,代码来源:bind_test.go
示例17: TestBindUnbindsWhenDatabaseUpdateGoesWrong
func (s *S) TestBindUnbindsWhenDatabaseUpdateGoesWrong(c *C) {
called := false
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
called = r.Method == "DELETE" && r.URL.Path == "/resources/their-mysql/hostname/127.0.0.1"
if r.URL.String() == "/resources/their-mysql" {
w.Write([]byte(`{"DATABASE_USER":"root","DATABASE_PASSWORD":"s3cr3t"}`))
}
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{Name: "their-mysql", ServiceName: "mysql", Teams: []string{s.team.Name}}
a, err := createTestApp("somecoolapp", "", []string{s.team.Name}, []app.Unit{{Ip: "127.0.0.1"}})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Bind(&a)
c.Assert(err, ErrorMatches, "^not found$")
c.Assert(called, Equals, true)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:21,代码来源:bind_test.go
示例18: TestUnbindCallsTheUnbindMethodFromAPI
func (s *S) TestUnbindCallsTheUnbindMethodFromAPI(c *C) {
var called int32
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Method == "DELETE" && r.URL.Path == "/resources/my-mysql/hostname/127.0.0.1" {
atomic.StoreInt32(&called, 1)
}
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{
Name: "my-mysql",
ServiceName: "mysql",
Teams: []string{s.team.Name},
Apps: []string{"painkiller"},
}
err = instance.Create()
c.Assert(err, IsNil)
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a, err := createTestApp("painkiller", "", []string{s.team.Name}, []app.Unit{{Ip: "127.0.0.1"}})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Unbind(&a)
c.Assert(err, IsNil)
ch := make(chan bool)
go func() {
t := time.Tick(1)
for _ = <-t; atomic.LoadInt32(&called) == 0; _ = <-t {
}
ch <- true
}()
select {
case <-ch:
c.SucceedNow()
case <-time.After(1e9):
c.Errorf("Failed to call API after 1 second.")
}
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:40,代码来源:bind_test.go
示例19: TestRemoveServiceInstanceHandler
func (s *S) TestRemoveServiceInstanceHandler(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}))
defer ts.Close()
se := service.Service{Name: "foo", Endpoint: map[string]string{"production": ts.URL}}
err := se.Create()
defer db.Session.Services().Remove(bson.M{"_id": se.Name})
c.Assert(err, IsNil)
si := service.ServiceInstance{Name: "foo-instance", ServiceName: "foo", Teams: []string{s.team.Name}}
err = si.Create()
c.Assert(err, IsNil)
recorder, request := makeRequestToRemoveInstanceHandler("foo-instance", c)
err = RemoveServiceInstanceHandler(recorder, request, s.user)
c.Assert(err, IsNil)
b, err := ioutil.ReadAll(recorder.Body)
c.Assert(err, IsNil)
c.Assert(string(b), Equals, "service instance successfuly removed")
n, err := db.Session.ServiceInstances().Find(bson.M{"name": "foo-instance"}).Count()
c.Assert(err, IsNil)
c.Assert(n, Equals, 0)
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:22,代码来源:handler_test.go
示例20: TestBindReturnsPreconditionFailedIfTheAppDoesNotHaveAnUnitAndServiceHasEndpoint
func (s *S) TestBindReturnsPreconditionFailedIfTheAppDoesNotHaveAnUnitAndServiceHasEndpoint(c *C) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`{"DATABASE_USER":"root","DATABASE_PASSWORD":"s3cr3t"}`))
}))
defer ts.Close()
srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}}
err := srvc.Create()
c.Assert(err, IsNil)
defer db.Session.Services().Remove(bson.M{"_id": "mysql"})
instance := service.ServiceInstance{Name: "my-mysql", ServiceName: "mysql", Teams: []string{s.team.Name}}
err = instance.Create()
c.Assert(err, IsNil)
defer db.Session.ServiceInstances().Remove(bson.M{"_id": "my-mysql"})
a, err := createTestApp("painkiller", "", []string{s.team.Name}, []app.Unit{})
c.Assert(err, IsNil)
defer db.Session.Apps().Remove(bson.M{"name": a.Name})
err = instance.Bind(&a)
c.Assert(err, NotNil)
e, ok := err.(*errors.Http)
c.Assert(ok, Equals, true)
c.Assert(e.Code, Equals, http.StatusPreconditionFailed)
c.Assert(e.Message, Equals, "This app does not have an IP yet.")
}
开发者ID:JoeyFan,项目名称:tsuru,代码行数:23,代码来源:bind_test.go
注:本文中的github.com/globocom/tsuru/api/service.ServiceInstance类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论