mirror of https://github.com/containers/podman.git
Remove more unused code
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
This commit is contained in:
parent
7fa1efd0d7
commit
371a75b897
103
client/client.go
103
client/client.go
|
@ -1,103 +0,0 @@
|
||||||
package client
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"net"
|
|
||||||
"net/http"
|
|
||||||
"syscall"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/kubernetes-incubator/cri-o/types"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
maxUnixSocketPathSize = len(syscall.RawSockaddrUnix{}.Path)
|
|
||||||
)
|
|
||||||
|
|
||||||
// CrioClient is an interface to get information from crio daemon endpoint.
|
|
||||||
type CrioClient interface {
|
|
||||||
DaemonInfo() (types.CrioInfo, error)
|
|
||||||
ContainerInfo(string) (*types.ContainerInfo, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
type crioClientImpl struct {
|
|
||||||
client *http.Client
|
|
||||||
crioSocketPath string
|
|
||||||
}
|
|
||||||
|
|
||||||
func configureUnixTransport(tr *http.Transport, proto, addr string) error {
|
|
||||||
if len(addr) > maxUnixSocketPathSize {
|
|
||||||
return fmt.Errorf("Unix socket path %q is too long", addr)
|
|
||||||
}
|
|
||||||
// No need for compression in local communications.
|
|
||||||
tr.DisableCompression = true
|
|
||||||
tr.Dial = func(_, _ string) (net.Conn, error) {
|
|
||||||
return net.DialTimeout(proto, addr, 32*time.Second)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// New returns a crio client
|
|
||||||
func New(crioSocketPath string) (CrioClient, error) {
|
|
||||||
tr := new(http.Transport)
|
|
||||||
configureUnixTransport(tr, "unix", crioSocketPath)
|
|
||||||
c := &http.Client{
|
|
||||||
Transport: tr,
|
|
||||||
}
|
|
||||||
return &crioClientImpl{
|
|
||||||
client: c,
|
|
||||||
crioSocketPath: crioSocketPath,
|
|
||||||
}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *crioClientImpl) getRequest(path string) (*http.Request, error) {
|
|
||||||
req, err := http.NewRequest("GET", path, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
// For local communications over a unix socket, it doesn't matter what
|
|
||||||
// the host is. We just need a valid and meaningful host name.
|
|
||||||
req.Host = "crio"
|
|
||||||
req.URL.Host = c.crioSocketPath
|
|
||||||
req.URL.Scheme = "http"
|
|
||||||
return req, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DaemonInfo return cri-o daemon info from the cri-o
|
|
||||||
// info endpoint.
|
|
||||||
func (c *crioClientImpl) DaemonInfo() (types.CrioInfo, error) {
|
|
||||||
info := types.CrioInfo{}
|
|
||||||
req, err := c.getRequest("/info")
|
|
||||||
if err != nil {
|
|
||||||
return info, err
|
|
||||||
}
|
|
||||||
resp, err := c.client.Do(req)
|
|
||||||
if err != nil {
|
|
||||||
return info, err
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
|
||||||
if err := json.NewDecoder(resp.Body).Decode(&info); err != nil {
|
|
||||||
return info, err
|
|
||||||
}
|
|
||||||
return info, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContainerInfo returns container info by querying
|
|
||||||
// the cri-o container endpoint.
|
|
||||||
func (c *crioClientImpl) ContainerInfo(id string) (*types.ContainerInfo, error) {
|
|
||||||
req, err := c.getRequest("/containers/" + id)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
resp, err := c.client.Do(req)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
|
||||||
cInfo := types.ContainerInfo{}
|
|
||||||
if err := json.NewDecoder(resp.Body).Decode(&cInfo); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &cInfo, nil
|
|
||||||
}
|
|
Loading…
Reference in New Issue