You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by mi...@apache.org on 2019/02/11 16:42:29 UTC
[trafficcontrol] branch master updated: Add TO Go configurable riak
port (#2896)
This is an automated email from the ASF dual-hosted git repository.
mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 20777b7 Add TO Go configurable riak port (#2896)
20777b7 is described below
commit 20777b7b016da1dc00ccd28e58d8b944b9f8c0cd
Author: Robert Butts <ro...@users.noreply.github.com>
AuthorDate: Mon Feb 11 09:42:24 2019 -0700
Add TO Go configurable riak port (#2896)
* Add TO Go configurable riak port
* Add TO riak port to config info log
---
lib/go-util/ptr.go | 4 ++
traffic_ops/traffic_ops_golang/apiriak/bucket.go | 2 +-
traffic_ops/traffic_ops_golang/cdn/dnssec.go | 10 ++--
.../traffic_ops_golang/cdn/dnssecrefresh.go | 4 +-
traffic_ops/traffic_ops_golang/cdn/genksk.go | 4 +-
traffic_ops/traffic_ops_golang/cdn/sslkeys.go | 6 +--
traffic_ops/traffic_ops_golang/config/config.go | 2 +
.../deliveryservice/deliveryservicesv13.go | 4 +-
.../traffic_ops_golang/deliveryservice/dnssec.go | 4 +-
.../traffic_ops_golang/deliveryservice/keys.go | 6 +--
.../traffic_ops_golang/deliveryservice/sslkeys.go | 2 +-
.../traffic_ops_golang/deliveryservice/urlkey.go | 10 ++--
traffic_ops/traffic_ops_golang/ping/keys.go | 2 +-
traffic_ops/traffic_ops_golang/ping/riak.go | 2 +-
traffic_ops/traffic_ops_golang/riaksvc/dsutil.go | 41 +++++++--------
.../traffic_ops_golang/riaksvc/riak_services.go | 24 +++++----
.../riaksvc/riak_services_test.go | 6 +--
.../traffic_ops_golang/traffic_ops_golang.go | 60 +++++++++++++---------
traffic_ops/traffic_ops_golang/urisigning.go | 6 +--
19 files changed, 110 insertions(+), 89 deletions(-)
diff --git a/lib/go-util/ptr.go b/lib/go-util/ptr.go
index cd1fe6b..65ca535 100644
--- a/lib/go-util/ptr.go
+++ b/lib/go-util/ptr.go
@@ -27,6 +27,10 @@ func IntPtr(i int) *int {
return &i
}
+func UintPtr(u uint) *uint {
+ return &u
+}
+
func Int64Ptr(i int64) *int64 {
return &i
}
diff --git a/traffic_ops/traffic_ops_golang/apiriak/bucket.go b/traffic_ops/traffic_ops_golang/apiriak/bucket.go
index 3da0188..513ed94 100644
--- a/traffic_ops/traffic_ops_golang/apiriak/bucket.go
+++ b/traffic_ops/traffic_ops_golang/apiriak/bucket.go
@@ -41,7 +41,7 @@ func GetBucketKey(w http.ResponseWriter, r *http.Request) {
return
}
- val, ok, err := riaksvc.GetBucketKey(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Params["bucket"], inf.Params["key"])
+ val, ok, err := riaksvc.GetBucketKey(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, inf.Params["bucket"], inf.Params["key"])
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting bucket key from Riak: "+err.Error()))
return
diff --git a/traffic_ops/traffic_ops_golang/cdn/dnssec.go b/traffic_ops/traffic_ops_golang/cdn/dnssec.go
index 6e185cd..2f405f8 100644
--- a/traffic_ops/traffic_ops_golang/cdn/dnssec.go
+++ b/traffic_ops/traffic_ops_golang/cdn/dnssec.go
@@ -92,7 +92,7 @@ func GetDNSSECKeys(w http.ResponseWriter, r *http.Request) {
cdnName := inf.Params["name"]
- riakKeys, keysExist, err := riaksvc.GetDNSSECKeys(cdnName, inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ riakKeys, keysExist, err := riaksvc.GetDNSSECKeys(cdnName, inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting DNSSEC CDN keys: "+err.Error()))
return
@@ -127,7 +127,7 @@ func GetDNSSECKeysV11(w http.ResponseWriter, r *http.Request) {
defer inf.Close()
cdnName := inf.Params["name"]
- riakKeys, keysExist, err := riaksvc.GetDNSSECKeys(cdnName, inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ riakKeys, keysExist, err := riaksvc.GetDNSSECKeys(cdnName, inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting DNSSEC CDN keys: "+err.Error()))
return
@@ -163,7 +163,7 @@ func generateStoreDNSSECKeys(
kExp := time.Duration(kExpDays) * time.Hour * 24
ttl := time.Duration(ttlSeconds) * time.Second
- oldKeys, oldKeysExist, err := riaksvc.GetDNSSECKeys(cdnName, tx, cfg.RiakAuthOptions)
+ oldKeys, oldKeysExist, err := riaksvc.GetDNSSECKeys(cdnName, tx, cfg.RiakAuthOptions, cfg.RiakPort)
if err != nil {
return errors.New("getting old dnssec keys: " + err.Error())
}
@@ -243,7 +243,7 @@ func generateStoreDNSSECKeys(
}
newKeys[ds.Name] = dsKeys
}
- if err := riaksvc.PutDNSSECKeys(tc.DNSSECKeysRiak(newKeys), cdnName, tx, cfg.RiakAuthOptions); err != nil {
+ if err := riaksvc.PutDNSSECKeys(tc.DNSSECKeysRiak(newKeys), cdnName, tx, cfg.RiakAuthOptions, cfg.RiakPort); err != nil {
return errors.New("putting Riak DNSSEC CDN keys: " + err.Error())
}
return nil
@@ -295,7 +295,7 @@ func DeleteDNSSECKeys(w http.ResponseWriter, r *http.Request) {
}
defer inf.Close()
- cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting riak cluster: "+err.Error()))
return
diff --git a/traffic_ops/traffic_ops_golang/cdn/dnssecrefresh.go b/traffic_ops/traffic_ops_golang/cdn/dnssecrefresh.go
index 287f872..6eefeb8 100644
--- a/traffic_ops/traffic_ops_golang/cdn/dnssecrefresh.go
+++ b/traffic_ops/traffic_ops_golang/cdn/dnssecrefresh.go
@@ -123,7 +123,7 @@ func doDNSSECKeyRefresh(tx *sql.Tx, cfg *config.Config) {
}
for _, cdnInf := range cdnDNSSECKeyParams {
- keys, ok, err := riaksvc.GetDNSSECKeys(string(cdnInf.CDNName), tx, cfg.RiakAuthOptions) // TODO get all in a map beforehand
+ keys, ok, err := riaksvc.GetDNSSECKeys(string(cdnInf.CDNName), tx, cfg.RiakAuthOptions, cfg.RiakPort) // TODO get all in a map beforehand
if err != nil {
log.Warnln("refreshing DNSSEC Keys: getting cdn '" + string(cdnInf.CDNName) + "' keys from Riak, skipping: " + err.Error())
continue
@@ -253,7 +253,7 @@ func doDNSSECKeyRefresh(tx *sql.Tx, cfg *config.Config) {
}
}
if updatedAny {
- if err := riaksvc.PutDNSSECKeys(keys, string(cdnInf.CDNName), tx, cfg.RiakAuthOptions); err != nil {
+ if err := riaksvc.PutDNSSECKeys(keys, string(cdnInf.CDNName), tx, cfg.RiakAuthOptions, cfg.RiakPort); err != nil {
log.Errorln("refreshing DNSSEC Keys: putting keys into Riak for cdn '" + string(cdnInf.CDNName) + "': " + err.Error())
}
}
diff --git a/traffic_ops/traffic_ops_golang/cdn/genksk.go b/traffic_ops/traffic_ops_golang/cdn/genksk.go
index bfbacf4..5a8400f 100644
--- a/traffic_ops/traffic_ops_golang/cdn/genksk.go
+++ b/traffic_ops/traffic_ops_golang/cdn/genksk.go
@@ -78,7 +78,7 @@ func GenerateKSK(w http.ResponseWriter, r *http.Request) {
multiplier = &mult
}
- dnssecKeys, ok, err := riaksvc.GetDNSSECKeys(string(cdnName), inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ dnssecKeys, ok, err := riaksvc.GetDNSSECKeys(string(cdnName), inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting CDN DNSSEC keys: "+err.Error()))
return
@@ -96,7 +96,7 @@ func GenerateKSK(w http.ResponseWriter, r *http.Request) {
}
dnssecKeys[string(cdnName)] = newKey
- if err := riaksvc.PutDNSSECKeys(dnssecKeys, string(cdnName), inf.Tx.Tx, inf.Config.RiakAuthOptions); err != nil {
+ if err := riaksvc.PutDNSSECKeys(dnssecKeys, string(cdnName), inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort); err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("putting CDN DNSSEC keys: "+err.Error()))
return
}
diff --git a/traffic_ops/traffic_ops_golang/cdn/sslkeys.go b/traffic_ops/traffic_ops_golang/cdn/sslkeys.go
index 210b849..95252ac 100644
--- a/traffic_ops/traffic_ops_golang/cdn/sslkeys.go
+++ b/traffic_ops/traffic_ops_golang/cdn/sslkeys.go
@@ -38,7 +38,7 @@ func GetSSLKeys(w http.ResponseWriter, r *http.Request) {
return
}
defer inf.Close()
- keys, err := getSSLKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Params["name"])
+ keys, err := getSSLKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, inf.Params["name"])
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting cdn ssl keys: "+err.Error()))
return
@@ -46,8 +46,8 @@ func GetSSLKeys(w http.ResponseWriter, r *http.Request) {
api.WriteResp(w, r, keys)
}
-func getSSLKeys(tx *sql.Tx, authOpts *riak.AuthOptions, cdnName string) ([]tc.CDNSSLKey, error) {
- keys, err := riaksvc.GetCDNSSLKeysObj(tx, authOpts, cdnName)
+func getSSLKeys(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint, cdnName string) ([]tc.CDNSSLKey, error) {
+ keys, err := riaksvc.GetCDNSSLKeysObj(tx, authOpts, riakPort, cdnName)
if err != nil {
return nil, errors.New("getting cdn ssl keys from Riak: " + err.Error())
}
diff --git a/traffic_ops/traffic_ops_golang/config/config.go b/traffic_ops/traffic_ops_golang/config/config.go
index 3f0498c..ea4e931 100644
--- a/traffic_ops/traffic_ops_golang/config/config.go
+++ b/traffic_ops/traffic_ops_golang/config/config.go
@@ -86,6 +86,8 @@ type ConfigTrafficOpsGolang struct {
PluginSharedConfig map[string]interface{} `json:"plugin_shared_config"`
ProfilingEnabled bool `json:"profiling_enabled"`
ProfilingLocation string `json:"profiling_location"`
+ RiakPort *uint `json:"riak_port"`
+
// CRConfigUseRequestHost is whether to use the client request host header in the CRConfig. If false, uses the tm.url parameter.
// This defaults to false. Traffic Ops used to always use the host header, setting this true will resume that legacy behavior.
// See https://github.com/apache/trafficcontrol/issues/2224
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservicesv13.go b/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservicesv13.go
index 223013b..97b9edd 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservicesv13.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservicesv13.go
@@ -639,7 +639,7 @@ func updateSSLKeys(ds *tc.DeliveryServiceNullable, hostName string, tx *sql.Tx,
if ds.XMLID == nil {
return errors.New("delivery services has no XMLID!")
}
- key, ok, err := riaksvc.GetDeliveryServiceSSLKeysObj(*ds.XMLID, riaksvc.DSSSLKeyVersionLatest, tx, cfg.RiakAuthOptions)
+ key, ok, err := riaksvc.GetDeliveryServiceSSLKeysObj(*ds.XMLID, riaksvc.DSSSLKeyVersionLatest, tx, cfg.RiakAuthOptions, cfg.RiakPort)
if err != nil {
return errors.New("getting SSL key: " + err.Error())
}
@@ -648,7 +648,7 @@ func updateSSLKeys(ds *tc.DeliveryServiceNullable, hostName string, tx *sql.Tx,
}
key.DeliveryService = *ds.XMLID
key.Hostname = hostName
- if err := riaksvc.PutDeliveryServiceSSLKeysObj(key, tx, cfg.RiakAuthOptions); err != nil {
+ if err := riaksvc.PutDeliveryServiceSSLKeysObj(key, tx, cfg.RiakAuthOptions, cfg.RiakPort); err != nil {
return errors.New("putting updated SSL key: " + err.Error())
}
return nil
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/dnssec.go b/traffic_ops/traffic_ops_golang/deliveryservice/dnssec.go
index b33d796..312e7ec 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/dnssec.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/dnssec.go
@@ -36,7 +36,7 @@ import (
)
func PutDNSSecKeys(tx *sql.Tx, cfg *config.Config, xmlID string, cdnName string, exampleURLs []string) error {
- keys, ok, err := riaksvc.GetDNSSECKeys(cdnName, tx, cfg.RiakAuthOptions)
+ keys, ok, err := riaksvc.GetDNSSECKeys(cdnName, tx, cfg.RiakAuthOptions, cfg.RiakPort)
if err != nil {
return errors.New("getting DNSSec keys from Riak: " + err.Error())
} else if !ok {
@@ -55,7 +55,7 @@ func PutDNSSecKeys(tx *sql.Tx, cfg *config.Config, xmlID string, cdnName string,
return errors.New("creating DNSSEC keys for delivery service '" + xmlID + "': " + err.Error())
}
keys[xmlID] = dsKeys
- if err := riaksvc.PutDNSSECKeys(keys, cdnName, tx, cfg.RiakAuthOptions); err != nil {
+ if err := riaksvc.PutDNSSECKeys(keys, cdnName, tx, cfg.RiakAuthOptions, cfg.RiakPort); err != nil {
return errors.New("putting Riak DNSSEC keys: " + err.Error())
}
return nil
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/keys.go b/traffic_ops/traffic_ops_golang/deliveryservice/keys.go
index a8e8748..365bbcb 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/keys.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/keys.go
@@ -74,7 +74,7 @@ func AddSSLKeys(w http.ResponseWriter, r *http.Request) {
Version: *req.Version,
Certificate: *req.Certificate,
}
- if err := riaksvc.PutDeliveryServiceSSLKeysObj(dsSSLKeys, inf.Tx.Tx, inf.Config.RiakAuthOptions); err != nil {
+ if err := riaksvc.PutDeliveryServiceSSLKeysObj(dsSSLKeys, inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort); err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("putting SSL keys in Riak for delivery service '"+*req.DeliveryService+"': "+err.Error()))
return
}
@@ -163,7 +163,7 @@ func getSSLKeysByXMLIDHelper(xmlID string, inf *api.APIInfo, w http.ResponseWrit
api.HandleErr(w, r, inf.Tx.Tx, errCode, userErr, sysErr)
return
}
- keyObj, ok, err := riaksvc.GetDeliveryServiceSSLKeysObj(xmlID, version, inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ keyObj, ok, err := riaksvc.GetDeliveryServiceSSLKeysObj(xmlID, version, inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting ssl keys: "+err.Error()))
return
@@ -223,7 +223,7 @@ func DeleteSSLKeys(w http.ResponseWriter, r *http.Request) {
api.HandleErr(w, r, inf.Tx.Tx, errCode, userErr, sysErr)
return
}
- if err := riaksvc.DeleteDSSSLKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, xmlID, inf.Params["version"]); err != nil {
+ if err := riaksvc.DeleteDSSSLKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, xmlID, inf.Params["version"]); err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, userErr, errors.New("deliveryservice.DeleteSSLKeys: deleting SSL keys: "+err.Error()))
return
}
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/sslkeys.go b/traffic_ops/traffic_ops_golang/deliveryservice/sslkeys.go
index 34bd8b2..680575f 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/sslkeys.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/sslkeys.go
@@ -79,7 +79,7 @@ func generatePutRiakKeys(req tc.DeliveryServiceGenSSLKeysReq, tx *sql.Tx, cfg *c
return errors.New("generating certificate: " + err.Error())
}
dsSSLKeys.Certificate = tc.DeliveryServiceSSLKeysCertificate{Crt: string(crt), Key: string(key), CSR: string(csr)}
- if err := riaksvc.PutDeliveryServiceSSLKeysObj(dsSSLKeys, tx, cfg.RiakAuthOptions); err != nil {
+ if err := riaksvc.PutDeliveryServiceSSLKeysObj(dsSSLKeys, tx, cfg.RiakAuthOptions, cfg.RiakPort); err != nil {
return errors.New("putting riak keys: " + err.Error())
}
return nil
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/urlkey.go b/traffic_ops/traffic_ops_golang/deliveryservice/urlkey.go
index 33312f8..e4f4a3f 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/urlkey.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/urlkey.go
@@ -84,7 +84,7 @@ func GetURLKeysByID(w http.ResponseWriter, r *http.Request) {
}
}
- keys, ok, err := riaksvc.GetURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, ds)
+ keys, ok, err := riaksvc.GetURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, ds)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting URL Sig keys from riak: "+err.Error()))
return
@@ -138,7 +138,7 @@ func GetURLKeysByName(w http.ResponseWriter, r *http.Request) {
}
}
- keys, ok, err := riaksvc.GetURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, ds)
+ keys, ok, err := riaksvc.GetURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, ds)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting URL Sig keys from riak: "+err.Error()))
return
@@ -214,7 +214,7 @@ func CopyURLKeys(w http.ResponseWriter, r *http.Request) {
}
}
- keys, ok, err := riaksvc.GetURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, copyDS)
+ keys, ok, err := riaksvc.GetURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, copyDS)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("getting URL Sig keys from riak: "+err.Error()))
return
@@ -224,7 +224,7 @@ func CopyURLKeys(w http.ResponseWriter, r *http.Request) {
return
}
- if err := riaksvc.PutURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, ds, keys); err != nil {
+ if err := riaksvc.PutURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, ds, keys); err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("setting URL Sig keys for '"+string(ds)+" copied from "+string(copyDS)+": "+err.Error()))
return
}
@@ -278,7 +278,7 @@ func GenerateURLKeys(w http.ResponseWriter, r *http.Request) {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("generating URL sig keys: "+err.Error()))
}
- if err := riaksvc.PutURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, ds, keys); err != nil {
+ if err := riaksvc.PutURLSigKeys(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort, ds, keys); err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("setting URL Sig keys for '"+string(ds)+": "+err.Error()))
return
}
diff --git a/traffic_ops/traffic_ops_golang/ping/keys.go b/traffic_ops/traffic_ops_golang/ping/keys.go
index 452fe13..98b15b3 100644
--- a/traffic_ops/traffic_ops_golang/ping/keys.go
+++ b/traffic_ops/traffic_ops_golang/ping/keys.go
@@ -35,7 +35,7 @@ func Keys(w http.ResponseWriter, r *http.Request) {
}
defer inf.Close()
- pingResp, err := riaksvc.Ping(inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ pingResp, err := riaksvc.Ping(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("error pinging Riak keys: "+err.Error()))
return
diff --git a/traffic_ops/traffic_ops_golang/ping/riak.go b/traffic_ops/traffic_ops_golang/ping/riak.go
index 04e3aeb..1b58f94 100644
--- a/traffic_ops/traffic_ops_golang/ping/riak.go
+++ b/traffic_ops/traffic_ops_golang/ping/riak.go
@@ -35,7 +35,7 @@ func Riak(w http.ResponseWriter, r *http.Request) {
}
defer inf.Close()
- pingResp, err := riaksvc.Ping(inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ pingResp, err := riaksvc.Ping(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("error pinging Riak: "+err.Error()))
return
diff --git a/traffic_ops/traffic_ops_golang/riaksvc/dsutil.go b/traffic_ops/traffic_ops_golang/riaksvc/dsutil.go
index d6a2f20..730e5b1 100644
--- a/traffic_ops/traffic_ops_golang/riaksvc/dsutil.go
+++ b/traffic_ops/traffic_ops_golang/riaksvc/dsutil.go
@@ -43,10 +43,10 @@ func MakeDSSSLKeyKey(dsName, version string) string {
return dsName + "-" + version
}
-func GetDeliveryServiceSSLKeysObj(xmlID string, version string, tx *sql.Tx, authOpts *riak.AuthOptions) (tc.DeliveryServiceSSLKeys, bool, error) {
+func GetDeliveryServiceSSLKeysObj(xmlID string, version string, tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint) (tc.DeliveryServiceSSLKeys, bool, error) {
key := tc.DeliveryServiceSSLKeys{}
found := false
- err := WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+ err := WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
// get the deliveryservice ssl keys by xmlID and version
ro, err := FetchObjectValues(MakeDSSSLKeyKey(xmlID, version), DeliveryServiceSSLKeysBucket, cluster)
if err != nil {
@@ -68,12 +68,12 @@ func GetDeliveryServiceSSLKeysObj(xmlID string, version string, tx *sql.Tx, auth
return key, found, nil
}
-func PutDeliveryServiceSSLKeysObj(key tc.DeliveryServiceSSLKeys, tx *sql.Tx, authOpts *riak.AuthOptions) error {
+func PutDeliveryServiceSSLKeysObj(key tc.DeliveryServiceSSLKeys, tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint) error {
keyJSON, err := json.Marshal(&key)
if err != nil {
return errors.New("marshalling key: " + err.Error())
}
- err = WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+ err = WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
obj := &riak.Object{
ContentType: "application/json",
Charset: "utf-8",
@@ -93,8 +93,8 @@ func PutDeliveryServiceSSLKeysObj(key tc.DeliveryServiceSSLKeys, tx *sql.Tx, aut
return err
}
-func Ping(tx *sql.Tx, authOpts *riak.AuthOptions) (tc.RiakPingResp, error) {
- servers, err := GetRiakServers(tx)
+func Ping(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint) (tc.RiakPingResp, error) {
+ servers, err := GetRiakServers(tx, riakPort)
if err != nil {
return tc.RiakPingResp{}, errors.New("getting riak servers: " + err.Error())
}
@@ -123,10 +123,10 @@ func Ping(tx *sql.Tx, authOpts *riak.AuthOptions) (tc.RiakPingResp, error) {
return tc.RiakPingResp{}, errors.New("failed to ping any Riak server")
}
-func GetDNSSECKeys(cdnName string, tx *sql.Tx, authOpts *riak.AuthOptions) (tc.DNSSECKeysRiak, bool, error) {
+func GetDNSSECKeys(cdnName string, tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint) (tc.DNSSECKeysRiak, bool, error) {
key := tc.DNSSECKeysRiak{}
found := false
- err := WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+ err := WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
ro, err := FetchObjectValues(cdnName, DNSSECKeysBucket, cluster)
if err != nil {
return err
@@ -146,12 +146,13 @@ func GetDNSSECKeys(cdnName string, tx *sql.Tx, authOpts *riak.AuthOptions) (tc.D
return key, found, nil
}
-func PutDNSSECKeys(keys tc.DNSSECKeysRiak, cdnName string, tx *sql.Tx, authOpts *riak.AuthOptions) error {
+func PutDNSSECKeys(keys tc.DNSSECKeysRiak, cdnName string, tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint) error {
keyJSON, err := json.Marshal(&keys)
if err != nil {
return errors.New("marshalling keys: " + err.Error())
}
- err = WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+
+ err = WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
obj := &riak.Object{
ContentType: "application/json",
Charset: "utf-8",
@@ -167,10 +168,10 @@ func PutDNSSECKeys(keys tc.DNSSECKeysRiak, cdnName string, tx *sql.Tx, authOpts
return err
}
-func GetBucketKey(tx *sql.Tx, authOpts *riak.AuthOptions, bucket string, key string) ([]byte, bool, error) {
+func GetBucketKey(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint, bucket string, key string) ([]byte, bool, error) {
val := []byte{}
found := false
- err := WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+ err := WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
// get the deliveryservice ssl keys by xmlID and version
ro, err := FetchObjectValues(key, bucket, cluster)
if err != nil {
@@ -189,8 +190,8 @@ func GetBucketKey(tx *sql.Tx, authOpts *riak.AuthOptions, bucket string, key str
return val, found, nil
}
-func DeleteDSSSLKeys(tx *sql.Tx, authOpts *riak.AuthOptions, xmlID string, version string) error {
- err := WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+func DeleteDSSSLKeys(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint, xmlID string, version string) error {
+ err := WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
if err := DeleteObject(MakeDSSSLKeyKey(xmlID, version), DeliveryServiceSSLKeysBucket, cluster); err != nil {
return errors.New("deleting SSL keys: " + err.Error())
}
@@ -205,11 +206,11 @@ func GetURLSigConfigFileName(ds tc.DeliveryServiceName) string {
return "url_sig_" + string(ds) + ".config"
}
-func GetURLSigKeys(tx *sql.Tx, authOpts *riak.AuthOptions, ds tc.DeliveryServiceName) (tc.URLSigKeys, bool, error) {
+func GetURLSigKeys(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint, ds tc.DeliveryServiceName) (tc.URLSigKeys, bool, error) {
val := tc.URLSigKeys{}
found := false
key := GetURLSigConfigFileName(ds)
- err := WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+ err := WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
ro, err := FetchObjectValues(key, URLSigKeysBucket, cluster)
if err != nil {
return err
@@ -229,12 +230,12 @@ func GetURLSigKeys(tx *sql.Tx, authOpts *riak.AuthOptions, ds tc.DeliveryService
return val, found, nil
}
-func PutURLSigKeys(tx *sql.Tx, authOpts *riak.AuthOptions, ds tc.DeliveryServiceName, keys tc.URLSigKeys) error {
+func PutURLSigKeys(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint, ds tc.DeliveryServiceName, keys tc.URLSigKeys) error {
keyJSON, err := json.Marshal(&keys)
if err != nil {
return errors.New("marshalling keys: " + err.Error())
}
- err = WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+ err = WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
obj := &riak.Object{
ContentType: "application/json",
Charset: "utf-8",
@@ -253,9 +254,9 @@ func PutURLSigKeys(tx *sql.Tx, authOpts *riak.AuthOptions, ds tc.DeliveryService
const SSLKeysIndex = "sslkeys"
const CDNSSLKeysLimit = 1000 // TODO: emulates Perl; reevaluate?
-func GetCDNSSLKeysObj(tx *sql.Tx, authOpts *riak.AuthOptions, cdnName string) ([]tc.CDNSSLKey, error) {
+func GetCDNSSLKeysObj(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint, cdnName string) ([]tc.CDNSSLKey, error) {
keys := []tc.CDNSSLKey{}
- err := WithCluster(tx, authOpts, func(cluster StorageCluster) error {
+ err := WithCluster(tx, authOpts, riakPort, func(cluster StorageCluster) error {
// get the deliveryservice ssl keys by xmlID and version
query := `cdn:` + cdnName
filterQuery := `_yz_rk:*latest`
diff --git a/traffic_ops/traffic_ops_golang/riaksvc/riak_services.go b/traffic_ops/traffic_ops_golang/riaksvc/riak_services.go
index 10ef7c3..9b1287e 100644
--- a/traffic_ops/traffic_ops_golang/riaksvc/riak_services.go
+++ b/traffic_ops/traffic_ops_golang/riaksvc/riak_services.go
@@ -34,14 +34,15 @@ import (
"time"
"github.com/apache/trafficcontrol/lib/go-log"
+ "github.com/apache/trafficcontrol/lib/go-util"
"github.com/basho/riak-go-client"
)
const (
- RiakPort = 8087
- TimeOut = time.Second * 5
-
+ // DefaultRiakPort is the port RIAK is listening on, if no port is configured.
+ DefaultRiakPort = uint(8087)
+ TimeOut = time.Second * 5
DefaultHealthCheckInterval = time.Second * 5
DefaultMaxCommandExecutionAttempts = 5
)
@@ -221,7 +222,8 @@ type ServerAddr struct {
Port string
}
-func GetRiakServers(tx *sql.Tx) ([]ServerAddr, error) {
+// GetRiakServers returns the riak servers from the database. The riakPort may be nil, in which case the default port is returned.
+func GetRiakServers(tx *sql.Tx, riakPort *uint) ([]ServerAddr, error) {
rows, err := tx.Query(`
SELECT CONCAT(s.host_name, '.', s.domain_name) FROM server s
JOIN type t ON s.type = t.id
@@ -233,7 +235,10 @@ WHERE t.name = 'RIAK' AND st.name = 'ONLINE'
}
defer rows.Close()
servers := []ServerAddr{}
- portStr := strconv.Itoa(RiakPort)
+ if riakPort == nil {
+ riakPort = util.UintPtr(DefaultRiakPort)
+ }
+ portStr := strconv.Itoa(int(*riakPort))
for rows.Next() {
s := ServerAddr{Port: portStr}
if err := rows.Scan(&s.FQDN); err != nil {
@@ -285,15 +290,14 @@ func GetRiakStorageCluster(servers []ServerAddr, authOptions *riak.AuthOptions)
return RiakStorageCluster{Cluster: cluster}, nil
}
-func GetPooledCluster(tx *sql.Tx, authOptions *riak.AuthOptions) (StorageCluster, error) {
-
+func GetPooledCluster(tx *sql.Tx, authOptions *riak.AuthOptions, riakPort *uint) (StorageCluster, error) {
clusterMutex.Lock()
defer clusterMutex.Unlock()
tryLoad := false
// should we try to reload the cluster?
- newservers, err := GetRiakServers(tx)
+ newservers, err := GetRiakServers(tx, riakPort)
if err == nil {
if 0 < len(newservers) {
@@ -344,8 +348,8 @@ func GetPooledCluster(tx *sql.Tx, authOptions *riak.AuthOptions) (StorageCluster
return RiakStorageCluster{Cluster: cluster}, nil
}
-func WithCluster(tx *sql.Tx, authOpts *riak.AuthOptions, f func(StorageCluster) error) error {
- cluster, err := GetPooledCluster(tx, authOpts)
+func WithCluster(tx *sql.Tx, authOpts *riak.AuthOptions, riakPort *uint, f func(StorageCluster) error) error {
+ cluster, err := GetPooledCluster(tx, authOpts, riakPort)
if err != nil {
return errors.New("getting riak pooled cluster: " + err.Error())
}
diff --git a/traffic_ops/traffic_ops_golang/riaksvc/riak_services_test.go b/traffic_ops/traffic_ops_golang/riaksvc/riak_services_test.go
index fc63c8c..6c0d854 100644
--- a/traffic_ops/traffic_ops_golang/riaksvc/riak_services_test.go
+++ b/traffic_ops/traffic_ops_golang/riaksvc/riak_services_test.go
@@ -161,12 +161,12 @@ func TestGetRiakCluster(t *testing.T) {
defer tx.Commit()
mock.ExpectQuery("SELECT").WillReturnError(errors.New("foo"))
- if _, err := GetRiakServers(tx); err == nil {
+ if _, err := GetRiakServers(tx, nil); err == nil {
t.Errorf("expected an error retrieving nil servers.")
}
mock.ExpectQuery("SELECT").WillReturnRows(rows1)
- servers, err := GetRiakServers(tx)
+ servers, err := GetRiakServers(tx, nil)
if err != nil {
t.Errorf("expected to receive servers: %v", err)
}
@@ -188,7 +188,7 @@ func TestGetRiakCluster(t *testing.T) {
rows2 := sqlmock.NewRows([]string{"s.host_name", "s.domain_name"})
mock.ExpectQuery("SELECT").WillReturnRows(rows2)
- if _, err := GetPooledCluster(tx, &authOptions); err == nil {
+ if _, err := GetPooledCluster(tx, &authOptions, nil); err == nil {
t.Errorf("expected an error due to no available riak servers.")
}
}
diff --git a/traffic_ops/traffic_ops_golang/traffic_ops_golang.go b/traffic_ops/traffic_ops_golang/traffic_ops_golang.go
index 3fad34d..b3f6ef3 100644
--- a/traffic_ops/traffic_ops_golang/traffic_ops_golang.go
+++ b/traffic_ops/traffic_ops_golang/traffic_ops_golang.go
@@ -29,6 +29,7 @@ import (
"os/signal"
"path/filepath"
"runtime/pprof"
+ "strconv"
"strings"
"time"
@@ -90,31 +91,7 @@ func main() {
log.Warnln(err)
}
- log.Infof(`Using Config values:
- Port: %s
- Db Server: %s
- Db User: %s
- Db Name: %s
- Db Ssl: %t
- Max Db Connections: %d
- TO URL: %s
- Insecure: %t
- Cert Path: %s
- Key Path: %s
- Proxy Timeout: %v
- Proxy KeepAlive: %v
- Proxy tls handshake: %v
- Proxy header timeout: %v
- Read Timeout: %v
- Read Header Timeout: %v
- Write Timeout: %v
- Idle Timeout: %v
- Error Log: %s
- Warn Log: %s
- Info Log: %s
- Debug Log: %s
- Event Log: %s
- LDAP Enabled: %v`, cfg.Port, cfg.DB.Hostname, cfg.DB.User, cfg.DB.DBName, cfg.DB.SSL, cfg.MaxDBConnections, cfg.Listen[0], cfg.Insecure, cfg.CertPath, cfg.KeyPath, time.Duration(cfg.ProxyTimeout)*time.Second, time.Duration(cfg.ProxyKeepAlive)*time.Second, time.Duration(cfg.ProxyTLSTimeout)*time.Second, time.Duration(cfg.ProxyReadHeaderTimeout)*time.Second, time.Duration(cfg.ReadTimeout)*time.Second, time.Duration(cfg.ReadHeaderTimeout)*time.Second, time.Duration(cfg.WriteTimeou [...]
+ logConfig(cfg)
err := auth.LoadPasswordBlacklist("app/conf/invalid_passwords.txt")
if err != nil {
@@ -289,3 +266,36 @@ func signalReloader(sig os.Signal, f func()) {
f()
}
}
+
+func logConfig(cfg config.Config) {
+ logRiakPort := "<nil>"
+ if cfg.RiakPort != nil {
+ logRiakPort = strconv.Itoa(int(*cfg.RiakPort))
+ }
+ log.Infof(`Using Config values:
+ Port: %s
+ Db Server: %s
+ Db User: %s
+ Db Name: %s
+ Db Ssl: %t
+ Max Db Connections: %d
+ TO URL: %s
+ Insecure: %t
+ Cert Path: %s
+ Key Path: %s
+ Proxy Timeout: %v
+ Proxy KeepAlive: %v
+ Proxy tls handshake: %v
+ Proxy header timeout: %v
+ Read Timeout: %v
+ Read Header Timeout: %v
+ Write Timeout: %v
+ Idle Timeout: %v
+ Error Log: %s
+ Warn Log: %s
+ Info Log: %s
+ Debug Log: %s
+ Event Log: %s
+ Riak Port: %v
+ LDAP Enabled: %v`, cfg.Port, cfg.DB.Hostname, cfg.DB.User, cfg.DB.DBName, cfg.DB.SSL, cfg.MaxDBConnections, cfg.Listen[0], cfg.Insecure, cfg.CertPath, cfg.KeyPath, time.Duration(cfg.ProxyTimeout)*time.Second, time.Duration(cfg.ProxyKeepAlive)*time.Second, time.Duration(cfg.ProxyTLSTimeout)*time.Second, time.Duration(cfg.ProxyReadHeaderTimeout)*time.Second, time.Duration(cfg.ReadTimeout)*time.Second, time.Duration(cfg.ReadHeaderTimeout)*time.Second, time.Duration(cfg.WriteTimeou [...]
+}
diff --git a/traffic_ops/traffic_ops_golang/urisigning.go b/traffic_ops/traffic_ops_golang/urisigning.go
index f9e0dd7..9f8b004 100644
--- a/traffic_ops/traffic_ops_golang/urisigning.go
+++ b/traffic_ops/traffic_ops_golang/urisigning.go
@@ -65,7 +65,7 @@ func getURIsignkeysHandler(w http.ResponseWriter, r *http.Request) {
return
}
- cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("starting riak cluster: "+err.Error()))
return
@@ -104,7 +104,7 @@ func removeDeliveryServiceURIKeysHandler(w http.ResponseWriter, r *http.Request)
return
}
- cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("starting riak cluster: "+err.Error()))
return
@@ -163,7 +163,7 @@ func saveDeliveryServiceURIKeysHandler(w http.ResponseWriter, r *http.Request) {
return
}
- cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions)
+ cluster, err := riaksvc.GetPooledCluster(inf.Tx.Tx, inf.Config.RiakAuthOptions, inf.Config.RiakPort)
if err != nil {
api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, nil, errors.New("starting riak cluster: "+err.Error()))
return