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
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
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
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
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
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
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
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
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
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
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
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