// startServerTLS starts a new TLS-based local storage server // using a temporary directory and returns the listener, // a base URL for the server and the directory path. func startServerTLS(c *gc.C) (listener net.Listener, url, dataDir string) { dataDir = c.MkDir() embedded, err := filestorage.NewFileStorageWriter(dataDir) c.Assert(err, gc.IsNil) hostnames := []string{"127.0.0.1"} listener, err = httpstorage.ServeTLS( "127.0.0.1:0", embedded, coretesting.CACert, coretesting.CAKey, hostnames, testAuthkey, ) c.Assert(err, gc.IsNil) return listener, fmt.Sprintf("http://localhost:%d/", listener.Addr().(*net.TCPAddr).Port), dataDir }
func (s *storageWorker) serveStorage(storageAddr, storageDir string, config *config) (net.Listener, error) { authenticated := len(config.caCertPEM) > 0 && len(config.caKeyPEM) > 0 scheme := "http://" if authenticated { scheme = "https://" } logger.Infof("serving storage from %s to %s%s", storageDir, scheme, storageAddr) storage, err := filestorage.NewFileStorageWriter(storageDir) if err != nil { return nil, err } if authenticated { return httpstorage.ServeTLS( storageAddr, storage, config.caCertPEM, config.caKeyPEM, config.hostnames, config.authkey, ) } return httpstorage.Serve(storageAddr, storage) }