Make KubeletClient public

This commit is contained in:
marcos
2017-11-21 15:21:15 -03:00
parent 0ad73acbb9
commit 2e039a4e60
4 changed files with 171 additions and 15 deletions

166
Gopkg.lock generated
View File

@@ -13,6 +13,18 @@
revision = "78439966b38d69bf38227fbf57ac8a6fee70f69a" revision = "78439966b38d69bf38227fbf57ac8a6fee70f69a"
version = "v0.4.5" version = "v0.4.5"
[[projects]]
name = "github.com/PuerkitoBio/purell"
packages = ["."]
revision = "0bcb03f4b4d0a9428594752bd2a3b9aa0a9d4bd4"
version = "v1.1.0"
[[projects]]
branch = "master"
name = "github.com/PuerkitoBio/urlesc"
packages = ["."]
revision = "de5bf2ad457846296e2031421a34e2568e304e35"
[[projects]] [[projects]]
name = "github.com/aws/aws-sdk-go" name = "github.com/aws/aws-sdk-go"
packages = ["aws","aws/awserr","aws/awsutil","aws/client","aws/client/metadata","aws/corehandlers","aws/credentials","aws/credentials/ec2rolecreds","aws/credentials/endpointcreds","aws/credentials/stscreds","aws/defaults","aws/ec2metadata","aws/endpoints","aws/request","aws/session","aws/signer/v4","internal/shareddefaults","private/protocol","private/protocol/ec2query","private/protocol/query","private/protocol/query/queryutil","private/protocol/rest","private/protocol/xml/xmlutil","service/autoscaling","service/ec2","service/sts"] packages = ["aws","aws/awserr","aws/awsutil","aws/client","aws/client/metadata","aws/corehandlers","aws/credentials","aws/credentials/ec2rolecreds","aws/credentials/endpointcreds","aws/credentials/stscreds","aws/defaults","aws/ec2metadata","aws/endpoints","aws/request","aws/session","aws/signer/v4","internal/shareddefaults","private/protocol","private/protocol/ec2query","private/protocol/query","private/protocol/query/queryutil","private/protocol/rest","private/protocol/xml/xmlutil","service/autoscaling","service/ec2","service/sts"]
@@ -54,24 +66,78 @@
revision = "0dadbb0345b35ec7ef35e228dabb8de89a65bf52" revision = "0dadbb0345b35ec7ef35e228dabb8de89a65bf52"
version = "v0.3.2" version = "v0.3.2"
[[projects]]
name = "github.com/emicklei/go-restful"
packages = [".","log"]
revision = "5741799b275a3c4a5a9623a993576d7545cf7b5c"
version = "v2.4.0"
[[projects]]
name = "github.com/emicklei/go-restful-swagger12"
packages = ["."]
revision = "dcef7f55730566d41eae5db10e7d6981829720f6"
version = "1.0.1"
[[projects]]
name = "github.com/ghodss/yaml"
packages = ["."]
revision = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7"
version = "v1.0.0"
[[projects]] [[projects]]
name = "github.com/go-ini/ini" name = "github.com/go-ini/ini"
packages = ["."] packages = ["."]
revision = "5b3e00af70a9484542169a976dcab8d03e601a17" revision = "5b3e00af70a9484542169a976dcab8d03e601a17"
version = "v1.30.0" version = "v1.30.0"
[[projects]]
branch = "master"
name = "github.com/go-openapi/jsonpointer"
packages = ["."]
revision = "779f45308c19820f1a69e9a4cd965f496e0da10f"
[[projects]]
branch = "master"
name = "github.com/go-openapi/jsonreference"
packages = ["."]
revision = "36d33bfe519efae5632669801b180bf1a245da3b"
[[projects]]
branch = "master"
name = "github.com/go-openapi/spec"
packages = ["."]
revision = "a4fa9574c7aa73b2fc54e251eb9524d0482bb592"
[[projects]]
branch = "master"
name = "github.com/go-openapi/swag"
packages = ["."]
revision = "cf0bdb963811675a4d7e74901cefc7411a1df939"
[[projects]] [[projects]]
name = "github.com/gogo/protobuf" name = "github.com/gogo/protobuf"
packages = ["proto"] packages = ["proto","sortkeys"]
revision = "100ba4e885062801d56799d78530b73b178a78f3" revision = "100ba4e885062801d56799d78530b73b178a78f3"
version = "v0.4" version = "v0.4"
[[projects]]
branch = "master"
name = "github.com/golang/glog"
packages = ["."]
revision = "23def4e6c14b4da8ac2ed8007337bc5eb5007998"
[[projects]] [[projects]]
branch = "master" branch = "master"
name = "github.com/golang/protobuf" name = "github.com/golang/protobuf"
packages = ["proto"] packages = ["proto","ptypes","ptypes/any","ptypes/duration","ptypes/timestamp"]
revision = "130e6b02ab059e7b717a096f397c5b60111cae74" revision = "130e6b02ab059e7b717a096f397c5b60111cae74"
[[projects]]
branch = "master"
name = "github.com/google/btree"
packages = ["."]
revision = "316fb6d3f031ae8f4d457c6c5186b9e3ded70435"
[[projects]] [[projects]]
branch = "master" branch = "master"
name = "github.com/google/go-github" name = "github.com/google/go-github"
@@ -84,6 +150,18 @@
packages = ["query"] packages = ["query"]
revision = "53e6ce116135b80d037921a7fdd5138cf32d7a8a" revision = "53e6ce116135b80d037921a7fdd5138cf32d7a8a"
[[projects]]
branch = "master"
name = "github.com/google/gofuzz"
packages = ["."]
revision = "24818f796faf91cd76ec7bddd72458fbced7a6c1"
[[projects]]
name = "github.com/googleapis/gnostic"
packages = ["OpenAPIv2","compiler","extensions"]
revision = "ee43cbb60db7bd22502942cccbc39059117352ab"
version = "v0.1.0"
[[projects]] [[projects]]
name = "github.com/gorilla/context" name = "github.com/gorilla/context"
packages = ["."] packages = ["."]
@@ -114,6 +192,12 @@
revision = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b" revision = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b"
version = "v1.2.0" version = "v1.2.0"
[[projects]]
branch = "master"
name = "github.com/gregjones/httpcache"
packages = [".","diskcache"]
revision = "2bcd89a1743fd4b373f7370ce8ddc14dfbd18229"
[[projects]] [[projects]]
branch = "master" branch = "master"
name = "github.com/hashicorp/golang-lru" name = "github.com/hashicorp/golang-lru"
@@ -137,6 +221,24 @@
packages = ["."] packages = ["."]
revision = "0b12d6b5" revision = "0b12d6b5"
[[projects]]
name = "github.com/json-iterator/go"
packages = ["."]
revision = "f7279a603edee96fe7764d3de9c6ff8cf9970994"
version = "1.0.4"
[[projects]]
branch = "master"
name = "github.com/juju/ratelimit"
packages = ["."]
revision = "59fac5042749a5afb9af70e813da1dd5474f0167"
[[projects]]
branch = "master"
name = "github.com/mailru/easyjson"
packages = ["buffer","jlexer","jwriter"]
revision = "32fa128f234d041f196a9f3e0fea5ac9772c08e1"
[[projects]] [[projects]]
name = "github.com/matttproud/golang_protobuf_extensions" name = "github.com/matttproud/golang_protobuf_extensions"
packages = ["pbutil"] packages = ["pbutil"]
@@ -161,6 +263,18 @@
revision = "ab7389ef9f50030c9b245bc16b981c7ddf192882" revision = "ab7389ef9f50030c9b245bc16b981c7ddf192882"
version = "v1.0.0" version = "v1.0.0"
[[projects]]
branch = "master"
name = "github.com/petar/GoLLRB"
packages = ["llrb"]
revision = "53be0d36a84c2a886ca057d34b6aa4468df9ccb4"
[[projects]]
name = "github.com/peterbourgon/diskv"
packages = ["."]
revision = "5f041e8faa004a95c88a202771f4cc3e991971e6"
version = "v2.0.1"
[[projects]] [[projects]]
name = "github.com/pkg/errors" name = "github.com/pkg/errors"
packages = ["."] packages = ["."]
@@ -215,6 +329,12 @@
revision = "6e221c482653ef05c9f6a7bf71ddceea0e40bac5" revision = "6e221c482653ef05c9f6a7bf71ddceea0e40bac5"
version = "v2.17.09" version = "v2.17.09"
[[projects]]
name = "github.com/spf13/pflag"
packages = ["."]
revision = "e57e3eeb33f795204c1ca35f56c44f83227c6e66"
version = "v1.0.0"
[[projects]] [[projects]]
branch = "master" branch = "master"
name = "github.com/stretchr/objx" name = "github.com/stretchr/objx"
@@ -242,7 +362,7 @@
[[projects]] [[projects]]
branch = "master" branch = "master"
name = "golang.org/x/net" name = "golang.org/x/net"
packages = ["context","context/ctxhttp","proxy","websocket"] packages = ["context","context/ctxhttp","http2","http2/hpack","idna","lex/httplex","proxy","websocket"]
revision = "aabf50738bcdd9b207582cbe796b59ed65d56680" revision = "aabf50738bcdd9b207582cbe796b59ed65d56680"
[[projects]] [[projects]]
@@ -266,7 +386,7 @@
[[projects]] [[projects]]
branch = "master" branch = "master"
name = "golang.org/x/text" name = "golang.org/x/text"
packages = ["encoding","encoding/internal/identifier","internal/gen","transform","unicode/cldr"] packages = ["collate","collate/build","encoding","encoding/internal/identifier","internal/colltab","internal/gen","internal/tag","internal/triegen","internal/ucd","language","secure/bidirule","transform","unicode/bidi","unicode/cldr","unicode/norm","unicode/rangetable","width"]
revision = "c01e4764d870b77f8abe5096ee19ad20d80e8075" revision = "c01e4764d870b77f8abe5096ee19ad20d80e8075"
[[projects]] [[projects]]
@@ -275,9 +395,45 @@
revision = "150dc57a1b433e64154302bdc40b6bb8aefa313a" revision = "150dc57a1b433e64154302bdc40b6bb8aefa313a"
version = "v1.0.0" version = "v1.0.0"
[[projects]]
name = "gopkg.in/inf.v0"
packages = ["."]
revision = "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4"
version = "v0.9.0"
[[projects]]
branch = "v2"
name = "gopkg.in/yaml.v2"
packages = ["."]
revision = "287cf08546ab5e7e37d55a84f7ed3fd1db036de5"
[[projects]]
branch = "master"
name = "k8s.io/api"
packages = ["admissionregistration/v1alpha1","apps/v1beta1","apps/v1beta2","authentication/v1","authentication/v1beta1","authorization/v1","authorization/v1beta1","autoscaling/v1","autoscaling/v2beta1","batch/v1","batch/v1beta1","batch/v2alpha1","certificates/v1beta1","core/v1","extensions/v1beta1","networking/v1","policy/v1beta1","rbac/v1","rbac/v1alpha1","rbac/v1beta1","scheduling/v1alpha1","settings/v1alpha1","storage/v1","storage/v1beta1"]
revision = "218912509d74a117d05a718bb926d0948e531c20"
[[projects]]
branch = "master"
name = "k8s.io/apimachinery"
packages = ["pkg/api/equality","pkg/api/errors","pkg/api/meta","pkg/api/resource","pkg/apis/meta/v1","pkg/apis/meta/v1/unstructured","pkg/apis/meta/v1alpha1","pkg/conversion","pkg/conversion/queryparams","pkg/conversion/unstructured","pkg/fields","pkg/labels","pkg/runtime","pkg/runtime/schema","pkg/runtime/serializer","pkg/runtime/serializer/json","pkg/runtime/serializer/protobuf","pkg/runtime/serializer/recognizer","pkg/runtime/serializer/streaming","pkg/runtime/serializer/versioning","pkg/selection","pkg/types","pkg/util/clock","pkg/util/diff","pkg/util/errors","pkg/util/framer","pkg/util/intstr","pkg/util/json","pkg/util/net","pkg/util/runtime","pkg/util/sets","pkg/util/validation","pkg/util/validation/field","pkg/util/wait","pkg/util/yaml","pkg/version","pkg/watch","third_party/forked/golang/reflect"]
revision = "18a564baac720819100827c16fdebcadb05b2d0d"
[[projects]]
name = "k8s.io/client-go"
packages = ["discovery","kubernetes","kubernetes/scheme","kubernetes/typed/admissionregistration/v1alpha1","kubernetes/typed/apps/v1beta1","kubernetes/typed/apps/v1beta2","kubernetes/typed/authentication/v1","kubernetes/typed/authentication/v1beta1","kubernetes/typed/authorization/v1","kubernetes/typed/authorization/v1beta1","kubernetes/typed/autoscaling/v1","kubernetes/typed/autoscaling/v2beta1","kubernetes/typed/batch/v1","kubernetes/typed/batch/v1beta1","kubernetes/typed/batch/v2alpha1","kubernetes/typed/certificates/v1beta1","kubernetes/typed/core/v1","kubernetes/typed/extensions/v1beta1","kubernetes/typed/networking/v1","kubernetes/typed/policy/v1beta1","kubernetes/typed/rbac/v1","kubernetes/typed/rbac/v1alpha1","kubernetes/typed/rbac/v1beta1","kubernetes/typed/scheduling/v1alpha1","kubernetes/typed/settings/v1alpha1","kubernetes/typed/storage/v1","kubernetes/typed/storage/v1beta1","pkg/version","rest","rest/watch","tools/clientcmd/api","tools/metrics","tools/reference","transport","util/cert","util/flowcontrol","util/integer"]
revision = "2ae454230481a7cb5544325e12ad7658ecccd19b"
version = "v5.0.1"
[[projects]]
branch = "master"
name = "k8s.io/kube-openapi"
packages = ["pkg/common"]
revision = "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1"
[solve-meta] [solve-meta]
analyzer-name = "dep" analyzer-name = "dep"
analyzer-version = 1 analyzer-version = 1
inputs-digest = "c44df7b948bc670608433a44e0c0b7997ab6efe72869b805669503c1c66d651b" inputs-digest = "e9fd1884fe1cc9d2801810e3934b9caa124434efda447ee2f93435737b2e735f"
solver-name = "gps-cdcl" solver-name = "gps-cdcl"
solver-version = 1 solver-version = 1

