Skip to content

Commit

Permalink
Add support for writing Day2 API tests (#599)
Browse files Browse the repository at this point in the history
* Add support for writing Day2 API tests

  - Reuse existing TF configuration
  - Always return fresh TF state
  - Clear nodes cache
  - Fetch reuested number of Day2 nodes from environment

* Moved terraform state file name to a constant
  • Loading branch information
mchernik authored Mar 17, 2021
1 parent 323c581 commit 4bc6c9b
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 3 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
1 change: 1 addition & 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,7 @@ 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
self.name = cluster_name or api_client.cluster_get(cluster_id).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
4 changes: 3 additions & 1 deletion discovery-infra/test_infra/tools/terraform_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@

class TerraformUtils:
VAR_FILE = "terraform.tfvars.json"
STATE_FILE = "terraform.tfstate"

def __init__(self, working_dir):
logging.info("TF FOLDER %s ", working_dir)
self.working_dir = working_dir
self.var_file_path = os.path.join(working_dir, self.VAR_FILE)
self.tf = Terraform(working_dir=working_dir, state="terraform.tfstate", var_file=self.VAR_FILE)
self.tf = Terraform(working_dir=working_dir, state=self.STATE_FILE, var_file=self.VAR_FILE)
self.init_tf()

def init_tf(self):
Expand All @@ -36,6 +37,7 @@ def change_variables(self, variables, refresh=True):
self.apply(refresh=refresh)

def get_state(self):
self.tf.read_state_file(self.STATE_FILE)
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 4bc6c9b

Please sign in to comment.