%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/states/ |
Current File : //usr/lib/python2.7/site-packages/salt/states/postgres_language.py |
# -*- coding: utf-8 -*- ''' Management of PostgreSQL languages ================================== The postgres_language module is used to create and manage Postgres languages. Languages can be set as either absent or present .. versionadded:: 2016.3.0 .. code-block:: yaml plpgsql: postgres_language.present: - maintenance_db: testdb .. code-block:: yaml plpgsql: postgres_language.absent: - maintenance_db: testdb ''' from __future__ import absolute_import, unicode_literals, print_function def __virtual__(): ''' Only load if the postgres module is present ''' if 'postgres.language_create' not in __salt__: return (False, 'Unable to load postgres module. Make sure `postgres.bins_dir` is set.') return True def present(name, maintenance_db, user=None, db_password=None, db_host=None, db_port=None, db_user=None): ''' Ensure that a named language is present in the specified database. name The name of the language to install maintenance_db The name of the database in which the language is to be installed user System user all operations should be performed on behalf of db_user database username if different from config or default db_password user password if any password for a specified user db_host Database host if different from config or default db_port Database port if different from config or default ''' ret = { 'name': name, 'changes': {}, 'result': True, 'comment': 'Language {0} is already installed'.format(name) } dbargs = { 'runas': user, 'host': db_host, 'user': db_user, 'port': db_port, 'password': db_password, } languages = __salt__['postgres.language_list'](maintenance_db, **dbargs) if name not in languages: if __opts__['test']: ret['result'] = None ret['comment'] = 'Language {0} is set to be installed'.format( name) return ret if __salt__['postgres.language_create'](name, maintenance_db, **dbargs): ret['comment'] = 'Language {0} has been installed'.format(name) ret['changes'][name] = 'Present' else: ret['comment'] = 'Failed to install language {0}'.format(name) ret['result'] = False return ret def absent( name, maintenance_db, user=None, db_password=None, db_host=None, db_port=None, db_user=None): ''' Ensure that a named language is absent in the specified database. name The name of the language to remove maintenance_db The name of the database in which the language is to be installed user System user all operations should be performed on behalf of db_user database username if different from config or default db_password user password if any password for a specified user db_host Database host if different from config or default db_port Database port if different from config or default ''' ret = { 'name': name, 'changes': {}, 'result': True, 'comment': '' } dbargs = { 'runas': user, 'host': db_host, 'user': db_user, 'port': db_port, 'password': db_password, } if __salt__['postgres.language_exists'](name, maintenance_db, **dbargs): if __opts__['test']: ret['result'] = None ret['comment'] = 'Language {0} is set to be removed'.format(name) return ret if __salt__['postgres.language_remove'](name, **dbargs): ret['comment'] = 'Language {0} has been removed'.format(name) ret['changes'][name] = 'Absent' return ret else: ret['comment'] = 'Failed to remove language {0}'.format(name) ret['result'] = False ret['comment'] = 'Language {0} is not present ' \ 'so it cannot be removed'.format(name) return ret