Skip to content

Commit

Permalink
Add support for writing Day2 API tests
Browse files Browse the repository at this point in the history
  - Reuse existing TF configuration
  - Always return fresh TF state
  - Clear nodes cache
  - Fetch reuested number of Day2 nodes from environment
  • Loading branch information
mchernik committed Mar 9, 2021
1 parent a66f397 commit b3dc4bb
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@ class TerraformController(LibvirtController):

def __init__(self, **kwargs):
super().__init__(**kwargs)
self.cluster_suffix = self._get_random_name()
self.cluster_suffix = kwargs.get('cluster_suffix', self._get_random_name())
self.cluster_name = kwargs.get('cluster_name', f'{consts.CLUSTER_PREFIX}' + "-" + self.cluster_suffix)
self.network_name = kwargs.get('network_name', consts.TEST_NETWORK) + self.cluster_suffix
self.network_conf = kwargs.get('net_asset')
self.cluster_domain = kwargs.get('base_domain', "redhat.com")
self.ipv6 = kwargs.get('ipv6')
self.params = self._terraform_params(**kwargs)
self.tf_folder = self._create_tf_folder()
tf_folder = kwargs.get('tf_folder')
self.tf_folder = tf_folder if tf_folder else self._create_tf_folder()
self.image_path = kwargs["iso_download_path"]
self.bootstrap_in_place = kwargs.get('bootstrap_in_place', False)
self.tf = terraform_utils.TerraformUtils(working_dir=self.tf_folder)
Expand Down
2 changes: 2 additions & 0 deletions discovery-infra/test_infra/helper_classes/cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ def __init__(self, api_client, cluster_name=None, additional_ntp_source=None,
self._high_availability_mode = high_availability_mode
if cluster_id:
self.id = cluster_id
cluster_details = api_client.cluster_get(cluster_id)
self.name = cluster_details.name
else:
cluster_name = cluster_name or env_variables.get('cluster_name', "test-infra-cluster")
self.id = self._create(cluster_name, additional_ntp_source, openshift_version,
Expand Down
4 changes: 4 additions & 0 deletions discovery-infra/test_infra/helper_classes/nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ def __iter__(self) -> Iterator[Node]:
for n in self.nodes:
yield n

def drop_cache(self):
self._nodes = None
self._nodes_as_dict = None

def get_masters(self):
return [node for node in self.nodes if node.is_master_in_name()]

Expand Down
1 change: 1 addition & 0 deletions discovery-infra/test_infra/tools/terraform_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ def change_variables(self, variables, refresh=True):
self.apply(refresh=refresh)

def get_state(self):
self.tf.read_state_file("terraform.tfstate")
return self.tf.tfstate

def set_new_vip(self, api_vip):
Expand Down
1 change: 1 addition & 0 deletions discovery-infra/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ def _get_cluster_name():
"base_domain": utils.get_env('BASE_DOMAIN', "redhat.com"),
"num_masters": int(utils.get_env('NUM_MASTERS', consts.NUMBER_OF_MASTERS)),
"num_workers": max(2, int(utils.get_env('NUM_WORKERS', 0))),
"num_day2_workers": int(utils.get_env('NUM_DAY2_WORKERS', 0)),
"vip_dhcp_allocation": bool(util.strtobool(utils.get_env('VIP_DHCP_ALLOCATION'))),
"worker_memory": int(utils.get_env('WORKER_MEMORY', '8892')),
"master_memory": int(utils.get_env('MASTER_MEMORY', '16984')),
Expand Down

0 comments on commit b3dc4bb

Please sign in to comment.