def servers_in_db(cls, name=None, feed=None, provider=None, product=None, server_group=None, strict=True): servers = [] rows = _db_select_query(name=name, feed=feed, provider=provider, product=product, server_group=server_group).all() _provider = provider for server in rows: if strict: _provider = get_crud_by_name(server.provider_name) servers.append( MiddlewareServer(name=server.name, hostname=server.hostname, feed=server.feed, product=server.product, db_id=server.id, provider=_provider, properties=parse_properties( server.properties))) return servers
def domains(cls, provider=None, strict=True): domains = [] _get_domains_page(provider=provider) if sel.is_displayed(list_tbl): _provider = provider for _ in paginator.pages(): for row in list_tbl.rows(): if strict: _provider = get_crud_by_name(row.provider.text) domains.append(MiddlewareDomain( name=row.domain_name.text, feed=row.feed.text, provider=_provider)) return domains
def domains(cls, provider=None, strict=True): domains = [] _get_domains_page(provider=provider) if sel.is_displayed(list_tbl): _provider = provider for _ in paginator.pages(): for row in list_tbl.rows(): if strict: _provider = get_crud_by_name(row.provider.text) domains.append( MiddlewareDomain(name=row.domain_name.text, feed=row.feed.text, provider=_provider)) return domains
def domains_in_db(cls, name=None, feed=None, provider=None, strict=True): domains = [] rows = _db_select_query(name=name, feed=feed, provider=provider).all() _provider = provider for domain in rows: if strict: _provider = get_crud_by_name(domain.provider_name) domains.append(MiddlewareDomain( name=domain.name, feed=domain.feed, db_id=domain.id, provider=_provider, properties=parse_properties(domain.properties))) return domains
def domains_in_db(cls, name=None, feed=None, provider=None, strict=True): domains = [] rows = _db_select_query(name=name, feed=feed, provider=provider).all() _provider = provider for domain in rows: if strict: _provider = get_crud_by_name(domain.provider_name) domains.append( MiddlewareDomain(name=domain.name, feed=domain.feed, db_id=domain.id, provider=_provider, properties=parse_properties( domain.properties))) return domains
def servers(cls, provider=None, server_group=None, strict=True): servers = [] _get_servers_page(provider=provider, server_group=server_group) if sel.is_displayed(list_tbl): _provider = provider for _ in paginator.pages(): for row in list_tbl.rows(): if strict: _provider = get_crud_by_name(row.provider.text) servers.append( MiddlewareServer(name=row.server_name.text, feed=row.feed.text, hostname=row.host_name.text, product=row.product.text if row.product.text else None, provider=_provider)) return servers
def deployment_in_db(self): deployment = _db_select_query(name=self.name, server=self.server, provider=self.provider).first() if deployment: _provider = get_crud_by_name(deployment.provider_name) _server = MiddlewareServer(name=deployment.server_name, feed=deployment.feed, provider=_provider) return MiddlewareDeployment(nativeid=deployment.nativeid, name=deployment.name, hostname=deployment.host_name, status=deployment.status, server=_server, provider=_provider, db_id=deployment.id) return None
def servers(cls, provider=None, server_group=None, strict=True): servers = [] _get_servers_page(provider=provider, server_group=server_group) if sel.is_displayed(list_tbl): _provider = provider for _ in paginator.pages(): for row in list_tbl.rows(): if strict: _provider = get_crud_by_name(row.provider.text) servers.append(MiddlewareServer( name=row.server_name.text, feed=row.feed.text, hostname=row.host_name.text, product=row.product.text if row.product.text else None, provider=_provider)) return servers
def deployment_in_db(self): deployment = _db_select_query(name=self.name, server=self.server, provider=self.provider).first() if deployment: _provider = get_crud_by_name(deployment.provider_name) _server = MiddlewareServer( name=deployment.server_name, feed=deployment.feed, provider=_provider) return MiddlewareDeployment( nativeid=deployment.nativeid, name=deployment.name, hostname=deployment.host_name, status=deployment.status, server=_server, provider=_provider, db_id=deployment.id) return None
def servers_in_db(cls, name=None, feed=None, provider=None, product=None, server_group=None, strict=True): servers = [] rows = _db_select_query(name=name, feed=feed, provider=provider, product=product, server_group=server_group).all() _provider = provider for server in rows: if strict: _provider = get_crud_by_name(server.provider_name) servers.append(MiddlewareServer( name=server.name, hostname=server.hostname, feed=server.feed, product=server.product, db_id=server.id, provider=_provider, properties=parse_properties(server.properties))) return servers
def test_cluster_relationships(soft_assert): path = [ "Relationships", "Virtual Machines, Folders, Clusters", "Cluster Relationships" ] report = CannedSavedReport.new(path) for relation in report.data.rows: name = relation["Name"] provider_name = relation["Provider Name"] if not provider_name.strip(): # If no provider name specified, ignore it continue provider = get_crud_by_name(provider_name).mgmt host_name = relation["Host Name"].strip() soft_assert(name in provider.list_cluster(), "Cluster {} not found in {}".format(name, provider_name)) if not host_name: continue # No host name host_ip = resolve_hostname(host_name, force=True) if host_ip is None: # Don't check continue for host in provider.list_host(): if ip_address.match(host) is None: host_is_ip = False ip_from_provider = resolve_hostname(host, force=True) else: host_is_ip = True ip_from_provider = host if not host_is_ip: # Strings first if host == host_name: break elif host_name.startswith(host): break elif ip_from_provider is not None and ip_from_provider == host_ip: break else: if host_ip == ip_from_provider: break else: soft_assert( False, "Hostname {} not found in {}".format(host_name, provider_name))
def deployments_in_db(cls, server=None, provider=None, strict=True): deployments = [] rows = _db_select_query(server=server, provider=provider).all() _provider = provider for deployment in rows: if strict: _provider = get_crud_by_name(deployment.provider_name) _server = MiddlewareServer(name=deployment.server_name, feed=deployment.feed, provider=provider) deployments.append( MiddlewareDeployment(nativeid=deployment.nativeid, name=deployment.name, db_id=deployment.id, hostname=deployment.host_name, status=deployment.status, server=_server, provider=_provider)) return deployments
def messagings_in_db(cls, server=None, provider=None, strict=True): messagings = [] rows = _db_select_query(server=server, provider=provider).all() _provider = provider for messaging in rows: if strict: _provider = get_crud_by_name(messaging.provider_name) _server = MiddlewareServer(name=messaging.server_name, feed=messaging.feed, provider=provider) messagings.append( MiddlewareMessaging(nativeid=messaging.nativeid, name=messaging.name, db_id=messaging.id, server=_server, provider=_provider, messaging_type=messaging.messaging_type, properties=parse_properties( messaging.properties))) return messagings
def deployments_in_db(cls, server=None, provider=None, strict=True): deployments = [] rows = _db_select_query(server=server, provider=provider).all() _provider = provider for deployment in rows: if strict: _provider = get_crud_by_name(deployment.provider_name) _server = MiddlewareServer( name=deployment.server_name, feed=deployment.feed, provider=provider) deployments.append(MiddlewareDeployment( nativeid=deployment.nativeid, name=deployment.name, db_id=deployment.id, hostname=deployment.host_name, status=deployment.status, server=_server, provider=_provider)) return deployments
def datasources_in_db(cls, server=None, provider=None, strict=True): datasources = [] rows = _db_select_query(server=server, provider=provider).all() _provider = provider for datasource in rows: if strict: _provider = get_crud_by_name(datasource.provider_name) _server = MiddlewareServer( name=datasource.server_name, feed=datasource.feed, provider=provider) datasources.append(MiddlewareDatasource( nativeid=datasource.nativeid, name=datasource.name, db_id=datasource.id, server=_server, provider=_provider, hostname=datasource.hostname, properties=parse_properties(datasource.properties))) return datasources
def messagings_in_db(cls, server=None, provider=None, strict=True): messagings = [] rows = _db_select_query(server=server, provider=provider).all() _provider = provider for messaging in rows: if strict: _provider = get_crud_by_name(messaging.provider_name) _server = MiddlewareServer( name=messaging.server_name, feed=messaging.feed, provider=provider) messagings.append(MiddlewareMessaging( nativeid=messaging.nativeid, name=messaging.name, db_id=messaging.id, server=_server, provider=_provider, messaging_type=messaging.messaging_type, properties=parse_properties(messaging.properties))) return messagings
def test_custom_vm_report(soft_assert, report_vms): if since_date_or_version(version="5.4.0.0.25"): cluster = "Cluster / Deployment Role Name" host = "Host / Node Name" else: cluster = "Cluster Name" host = "Host Name" for row in report_vms: if row["Name"].startswith("test_"): continue # Might disappear meanwhile provider_name = row["Cloud/Infrastructure Provider Name"] provider = get_crud_by_name(provider_name).mgmt provider_hosts_and_ips = utils.net.resolve_ips(provider.list_host()) provider_datastores = provider.list_datastore() provider_clusters = provider.list_cluster() soft_assert(provider.does_vm_exist(row["Name"]), "VM {} does not exist in {}!".format( row["Name"], provider_name )) if row[cluster]: soft_assert( row[cluster] in provider_clusters, "Cluster {} not found in {}!".format(row[cluster], str(provider_clusters)) ) if row["Datastore Name"]: soft_assert( row["Datastore Name"] in provider_datastores, "Datastore {} not found in {}!".format( row["Datastore Name"], str(provider_datastores)) ) # Because of mixing long and short host names, we have to use both-directional `in` op. if row[host]: found = False possible_ips_or_hosts = utils.net.resolve_ips((row[host], )) for possible_ip_or_host in possible_ips_or_hosts: for host_ip in provider_hosts_and_ips: if possible_ip_or_host in host_ip or host_ip in possible_ip_or_host: found = True soft_assert( found, "Host {} not found in {}!".format(possible_ips_or_hosts, provider_hosts_and_ips) )
def test_custom_vm_report(soft_assert, report_vms): if since_date_or_version(version="5.4.0.0.25"): cluster = "Cluster / Deployment Role Name" host = "Host / Node Name" else: cluster = "Cluster Name" host = "Host Name" for row in report_vms: if row["Name"].startswith("test_"): continue # Might disappear meanwhile provider_name = row["Cloud/Infrastructure Provider Name"] provider = get_crud_by_name(provider_name).mgmt provider_hosts_and_ips = utils.net.resolve_ips(provider.list_host()) provider_datastores = provider.list_datastore() provider_clusters = provider.list_cluster() soft_assert( provider.does_vm_exist(row["Name"]), "VM {} does not exist in {}!".format(row["Name"], provider_name)) if row[cluster]: soft_assert( row[cluster] in provider_clusters, "Cluster {} not found in {}!".format(row[cluster], str(provider_clusters))) if row["Datastore Name"]: soft_assert( row["Datastore Name"] in provider_datastores, "Datastore {} not found in {}!".format( row["Datastore Name"], str(provider_datastores))) # Because of mixing long and short host names, we have to use both-directional `in` op. if row[host]: found = False possible_ips_or_hosts = utils.net.resolve_ips((row[host], )) for possible_ip_or_host in possible_ips_or_hosts: for host_ip in provider_hosts_and_ips: if possible_ip_or_host in host_ip or host_ip in possible_ip_or_host: found = True soft_assert( found, "Host {} not found in {}!".format(possible_ips_or_hosts, provider_hosts_and_ips))
def test_cluster_relationships(soft_assert): path = ["Relationships", "Virtual Machines, Folders, Clusters", "Cluster Relationships"] report = CannedSavedReport.new(path) for relation in report.data.rows: name = relation["Name"] provider_name = relation["Provider Name"] if not provider_name.strip(): # If no provider name specified, ignore it continue provider = get_crud_by_name(provider_name).mgmt host_name = relation["Host Name"].strip() soft_assert(name in provider.list_cluster(), "Cluster {} not found in {}".format( name, provider_name )) if not host_name: continue # No host name host_ip = resolve_hostname(host_name, force=True) if host_ip is None: # Don't check continue for host in provider.list_host(): if ip_address.match(host) is None: host_is_ip = False ip_from_provider = resolve_hostname(host, force=True) else: host_is_ip = True ip_from_provider = host if not host_is_ip: # Strings first if host == host_name: break elif host_name.startswith(host): break elif ip_from_provider is not None and ip_from_provider == host_ip: break else: if host_ip == ip_from_provider: break else: soft_assert(False, "Hostname {} not found in {}".format(host_name, provider_name))
def parent_provider(self): """ Return object of parent cloud provider """ view = navigate_to(self, 'Details') provider_name = view.entities.relationships.get_text_of( 'Parent ems cloud') return providers.get_crud_by_name(provider_name)