hashicorp / hashicorp/packer-plugin-sdk

Clarify if `ssh_timeout` and `ssh_handshake_attempts` are mutually exclusive

Open
#217 0 comments 1 reaction 0 assignees View on GitHub
bug
Dominant language
Go
Stars
42
Forks
62
Avg merge
29m
Merged PRs (30d)
2

Description

#### Description

[The documentation](https://developer.hashicorp.com/packer/plugins/builders/vsphere/vsphere-iso#optional-ssh-fields) says the following:

> [ssh_timeout](https://developer.hashicorp.com/packer/plugins/builders/vsphere/vsphere-iso#ssh_timeout) (duration string | ex: "1h5m2s") - The time to wait for SSH to become available. Packer uses this to determine when the machine has booted so this is usually quite long. Example value: 10m. This defaults to 5m, unless ssh_handshake_attempts is set.
>
> […]
>
> [ssh_handshake_attempts](https://developer.hashicorp.com/packer/plugins/builders/vsphere/vsphere-iso#ssh_handshake_attempts) (int) - The number of handshakes to attempt with SSH once it can connect. This defaults to 10, unless a ssh_timeout is set.

This leaves me wondering:

1. Are the `ssh_timeout` and `ssh_handshake_attempts` fields mutually exclusive? It kind of sounds like that, but it's not clear.
1. What is the value of `ssh_timeout` if `ssh_handshake_attempts` is set (and vice versa)? (if they are not mutually exclusive, of course).

This should be clarified in the documentation.

I think that the root cause for my confusion is that the default values are explained with so many conditions. If I have understood things correctly, these are the possible states for the default values:

| `ssh_timeout` is set | `ssh_handshake_attempts` is set | `ssh_timeout` default value | `ssh_handshake_attempts` default value |
|--------|--------|--------|--------|
| True | True | - | - |
| False | True | 5 min | - |
| True | False | - | 10 |
| False | False | 5 min | 10 |

**Does this table correctly represent all possible states?** If so, I see no reason for all the conditionals in explaining the fields' default values. If my table is correct, we can simply say that _"the default value for `ssh_timeout` is 5 min and the default value for `ssh_handshake_attempts` is 10"_.

#### Use Case(s)

The documentation should be clear on how things works.

#### Potential References

Originally posted as https://github.com/hashicorp/packer-plugin-vsphere/issues/289

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.