Esempio n. 1
0
def calculate_initial_state(instances, T):

	"""Calculates the initial values for the given instances about total cost, total capacity and instance types
		:param instances: instances.
		:type instances: list.
		:param T: running time in hours for each instance, there is one by one mapping with first argument.
		:type statistics: list.
		:returns: total cost, total capacity and instance types.			
	"""

	capacity = cloudData.get_instances_capacity(instances)	

	prices = cloudData.get_instances_cost(instances)

	cost = 0.0
	
	for i in range(len(instances)):
		cost = cost + T[i]*prices[i]

	types=[]

	for instance in instances:
		types.append({'os': instance['os'] , 'region': instance['region'] , 'type': instance['type'] })
		
	total_capacity = sum(capacity)

	return cost, total_capacity, types
Esempio n. 2
0
def calculate_capacity_per_instance(instances=None):
    """Computes the total instances' capacity per instance.

		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per instance.

	"""

    capacity = []

    if instances == None:
        instances = cloudData.get_all_instances()

    #for instance in instances:
    instances_capacity = cloudData.get_instances_capacity(instances)

    i = 0
    for instance in instances:
        capacity.append({
            "id": instance['id'],
            "capacity": instances_capacity[i]
        })
        i = i + 1

    return capacity
Esempio n. 3
0
def calculate_capacity_per_instance_state(instances=None):
	"""Computes the total instances' capacity per instance state.
		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per instance state.
	"""

	capacity={}

	if instances == None:
		instances = cloudData.get_all_instances()
	
	for state in EC2_INSTANCE_STATES:
		capacity[state['name']]=sum(cloudData.get_instances_capacity(instances,{'param_name':'state','param_value':state['name']}))	
		
	return capacity
Esempio n. 4
0
def calculate_capacity_per_machine_type(instances=None):
	"""Computes the total instances' capacity per machine type.
		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per machine type.
	"""

	capacity={}

	if instances == None:
		instances = cloudData.get_all_instances()
	
	for machine in EC2_INSTANCE_TYPES:
		capacity[machine]=sum(cloudData.get_instances_capacity(instances,{'param_name':'type','param_value':machine}))	
		
	return capacity
Esempio n. 5
0
def calculate_capacity_per_region(instances=None):
	"""Computes the total instances' capacity per region.
		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per region.
	"""

	capacity={}

	if instances == None:
		instances = cloudData.get_all_instances()
		
	for region in EC2_REGIONS: 	
		capacity[region]=sum(cloudData.get_instances_capacity(instances,{'param_name':'region','param_value':region}))	
		
	return capacity
Esempio n. 6
0
def calculate_capacity_per_os(instances=None):

	"""Computes the total instances' capacity per Operating System.

		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per operating system.

	"""

	capacity={}

	if instances == None:
		instances = cloudData.get_all_instances()
		
	for os in EC2_OS_TYPES: 	
		capacity[os]=sum(cloudData.get_instances_capacity(instances,{'param_name':'os','param_value':os}))	
		
	return capacity
Esempio n. 7
0
def calculate_capacity_per_instance(instances=None):
	"""Computes the total instances' capacity per instance.
		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per instance.
	"""

	capacity=[]

	if instances == None:
		instances = cloudData.get_all_instances()
	
	#for instance in instances:
	instances_capacity = cloudData.get_instances_capacity(instances)	
	
	i=0
	for instance in instances:
		capacity.append({"id":instance['id'],"capacity":instances_capacity[i]})		
		i=i+1
	
	return capacity
Esempio n. 8
0
def calculate_capacity_per_instance_state(instances=None):
    """Computes the total instances' capacity per instance state.

		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per instance state.

	"""

    capacity = {}

    if instances == None:
        instances = cloudData.get_all_instances()

    for state in EC2_INSTANCE_STATES:
        capacity[state['name']] = sum(
            cloudData.get_instances_capacity(instances, {
                'param_name': 'state',
                'param_value': state['name']
            }))

    return capacity
Esempio n. 9
0
def calculate_capacity_per_machine_type(instances=None):
    """Computes the total instances' capacity per machine type.

		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per machine type.

	"""

    capacity = {}

    if instances == None:
        instances = cloudData.get_all_instances()

    for machine in EC2_INSTANCE_TYPES:
        capacity[machine] = sum(
            cloudData.get_instances_capacity(instances, {
                'param_name': 'type',
                'param_value': machine
            }))

    return capacity
Esempio n. 10
0
def calculate_capacity_per_region(instances=None):
    """Computes the total instances' capacity per region.

		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per region.

	"""

    capacity = {}

    if instances == None:
        instances = cloudData.get_all_instances()

    for region in EC2_REGIONS:
        capacity[region] = sum(
            cloudData.get_instances_capacity(instances, {
                'param_name': 'region',
                'param_value': region
            }))

    return capacity
Esempio n. 11
0
def calculate_capacity_per_os(instances=None):
    """Computes the total instances' capacity per Operating System.

		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per operating system.

	"""

    capacity = {}

    if instances == None:
        instances = cloudData.get_all_instances()

    for os in EC2_OS_TYPES:
        capacity[os] = sum(
            cloudData.get_instances_capacity(instances, {
                'param_name': 'os',
                'param_value': os
            }))

    return capacity
Esempio n. 12
0
def calculate_capacity_per_os(instances=None):
	"""Computes the total instances' capacity per Operating System.
		:param instances: list of instances or "None" if all the user's instances will be considered.
		:type instances: list.
		:returns: dict -- total capacity of instances per operating system.
	"""
	
	"""Get running instances based on the input EC2 connection
		:param ec2_conn: A EC2 connection to AWS object.
		:type ec2_conn: EC2Connection.
		:param defined_filters: Optional filters that can be used to limit the results returned (provided by boto). 
		:type defined_filters: dict.
		:returns: list -- a list of instances.		
	"""

	capacity={}

	if instances == None:
		instances = cloudData.get_all_instances()
		
	for os in EC2_OS_TYPES: 	
		capacity[os]=sum(cloudData.get_instances_capacity(instances,{'param_name':'os','param_value':os}))	
		
	return capacity