Details
-
Task
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.5.3
-
None
-
None
Description
Currently, both the stack-select and conf-select python files have hard-coded structures inside of them which contain mappings for things like configuration directories and stack-select component names.
This is mainly used for pairing the Ambari role name (defined from metainfo.xml) with the stack-select package name. There are places, like params.py where we have not yet entered the target python file (like AccumuloScript) where we could get this information. Some components need this to be able to build things like the Hadoop conf dir:
SERVER_ROLE_DIRECTORY_MAP = { 'ACCUMULO_MASTER' : 'accumulo-master', 'ACCUMULO_MONITOR' : 'accumulo-monitor', 'ACCUMULO_GC' : 'accumulo-gc', 'ACCUMULO_TRACER' : 'accumulo-tracer', 'ACCUMULO_TSERVER' : 'accumulo-tablet', 'ATLAS_SERVER' : 'atlas-server', 'FLUME_HANDLER' : 'flume-server', 'FALCON_SERVER' : 'falcon-server', ...
With the coming of management packs replacing stacks, we can no longer hard code this in Python. My suggestion is to begin moving this data into a property of some sort. Today, cluster-env exists and would be the only place for it (where the stack-feature tools are now). However, I believe that cluster-env is also going away and being replaced with something similar to "Cluster Settings".
In any event, this Jira is to track the work needed to replace this logic.