%PDF- %PDF-
Direktori : /lib/python2.7/site-packages/salt/states/ |
Current File : //lib/python2.7/site-packages/salt/states/mssql_database.py |
# -*- coding: utf-8 -*- ''' Management of Microsoft SQLServer Databases =========================================== The mssql_database module is used to create and manage SQL Server Databases .. code-block:: yaml yolo: mssql_database.present ''' from __future__ import absolute_import, print_function, unicode_literals import collections def __virtual__(): ''' Only load if the mssql module is present ''' return 'mssql.version' in __salt__ def _normalize_options(options): if type(options) in [dict, collections.OrderedDict]: return ['{0}={1}'.format(k, v) for k, v in options.items()] if type(options) is list and (not len(options) or type(options[0]) is str): return options # Invalid options if type(options) is not list or type(options[0]) not in [dict, collections.OrderedDict]: return [] return [o for d in options for o in _normalize_options(d)] def present(name, containment='NONE', options=None, **kwargs): ''' Ensure that the named database is present with the specified options name The name of the database to manage containment Defaults to NONE options Can be a list of strings, a dictionary, or a list of dictionaries ''' ret = {'name': name, 'changes': {}, 'result': True, 'comment': ''} if __salt__['mssql.db_exists'](name, **kwargs): ret['comment'] = 'Database {0} is already present (Not going to try to set its options)'.format(name) return ret if __opts__['test']: ret['result'] = None ret['comment'] = 'Database {0} is set to be added'.format(name) return ret db_created = __salt__['mssql.db_create'](name, containment=containment, new_database_options=_normalize_options(options), **kwargs) if db_created is not True: # Non-empty strings are also evaluated to True, so we cannot use if not db_created: ret['result'] = False ret['comment'] += 'Database {0} failed to be created: {1}'.format(name, db_created) return ret ret['comment'] += 'Database {0} has been added'.format(name) ret['changes'][name] = 'Present' return ret def absent(name, **kwargs): ''' Ensure that the named database is absent name The name of the database to remove ''' ret = {'name': name, 'changes': {}, 'result': True, 'comment': ''} if not __salt__['mssql.db_exists'](name): ret['comment'] = 'Database {0} is not present'.format(name) return ret if __opts__['test']: ret['result'] = None ret['comment'] = 'Database {0} is set to be removed'.format(name) return ret if __salt__['mssql.db_remove'](name, **kwargs): ret['comment'] = 'Database {0} has been removed'.format(name) ret['changes'][name] = 'Absent' return ret # else: ret['result'] = False ret['comment'] = 'Database {0} failed to be removed'.format(name) return ret