func newEtcdClient(c *EtcdConfig) (etcd.KeysAPI, error) { tlsInfo := transport.TLSInfo{ CertFile: c.Certfile, KeyFile: c.Keyfile, CAFile: c.CAFile, } t, err := transport.NewTransport(tlsInfo) if err != nil { return nil, err } cli, err := etcd.New(etcd.Config{ Endpoints: c.Endpoints, Transport: t, }) if err != nil { return nil, err } return etcd.NewKeysAPI(cli), nil }
func NewRemoteManager(listenAddr, cafile, certfile, keyfile string) (subnet.Manager, error) { tls := transport.TLSInfo{ CAFile: cafile, CertFile: certfile, KeyFile: keyfile, } t, err := transport.NewTransport(tls) if err != nil { return nil, err } var scheme string if tls.Empty() && tls.CAFile == "" { scheme = "http://" } else { scheme = "https://" } return &RemoteManager{ base: scheme + listenAddr + "/v1", transport: t, }, nil }