View File

@@ -21,7 +21,7 @@ import (
type FactoryApi interface { type FactoryApi interface {
GetForInstance(instance *types.Instance) (*kubernetes.Clientset, error) GetForInstance(instance *types.Instance) (*kubernetes.Clientset, error)
GetKubeletForInstance(instance *types.Instance) (*kubeletClient, error) GetKubeletForInstance(instance *types.Instance) (*KubeletClient, error)
} }
func NewClient(instance *types.Instance, proxyHost string) (*kubernetes.Clientset, error) { func NewClient(instance *types.Instance, proxyHost string) (*kubernetes.Clientset, error) {
@@ -75,7 +75,7 @@ func NewClient(instance *types.Instance, proxyHost string) (*kubernetes.Clientse
return kubernetes.New(rc), nil return kubernetes.New(rc), nil
} }
func NewKubeletClient(instance *types.Instance, proxyHost string) (*kubeletClient, error) { func NewKubeletClient(instance *types.Instance, proxyHost string) (*KubeletClient, error) {
var durl string var durl string
host := router.EncodeHost(instance.SessionId, instance.RoutableIP, router.HostOpts{EncodedPort: 10255}) host := router.EncodeHost(instance.SessionId, instance.RoutableIP, router.HostOpts{EncodedPort: 10255})
@@ -94,16 +94,16 @@ func NewKubeletClient(instance *types.Instance, proxyHost string) (*kubeletClien
cli := &http.Client{ cli := &http.Client{
Transport: transport, Transport: transport,
} }
kc := &kubeletClient{client: cli, baseURL: durl} kc := &KubeletClient{client: cli, baseURL: durl}
return kc, nil return kc, nil
} }
type kubeletClient struct { type KubeletClient struct {
client *http.Client client *http.Client
baseURL string baseURL string
} }
func (c *kubeletClient) Get(path string) (*http.Response, error) { func (c *KubeletClient) Get(path string) (*http.Response, error) {
return c.client.Get(c.baseURL + path) return c.client.Get(c.baseURL + path)
} }
@@ -119,7 +119,7 @@ type kubeletPodsResponse struct {
Items []item Items []item
} }
func (c *kubeletClient) IsManager() (bool, error) { func (c *KubeletClient) IsManager() (bool, error) {
res, err := c.client.Get(c.baseURL + "/pods") res, err := c.client.Get(c.baseURL + "/pods")
if err != nil { if err != nil {
return false, err return false, err

View File

@@ -10,9 +10,9 @@ type FactoryMock struct {
mock.Mock mock.Mock
} }
func (m *FactoryMock) GetKubeletForInstance(i *types.Instance) (*kubeletClient, error) { func (m *FactoryMock) GetKubeletForInstance(i *types.Instance) (*KubeletClient, error) {
args := m.Called(i) args := m.Called(i)
return args.Get(0).(*kubeletClient), args.Error(1) return args.Get(0).(*KubeletClient), args.Error(1)
} }
func (m *FactoryMock) GetForInstance(instance *types.Instance) (*kubernetes.Clientset, error) { func (m *FactoryMock) GetForInstance(instance *types.Instance) (*kubernetes.Clientset, error) {

View File

@@ -23,7 +23,7 @@ type localCachedFactory struct {
type instanceEntry struct { type instanceEntry struct {
rw sync.Mutex rw sync.Mutex
client *kubernetes.Clientset client *kubernetes.Clientset
kubeletClient *kubeletClient kubeletClient *KubeletClient
} }
func (f *localCachedFactory) GetForInstance(instance *types.Instance) (*kubernetes.Clientset, error) { func (f *localCachedFactory) GetForInstance(instance *types.Instance) (*kubernetes.Clientset, error) {
@@ -60,7 +60,7 @@ func (f *localCachedFactory) GetForInstance(instance *types.Instance) (*kubernet
return c.client, nil return c.client, nil
} }
func (f *localCachedFactory) GetKubeletForInstance(instance *types.Instance) (*kubeletClient, error) { func (f *localCachedFactory) GetKubeletForInstance(instance *types.Instance) (*KubeletClient, error) {
key := instance.Name key := instance.Name
f.irw.Lock() f.irw.Lock()