Add hypervisor information extension.
Adds a new extension to get information about hypervisors (as opposed to compute hosts), including a list of hypervisors matching a regular expression (database regular expression, i.e., %'s) and a list of hypervisors with the list of instances living on those hypervisors. Change-Id: I2e44e82e123e5e727b49622fe5e966131658f9f6
This commit is contained in:
		@@ -188,11 +188,21 @@ def service_update(context, service_id, values):
 | 
			
		||||
###################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def compute_node_get(context, compute_id):
 | 
			
		||||
    """Get a computeNode."""
 | 
			
		||||
    return IMPL.compute_node_get(context, compute_id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def compute_node_get_all(context):
 | 
			
		||||
    """Get all computeNodes."""
 | 
			
		||||
    return IMPL.compute_node_get_all(context)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def compute_node_search_by_hypervisor(context, hypervisor_match):
 | 
			
		||||
    """Get computeNodes given a hypervisor hostname match string."""
 | 
			
		||||
    return IMPL.compute_node_search_by_hypervisor(context, hypervisor_match)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def compute_node_create(context, values):
 | 
			
		||||
    """Create a computeNode from the values dictionary."""
 | 
			
		||||
    return IMPL.compute_node_create(context, values)
 | 
			
		||||
 
 | 
			
		||||
@@ -473,7 +473,7 @@ def service_update(context, service_id, values):
 | 
			
		||||
 | 
			
		||||
###################
 | 
			
		||||
 | 
			
		||||
def _compute_node_get(context, compute_id, session=None):
 | 
			
		||||
def compute_node_get(context, compute_id, session=None):
 | 
			
		||||
    result = model_query(context, models.ComputeNode, session=session).\
 | 
			
		||||
                     filter_by(id=compute_id).\
 | 
			
		||||
                     first()
 | 
			
		||||
@@ -491,6 +491,15 @@ def compute_node_get_all(context, session=None):
 | 
			
		||||
                    all()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@require_admin_context
 | 
			
		||||
def compute_node_search_by_hypervisor(context, hypervisor_match):
 | 
			
		||||
    field = models.ComputeNode.hypervisor_hostname
 | 
			
		||||
    return model_query(context, models.ComputeNode).\
 | 
			
		||||
                    options(joinedload('service')).\
 | 
			
		||||
                    filter(field.like('%%%s%%' % hypervisor_match)).\
 | 
			
		||||
                    all()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _get_host_utilization(context, host, ram_mb, disk_gb):
 | 
			
		||||
    """Compute the current utilization of a given host."""
 | 
			
		||||
    instances = instance_get_all_by_host(context, host)
 | 
			
		||||
@@ -542,7 +551,7 @@ def compute_node_update(context, compute_id, values, auto_adjust):
 | 
			
		||||
    if auto_adjust:
 | 
			
		||||
        _adjust_compute_node_values_for_utilization(context, values, session)
 | 
			
		||||
    with session.begin(subtransactions=True):
 | 
			
		||||
        compute_ref = _compute_node_get(context, compute_id, session=session)
 | 
			
		||||
        compute_ref = compute_node_get(context, compute_id, session=session)
 | 
			
		||||
        compute_ref.update(values)
 | 
			
		||||
        compute_ref.save(session=session)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user