Skip to main content

a package to activate an aiida environment, from a yaml config file

Project description

Anaconda-Server Badge

activate-aiida

This is a small package to build around the internal aiida-core tools (v1.2), to quickly create and launch isolated AiiDA environments from scratch. Its focussed on development, but can also be used more generally.

The basic steps are:

  1. Buy a new computer
  2. Install Conda
    • On linux:
      • wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
      • bash miniconda.sh
      • conda update conda
  3. Create the development environment:
    • conda env create -n aiida-dev -f aiida-dev-env.yml
    • conda activate aiida-dev
    • This is a copy of environment.yaml in aiida-core, but with all the extra development packages, and other goodies like jupyter lab
  4. Install aiida-core in development mode
    • pip install --no-deps -e .
  5. Run source aiida-activate --help to see the options
    • This needs to be called with source, so that it can set-up some environmental variables
    • Running source aiida-activate setup.yaml -c -w 4 will:
      • Initialise a database at store_path/pgsql, if it doesn't already exist
      • Kill any currently running postgres server
      • Start up a postgres server with the desired settings
      • Ensure RabbitMQ is running
      • Set the aiida repository path to store_path/.aiida
      • Run verdi quicksetup --config=setup.yaml, if the profile does not already exist
      • Set the profile as the default profile
      • Stop any current daemon and start one with 4 workers
      • Activate verdi tab completion
  6. When your done, aiida-deactivate will stop the daemon and the postgres server

Example Config File

store_path: /home/csewell/Documents/aiida-core/test_repo

su_db_username: chrisjsewell
# su_db_password:  # not yet supported

db_engine: postgresql_psycopg2
db_backend: django

db_host: localhost
db_port: 5432
db_name: basic_db
db_username: chrisjsewell
db_password: niceday

profile: basic
email: christopher.sewell@epfl.ch
first_name: Chris
last_name: Sewell
institution: EPFL

non_interactive: true

Example CLI

$ source aiida-activate setup.yaml -c -w 4
  parsed args: -c true -w 4 setup.yaml
- Reading variables from setup.yaml
- Setting Up SQL Database
  PGDATA='/home/csewell/Documents/aiida-core/test_repo/pgsql'
- Activating Postgres server: /home/csewell/Documents/aiida-core/test_repo/pgsql on port 5432
waiting for server to start.... done
server started
  Logging Postgres server to: /home/csewell/Documents/aiida-core/test_repo/pgsql/postgres_env_.log
- Ensure RabbitMQ Running
- Setting Up AiiDa Database
  AIIDA_PATH='/home/csewell/Documents/aiida-core/test_repo'
Info: Database user "chrisjsewell" already exists!
Use it?  [y/N]: y
Success: created new profile `basic`.
Info: migrating the database.
Operations to perform:
  Apply all migrations: auth, contenttypes, db
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0001_initial... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying db.0001_initial... OK
  Applying db.0002_db_state_change... OK
  Applying db.0003_add_link_type... OK
  Applying db.0004_add_daemon_and_uuid_indices... OK
  Applying db.0005_add_cmtime_indices... OK
  Applying db.0006_delete_dbpath... OK
  Applying db.0007_update_linktypes... OK
  Applying db.0008_code_hidden_to_extra... OK
  Applying db.0009_base_data_plugin_type_string... OK
  Applying db.0010_process_type... OK
  Applying db.0011_delete_kombu_tables... OK
  Applying db.0012_drop_dblock... OK
  Applying db.0013_django_1_8... OK
  Applying db.0014_add_node_uuid_unique_constraint... OK
  Applying db.0015_invalidating_node_hash... OK
  Applying db.0016_code_sub_class_of_data... OK
  Applying db.0017_drop_dbcalcstate... OK
  Applying db.0018_django_1_11... OK
  Applying db.0019_migrate_builtin_calculations... OK
  Applying db.0020_provenance_redesign... OK
  Applying db.0021_dbgroup_name_to_label_type_to_type_string... OK
  Applying db.0022_dbgroup_type_string_change_content... OK
  Applying db.0023_calc_job_option_attribute_keys... OK
  Applying db.0024_dblog_update... OK
  Applying db.0025_move_data_within_node_module... OK
  Applying db.0026_trajectory_symbols_to_attribute... OK
  Applying db.0027_delete_trajectory_symbols_array... OK
  Applying db.0028_remove_node_prefix... OK
  Applying db.0029_rename_parameter_data_to_dict... OK
  Applying db.0030_dbnode_type_to_dbnode_node_type... OK
  Applying db.0031_remove_dbcomputer_enabled... OK
  Applying db.0032_remove_legacy_workflows... OK
  Applying db.0033_replace_text_field_with_json_field... OK
  Applying db.0034_drop_node_columns_nodeversion_public... OK
  Applying db.0035_simplify_user_model... OK
  Applying db.0036_drop_computer_transport_params... OK
  Applying db.0037_attributes_extras_settings_json... OK
  Applying db.0038_data_migration_legacy_job_calculations... OK
  Applying db.0039_reset_hash... OK
  Applying db.0040_data_migration_legacy_process_attributes... OK
  Applying db.0041_seal_unsealed_processes... OK
  Applying db.0042_prepare_schema_reset... OK
  Applying db.0043_default_link_label... OK
  Applying db.0044_dbgroup_type_string... OK
Success: database migration completed.
- Starting AiiDA
  Rescanning aiida plugins
  Setting default profile: basic
Success: basic set as default profile
  Stopping any current daemon
Profile: basic
Daemon was not running
  Activating daemon for profile: basic with 4 workers
  Activating verdi tab completion
- Finishing Status:
 ✓ config dir:  /home/csewell/Documents/aiida-core/test_repo/.aiida
 ✓ profile:     On profile basic
 ✓ repository:  /home/csewell/Documents/aiida-core/test_repo/.aiida/repository/basic
 ✓ postgres:    Connected as chrisjsewell@localhost:5432
 ✓ rabbitmq:    Connected to amqp://127.0.0.1?heartbeat=600
 ✓ daemon:      Daemon is running as PID 22227 since 2020-04-10 00:55:10
$ deactivate-aiida 
Stopping Daemon:
Profile: basic
Waiting for the daemon to shut down... OK
Stopping Postgres:
waiting for server to shut down.... done
server stopped
Done!

Troubleshooting

If postgres is not stopped correctly you may get this error:

psql: could not connect to server: No such file or directory

In this case you may have to manually delete the path/to/database/postmaster.pid file (see here)

If a port has been left open (from here):

>> sudo lsof -i :PORTNUM
>> sudo kill -9 PID

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

activate-aiida-0.3.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

activate_aiida-0.3.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file activate-aiida-0.3.0.tar.gz.

File metadata

  • Download URL: activate-aiida-0.3.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.6

File hashes

Hashes for activate-aiida-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ee79c682306188e5e8cd7cc01aada7f89de2191c92e3e089424a90510c1eebec
MD5 fcbe7acedb066fc16d670f254f01645b
BLAKE2b-256 9e5f54ed0ae871fbab2285c3fc50aee02d199181468ddadbd2fb5b924c8a6499

See more details on using hashes here.

File details

Details for the file activate_aiida-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: activate_aiida-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.6

File hashes

Hashes for activate_aiida-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 899723ea0d7e4794a686a21c5d7daa20795850af54aaa18f0c422f56385ec6bc
MD5 e642f411e0fb4bb469fdd507c341cb2f
BLAKE2b-256 f97de8b45e6538fe0e0f14cd63ced44595bae14c7ca68b5e3d1c72c0f5843546

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page