diff options
Diffstat (limited to 'sms-quorum/src/smsquorum/quorumclient.go')
-rw-r--r-- | sms-quorum/src/smsquorum/quorumclient.go | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/sms-quorum/src/smsquorum/quorumclient.go b/sms-quorum/src/smsquorum/quorumclient.go deleted file mode 100644 index 3f3c70b..0000000 --- a/sms-quorum/src/smsquorum/quorumclient.go +++ /dev/null @@ -1,106 +0,0 @@ -/* -* Copyright 2018 TechMahindra -* -* 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 ( - "crypto/tls" - "crypto/x509" - "encoding/base64" - "encoding/json" - "io/ioutil" - "log" - "net/http" - "os" - "strings" - "time" -) - -//This application checks the backend status and -//calls necessary initialization endpoints on the -//SMS webservice -func main() { - //Struct to read json configuration file - type config struct { - BackEndURL string `json:"url"` - CAFile string `json:"cafile"` - ClientCert string `json:"clientcert"` - ClientKey string `json:"clientkey"` - B64Key string `json:"key"` - TimeOut string `json:"timeout"` - } - //Load the config File for reading - vcf, err := os.Open("config.json") - if err != nil { - log.Fatalf("Error reading config file %v", err) - } - - cfg := config{} - decoder := json.NewDecoder(vcf) - err = decoder.Decode(&cfg) - if err != nil { - log.Fatalf("Error while parsing config file %v", err) - } - - duration, _ := time.ParseDuration(cfg.TimeOut) - ticker := time.NewTicker(duration) - - for _ = range ticker.C { - - caCert, err := ioutil.ReadFile(cfg.CAFile) - if err != nil { - log.Fatalf("Error while reading CA file %v ", err) - } - caCertPool := x509.NewCertPool() - caCertPool.AppendCertsFromPEM(caCert) - cert, err := tls.LoadX509KeyPair(cfg.ClientCert, cfg.ClientKey) - if err != nil { - log.Fatalf("Error while loading key pair %v ", err) - } - - client := &http.Client{ - Transport: &http.Transport{ - TLSClientConfig: &tls.Config{ - RootCAs: caCertPool, - Certificates: []tls.Certificate{cert}, - }, - }, - } - //URL and Port is configured in config file - response, err := client.Get(cfg.BackEndURL + "v1/sms/status") - if err != nil { - log.Fatalf("Error while connecting to SMS webservice %v", err) - } - - responseData, err := ioutil.ReadAll(response.Body) - if err != nil { - log.Fatalf("Error while reading response %v", err) - } - var data map[string]interface{} - json.Unmarshal(responseData, &data) - sealed := data["sealed"].(bool) - // Unseal the vault if sealed - if sealed { - decdB64Key, _ := base64.StdEncoding.DecodeString(cfg.B64Key) - body := strings.NewReader(`{"key":"` + string(decdB64Key) + `"}`) - //URL and PORT is configured via config file - response, err = client.Post(cfg.BackEndURL+"v1/sms/unseal", "application/json", body) - if err != nil { - log.Fatalf("Error while unsealing %v", err) - } - } - } -} |