def test____sets_url(self): secret = factory.make_bytes() expected_url = factory.make_simple_http_url() register_command.run( self.make_args(url=expected_url, secret=to_hex(secret))) with ClusterConfiguration.open() as config: observed = config.maas_url self.assertEqual([expected_url], observed)
def test__restarts_maas_rackd_service(self): url = factory.make_simple_http_url() secret = factory.make_bytes() register_command.run(self.make_args(url=url, secret=to_hex(secret))) self.assertThat( self.mock_call_and_check, MockCallsMatch(call(['systemctl', 'stop', 'maas-rackd']), call(['systemctl', 'enable', 'maas-rackd']), call(['systemctl', 'start', 'maas-rackd'])))
def test__prompts_user_for_secret(self): url = factory.make_simple_http_url() expected_previous_value = factory.make_bytes() set_shared_secret_on_filesystem(expected_previous_value) InstallSharedSecretScript_mock = self.patch( register_command, "InstallSharedSecretScript") args = self.make_args(url=url, secret=None) register_command.run(args) observed = get_shared_secret_from_filesystem() self.expectThat(expected_previous_value, Equals(observed)) self.expectThat(InstallSharedSecretScript_mock.run, MockCalledOnceWith(args))
def test___prompts_user_for_url(self): expected_url = factory.make_simple_http_url() secret = factory.make_bytes() stdin = self.patch(register_command, "stdin") stdin.isatty.return_value = True input = self.patch(register_command, "input") input.return_value = expected_url register_command.run(self.make_args(url=None, secret=to_hex(secret))) with ClusterConfiguration.open() as config: observed = config.maas_url self.expectThat(input, MockCalledOnceWith("MAAS region controller URL: ")) self.expectThat([expected_url], Equals(observed))
def test__show_service_start_error(self): url = factory.make_simple_http_url() secret = factory.make_bytes() register_command.run(self.make_args(url=url, secret=to_hex(secret))) mock_call_and_check = self.patch(register_command, 'call_and_check') mock_call_and_check.side_effect = [ call(), call(), ExternalProcessError(1, 'systemctl start', 'mock error'), ] mock_stderr = self.patch(register_command.stderr, 'write') with ExpectedException(SystemExit): register_command.run(self.make_args(url=url, secret=to_hex(secret))) self.assertThat( mock_stderr, MockCallsMatch( call('Unable to enable and start the maas-rackd service.'), call('\n'), call('Failed with error: mock error.'), call('\n'), ))
def test__show_service_stop_error(self): url = factory.make_simple_http_url() secret = factory.make_bytes() register_command.run(self.make_args(url=url, secret=to_hex(secret))) mock_call_and_check = self.patch(register_command, "call_and_check") mock_call_and_check.side_effect = [ ExternalProcessError(1, "systemctl stop", "mock error"), call(), call(), ] mock_stderr = self.patch(register_command.stderr, "write") with ExpectedException(SystemExit): register_command.run(self.make_args(url=url, secret=to_hex(secret))) self.assertThat( mock_stderr, MockCallsMatch( call("Unable to stop maas-rackd service."), call("\n"), call("Failed with error: mock error."), call("\n"), ), )
def test__deletes_maas_id_file(self): self.useFixture(MAASIDFixture(factory.make_string())) url = factory.make_simple_http_url() secret = factory.make_bytes() register_command.run(self.make_args(url=url, secret=to_hex(secret))) self.assertIsNone(get_maas_id())
def test___sets_secret(self): url = factory.make_simple_http_url() expected = factory.make_bytes() register_command.run(self.make_args(url=url, secret=to_hex(expected))) observed = get_shared_secret_from_filesystem() self.assertEqual(expected, observed)