Changed default property values shown and added --all and --long flags.
Jira-Issue: OPENSTACK-558
This commit is contained in:
parent
5ff4aaaaed
commit
5995838d10
|
@ -11,15 +11,19 @@
|
|||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import logging
|
||||
import traceback
|
||||
|
||||
import kollacli.i18n as u
|
||||
|
||||
from kollacli.common import properties
|
||||
from kollacli.common import utils
|
||||
|
||||
from cliff.command import Command
|
||||
from cliff.lister import Lister
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PropertySet(Command):
|
||||
"Property Set"
|
||||
|
@ -65,14 +69,52 @@ class PropertyClear(Command):
|
|||
class PropertyList(Lister):
|
||||
"""List all properties"""
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(PropertyList, self).get_parser(prog_name)
|
||||
parser.add_argument('--all', action='store_true',
|
||||
help=u._('List all properties'))
|
||||
parser.add_argument('--long', action='store_true',
|
||||
help=u._('Show all property attributes'))
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
ansible_properties = properties.AnsibleProperties()
|
||||
property_list = ansible_properties.get_all_unique()
|
||||
|
||||
list_all = False
|
||||
if parsed_args.all:
|
||||
list_all = True
|
||||
|
||||
list_long = False
|
||||
if parsed_args.long:
|
||||
list_long = True
|
||||
|
||||
property_length = utils.get_property_list_length()
|
||||
data = []
|
||||
if property_list:
|
||||
for value in property_list:
|
||||
data.append((value.name, value.value))
|
||||
else:
|
||||
data.append(('', ''))
|
||||
for prop in property_list:
|
||||
include_prop = False
|
||||
if (prop.value is not None and
|
||||
len(str(prop.value)) > property_length):
|
||||
if list_all:
|
||||
include_prop = True
|
||||
else:
|
||||
include_prop = True
|
||||
|
||||
return ((u._('Property Name'), u._('Property Value')), data)
|
||||
if include_prop:
|
||||
if list_long:
|
||||
data.append((prop.name, prop.value, prop.overrides,
|
||||
prop.orig_value))
|
||||
else:
|
||||
data.append((prop.name, prop.value))
|
||||
else:
|
||||
if list_long:
|
||||
data.append(('', '', '', ''))
|
||||
else:
|
||||
data.append(('', ''))
|
||||
|
||||
if list_long:
|
||||
return ((u._('Property Name'), u._('Property Value'),
|
||||
u._('Overrides'), u._('Original Value')), data)
|
||||
else:
|
||||
return ((u._('Property Name'), u._('Property Value')), data)
|
||||
|
|
|
@ -61,7 +61,6 @@ class AnsibleProperties(object):
|
|||
with open(file_name) as service_file:
|
||||
service_contents = yaml.safe_load(service_file)
|
||||
self.file_contents[file_name] = service_contents
|
||||
service_contents = self.filter_jinja2(service_contents)
|
||||
prop_file_name = service_name + ':main.yml'
|
||||
for key, value in service_contents.items():
|
||||
ansible_property = AnsibleProperty(key, value,
|
||||
|
@ -76,10 +75,15 @@ class AnsibleProperties(object):
|
|||
with open(self.allvars_path) as allvars_file:
|
||||
allvars_contents = yaml.safe_load(allvars_file)
|
||||
self.file_contents[self.allvars_path] = allvars_contents
|
||||
allvars_contents = self.filter_jinja2(allvars_contents)
|
||||
for key, value in allvars_contents.items():
|
||||
overrides = False
|
||||
orig_value = None
|
||||
if key in self.unique_properties:
|
||||
overrides = True
|
||||
orig_value = self.unique_properties[key].value
|
||||
ansible_property = AnsibleProperty(key, value,
|
||||
'group_vars/all.yml')
|
||||
'group_vars/all.yml',
|
||||
overrides, orig_value)
|
||||
self.properties.append(ansible_property)
|
||||
self.unique_properties[key] = ansible_property
|
||||
except Exception as e:
|
||||
|
@ -90,10 +94,15 @@ class AnsibleProperties(object):
|
|||
globals_data = sync_read_file(self.globals_path)
|
||||
globals_contents = yaml.safe_load(globals_data)
|
||||
self.file_contents[self.globals_path] = globals_contents
|
||||
globals_contents = self.filter_jinja2(globals_contents)
|
||||
for key, value in globals_contents.items():
|
||||
overrides = False
|
||||
orig_value = None
|
||||
if key in self.unique_properties:
|
||||
overrides = True
|
||||
orig_value = self.unique_properties[key].value
|
||||
ansible_property = AnsibleProperty(key, value,
|
||||
GLOBALS_FILENAME)
|
||||
GLOBALS_FILENAME,
|
||||
overrides, orig_value)
|
||||
self.properties.append(ansible_property)
|
||||
self.unique_properties[key] = ansible_property
|
||||
except Exception as e:
|
||||
|
@ -115,6 +124,9 @@ class AnsibleProperties(object):
|
|||
unique_list.append(value)
|
||||
return sorted(unique_list, key=lambda x: x.name)
|
||||
|
||||
# TODO -- if this isn't used for 2.1.x it should be removed
|
||||
# property listing is still being tweaked so leaving for
|
||||
# the time being in case we want to use it
|
||||
def filter_jinja2(self, contents):
|
||||
new_contents = {}
|
||||
for key, value in contents.items():
|
||||
|
@ -150,7 +162,10 @@ class AnsibleProperties(object):
|
|||
|
||||
class AnsibleProperty(object):
|
||||
|
||||
def __init__(self, name, value, file_name):
|
||||
def __init__(self, name, value, file_name, overrides=False,
|
||||
orig_value=None):
|
||||
self.name = name
|
||||
self.value = value
|
||||
self.file_name = file_name
|
||||
self.overrides = overrides
|
||||
self.orig_value = orig_value
|
||||
|
|
|
@ -66,6 +66,19 @@ def get_kolla_log_file_size():
|
|||
return size
|
||||
|
||||
|
||||
def get_property_list_length():
|
||||
envvar = 'KOLLA_PROP_LIST_LENGTH'
|
||||
length_str = os.environ.get(envvar, '50')
|
||||
try:
|
||||
length = int(length_str)
|
||||
except Exception:
|
||||
raise CommandError(
|
||||
u._('Environmental variable ({env_var}) is not an '
|
||||
'integer ({prop_length}).')
|
||||
.format(env_var=envvar, prop_length=length_str))
|
||||
return length
|
||||
|
||||
|
||||
def get_admin_user():
|
||||
return os.environ.get("KOLLA_CLI_ADMIN_USER", "kolla")
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ ansible>=1.9.2
|
|||
Babel>=0.9.6
|
||||
cliff>=1.13.0 # Apache-2.0
|
||||
cliff-tablib>=1.1
|
||||
docker-py>=1.3.1
|
||||
docker-py==1.3.1
|
||||
jsonpickle>=0.9
|
||||
oslo.i18n>=1.3.0 # Apache-2.0
|
||||
oslo.utils!=2.6.0,>=2.4.0 # Apache-2.0
|
||||
|
|
Loading…
Reference in New Issue