diff options
author | 2016-08-08 14:30:04 -0700 | |
---|---|---|
committer | 2016-08-08 14:30:04 -0700 | |
commit | c079de65b520bd7690c7ac057a38b404947f3909 (patch) | |
tree | f2c19117a64ca0e40ab187ae068d5819814492f5 /middleware/kubernetes/k8sclient/k8sclient.go | |
parent | 51eaefc0377597691fec1829680b3c9612068d88 (diff) | |
download | coredns-c079de65b520bd7690c7ac057a38b404947f3909.tar.gz coredns-c079de65b520bd7690c7ac057a38b404947f3909.tar.zst coredns-c079de65b520bd7690c7ac057a38b404947f3909.zip |
Adding `resyncperiod` to Corefile (#205)
* Removing old unused inline k8s API code and tests.
* Adding parsing implementation for `resyncperiod` keyword from Corefile.
* Adding tests for parsing `resyncperiod` keyword from Corefile.
8 Updating README.md and conf/k8sCorefile.
Diffstat (limited to 'middleware/kubernetes/k8sclient/k8sclient.go')
-rw-r--r-- | middleware/kubernetes/k8sclient/k8sclient.go | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/middleware/kubernetes/k8sclient/k8sclient.go b/middleware/kubernetes/k8sclient/k8sclient.go deleted file mode 100644 index fcb3f53f5..000000000 --- a/middleware/kubernetes/k8sclient/k8sclient.go +++ /dev/null @@ -1,133 +0,0 @@ -package k8sclient - -import ( - "errors" - "log" - "net/url" - "strings" -) - -// API strings -const ( - apiBase = "/api/v1" - apiNamespaces = "/namespaces" - apiServices = "/services" -) - -// Defaults -const ( - defaultBaseURL = "http://localhost:8080" -) - -type K8sConnector struct { - baseURL string -} - -func (c *K8sConnector) SetBaseURL(u string) error { - url, error := url.Parse(u) - - if error != nil { - return error - } - - if !url.IsAbs() { - return errors.New("k8sclient: Kubernetes endpoint url must be an absolute URL") - } - - c.baseURL = url.String() - return nil -} - -func (c *K8sConnector) GetBaseURL() string { - return c.baseURL -} - -// URL constructor separated from code to support dependency injection -// for unit tests. -var makeURL = func(parts []string) string { - return strings.Join(parts, "") -} - -func (c *K8sConnector) GetResourceList() (*ResourceList, error) { - resources := new(ResourceList) - - url := makeURL([]string{c.baseURL, apiBase}) - err := parseJson(url, resources) - // TODO: handle no response from k8s - if err != nil { - log.Printf("[ERROR] Response from kubernetes API for GetResourceList() is: %v\n", err) - return nil, err - } - - return resources, nil -} - -func (c *K8sConnector) GetNamespaceList() (*NamespaceList, error) { - namespaces := new(NamespaceList) - - url := makeURL([]string{c.baseURL, apiBase, apiNamespaces}) - err := parseJson(url, namespaces) - if err != nil { - log.Printf("[ERROR] Response from kubernetes API for GetNamespaceList() is: %v\n", err) - return nil, err - } - - return namespaces, nil -} - -func (c *K8sConnector) GetServiceList() (*ServiceList, error) { - services := new(ServiceList) - - url := makeURL([]string{c.baseURL, apiBase, apiServices}) - err := parseJson(url, services) - // TODO: handle no response from k8s - if err != nil { - log.Printf("[ERROR] Response from kubernetes API for GetServiceList() is: %v\n", err) - return nil, err - } - - return services, nil -} - -// GetServicesByNamespace returns a map of -// namespacename :: [ kubernetesServiceItem ] -func (c *K8sConnector) GetServicesByNamespace() (map[string][]ServiceItem, error) { - - items := make(map[string][]ServiceItem) - - k8sServiceList, err := c.GetServiceList() - - if err != nil { - log.Printf("[ERROR] Getting service list produced error: %v", err) - return nil, err - } - - // TODO: handle no response from k8s - if k8sServiceList == nil { - return nil, nil - } - - k8sItemList := k8sServiceList.Items - - for _, i := range k8sItemList { - namespace := i.Metadata.Namespace - items[namespace] = append(items[namespace], i) - } - - return items, nil -} - -func NewK8sConnector(baseURL string) *K8sConnector { - k := new(K8sConnector) - - if baseURL == "" { - baseURL = defaultBaseURL - } - - err := k.SetBaseURL(baseURL) - if err != nil { - return nil - } - - return k -} |