diff options
Diffstat (limited to 'kube2msb/src/kube2msb/msb_client.go')
-rw-r--r-- | kube2msb/src/kube2msb/msb_client.go | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/kube2msb/src/kube2msb/msb_client.go b/kube2msb/src/kube2msb/msb_client.go deleted file mode 100644 index 2c1b402..0000000 --- a/kube2msb/src/kube2msb/msb_client.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2017 ZTE, Inc. and others. - -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 main - -import ( - "bytes" - "encoding/json" - "fmt" - "log" - "net/http" -) - -const ( - urlPrefix = "/api/microservices/v1/services" -) - -type Client interface { - Register(string) - DeRegister(string) -} - -type MSBAgent struct { - Client - url string -} - -func newMSBAgent(s string) (*MSBAgent, error) { - healthCheckURL := s + urlPrefix + "/health" - resp, err := http.Get(healthCheckURL) - if err != nil { - return nil, err - } - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("MSB agent:%s is not available", s) - } - - return &MSBAgent{url: s}, nil -} - -func (client *MSBAgent) Register(serviceInfo string) { - var ( - sas = []*ServiceAnnotation{} - ) - err := json.Unmarshal([]byte(serviceInfo), &sas) - if err != nil { - log.Printf("Failed to Unmarshal serviceInfo to ServiceAnnotation:%v", err) - return - } - - for _, sa := range sas { - su := ServiceAnnotation2ServiceUnit(sa) - body, _ := json.Marshal(su) - postURL := client.url + urlPrefix - - resp, err := http.Post(postURL, "application/json", bytes.NewReader(body)) - if err != nil { - log.Printf("Failed to do a request:%v", err) - return - } - - log.Printf("Http request to register service:%s returned code:%d", su.Name, resp.StatusCode) - } -} - -func (client *MSBAgent) DeRegister(serviceInfo string) { - var ( - sas = []*ServiceAnnotation{} - ) - - err := json.Unmarshal([]byte(serviceInfo), &sas) - if err != nil { - log.Printf("Failed to Unmarshal serviceInfo to ServiceAnnotation:%v", err) - return - } - - for _, sa := range sas { - var deleteURL string - if sa.Version == "" { - deleteURL = client.url + urlPrefix + "/" + sa.ServiceName + "/version/" + "null" + "/nodes/" + sa.IP + "/" + sa.Port - } else { - deleteURL = client.url + urlPrefix + "/" + sa.ServiceName + "/version/" + sa.Version + "/nodes/" + sa.IP + "/" + sa.Port - } - log.Printf("deleteURL:%s", deleteURL) - req, err := http.NewRequest("DELETE", deleteURL, nil) - if err != nil { - log.Printf("(deleteURL:%s) failed to NewRequest:%v", deleteURL, err) - return - } - - c := &http.Client{} - resp, err := c.Do(req) - if err != nil { - log.Printf("(deleteURL:%s) failed to do a request:%v", deleteURL, err) - return - } - - log.Printf("Http request to deregister service:%s returned code:%d", sa.ServiceName, resp.StatusCode) - } -} - -func ServiceAnnotation2ServiceUnit(sa *ServiceAnnotation) *ServiceUnit { - if sa == nil { - return nil - } - - return &ServiceUnit{ - Name: sa.ServiceName, - Version: sa.Version, - URL: sa.URL, - Protocol: sa.Protocol, - LBPolicy: sa.LBPolicy, - VisualRange: sa.VisualRange, - Instances: []InstanceUnit{{ServiceIP: sa.IP, ServicePort: sa.Port}}, - } -} |