1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- """
- Test for ssh_pre_flight roster option
- """
- import os
- import salt.utils.files
- from tests.support.case import SSHCase
- from tests.support.helpers import slowTest
- from tests.support.runtests import RUNTIME_VARS
- class SSHPreFlightTest(SSHCase):
- """
- Test ssh_pre_flight roster option
- """
- def setUp(self):
- super().setUp()
- self.roster = os.path.join(RUNTIME_VARS.TMP, "pre_flight_roster")
- self.data = {
- "ssh_pre_flight": os.path.join(RUNTIME_VARS.TMP, "ssh_pre_flight.sh")
- }
- self.test_script = os.path.join(
- RUNTIME_VARS.TMP, "test-pre-flight-script-worked.txt"
- )
- def _create_roster(self):
- self.custom_roster(self.roster, self.data)
- with salt.utils.files.fopen(self.data["ssh_pre_flight"], "w") as fp_:
- fp_.write("touch {}".format(self.test_script))
- @slowTest
- def test_ssh_pre_flight(self):
- """
- test ssh when ssh_pre_flight is set
- ensure the script runs successfully
- """
- self._create_roster()
- assert self.run_function("test.ping", roster_file=self.roster)
- assert os.path.exists(self.test_script)
- @slowTest
- def test_ssh_run_pre_flight(self):
- """
- test ssh when --pre-flight is passed to salt-ssh
- to ensure the script runs successfully
- """
- self._create_roster()
- # make sure we previously ran a command so the thin dir exists
- self.run_function("test.ping", wipe=False)
- assert not os.path.exists(self.test_script)
- assert self.run_function(
- "test.ping", ssh_opts="--pre-flight", roster_file=self.roster, wipe=False
- )
- assert os.path.exists(self.test_script)
- @slowTest
- def test_ssh_run_pre_flight_failure(self):
- """
- test ssh_pre_flight when there is a failure
- in the script.
- """
- self._create_roster()
- with salt.utils.files.fopen(self.data["ssh_pre_flight"], "w") as fp_:
- fp_.write("exit 2")
- ret = self.run_function(
- "test.ping", ssh_opts="--pre-flight", roster_file=self.roster, wipe=False
- )
- assert ret["retcode"] == 2
- def tearDown(self):
- """
- make sure to clean up any old ssh directories
- """
- files = [self.roster, self.data["ssh_pre_flight"], self.test_script]
- for fp_ in files:
- if os.path.exists(fp_):
- os.remove(fp_)
|