def create_nodes(conf, inventory, osp_cred, run_id, report_portal_session=None, instances_name=None): if report_portal_session: name = create_unique_test_name("ceph node creation", test_names) test_names.append(name) desc = "Ceph cluster preparation" report_portal_session.start_test_item(name=name, description=desc, start_time=timestamp(), item_type="STEP") log.info("Destroying existing osp instances..") cleanup_ceph_nodes(osp_cred, instances_name) ceph_cluster_dict = {} log.info('Creating osp instances') for cluster in conf.get('globals'): ceph_vmnodes = create_ceph_nodes(cluster, inventory, osp_cred, run_id, instances_name) ceph_nodes = [] clients = [] for node in ceph_vmnodes.values(): if node.role == 'win-iscsi-clients': clients.append(WinNode(ip_address=node.ip_address, private_ip=node.get_private_ip())) else: ceph = CephNode(username='******', password='******', root_password='******', root_login=node.root_login, role=node.role, no_of_volumes=node.no_of_volumes, ip_address=node.ip_address, subnet=node.subnet, private_ip=node.get_private_ip(), hostname=node.hostname, ceph_vmnode=node) ceph_nodes.append(ceph) cluster_name = cluster.get('ceph-cluster').get('name', 'ceph') ceph_cluster_dict[cluster_name] = Ceph(cluster_name, ceph_nodes) # TODO: refactor cluster dict to cluster list log.info('Done creating osp instances') log.info("Waiting for Floating IPs to be available") log.info("Sleeping 15 Seconds") time.sleep(15) for cluster_name, cluster in ceph_cluster_dict.items(): for instance in cluster: try: instance.connect() except BaseException: if report_portal_session: report_portal_session.finish_test_item(end_time=timestamp(), status="FAILED") raise if report_portal_session: report_portal_session.finish_test_item(end_time=timestamp(), status="PASSED") return ceph_cluster_dict, clients
def create_nodes( conf, inventory, osp_cred, run_id, cloud_type="openstack", report_portal_session=None, instances_name=None, enable_eus=False, rp_logger: Optional[ReportPortal] = None, ): """Creates the system under test environment.""" if report_portal_session: name = create_unique_test_name("ceph node creation", test_names) test_names.append(name) desc = "Ceph cluster preparation" rp_logger.start_test_item(name=name, description=desc, item_type="STEP") log.info("Destroying existing osp instances..") if cloud_type == "openstack": cleanup_ceph_nodes(osp_cred, instances_name) elif cloud_type == "ibmc": cleanup_ibmc_ceph_nodes(osp_cred, instances_name) ceph_cluster_dict = {} log.info("Creating osp instances") clients = [] for cluster in conf.get("globals"): if cloud_type == "openstack": ceph_vmnodes = create_ceph_nodes( cluster, inventory, osp_cred, run_id, instances_name, enable_eus=enable_eus, ) elif cloud_type == "ibmc": ceph_vmnodes = create_ibmc_ceph_nodes(cluster, inventory, osp_cred, run_id, instances_name) elif cloud_type == "baremetal": ceph_vmnodes = create_baremetal_ceph_nodes(cluster) ceph_nodes = [] root_password = None for node in ceph_vmnodes.values(): look_for_key = False private_key_path = "" if cloud_type == "openstack": private_ip = node.get_private_ip() elif cloud_type == "baremetal": private_key_path = node.private_key if node.private_key else "" private_ip = node.ip_address look_for_key = True if node.private_key else False root_password = node.root_password elif cloud_type == "ibmc": glbs = osp_cred.get("globals") ibmc = glbs.get("ibm-credentials") private_key_path = ibmc.get("private_key_path") private_ip = node.ip_address look_for_key = True if node.role == "win-iscsi-clients": clients.append( WinNode(ip_address=node.ip_address, private_ip=private_ip)) else: ceph = CephNode( username="******", password="******", root_password="******" if not root_password else root_password, look_for_key=look_for_key, private_key_path=private_key_path, root_login=node.root_login, role=node.role, no_of_volumes=node.no_of_volumes, ip_address=node.ip_address, subnet=node.subnet, private_ip=private_ip, hostname=node.hostname, ceph_vmnode=node, ) ceph_nodes.append(ceph) cluster_name = cluster.get("ceph-cluster").get("name", "ceph") ceph_cluster_dict[cluster_name] = Ceph(cluster_name, ceph_nodes) # TODO: refactor cluster dict to cluster list log.info("Done creating osp instances") log.info("Waiting for Floating IPs to be available") log.info("Sleeping 15 Seconds") time.sleep(15) for cluster_name, cluster in ceph_cluster_dict.items(): for instance in cluster: try: instance.connect() except BaseException: rp_logger.finish_test_item(status="FAILED") raise rp_logger.finish_test_item(status="PASSED") return ceph_cluster_dict, clients