def create_hosts(self): hosts_to_create = [ ("host1", "12345", "host1.domain.test"), ("host2", "54321", "host1.domain.test"), # the same fqdn is intentional ("host3", "56789", "host2.domain.test"), ] host_list = [] for host in hosts_to_create: host_wrapper = HostWrapper() host_wrapper.account = ACCOUNT host_wrapper.tags = copy.deepcopy(TAGS) host_wrapper.display_name = host[0] host_wrapper.insights_id = host[1] host_wrapper.fqdn = host[2] host_wrapper.facts = [{ "namespace": "ns1", "facts": { "key1": "value1" } }] response_data = self.post(HOST_URL, host_wrapper.data(), 201) host_list.append(HostWrapper(response_data)) return host_list
def test_create_host_with_empty_tags_facts_display_name_then_update(self): # Create a host with empty tags, facts, and display_name # then update those fields host_data = HostWrapper(test_data(facts=None)) del host_data.tags del host_data.display_name del host_data.facts expected_tags = [] # initial create results = self.post(HOST_URL, host_data.data(), 201) self.assertIsNotNone(results["id"]) original_id = results["id"] host_data.tags = ["aws/new_tag_1:new_value_1", "aws/k:v"] host_data.facts = FACTS host_data.display_name = "expected_display_name" self.post(HOST_URL, host_data.data(), 200) data = self.get("%s/%s" % (HOST_URL, original_id), 200) results = HostWrapper(data["results"][0]) self.assertListEqual(results.tags, expected_tags) self.assertListEqual(results.facts, host_data.facts) self.assertEqual(results.display_name, host_data.display_name)
def create_hosts(self): hosts_to_create = [("host1", "12345"), ("host2", "54321")] host_list = [] for host in hosts_to_create: host_wrapper = HostWrapper() host_wrapper.account = ACCOUNT host_wrapper.tags = TAGS host_wrapper.display_name = host[0] host_wrapper.insights_id = host[1] host_wrapper.facts = [{ "namespace": "ns1", "facts": { "key1": "value1" } }] response_data = self.post(HOST_URL, host_wrapper.data(), 201) host_list.append(HostWrapper(response_data)) return host_list
def test_create_host_with_empty_tags_facts_display_name_then_update(self): # Create a host with empty tags, facts, and display_name # then update those fields host_data = HostWrapper(test_data(facts=None)) del host_data.tags del host_data.display_name del host_data.facts # Tags are currently ignored on create and update expected_tags = [] # Create the host results = self.post(HOST_URL, host_data.data(), 201) self.assertIsNotNone(results["id"]) original_id = results["id"] # Update the tags, facts and display name host_data.tags = ["aws/new_tag_1:new_value_1", "aws/k:v"] host_data.facts = copy.deepcopy(FACTS) host_data.display_name = "expected_display_name" # Update the hosts self.post(HOST_URL, host_data.data(), 200) host_lookup_results = self.get("%s/%s" % (HOST_URL, original_id), 200) self._validate_host(host_lookup_results["results"][0], host_data, expected_id=original_id, verify_tags=False) # Tagging is not supported at the moment. Verity the tag was ignored results = HostWrapper(host_lookup_results["results"][0]) self.assertListEqual(results.tags, expected_tags)
def create_hosts(self): hosts_to_create = [ ( "host1", generate_uuid(), "host1.domain.test", [ { "namespace": "NS1", "key": "key1", "value": "val1" }, { "namespace": "NS1", "key": "key2", "value": "val1" }, { "namespace": "SPECIAL", "key": "tag", "value": "ToFind" }, { "namespace": "no", "key": "key", "value": None }, ], ), ( "host2", generate_uuid(), "host1.domain.test", [ { "namespace": "NS1", "key": "key1", "value": "val1" }, { "namespace": "NS2", "key": "key2", "value": "val2" }, { "namespace": "NS3", "key": "key3", "value": "val3" }, ], ), # the same fqdn is intentional ( "host3", generate_uuid(), "host2.domain.test", [ { "namespace": "NS2", "key": "key2", "value": "val2" }, { "namespace": "NS3", "key": "key3", "value": "val3" }, { "namespace": "NS1", "key": "key3", "value": "val3" }, { "namespace": None, "key": "key4", "value": "val4" }, { "namespace": None, "key": "key5", "value": None }, ], ), ] if hasattr(self, "hosts_to_create"): self.hosts_to_create = hosts_to_create + self.hosts_to_create else: self.hosts_to_create = hosts_to_create host_list = [] mock_event_producer = MockEventProducer() for host in self.hosts_to_create: host_wrapper = HostWrapper() host_wrapper.account = ACCOUNT host_wrapper.display_name = host[0] host_wrapper.insights_id = generate_uuid() host_wrapper.rhel_machine_id = generate_uuid() host_wrapper.subscription_manager_id = generate_uuid() host_wrapper.satellite_id = generate_uuid() host_wrapper.bios_uuid = generate_uuid() host_wrapper.ip_addresses = ["10.0.0.2"] host_wrapper.fqdn = host[2] host_wrapper.mac_addresses = ["aa:bb:cc:dd:ee:ff"] host_wrapper.external_id = generate_uuid() host_wrapper.facts = [{ "namespace": "ns1", "facts": { "key1": "value1" } }] host_wrapper.tags = host[3] host_wrapper.stale_timestamp = now().isoformat() host_wrapper.reporter = "test" message = {"operation": "add_host", "data": host_wrapper.data()} with self.app.app_context(): handle_message(json.dumps(message), mock_event_producer) response_data = json.loads(mock_event_producer.event) # add facts object since it's not returned by message host_data = { **response_data["host"], "facts": message["data"]["facts"] } host_list.append(HostWrapper(host_data)) return host_list