Merge "Add configuration group management for DB2"

This commit is contained in:
Jenkins 2016-07-15 19:03:12 +00:00 committed by Gerrit Code Review
commit 5346c247b5
1 changed files with 275 additions and 0 deletions

View File

@ -0,0 +1,275 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
Sections of this template were taken directly from the Nova spec
template at:
https://github.com/openstack/nova-specs/blob/master/specs/juno-template.rst
..
This template should be in ReSTructured text. The filename in the git
repository should match the launchpad URL, for example a URL of
https://blueprints.launchpad.net/trove/+spec/awesome-thing should be named
awesome-thing.rst.
Please do not delete any of the sections in this template. If you
have nothing to say for a whole section, just write: None
Note: This comment may be removed if desired, however the license notice
above should remain.
=======================================
Configuration Group Management for DB2
=======================================
This spec talks about how to enable configuration group management
for DB2.
Launchpad Blueprint:
https://blueprints.launchpad.net/trove/+spec/db2-config-group
Problem Description
===================
Trove supports configuration group management but this feature has not been
implemented for DB2.
Proposed Change
===============
DB2 supports both database manager configuration parameters and database
configuration parameters. The database manager configuration parameters
apply to an instance whereas the database configuration parameter applies
to each database. In this spec, we talk about implementing configuration
management for the DB2 database manager.
The database manager configuration parameters are stored in the db2systm file
under the sqllib directory. To update the configuration parameters, DB2
recommends using the UPDATE DBM CONFIGURATION and RESET DBM CONFIGURATION
commands instead of directly updating the config file. To see a complete list
of configuration parameters, check the Appendix section.
Configuration
-------------
None
Database
--------
None
Public API
----------
None
Public API Security
-------------------
None
Python API
----------
None
CLI (python-troveclient)
------------------------
None
Internal API
------------
None
Guest Agent
-----------
Implement update_overrides and apply_overrides in the manager and service
modules.
The following files will be updated::
/opt/stack/trove/trove/guestagent/datastore/experimental/db2/manager.py
/opt/stack/trove/trove/guestagent/datastore/experimental/db2/service.py
/opt/stack/trove/trove/guestagent/datastore/experimental/db2/system.py
The following file will be added::
/opt/stack/trove/trove/templates/db2/validation-rules.json
This will fit into the existing configuration manager framework. The existing
'PropertiesCodec' implementation will be reused to handle text-file operations.
Configuration overrides will be implemented using the 'ImportStrategy' of the
guestagent configuration manager.
Alternatives
------------
None
Dashboard Impact (UX)
=====================
None
Implementation
==============
Assignee(s)
-----------
mariamj@us.ibm.com
Milestones
----------
Newton
Work Items
----------
Implement configuration-related manager API calls
.. code-block:: python
def update_overrides(self, context, overrides, remove=False)
def apply_overrides(self, context, overrides)
Write unit tests/integration tests were applicable
Upgrade Implications
====================
None
Dependencies
============
None
Testing
=======
- Unit and integration tests will be added to test the new functionality
Documentation Impact
====================
The documentation will be updated to reflect the new features supported by
Trove for DB2.
References
==========
.. [1] https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.config.doc/doc/c0060794.html
Appendix
========
The database manager configuration parameters have been listed below. For a
detailed description of each parameter, please refer[1]. The parameters listed
below are the ones that are relevant for the DB2 Express-C version. The link
referenced in [1] gives a complete list of parameters for the DB2 enterprise
edition::
AGENTPRI
AGENT_STACK_SZ
ALTERNATE_AUTH_ENC
ASLHEAPSZ
AUDIT_BUF_SZ
CATALOG_NOAUTH
CLNT_KRB_PLUGIN
CLNT_PW_PLUGIN
COMM_EXIT_LIST
CUR_EFF_ARCH_LVL
CUR_EFF_CODE_LVL
DFT_ACCOUNT_STR
DFT_MON_BUFPOOL
DFT_MON_LOCK
DFT_MON_SORT
DFT_MON_STMT
DFT_MON_TABLE
DFT_MON_TIMESTAMP
DFT_MON_UOW
DIAGLEVEL
DIAGSIZE
DIR_CACHE
DISCOVER
DISCOVER_INST
FCM_NUM_BUFFERS
FCM_NUM_CHANNELS
FEDERATED
FED_NOAUTH
FENCED_POOL
GROUP_PLUGIN
HEALTH_MON
INDEXREC
INTRA_PARALLEL
JAVA_HEAP_SZ
KEEPFENCED
KEYSTORE_TYPE
LOCAL_GSSPLUGIN
MAX_CONNECTIONS
MAX_COORDAGENTS
MAX_QUERYDEGREE
MON_HEAP_SZ
NOTIFYLEVEL
NUMDB
NUM_INITAGENTS
NUM_INITFENCED
NUM_POOLAGENTS
RESYNC_INTERVAL
RQRIOBLK
SHEAPTHRES
SPM_LOG_FILE_SZ
SPM_MAX_RESYNC
SRVCON_AUTH
SRVCON_GSSPLUGIN_LIST
SRVCON_PW_PLUGIN
SRV_PLUGIN_MODE
SSL_CIPHERSPECS
SSL_CLNT_KEYDB
SSL_CLNT_STASH
SSL_SVCENAME
SSL_SVR_KEYDB
SSL_SVR_LABEL
SSL_SVR_STASH
SSL_VERSIONS
START_STOP_TIME
SYSADM_GROUP
SYSCTRL_GROUP
SYSMAINT_GROUP
SYSMON_GROUP
TM_DATABASE
TP_MON_NAME
TRUST_ALLCLNTS
TRUST_CLNTAUTH
UTIL_IMPACT_LIM
WLM_DISPATCHER
WLM_DISP_CONCUR
WLM_DISP_CPU_SHARES
WLM_DISP_MIN_UTIL
Guest agent controlled parameters::
ALT_DIAGPATH
AUTHENTICATION
DFTDBPATH
DIAGPATH
JDK_PATH
KEYSTORE_LOCATION