GPMSWiki/AdministratorDocumentation/MaintainingGPMS

From BRF-Software
Revision as of 01:00, 1 January 1970 by Unknown user (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Interfaces

In this section we describe several ways for accessing and using the GPMS. In addition to the !API that allows programmers to directly manipulate all objects stored in the database we provide a number of scripts for maintaining the system and a Gtk graphical user interface for the management of users and project members. A simplified web frontend was also implemented that supports a restricted user management for "external" maintainers of projects.

GPMS scripts

The scripts listed in table 1 can be used to initially set up the system and for maintaining projects, users, and their memberships.

name description
add_host add a new Host to the GPMS
add_datasource_!type register a new DataSource
add_db_api_!type register a new !API_!Type
add_dbms_!type create a !DBMS_!Type
add_db create a new !Database
add_project_class create a new ProjectClass
add_project create a new !Project
add_datasource2project add a DataSource to a !Project
add_project_config add configurations to a !Project
add_role read and store the !Role definitions for a ProjectClass
add_rights parse a !Right definition-file and store it in the GPMS
add_user register a new !User
add_member add an existing !User as a new Member to a !Project
add_meta_project create a new Meta!Project
add_project2meta_project add a !Project to a Meta!Project
del_host remove a Host
del_datasource_!type delete a DataSource_!Type
del_datasource remove a DataSource from the GPMS
del_db_api_!type delete a !DB_!API_!Type
del_dbms_!type remove a !DBMS_!Type from the GPMS
del_project_class delete a ProjectClass from the GPMS
del_project delete a !Project
del_project_config remove configurations from a !Project
del_role remove roles from a ProjectClass
del_rights delete rights from a ProjectClass
del_user remove a !User from the GPMS
del_member remove a !User from a !Project
change_member_role change the !Role of an existing Member
export_members print a list of all Members of a !Project or
all Members of all !Projects of a ProjectClass to a file
rem_datasource_from_project remove a DataSource from a !Project
rem_project_from_meta_project remove a !Project from a Meta!Project
list_project_members print a list of all Members of a !Project
list_projects print a list of all !Projects and !Roles available for the !Project
list_user_projects display a list of all !Projects that can be accessed by a !User
list_extern_user print list of all extern !Users

Available scripts for manipulating the GPMS. All currently implemented scripts for manipulating the GPMS are listed above. Executing a script without parameters will print a detailed description and a complete list of available options.

All scripts listed above are executed using the wrapper script GPMS which sets several installation specific environment variables. Executing this script without parameters will list all available scripts and print a usage message. The following paragraphs describe the use of each script and introduce their options.

add_datasource2project

add a !Datasource to a !Project in the GPMS

usage: add_datasource2project -D <datasource name> -p <project name> [-v]

where: -D <datasource name> name of the !Datasource

      -p <project name> the Proejcts name
      -v verbose 
      -h print this help message

example: add_datasource2project -D gendb_test -p gendbtest

add_datasource_!type

add a !Datasource_!Type to project management database

usage: add_datasource_!type -y <name> [-s <SQL_dump_file> -v]

where: -y <name> the !Datasource_!Types name

      -s <SQL_dump_file> SQL dump file, with SQL statements creating
                         a !Database of this !Type
      -v verbose
      -h print this help message

example: add_datasource_!type -y !GENDB -s /vol/gendb/src/dbschema/!GenDB.sql

add_db

add a !Database (!Datasource::DB) to project management database

usage: add_db -H <hostname> -t <dbms_!type> -y <datasource_!type>

             -A <db_api_!type> ( -D db_name | -p <project> )
             [-d <description> -e -v]

where: -H <hostname> name of the !Databases Host

      -t <dbms_!type> name of the !Databases !DBMS_!Type
      -y <datasource_!type> name of the !Databases !Datasource_!Type
      -A <db_api_!type name> name of the !Datasourced !DB_!API_!Type
      -D the !Databases name
         if -D is omitted !Database gets same name as !Project
      -p <project> name of !Project the !Database shall be added to
                   Note that either -D or -p or both must be specified
      -d <description> text describing the !Database
      -e register existing !Database to gpms and therefore
         without creating MySQL !Database
      -v verbose
      -h print this help message

example: add_db -D gendb_test -H dbhost -t MySQL-3.23.27 -y !GENDB -A O2DBI2

add_dbms_!type

add a !DBMS_!Type to project management database

usage: add_dbms_!type -t <name> -V <version number>

where: -t <name> the !DBMS_!Types name

      -V <version number> the !DBMS_!Types version
      -h print this help message

example: add_dbms_!type -t MySQL -V '3.23.27'

add_project2meta_project

add a !Project to a META !Project in the GPMS

usage: add_project2meta_project -p <project_name> -m <meta_project_name> [-v]

where: -p <project_name> the !Projects name

      -m <meta_project_name> name of the META !Project
      -v verbose
      -h print this help message

example: add_project2meta_project -p gendb_test -m meta_test

del_project

removes a !Project and the project members from the GPMS

usage: del_project -p <project name> [-z -v]

where: -p <project name> name of the !Project

      -z drop and remove the !Projects !Databases and !Datasources not used by 
         any other !Project from the gpms databases
      -v verbose 
      -h print this help massage

example: del_project -p gendb_test

add_host

add a !Database Host to project management database

usage: add_host -H <hostname> [-P <port number>] [-d <description>]

where: -H <hostname> the Hosts name

      -P <port number> the Hosts port number
      -d <description> text decribing the Host
      -h print this help message

example: add_host -H dbhost

add_member

add a new Member to a !Project in project management database

usage: add_member -l <user login> -p <project name> -r <role> [-v]

where: -l <user login> !User login of new Member

      -p <project name> name of !Project the !User shall be added to as Member
      -r <role> the new Members !Role
      -v verbose 
      -h print this help message

example: add_member -l juser -p gendb_test -r Annotator

add_meta_project

use add_project with -m option!

add_project

add a new !Project to project management database

usage: add_project -p <name> -c <project_class> -d <description>

      [-v -s <project sub class>]

where : -p <name> the !Projects name

       -c <project_class> the !Projects !Project_!Class
       -d <description> !Project description
       -s <project sub class> subclass of ProjectManagement::!Project
          available subclasses: EMMA, !GenDB, ProDB, Biomake, GPMS, META, WHOIS
       -v verbose
       -h print this help message

example: add_project -p gendb_test -c !GENDB -d "The !GenDB !DB" -s GenDG

del_rights

removes single !Right or all !Rights of a !Project_!Class from the GPMS

Note: before script can be used all !Roles using the !Rights of the !Project_!Class

     must be removed!

usage: del_rights -c project_class (-r <right_name> | -a) [-v]

where: -r <right_name> name of a single !Right to be removed

      -a remove all rights of the !Project_!Class
      -v verbose
      -h print this help message

example: del_rights -r use_gpmsdb -c !GENDB

add_project_class

add a !Project_!Class to project management database

usage: add_project_class -c <project class name> [-d description]

                        [-i <max instance number> -u <config file>]

where : -c <project class name> name of new !Project_!Class

       -d <description> description of new !Project_!Class
       -i <max instance number> maximal number of !Projects a
          Meta !Project of this !Project_!Class may contain 
       -u <config file> default config file for new !Projects of this Class
       -h print this help message

example: add_project_class -c !GENDB -d !GENDB !Projects

add_project_config

add !Project Configs to project management system

usage: add_project_config -p <project> -k <config_key> -V <config_value>

where: -p <project> the !Projects name

      -k <config_key> the key of the Config to be added,
                      since !Project Configs are a hash
      -V <config_value> the Configuration values
      -h print this help message

example: add_project_config -p gendb_test -k genetik_code -V 11

add_rights

adds new !Rights to !Project_!Class to project management database

usage: add_rights -f <file name> [-v]

where: -f <file name> name of file defining the !Rights

      -v verbose
      -h print the help message

example: add_rights.pl -f "/vol/gendb/src/rights"

add_role

add new !Roles to a !Project_!Class in project management database

usage: add_role -f <file_name> [-v]

where: -f <file name> name of file defining the !Roles to be added

      -v verbose
      -h print this help message

example: add_role -f roles.txt

add_user

add a !User to project management database

usage: add_user -l <login> -f <full name> [-e <email address> -x]

where: -l <login> the !Users login

      -f <full name> the !Users surname and first name
      -e <email address> the !Users email adress
      -x !User is extern
      -h print this help message

example: add_user -l juser -f 'Joe !User' -e juser@Genetik.Uni-Bielefeld.DE

change_member_role

change the !Role from a !Project Member

usage: change_member_role.pl -l <user login> -p <project> -r <role> [-v]

where: -l <user login> the Members login

      -p <project> name of the !Project
      -r <role> the new !Role the Member shall get
      -v verbose
      -h print this help message

example: change_member_role.pl -l juser -p gendbtest -r Annotator

del_datasource

removes a !Datasource from project management database

usage: del_datasource.pl -D <datasource name> [-z -v]

where: -D <datasource name> the !Datasouces name

      -z drop database from the MySQL !DB
      -v verbose
      -h print this help message

example: del_datasource.pl -D gendb_test -z

del_datasource_!type

removes a !Datasource_!Type from project management database

usage: del_datasource_!type.pl -y <datasource_!type name>

where: -y <datasource_!type name> name of the !Datasource_!Type to be removed

      -h print this help message

example: del_datasource_!type.pl -y !GENDB

del_dbms_!type

removes a !DBMS_!Type from project management database

usage: del_dbms_!type -n <dbms_!type_name> -V <version> [-v]

where: -n <dbms_!type_name> name of the !DBMS_!Type

      -V <version> the !DBMS_!Types version
      -v verbose
      -h print this help message

example: del_dbms_!type -n MySQL -V 3.23.48

del_host

removes a Host from project management database

usage: del_host -H <host_name> name

where: -H <host_name> name of Host to be removed

      -h print this help message

example: del_host -H dbhost

del_member

removes single or all Members from a !Project

usage: del_member ( -a | -l <user login> [-q] ) -p <project name> [-f -v]

where: -p <project name> name of the !Project

      -a remove all Members from !Project
      -l user login from single Member to be removed
      -q do not revoke MySQL privileges when removing single Member
      -f force: Member is deleted even if the db privileges
                can not be revoked
      -v verbose
      -h print this help message

example: del_member -l jouser -p gendbtest

del_role

removes one or all !Roles of a !Project_!Class from the GPMS

usage: del_role -c <project_class> (-a | -r <role name> ) [-f -v]

where: -c <project_class> name of the !Project_!Class

      -a remove all !Roles of the !Project_!Class
      -f force, Members of all !Projects of !Project_!Class first
      -v verbose
      -h print this help message

example: del_role -r !User -c !GENDB

del_project_class

removes a !Project_!Class from project management database

usage: del_project_class -c <project_class name>

where: -c <project_class name> name of the !Project_!Class

      -h print this help message

example: del_project_class -c !GENDB

del_project_config

delete !Project Configs from project management system

usage: del_project_config -p <project_name> -k <config key>

where: -p <project_name> name of the !Project

      -k <config key> the key value of configuration entry to be removed
      -h print this help message

example: del_project_config -p gendb_test -k genetik_code

export_members

print a list of all Members of a !Project or all Members of all

                !Projects of a !Project_!Class to a file

usage: export_members (-p <project name> | -c <project_class> | -a)

                     -f <file_name>

where: -p <project name> Print all Members of this !Project to a file

      -c <project_class name> Print all Members of !Projects of this
                              !Project_!Class to a file
      -a Print all Members of every !Project to a file
      -h print this help message

example: export_members -p gendbtest -f gendbtest_members

del_user

removes a !User of project management database

usage: del_user -l <login> [-v]

where: -l <login> the !Users login

      -v verbose
      -h print this help message

example: del_user -l jouser

rem_datasource_from_project

removes a !Datasource from a !Project

usage: rem_datasource_from_project -D <datasource_name> -p <project_name>

                                  [-f -v]

where: -D <datasource_name> name of the !Datasource to be removed from !Project

      -p <project_name> name of the !Project
      -f force: also remove datasource even if not all member privileges
                could be revoked
      -v verbose
      -h print this help message

example: rem_datasource_from_project -D gendb_test -p gendb_test_project

list_projects

list !Projects with available !Roles from

               project management database

usage: list_projects

where: -h print this help message

add_db_api_!type

add a !DB_!API_!Type to project management database

usage: add_db_api_!type -A <db_api_!type name> -d <description> [-v]

where: -A <db_api_!type name> the !DB_!API_!Types name

      -d <description> text describing the !DB_!API_!Type
      -v verbose
      -h print this help message

example: add_db_api_!type -A O2DBI -d "The O2DBI I database api"

list_user_projects

get !Projects of a !User from project management database

usage: list_user_projects -l <user login>

where: -l <user login> the !Users login

      -h print this help message

example: list_user_projects -l juser

del_db_api_!type

removes a !DB_!API_!Type from project management database

usage: del_db_api_!type -A <db_api_!type_name>

where: -A <db_api_!type_name> name of the !DB_!API_!Type

      -h print this help message

example: del_db_api_!type -A O2DBI

list_project_members

list !Project Members with their !Role

usage: list_project_members -p <!Project name> [-r]

where: -p <!Project name> the !Projects name

      -r sort Members by !Role
      -h print this help message

example: list_project_members -p gendb_test

list_extern_users

list_extern_user - list all extern !Users and genereates MySQL statements to obtiain

                  consistent MySQL privileges for extern users

usage: list_user_projects [-g]

where: -g generate MySQL statements

      -h print this help message

example: list_user_projects -l juser

rem_project_from_meta_project

removes a !Project from a META !Project

usage: rem_project_from_meta_project -p <project_name> -m <meta_project_name>

where: -p <project_name> name of !Project to be removed from META !Project

      -m <meta_project_name> name of META !Project
      -h print this help message

example: rem_project_from_meta_project -p gendb_test -m gendb_meta

Author: Lutz Krause