| //Copyright 2017 Huawei Technologies Co., Ltd |
| // |
| //Licensed under the Apache License, Version 2.0 (the "License"); |
| //you may not use this file except in compliance with the License. |
| //You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| //Unless required by applicable law or agreed to in writing, software |
| //distributed under the License is distributed on an "AS IS" BASIS, |
| //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| //See the License for the specific language governing permissions and |
| //limitations under the License. |
| package service_test |
| |
| import ( |
| "fmt" |
| pb "github.com/ServiceComb/service-center/server/core/proto" |
| . "github.com/onsi/ginkgo" |
| . "github.com/onsi/gomega" |
| ) |
| |
| var consumerId string |
| var providerId string |
| var consumerId2 string |
| var _ = Describe("ServiceController", func() { |
| Describe("serviceDependency", func() { |
| Context("normal", func() { |
| It("创建Dependency,参数校验", func() { |
| fmt.Println("UT===========创建Dependency,参数校验") |
| resp, err := serviceResource.Create(getContext(), &pb.CreateServiceRequest{ |
| Service: &pb.MicroService{ |
| ServiceName: "service_name_consumer", |
| AppId: "service_group_consumer", |
| Version: "6.0.0", |
| Level: "FRONT", |
| Schemas: []string{ |
| "com.huawei.test", |
| }, |
| Status: "UP", |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| consumerId = resp.ServiceId |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| respCreateDependency, err := serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: nil, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_consumer2", |
| AppId: "", |
| Version: "3.0.0", |
| }, |
| Providers: nil, |
| }, |
| }, |
| }) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_not_exist", |
| AppId: "service_group_not_exist", |
| Version: "3.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| { |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_consumer", |
| AppId: "service_group_consumer", |
| Version: "6.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "*", |
| AppId: "service_group_consumer", |
| Version: "6.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_consumer", |
| AppId: "service_group_consumer", |
| Version: "6.0.0+", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_consumer", |
| AppId: "service_group_consumer", |
| Version: "6.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "*", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_consumer", |
| AppId: "service_group_consumer", |
| Version: "6.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "-", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_consumer", |
| AppId: "service_group_consumer", |
| Version: "6.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| }) |
| It("创建Dependency", func() { |
| fmt.Println("UT===========创建Dependency") |
| resp, err := serviceResource.Create(getContext(), &pb.CreateServiceRequest{ |
| Service: &pb.MicroService{ |
| ServiceName: "service_name_consumer", |
| AppId: "service_group_consumer", |
| Version: "2.0.0", |
| Level: "FRONT", |
| Schemas: []string{ |
| "xxxxxxxx", |
| }, |
| Status: "UP", |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| consumerId = resp.ServiceId |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| respCreateDependency, err := serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "latest", |
| }, |
| }, |
| }, |
| }, |
| }) |
| |
| resp, err = serviceResource.Create(getContext(), &pb.CreateServiceRequest{ |
| Service: &pb.MicroService{ |
| ServiceName: "service_name_provider", |
| AppId: "service_group_provider", |
| Version: "3.0.0", |
| Level: "FRONT", |
| Schemas: []string{ |
| "xxxxxxxx", |
| }, |
| Status: "UP", |
| Properties: map[string]string{"allowCrossApp": "true"}, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| providerId = resp.ServiceId |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_consumer2", |
| ServiceName: "service_name_consumer2", |
| Version: "2.0.0+", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.Create(getContext(), &pb.CreateServiceRequest{ |
| Service: &pb.MicroService{ |
| ServiceName: "service_name_consumer2", |
| AppId: "service_group_consumer2", |
| Version: "3.0.0", |
| Level: "FRONT", |
| Schemas: []string{ |
| "xxxxxxxx", |
| }, |
| Status: "UP", |
| Properties: map[string]string{"allowCrossApp": "true"}, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| consumerId2 = resp.ServiceId |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| fmt.Println("UT===========创建Dependency,serviceName 为*") |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "*", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| { |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| respCreateDependency, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| ServiceName: "service_name_consumer2", |
| AppId: "service_group_consumer2", |
| Version: "3.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| { |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(respCreateDependency.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| }) |
| |
| It("删除微服务,实例存在,存在依赖不能删除", func() { |
| resp, err := serviceResource.Delete(getContext(), &pb.DeleteServiceRequest{ |
| ServiceId: consumerId, |
| Force: false, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| }) |
| |
| It("查询provider对应的所有consumer,参数校验", func() { |
| fmt.Println("UT===========查询privider的所有consumer,参数校验") |
| resp, err := serviceResource.GetProviderDependencies(getContext(), &pb.GetDependenciesRequest{ |
| ServiceId: "", |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| resp, err = serviceResource.GetProviderDependencies(getContext(), &pb.GetDependenciesRequest{ |
| ServiceId: "noneservice", |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| }) |
| |
| It("查询provider对应的所有consumer", func() { |
| fmt.Println("UT===========查询privider的所有consumer") |
| resp, err := serviceResource.GetProviderDependencies(getContext(), &pb.GetDependenciesRequest{ |
| ServiceId: providerId, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| }) |
| |
| It("查询consumer对应的所有provider,参数校验", func() { |
| fmt.Println("UT===========查询consumer的所有privider") |
| resp, err := serviceResource.GetConsumerDependencies(getContext(), &pb.GetDependenciesRequest{ |
| ServiceId: "", |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| |
| resp, err = serviceResource.GetConsumerDependencies(getContext(), &pb.GetDependenciesRequest{ |
| ServiceId: "noneservice", |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_FAIL)) |
| }) |
| |
| It("查询consumer对应的所有provider", func() { |
| fmt.Println("UT===========查询consumer的所有privider") |
| resp, err := serviceResource.GetConsumerDependencies(getContext(), &pb.GetDependenciesRequest{ |
| ServiceId: consumerId, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| }) |
| It("修改Dependency", func() { |
| fmt.Println("UT===========修改Dependency") |
| resp, err := serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0+", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider_bk", |
| Version: "2.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "3.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "latest", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "3.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| Version: "2.0.0-3.0.0", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.CreateDependenciesForMircServices(getContext(), &pb.CreateDependenciesRequest{ |
| Dependencies: []*pb.MircroServiceDependency{ |
| { |
| Consumer: &pb.DependencyMircroService{ |
| AppId: "service_group_consumer", |
| ServiceName: "service_name_consumer", |
| Version: "2.0.0", |
| }, |
| Providers: []*pb.DependencyMircroService{ |
| { |
| AppId: "", |
| ServiceName: "*", |
| Version: "", |
| }, |
| }, |
| }, |
| }, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| }) |
| It("Find 添加依赖", func() { |
| fmt.Println("UT===========find 添加依赖") |
| resp, err := insResource.Find(getContext(), &pb.FindInstancesRequest{ |
| ConsumerServiceId: consumerId, |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| VersionRule: "latest", |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| //重复find |
| resp, err = insResource.Find(getContext(), &pb.FindInstancesRequest{ |
| ConsumerServiceId: consumerId, |
| AppId: "service_group_provider", |
| ServiceName: "service_name_provider", |
| VersionRule: "latest", |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| }) |
| |
| It("删除Dependency", func() { |
| fmt.Println("UT===========删除Dependency") |
| resp, err := serviceResource.Delete(getContext(), &pb.DeleteServiceRequest{ |
| ServiceId: consumerId, |
| Force: true, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.Delete(getContext(), &pb.DeleteServiceRequest{ |
| ServiceId: providerId, |
| Force: true, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| |
| resp, err = serviceResource.Delete(getContext(), &pb.DeleteServiceRequest{ |
| ServiceId: consumerId2, |
| Force: true, |
| }) |
| Expect(err).To(BeNil()) |
| Expect(resp.GetResponse().Code).To(Equal(pb.Response_SUCCESS)) |
| }) |
| }) |
| }) |
| }) |