summaryrefslogtreecommitdiff
path: root/cmd/podman/remoteclientconfig
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/podman/remoteclientconfig')
-rw-r--r--cmd/podman/remoteclientconfig/config.go24
-rw-r--r--cmd/podman/remoteclientconfig/config_darwin.go12
-rw-r--r--cmd/podman/remoteclientconfig/config_linux.go17
-rw-r--r--cmd/podman/remoteclientconfig/config_windows.go12
-rw-r--r--cmd/podman/remoteclientconfig/configfile.go64
-rw-r--r--cmd/podman/remoteclientconfig/configfile_test.go212
-rw-r--r--cmd/podman/remoteclientconfig/errors.go14
7 files changed, 0 insertions, 355 deletions
diff --git a/cmd/podman/remoteclientconfig/config.go b/cmd/podman/remoteclientconfig/config.go
deleted file mode 100644
index 3faa7954a..000000000
--- a/cmd/podman/remoteclientconfig/config.go
+++ /dev/null
@@ -1,24 +0,0 @@
-package remoteclientconfig
-
-const remoteConfigFileName string = "podman-remote.conf"
-
-// RemoteConfig describes the podman remote configuration file
-type RemoteConfig struct {
- Connections map[string]RemoteConnection
-}
-
-// RemoteConnection describes the attributes of a podman-remote endpoint
-type RemoteConnection struct {
- Destination string `toml:"destination"`
- Username string `toml:"username"`
- IsDefault bool `toml:"default"`
- Port int `toml:"port"`
- IdentityFile string `toml:"identity_file"`
- IgnoreHosts bool `toml:"ignore_hosts"`
-}
-
-// GetConfigFilePath is a simple helper to export the configuration file's
-// path based on arch, etc
-func GetConfigFilePath() string {
- return getConfigFilePath()
-}
diff --git a/cmd/podman/remoteclientconfig/config_darwin.go b/cmd/podman/remoteclientconfig/config_darwin.go
deleted file mode 100644
index dddb217ac..000000000
--- a/cmd/podman/remoteclientconfig/config_darwin.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package remoteclientconfig
-
-import (
- "path/filepath"
-
- "github.com/containers/storage/pkg/homedir"
-)
-
-func getConfigFilePath() string {
- homeDir := homedir.Get()
- return filepath.Join(homeDir, ".config", "containers", remoteConfigFileName)
-}
diff --git a/cmd/podman/remoteclientconfig/config_linux.go b/cmd/podman/remoteclientconfig/config_linux.go
deleted file mode 100644
index afcf73e6d..000000000
--- a/cmd/podman/remoteclientconfig/config_linux.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package remoteclientconfig
-
-import (
- "os"
- "path/filepath"
-
- "github.com/containers/storage/pkg/homedir"
-)
-
-func getConfigFilePath() string {
- path := os.Getenv("XDG_CONFIG_HOME")
- if path == "" {
- homeDir := homedir.Get()
- path = filepath.Join(homeDir, ".config")
- }
- return filepath.Join(path, "containers", remoteConfigFileName)
-}
diff --git a/cmd/podman/remoteclientconfig/config_windows.go b/cmd/podman/remoteclientconfig/config_windows.go
deleted file mode 100644
index 3a8f3bc7a..000000000
--- a/cmd/podman/remoteclientconfig/config_windows.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package remoteclientconfig
-
-import (
- "path/filepath"
-
- "github.com/containers/storage/pkg/homedir"
-)
-
-func getConfigFilePath() string {
- homeDir := homedir.Get()
- return filepath.Join(homeDir, "AppData", "podman", remoteConfigFileName)
-}
diff --git a/cmd/podman/remoteclientconfig/configfile.go b/cmd/podman/remoteclientconfig/configfile.go
deleted file mode 100644
index 56a868733..000000000
--- a/cmd/podman/remoteclientconfig/configfile.go
+++ /dev/null
@@ -1,64 +0,0 @@
-package remoteclientconfig
-
-import (
- "io"
-
- "github.com/BurntSushi/toml"
- "github.com/pkg/errors"
-)
-
-// ReadRemoteConfig takes an io.Reader representing the remote configuration
-// file and returns a remoteconfig
-func ReadRemoteConfig(reader io.Reader) (*RemoteConfig, error) {
- var remoteConfig RemoteConfig
- // the configuration file does not exist
- if reader == nil {
- return &remoteConfig, ErrNoConfigationFile
- }
- _, err := toml.DecodeReader(reader, &remoteConfig)
- if err != nil {
- return nil, err
- }
- // We need to validate each remote connection has fields filled out
- for name, conn := range remoteConfig.Connections {
- if len(conn.Destination) < 1 {
- return nil, errors.Errorf("connection %q has no destination defined", name)
- }
- }
- return &remoteConfig, err
-}
-
-// GetDefault returns the default RemoteConnection. If there is only one
-// connection, we assume it is the default as well
-func (r *RemoteConfig) GetDefault() (*RemoteConnection, error) {
- if len(r.Connections) == 0 {
- return nil, ErrNoDefinedConnections
- }
- for _, v := range r.Connections {
- v := v
- if len(r.Connections) == 1 {
- // if there is only one defined connection, we assume it is
- // the default whether tagged as such or not
- return &v, nil
- }
- if v.IsDefault {
- return &v, nil
- }
- }
- return nil, ErrNoDefaultConnection
-}
-
-// GetRemoteConnection "looks up" a remote connection by name and returns it in the
-// form of a RemoteConnection
-func (r *RemoteConfig) GetRemoteConnection(name string) (*RemoteConnection, error) {
- if len(r.Connections) == 0 {
- return nil, ErrNoDefinedConnections
- }
- for k, v := range r.Connections {
- v := v
- if k == name {
- return &v, nil
- }
- }
- return nil, errors.Wrap(ErrConnectionNotFound, name)
-}
diff --git a/cmd/podman/remoteclientconfig/configfile_test.go b/cmd/podman/remoteclientconfig/configfile_test.go
deleted file mode 100644
index 4ad2c2100..000000000
--- a/cmd/podman/remoteclientconfig/configfile_test.go
+++ /dev/null
@@ -1,212 +0,0 @@
-package remoteclientconfig
-
-import (
- "io"
- "reflect"
- "strings"
- "testing"
-)
-
-var goodConfig = `
-[connections]
-
-[connections.homer]
-destination = "192.168.1.1"
-username = "myuser"
-port = 22
-default = true
-
-[connections.bart]
-destination = "foobar.com"
-username = "root"
-port = 22
-`
-var noDest = `
-[connections]
-
-[connections.homer]
-destination = "192.168.1.1"
-username = "myuser"
-default = true
-port = 22
-
-[connections.bart]
-username = "root"
-port = 22
-`
-
-var noUser = `
-[connections]
-
-[connections.homer]
-destination = "192.168.1.1"
-port = 22
-`
-
-func makeGoodResult() *RemoteConfig {
- var goodConnections = make(map[string]RemoteConnection)
- goodConnections["homer"] = RemoteConnection{
- Destination: "192.168.1.1",
- Username: "myuser",
- IsDefault: true,
- Port: 22,
- }
- goodConnections["bart"] = RemoteConnection{
- Destination: "foobar.com",
- Username: "root",
- Port: 22,
- }
- var goodResult = RemoteConfig{
- Connections: goodConnections,
- }
- return &goodResult
-}
-
-func makeNoUserResult() *RemoteConfig {
- var goodConnections = make(map[string]RemoteConnection)
- goodConnections["homer"] = RemoteConnection{
- Destination: "192.168.1.1",
- Port: 22,
- }
- var goodResult = RemoteConfig{
- Connections: goodConnections,
- }
- return &goodResult
-}
-
-func TestReadRemoteConfig(t *testing.T) {
- type args struct {
- reader io.Reader
- }
- tests := []struct {
- name string
- args args
- want *RemoteConfig
- wantErr bool
- }{
- // good test should pass
- {"good", args{reader: strings.NewReader(goodConfig)}, makeGoodResult(), false},
- // a connection with no destination is an error
- {"nodest", args{reader: strings.NewReader(noDest)}, nil, true},
- // a connection with no user is OK
- {"nouser", args{reader: strings.NewReader(noUser)}, makeNoUserResult(), false},
- }
- for _, tt := range tests {
- test := tt
- t.Run(tt.name, func(t *testing.T) {
- got, err := ReadRemoteConfig(test.args.reader)
- if (err != nil) != test.wantErr {
- t.Errorf("ReadRemoteConfig() error = %v, wantErr %v", err, test.wantErr)
- return
- }
- if !reflect.DeepEqual(got, test.want) {
- t.Errorf("ReadRemoteConfig() = %v, want %v", got, test.want)
- }
- })
- }
-}
-
-func TestRemoteConfig_GetDefault(t *testing.T) {
- good := make(map[string]RemoteConnection)
- good["homer"] = RemoteConnection{
- Username: "myuser",
- Destination: "192.168.1.1",
- IsDefault: true,
- }
- good["bart"] = RemoteConnection{
- Username: "root",
- Destination: "foobar.com",
- }
- noDefault := make(map[string]RemoteConnection)
- noDefault["homer"] = RemoteConnection{
- Username: "myuser",
- Destination: "192.168.1.1",
- }
- noDefault["bart"] = RemoteConnection{
- Username: "root",
- Destination: "foobar.com",
- }
- single := make(map[string]RemoteConnection)
- single["homer"] = RemoteConnection{
- Username: "myuser",
- Destination: "192.168.1.1",
- }
-
- none := make(map[string]RemoteConnection)
-
- type fields struct {
- Connections map[string]RemoteConnection
- }
- tests := []struct {
- name string
- fields fields
- want *RemoteConnection
- wantErr bool
- }{
- // A good toml should return the connection that is marked isDefault
- {"good", fields{Connections: makeGoodResult().Connections}, &RemoteConnection{"192.168.1.1", "myuser", true, 22, "", false}, false},
- // If nothing is marked as isDefault and there is more than one connection, error should occur
- {"nodefault", fields{Connections: noDefault}, nil, true},
- // if nothing is marked as isDefault but there is only one connection, the one connection is considered the default
- {"single", fields{Connections: none}, nil, true},
- }
- for _, tt := range tests {
- test := tt
- t.Run(test.name, func(t *testing.T) {
- r := &RemoteConfig{
- Connections: test.fields.Connections,
- }
- got, err := r.GetDefault()
- if (err != nil) != test.wantErr {
- t.Errorf("RemoteConfig.GetDefault() error = %v, wantErr %v", err, test.wantErr)
- return
- }
- if !reflect.DeepEqual(got, test.want) {
- t.Errorf("RemoteConfig.GetDefault() = %v, want %v", got, test.want)
- }
- })
- }
-}
-
-func TestRemoteConfig_GetRemoteConnection(t *testing.T) {
- type fields struct {
- Connections map[string]RemoteConnection
- }
- type args struct {
- name string
- }
-
- blank := make(map[string]RemoteConnection)
- tests := []struct {
- name string
- fields fields
- args args
- want *RemoteConnection
- wantErr bool
- }{
- // Good connection
- {"goodhomer", fields{Connections: makeGoodResult().Connections}, args{name: "homer"}, &RemoteConnection{"192.168.1.1", "myuser", true, 22, "", false}, false},
- // Good connection
- {"goodbart", fields{Connections: makeGoodResult().Connections}, args{name: "bart"}, &RemoteConnection{"foobar.com", "root", false, 22, "", false}, false},
- // Getting an unknown connection should result in error
- {"noexist", fields{Connections: makeGoodResult().Connections}, args{name: "foobar"}, nil, true},
- // Getting a connection when there are none should result in an error
- {"none", fields{Connections: blank}, args{name: "foobar"}, nil, true},
- }
- for _, tt := range tests {
- test := tt
- t.Run(test.name, func(t *testing.T) {
- r := &RemoteConfig{
- Connections: test.fields.Connections,
- }
- got, err := r.GetRemoteConnection(test.args.name)
- if (err != nil) != test.wantErr {
- t.Errorf("RemoteConfig.GetRemoteConnection() error = %v, wantErr %v", err, test.wantErr)
- return
- }
- if !reflect.DeepEqual(got, test.want) {
- t.Errorf("RemoteConfig.GetRemoteConnection() = %v, want %v", got, test.want)
- }
- })
- }
-}
diff --git a/cmd/podman/remoteclientconfig/errors.go b/cmd/podman/remoteclientconfig/errors.go
deleted file mode 100644
index 2689d3b49..000000000
--- a/cmd/podman/remoteclientconfig/errors.go
+++ /dev/null
@@ -1,14 +0,0 @@
-package remoteclientconfig
-
-import "errors"
-
-var (
- // ErrNoDefaultConnection no default connection is defined in the podman-remote.conf file
- ErrNoDefaultConnection = errors.New("no default connection is defined")
- // ErrNoDefinedConnections no connections are defined in the podman-remote.conf file
- ErrNoDefinedConnections = errors.New("no remote connections have been defined")
- // ErrConnectionNotFound unable to lookup connection by name
- ErrConnectionNotFound = errors.New("remote connection not found by name")
- // ErrNoConfigationFile no config file found
- ErrNoConfigationFile = errors.New("no configuration file found")
-)