本文整理汇总了Golang中github.com/control-center/serviced/node.ControlClient.GetServices方法的典型用法代码示例。如果您正苦于以下问题:Golang ControlClient.GetServices方法的具体用法?Golang ControlClient.GetServices怎么用?Golang ControlClient.GetServices使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/control-center/serviced/node.ControlClient
的用法示例。
在下文中一共展示了ControlClient.GetServices方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getNamedServices
func getNamedServices(client *node.ControlClient, nmregex string, tenantID string) ([]service.Service, error) {
services := []service.Service{}
var emptySlice []string
serviceRequest := dao.ServiceRequest{
Tags: emptySlice,
TenantID: tenantID,
NameRegex: nmregex,
}
if err := client.GetServices(serviceRequest, &services); err != nil {
glog.Errorf("Could not get named services: %v", err)
return nil, err
}
return services, nil
}
示例2: getServices
func getServices(client *node.ControlClient, tenantID string, since time.Duration) ([]service.Service, error) {
services := []service.Service{}
var emptySlice []string
serviceRequest := dao.ServiceRequest{
Tags: emptySlice,
TenantID: tenantID,
UpdatedSince: since,
NameRegex: "",
}
if err := client.GetServices(serviceRequest, &services); err != nil {
glog.Errorf("Could not get services: %v", err)
return nil, err
}
glog.V(2).Infof("Returning %d services", len(services))
return services, nil
}
示例3: restGetTopServices
func restGetTopServices(w *rest.ResponseWriter, r *rest.Request, client *node.ControlClient) {
var allServices []service.Service
topServices := []service.Service{}
var serviceRequest dao.ServiceRequest
err := client.GetServices(serviceRequest, &allServices)
if err != nil {
glog.Errorf("Could not get services: %v", err)
restServerError(w, err)
return
}
for _, service := range allServices {
if len(service.ParentServiceID) == 0 {
topServices = append(topServices, service)
}
}
topServices = append(topServices, isvcs.InternalServicesISVC)
glog.V(2).Infof("Returning %d services as top services", len(topServices))
w.WriteJson(&topServices)
}
示例4: restGetVirtualHosts
// restGetVirtualHosts gets all services, then extracts all vhost information and returns it.
func restGetVirtualHosts(w *rest.ResponseWriter, r *rest.Request, client *node.ControlClient) {
var services []service.Service
var serviceRequest dao.ServiceRequest
err := client.GetServices(serviceRequest, &services)
if err != nil {
glog.Errorf("Unexpected error retrieving virtual hosts: %v", err)
restServerError(w, err)
return
}
serviceTree := make(map[string]service.Service)
for _, service := range services {
serviceTree[service.ID] = service
}
vhosts := make([]virtualHost, 0)
for _, service := range services {
if service.Endpoints == nil {
continue
}
for _, endpoint := range service.Endpoints {
if len(endpoint.VHosts) > 0 {
parent, _ := serviceTree[service.ParentServiceID]
for ; len(parent.ParentServiceID) != 0; parent, _ = serviceTree[parent.ParentServiceID] {
}
for _, vhost := range endpoint.VHosts {
vh := virtualHost{
Name: vhost,
Application: parent.Name,
ServiceName: service.Name,
ServiceEndpoint: endpoint.Application,
}
vhosts = append(vhosts, vh)
}
}
}
}
w.WriteJson(&vhosts)
}
示例5: restAddVirtualHost
// restAddVirtualHost parses payload, adds the vhost to the service, then updates the service
func restAddVirtualHost(w *rest.ResponseWriter, r *rest.Request, client *node.ControlClient) {
var request virtualHostRequest
err := r.DecodeJsonPayload(&request)
if err != nil {
restBadRequest(w, err)
return
}
var services []service.Service
var serviceRequest dao.ServiceRequest
if err := client.GetServices(serviceRequest, &services); err != nil {
glog.Errorf("Could not get services: %v", err)
restServerError(w, err)
return
}
var service *service.Service
for _, _service := range services {
if _service.ID == request.ServiceID {
service = &_service
break
}
}
if service == nil {
glog.Errorf("Could not find service: %s", services)
restServerError(w, err)
return
}
//checkout other virtual hosts for redundancy
_vhost := strings.ToLower(request.VirtualHostName)
for _, service := range services {
if service.Endpoints == nil {
continue
}
for _, endpoint := range service.Endpoints {
for _, host := range endpoint.VHosts {
if host == _vhost {
glog.Errorf("vhost %s already defined for service: %s", request.VirtualHostName, service.ID)
restServerError(w, err)
return
}
}
}
}
err = service.AddVirtualHost(request.Application, request.VirtualHostName)
if err != nil {
glog.Errorf("Unexpected error adding vhost to service (%s): %v", service.Name, err)
restServerError(w, err)
return
}
var unused int
err = client.UpdateService(*service, &unused)
if err != nil {
glog.Errorf("Unexpected error adding vhost to service (%s): %v", service.Name, err)
restServerError(w, err)
return
}
restSuccess(w)
}