diff --git a/insights/client/connection.py b/insights/client/connection.py index 05664cf02f..b3a67f56e8 100644 --- a/insights/client/connection.py +++ b/insights/client/connection.py @@ -25,7 +25,6 @@ from urllib.parse import quote from .utilities import (determine_hostname, generate_machine_id, - machine_id_exists, write_unregistered_file, write_registered_file, os_release_info, @@ -623,8 +622,6 @@ def _legacy_api_registration_check(self): string system is unregistered ''' logger.debug('Checking registration status...') - if not machine_id_exists(): - return None machine_id = generate_machine_id() try: url = self.api_url + '/v1/systems/' + machine_id @@ -674,9 +671,6 @@ def _fetch_system_by_machine_id(self): False system does not exist in inventory None error connection or parsing response ''' - - if not machine_id_exists(): - return False machine_id = generate_machine_id() try: # [circus music] diff --git a/insights/client/utilities.py b/insights/client/utilities.py index b2b3cc4e0f..bf79fe940f 100644 --- a/insights/client/utilities.py +++ b/insights/client/utilities.py @@ -119,6 +119,7 @@ def generate_machine_id(new=False, machine_id = str(uuid.uuid4()) logger.debug("Creating %s", destination_file) write_to_disk(destination_file, content=machine_id) + try: return str(uuid.UUID(str(machine_id).strip(), version=4)) except ValueError as e: @@ -128,13 +129,6 @@ def generate_machine_id(new=False, sys.exit(constants.sig_kill_bad) -def machine_id_exists(destination_file=constants.machine_id_file): - """ - Get the machine-id or None if /etc/insights-client/machine-id it does not exists - """ - return os.path.isfile(destination_file) - - def _expand_paths(path): """ Expand wildcarded paths diff --git a/insights/tests/client/connection/test_LEGACY_reg_check.py b/insights/tests/client/connection/test_LEGACY_reg_check.py index 5e628bd675..6655fb980f 100644 --- a/insights/tests/client/connection/test_LEGACY_reg_check.py +++ b/insights/tests/client/connection/test_LEGACY_reg_check.py @@ -5,10 +5,9 @@ @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_ok_reg(get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_ok_reg(get_proxies, _init_session, _): ''' Request completed OK, registered Returns True @@ -25,10 +24,9 @@ def test_registration_check_ok_reg(get_proxies, _init_session, _machine_id_exist @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_ok_reg_then_unreg(get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_ok_reg_then_unreg(get_proxies, _init_session, _): ''' Request completed OK, was once registered but has been unregistered Returns the date it was unregistered @@ -44,10 +42,10 @@ def test_registration_check_ok_reg_then_unreg(get_proxies, _init_session, _machi assert conn.api_registration_check() == '2019-04-10' -@patch("insights.client.connection.machine_id_exists", return_value=True) +@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_ok_unreg(get_proxies, _init_session, _machine_id_exists): +def test_registration_check_ok_unreg(get_proxies, _init_session, _): ''' Request completed OK, has never been registered Returns None @@ -64,10 +62,9 @@ def test_registration_check_ok_unreg(get_proxies, _init_session, _machine_id_exi @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_bad_res(get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_bad_res(get_proxies, _init_session, _): ''' Can't parse response Returns False @@ -84,11 +81,10 @@ def test_registration_check_bad_res(get_proxies, _init_session, _machine_id_exis @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") @patch("insights.client.connection.InsightsConnection.test_connection") -def test_registration_check_conn_error(test_connection, get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_conn_error(test_connection, get_proxies, _init_session, _): ''' Can't connect, run connection test Returns False diff --git a/insights/tests/client/connection/test_reg_check.py b/insights/tests/client/connection/test_reg_check.py index 3b3b72df18..c6dbca67e2 100644 --- a/insights/tests/client/connection/test_reg_check.py +++ b/insights/tests/client/connection/test_reg_check.py @@ -5,10 +5,9 @@ @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_ok_reg(get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_ok_reg(get_proxies, _init_session, _): ''' Request completed OK, registered Returns True @@ -36,10 +35,10 @@ def test_registration_check_ok_reg(get_proxies, _init_session, _machine_id_exist assert conn.api_registration_check() -@patch("insights.client.connection.machine_id_exists", return_value=False) +@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_ok_unreg(get_proxies, _init_session, _machine_id_exists): +def test_registration_check_ok_unreg(get_proxies, _init_session, _): ''' Request completed OK, has not been registered Returns False @@ -63,10 +62,9 @@ def test_registration_check_ok_unreg(get_proxies, _init_session, _machine_id_exi @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_parse_error(get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_parse_error(get_proxies, _init_session, _): ''' Can't parse response Returns None @@ -83,10 +81,9 @@ def test_registration_check_parse_error(get_proxies, _init_session, _machine_id_ @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_bad_res(get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_bad_res(get_proxies, _init_session, _): ''' Failure HTTP response Returns None @@ -103,10 +100,9 @@ def test_registration_check_bad_res(get_proxies, _init_session, _machine_id_exis @patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") -def test_registration_check_conn_error(get_proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_conn_error(get_proxies, _init_session, _): ''' Connection error Returns None diff --git a/insights/tests/client/support/test_collect_support_info.py b/insights/tests/client/support/test_collect_support_info.py index c78466df0e..96e43a72ba 100644 --- a/insights/tests/client/support/test_collect_support_info.py +++ b/insights/tests/client/support/test_collect_support_info.py @@ -112,18 +112,15 @@ def test_registration_check_registered_unreach(_, __): conn.api_registration_check.assert_called_once() -@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) +@patch('insights.client.connection.generate_machine_id', return_value="xxxx-xxx-xxxx-xxx") @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") @patch("insights.client.connection.InsightsConnection.get", return_value=Mock(status_code=404, content='{"detail": "System with insights_id ID not found"}')) @patch('insights.client.support.write_registered_file') @patch('insights.client.support.write_unregistered_file') @patch('insights.client.support.write_to_disk') -def test_registration_check_legacy_unregistered_good_json(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_legacy_unregistered_good_json(write_to_disk, write_unregistered_file, write_registered_file, _geturl, __, ___, _generate_machine_id): ''' - In this test insights-client has a machine-id file but is not registered in server, - it checks if insights-client write the unregistered files when it notices is not registered. Ensure that connection function is called and data processed. When the system is not registered the server sends a 404 error with a json content. Check that when the client get this response the registered file and the machine-id files @@ -139,15 +136,14 @@ def test_registration_check_legacy_unregistered_good_json(write_to_disk, write_u write_to_disk.assert_called_once() -@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) +@patch('insights.client.connection.generate_machine_id', return_value="xxxx-xxx-xxxx-xxx") @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") @patch("insights.client.connection.InsightsConnection.get", return_value=Mock(status_code=404, content='{Page Not Found}')) @patch('insights.client.support.write_registered_file') @patch('insights.client.support.write_unregistered_file') @patch('insights.client.support.write_to_disk') -def test_registration_check_legacy_unregistered_bad_json(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_legacy_unregistered_bad_json(write_to_disk, write_unregistered_file, write_registered_file, _geturl, __, ___, _generate_machine_id): ''' Ensure that connection function is called and data processed. Check a 404 from a forward that doesn't contain a json a content. @@ -163,18 +159,15 @@ def test_registration_check_legacy_unregistered_bad_json(write_to_disk, write_un write_to_disk.assert_not_called() -@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) +@patch('insights.client.connection.generate_machine_id', return_value="xxxx-xxx-xxxx-xxx") @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") @patch("insights.client.connection.InsightsConnection.get", return_value=Mock(status_code=200, content='{"unregistered_at": "2019-04-10"}')) @patch('insights.client.support.write_registered_file') @patch('insights.client.support.write_unregistered_file') @patch('insights.client.support.write_to_disk') -def test_registration_check_legacy_registered_then_unregistered(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _proxies, _init_session, _machine_id_exists, _generate_machine_id): +def test_registration_check_legacy_registered_then_unregistered(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _, __, _generate_machine_id): ''' - This test checks if insights-client removes the registration file when it notices it is not - registered through the API but has a machine-id file. Ensure that connection function is called and data processed. Legacy version responded with the unregistered_at as a json parameter. Check that when the client get this response the registered file and the machine-id files @@ -189,14 +182,13 @@ def test_registration_check_legacy_registered_then_unregistered(write_to_disk, w write_unregistered_file.assert_called_once() -@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) +@patch('insights.client.connection.generate_machine_id', return_value="xxxx-xxx-xxxx-xxx") @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") @patch("insights.client.connection.InsightsConnection.get", return_value=Mock(status_code=200, content='{"unregistered_at": null}')) @patch('insights.client.support.write_registered_file') @patch('insights.client.support.write_unregistered_file') -def test_registration_check_legacy_registered(write_unregistered_file, write_registered_file, _geturl, _proxy, _session, _machine_id_exists, _generate_machine_id): +def test_registration_check_legacy_registered(write_unregistered_file, write_registered_file, _geturl, _proxy, _session, _generate_machine_id): ''' Ensure that connection function is called and data processed. When the systems is registered it get a 200 message with a json with the unregistered_at=null @@ -212,15 +204,14 @@ def test_registration_check_legacy_registered(write_unregistered_file, write_reg write_unregistered_file.assert_not_called() -@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) +@patch('insights.client.connection.generate_machine_id', return_value="xxxx-xxx-xxxx-xxx") @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") @patch("insights.client.connection.InsightsConnection.get", return_value=Mock(status_code=502, content='zSDFasfghsRGH')) @patch('insights.client.support.write_registered_file') @patch('insights.client.support.write_unregistered_file') @patch('insights.client.support.write_to_disk') -def test_registration_check_legacy_bad_json(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _proxy, _session, _machine_id_exists, _generate_machine_id): +def test_registration_check_legacy_bad_json(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _, __, _generate_machine_id): ''' Ensure the function does not remove any file if a network error is encountered ''' @@ -235,15 +226,14 @@ def test_registration_check_legacy_bad_json(write_to_disk, write_unregistered_fi write_to_disk.assert_not_called() -@patch("insights.client.connection.generate_machine_id", return_value='xxxxxx') -@patch("insights.client.connection.machine_id_exists", return_value=True) +@patch('insights.client.connection.generate_machine_id', return_value="xxxx-xxx-xxxx-xxx") @patch("insights.client.connection.InsightsConnection._init_session") @patch("insights.client.connection.InsightsConnection.get_proxies") @patch("insights.client.connection.InsightsConnection.get", return_value=Mock(status_code=502, content='{"details": "Bad gateway"}')) @patch('insights.client.support.write_registered_file') @patch('insights.client.support.write_unregistered_file') @patch('insights.client.support.write_to_disk') -def test_registration_check_legacy_bad_connection(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _proxy, _session, _machine_id_exists, _generate_machine_id): +def test_registration_check_legacy_bad_connection(write_to_disk, write_unregistered_file, write_registered_file, _geturl, _, __, _generate_machine_id): ''' Ensure the function does not remove any file if a network error is encountered ''' diff --git a/insights/tests/client/test_utilities.py b/insights/tests/client/test_utilities.py index bb6f685aa4..3a6f34ec3e 100644 --- a/insights/tests/client/test_utilities.py +++ b/insights/tests/client/test_utilities.py @@ -51,10 +51,7 @@ def test_write_to_disk(): util.write_to_disk(filename, delete=True) is None -def test_get_machine_id(): - """ - Test get machine_id with generate_machine_id method, if the machine-id file exists - """ +def test_generate_machine_id(): machine_id_regex = re.match('\w{8}-\w{4}-\w{4}-\w{4}-\w{12}', util.generate_machine_id(destination_file='/tmp/testmachineid')) assert machine_id_regex.group(0) is not None @@ -64,7 +61,7 @@ def test_get_machine_id(): os.remove('/tmp/testmachineid') -def test_get_machineid_with_non_hyphen_id(): +def test_generate_machine_id_with_non_hyphen_id(): content = '86f6f5fad8284730b708a2e44ba5c14a' filename = '/tmp/testmachineid' util.write_to_disk(filename, content=content)