Metadata-Version: 2.1
Name: backend.ai-manager
Version: 19.3.2
Summary: Backend.AI Manager
Home-page: https://backend.ai
Author: Lablup Inc.
Author-email: joongi@lablup.com
License: LGPLv3
Project-URL: Documentation, https://docs.backend.ai
Project-URL: Source, https://github.com/lablup/backend.ai-manager
Project-URL: Tracker, https://github.com/lablup/backend.ai-manager/issues
Description: Backend.AI Manager with API Gateway
        ===================================
        
        Package Structure
        -----------------
        
        * `ai.backend`
          - `manager`: Abstraction of agents and computation kernels
          - `gateway`: User and Admin API (REST/GraphQL) gateway based on aiohttp
        
        Installation
        ------------
        
        Please visit [the installation guides](https://github.com/lablup/backend.ai/wiki).
        
        ### For development
        
        #### Prerequisites
        
        * `libnsappy-dev` or `snappy-devel` system package depending on your distro
        * Python 3.6 or higher with [pyenv](https://github.com/pyenv/pyenv)
        and [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) (optional but recommneded)
        * Docker 17.03 or later with docker-compose (18.03 or later is recommended)
        
        Clone [the meta repository](https://github.com/lablup/backend.ai) and install a "halfstack" configuration.
        The halfstack configuration installs and runs dependency daemons such as etcd in the background.
        
        ```console
        ~$ git clone https://github.com/lablup/backend.ai halfstack
        ~$ cd halfstack
        ~/halfstack$ docker-compose -f docker-compose.halfstack.yml up -d
        ```
        
        Then prepare the source clone of the agent as follows.
        First install the current working copy.
        
        ```console
        ~$ git clone https://github.com/lablup/backend.ai-manager manager
        ~$ cd manager
        ~/manager$ pyenv virtualenv venv-manager
        ~/manager$ pyenv local venv-manager
        ~/manager (venv-manager) $ pip install -U pip setuptools   # ensure latest versions
        ~/manager (venv-manager) $ pip install -U -r requirements-dev.txt
        ```
        
        With the halfstack, you can run the agent simply like
        (note that you need a working manager running with the halfstack already):
        
        ```console
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh python -m ai.backend.gateway.server --debug
        ```
        
        To develop and debug, configure the manager as follows:
        
        ```console
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh backend.ai-manager etcd put vfolder/_mount /mnt
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh backend.ai-manager etcd update-images -f sample-configs/image-metadata.yml
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh backend.ai-manager etcd update-aliases -f sample-configs/image-aliases.yml
        ~/manager (venv-manager) $ cp alembic.ini.sample alembic.ini
        ~/manager (venv-manager) $ edit alembic.ini  # match the config with the halfstack
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh backend.ai-manager schema oneshot head
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh backend.ai-manager fixture populate example_keypair
        ```
        
        To run tests:
        
        ```console
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh python -m pytest -m 'not integration'
        ```
        
        To run tests including integration tests, you first need to install the agent in the same virtualenv.
        
        ```console
        ~$ git clone https://github.com/lablup/backend.ai-agent agent
        ~$ cd manager
        ~/manager (venv-manager) $ pip install -e ../agent
        ~/manager (venv-manager) $ scripts/run-with-halfstack.sh python -m pytest
        ```
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Environment :: No Input/Output (Daemon)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Python: >=3.6,<3.7
Description-Content-Type: text/markdown
Provides-Extra: test
Provides-Extra: monitor
Provides-Extra: build
Provides-Extra: ci
Provides-Extra: dev
