def get_reserved_resources(role=None): """ resource types from state summary include: reserved_resources :param role: the name of the role if for reserved and if None all reserved :type role: str :return: resources(cpu,mem) :rtype: Resources """ rtype = 'reserved_resources' cpus = 0.0 mem = 0.0 summary = DCOSClient().get_state_summary() if 'slaves' in summary: agents = summary.get('slaves') for agent in agents: resource_reservations = agent.get(rtype) reservations = [] if role is None or '*' in role: reservations = resource_reservations.values() elif role in resource_reservations: reservations = [resource_reservations.get(role)] for reservation in reservations: if reservation.get('cpus') is not None: cpus += reservation.get('cpus') if reservation.get('mem') is not None: mem += reservation.get('mem') return Resources(cpus, mem)
def _get_resources(rtype='resources'): """ resource types from state summary include: resources, used_resources offered_resources, reserved_resources, unreserved_resources The default is resources. :param rtype: the type of resources to return :type rtype: str :param role: the name of the role if for reserved and if None all reserved :type rtype: str :return: resources(cpu,mem) :rtype: Resources """ cpus = 0 mem = 0 summary = DCOSClient().get_state_summary() if 'slaves' in summary: agents = summary.get('slaves') for agent in agents: if agent[rtype].get('cpus') is not None: cpus += agent[rtype].get('cpus') if agent[rtype].get('mem') is not None: mem += agent[rtype].get('mem') return Resources(cpus, mem)
def get_resources(rtype='resources'): """ resource types from summary include: resources, used_resources offered_resources, reserved_resources, unreserved_resources This current returns resources """ cpus = 0 mem = 0 summary = DCOSClient().get_state_summary() if 'slaves' in summary: agents = summary.get('slaves') for agent in agents: cpus += agent[rtype]['cpus'] mem += agent[rtype]['mem'] return Resources(cpus, mem)