image scp: don't require port for ssh URL

SSH uses 22 as default so it is really not necessary to require the
port. The backend code already does this but the parsing in the
frontend always tried to parse the port.

[NO NEW TESTS NEEDED] This would require actual remote host ssh setup in
CI so it is not possible to be check but I verified it locally.

Fixes https://issues.redhat.com/browse/RHEL-17776

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger 2024-02-09 13:49:57 +01:00
parent 2fbf793bdf
commit 41cd90a8e7
No known key found for this signature in database
GPG Key ID: EB145DD938A3CAF2
1 changed files with 16 additions and 6 deletions

View File

@ -205,9 +205,14 @@ func LoginUser(user string) (*exec.Cmd, error) {
// and copies the saved image dir over to the remote host and then loads it onto the machine
// returns a string containing output or an error
func LoadToRemote(dest entities.ImageScpOptions, localFile string, tag string, url *url.URL, iden string, sshEngine ssh.EngineMode) (string, string, error) {
port, err := strconv.Atoi(url.Port())
if err != nil {
return "", "", err
port := 0
urlPort := url.Port()
if urlPort != "" {
var err error
port, err = strconv.Atoi(url.Port())
if err != nil {
return "", "", err
}
}
remoteFile, err := ssh.Exec(&ssh.ConnectionExecOptions{Host: url.String(), Identity: iden, Port: port, User: url.User, Args: []string{"mktemp"}}, sshEngine)
@ -250,9 +255,14 @@ func SaveToRemote(image, localFile string, tag string, uri *url.URL, iden string
return fmt.Errorf("renaming of an image is currently not supported: %w", define.ErrInvalidArg)
}
port, err := strconv.Atoi(uri.Port())
if err != nil {
return err
port := 0
urlPort := uri.Port()
if urlPort != "" {
var err error
port, err = strconv.Atoi(uri.Port())
if err != nil {
return err
}
}
remoteFile, err := ssh.Exec(&ssh.ConnectionExecOptions{Host: uri.String(), Identity: iden, Port: port, User: uri.User, Args: []string{"mktemp"}}, sshEngine)