本文整理匯總了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)
}