User facing APIs to control AiiDA from the verdi cli, scripts or plugins
Connect to an existing PostgreSQL cluster as the postgres superuser and execute SQL commands.
separate package that can then be tested on multiple OS / postgres setups. Therefore, please keep this module entirely AiiDA-agnostic.
Provides an API for postgres database maintenance tasks.
This API creates and drops postgres users and databases used by the verdi quicksetup commandline tool. It allows convenient access to this functionality from within python without knowing details about how postgres is installed by default on various systems. If the postgres setup is not the default installation, additional information needs to be provided.
verdi quicksetup
aiida.manage.external.postgres.
Postgres
Bases: pgsu.PGSU
pgsu.PGSU
Adds convenience functions to pgsu.PGSU.
creating/dropping users
creating/dropping databases
etc.
Example:
postgres = Postgres() postgres.create_dbuser('username', 'password') if not postgres.db_exists('dbname'): postgres.create_db('username', 'dbname')
__init__
See documentation of pgsu.PGSU.__init__().
pgsu.PGSU.__init__()
__module__
check_db
Looks up if a database with the name exists, prompts for using or creating a differently named one.
dbname (str) – Name of the database to be created or reused.
tuple (dbname, created)
check_dbuser
Looks up if a given user already exists, prompts for using or creating a differently named one.
dbuser (str) – Name of the user to be created or reused.
tuple (dbuser, created)
copy_db
create_db
Create a database in postgres
dbuser (str) – Name of the user which should own the db.
dbname (str) – Name of the database.
create_dbuser
Create a database user in postgres
dbuser (str) – Name of the user to be created.
dbpass (str) – Password the user should be given.
psycopg2.errors.DuplicateObject if user already exists and self.connection_mode == PostgresConnectionMode.PSYCOPG
create_dbuser_db_safe
Create DB and user + grant privileges.
Prompts when reusing existing users / databases.
db_exists
Check wether a postgres database with dbname exists
dbname (str) – Name of the database to check for
(bool), True if database exists, False otherwise
dbinfo
Alias for Postgres.dsn.
dbuser_exists
Find out if postgres user with name dbuser exists
dbuser (str) – database user to check for
(bool) True if user exists, False otherwise
drop_db
Drop a database in postgres
drop_dbuser
Drop a database user in postgres
dbuser (str) – Name of the user to be dropped.
from_profile
Create Postgres instance with dbinfo from AiiDA profile data.
database superuser.
profile – AiiDA profile instance
kwargs – keyword arguments forwarded to PGSU constructor
Postgres instance pre-populated with data from AiiDA profile
host_for_psycopg2
Return correct host for psycopg2 connection (as required by regular AiiDA operation).
port_for_psycopg2
Return port for psycopg2 connection (as required by regular AiiDA operation).
PostgresConnectionMode
Bases: enum.IntEnum
enum.IntEnum
Describe mode of connecting to postgres.
DISCONNECTED
PSQL
PSYCOPG
Components to communicate tasks to RabbitMQ.
aiida.manage.external.rmq.
CommunicationTimeout
alias of concurrent.futures._base.TimeoutError
concurrent.futures._base.TimeoutError
DeliveryFailed
Bases: Exception
Exception
Failed to deliver a message
__weakref__
list of weak references to the object (if defined)
ProcessLauncher
Bases: plumpy.process_comms.ProcessLauncher
plumpy.process_comms.ProcessLauncher
A sub class of plumpy.ProcessLauncher to launch a Process.
It overrides the _continue method to make sure the node corresponding to the task can be loaded and that if it is already marked as terminated, it is not continued but the future is reconstructed and returned
_continue
Continue the task.
Note that the task may already have been completed, as indicated from the corresponding the node, in which case it is not continued, but the corresponding future is reconstructed and returned. This scenario may occur when the Process was already completed by another worker that however failed to send the acknowledgment.
communicator – the communicator that called this method
pid – the pid of the process to continue
nowait – if True don’t wait for the process to finish, just return the pid, otherwise wait and return the results
tag – the tag of the checkpoint to continue from
handle_continue_exception
Handle exception raised in _continue call.
If the process state of the node has not yet been put to excepted, the exception was raised before the process instance could be reconstructed, for example when the process class could not be loaded, thereby circumventing the exception handling of the state machine. Raising this exception will then acknowledge the process task with RabbitMQ leaving an uncleaned node in the CREATED state for ever. Therefore we have to perform the node cleaning manually.
exception – the exception object
message – string message to use for the log message
RemoteException
An exception occurred at the remote end of the call