def get_node(instance, nodes):
    ''' Select a node for hosting an instance based on its requirements.
    '''
    # Return first Node or None
    try:
        req_traits = set(instance.req_traits.all())
        nodes = [n for n in nodes if req_traits.issubset(n.traits.all())]
        return nodes[0]
    except:
        return None