Пример #1
0
def get_project_by_name(project_name):
    """Returns the project with the specified name. If the project does not exist,
    the method returns None.
    """
    try:
        project = mongo_dao.get_project_by_name(project_name)
    except IndexError:
        project = None
    return project
Пример #2
0
def update_project_components_from_vcs(project=None, project_id=None, project_name=None):
    """Updates all project components in local storage from their specified
    vcs (version control system). Uses a passed project. Can specify a project,
    a project name, or a project id. If it is successful, returns the new components.
    Otherwise, it will return None.
    """
    if project_id:
        project = mongo_dao.get_project_by_id(project_id)
    elif project_name:
        project = mongo_dao.get_project_by_name(project_name)
    try:
        new_components = component_processor.update_components_from_repository(project)
        return new_components
    except:
        return None
Пример #3
0
def get_current_components(project=None, project_id=None, project_name=None):
    """Returns all the current components for a specified project.
    """
    if project_id:
        project = mongo_dao.get_project_by_id(project_id)
    elif project_name:
        project = mongo_dao.get_project_by_name(project_name)
    try:
        database = project['database']
    except KeyError:
        return None
    try:
        current_components = component_processor.get_all_current_components(database)
        return current_components
    except:
        return None
Пример #4
0
def get_all_components(project=None, project_id=None, project_name=None, database=None):
    """Returns all the components for the specified project id that are currently in the
    project storage.
    """
    if project_id:
        project = mongo_dao.get_project_by_id(project_id)
    elif project_name:
        project = mongo_dao.get_project_by_name(project_name)
    try:
        if not database:
            database = project['database']
    except KeyError:
        return None
    try:
        all_components = component_processor.get_all_components(database)
        return all_components
    except:
        return None
Пример #5
0
def remove_local_vcs_storage(project=None, project_id=None, project_name=None, project_path=None):
    """Removes local version control storage for a given project. Accepts a project
    object, a project_id, a project_name, or a project_path.
    """
    if project_id:
        project = mongo_dao.get_project_by_id(project_id)
    elif project_name:
        project = mongo_dao.get_project_by_name(project_name)
    try:
        if not project_path:
            project_path = project['location']
    except KeyError:
        return None
    try:
        file_dao.remove_directory(project_path)
        return True
    except:
        return None
Пример #6
0
def remove_project_components(project=None, project_name=None, project_id=None, database=None):
    """Removes all components from a given project. Accepts a project dictionary object,
    a project name, or a project id.
    """
    if project_id:
        project = mongo_dao.get_project_by_id(project_id)
    elif project_name:
        project = mongo_dao.get_project_by_name(project_name)
    try:
        if not database:
            database = project['database']
    except KeyError:
        return None
    try:
        removal = component_processor.remove_component_collection(database)
        return removal
    except:
        return None
Пример #7
0
def remove_project(project=None, project_name=None, project_id=None, database=None):
    """Completely removes a project, all references, and its data from storage by
    specifying the project record, the project id, or the project name.
    """
    if project_id:
        project = mongo_dao.get_project_by_id(project_id)
    elif project_name:
        project = mongo_dao.get_project_by_name(project_name)
    try:
        if not database:
            database = project['database']
        if not project_id:
            project_id = project['_id']
    except KeyError:
        return None
    try:
        remove_local_vcs_storage(project_id=project_id)
        mongo_dao.remove_project_database(database)
        removal = mongo_dao.remove_project_record_by_id(project_id)
        return removal
    except:
        return None