From mboxrd@z Thu Jan 1 00:00:00 1970 From: kupcevic@sourceware.org Date: 16 Oct 2006 15:30:03 -0000 Subject: [Cluster-devel] conga/luci site/luci/Extensions/StorageReport. ... Message-ID: <20061016153003.22152.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: kupcevic at sourceware.org 2006-10-16 15:30:02 Modified files: luci/site/luci/Extensions: StorageReport.py luci/storage : form-macros Log message: luci storage: - order properties - other minor GUI nits Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/StorageReport.py.diff?cvsroot=cluster&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/form-macros.diff?cvsroot=cluster&r1=1.15&r2=1.16 --- conga/luci/site/luci/Extensions/StorageReport.py 2006/10/16 07:39:27 1.18 +++ conga/luci/site/luci/Extensions/StorageReport.py 2006/10/16 15:30:01 1.19 @@ -256,9 +256,10 @@ session.set(SESSION_STORAGE_XML_REPORT, {}) # return cached report if existing if session[SESSION_STORAGE_XML_REPORT].has_key(storagename): - if session[SESSION_STORAGE_XML_REPORT][storagename] != None: + tmp_report = session[SESSION_STORAGE_XML_REPORT][storagename] + if tmp_report != None: print 'using cached storage_xml_report' - return StorageReport(session[SESSION_STORAGE_XML_REPORT][storagename]) + return StorageReport(tmp_report) # retrieve storage report using ricci @@ -460,6 +461,7 @@ mapper_ret['mapper_id'] = mapper_id mapper_ret['mapper_type'] = type mapper_ret['props'] = props + mapper_ret['props_ordered'] = get_ordered_props(props) mapper_ret['targets'] = targets mapper_ret['new_targets'] = new_targets mapper_ret['sources'] = sources @@ -655,6 +657,7 @@ mapper_ret['mapper_id'] = mapper_id mapper_ret['mapper_type'] = type mapper_ret['props'] = props + mapper_ret['props_ordered'] = get_ordered_props(props) #mapper_ret['removable'] = removable mapper_ret['targets'] = targets mapper_ret['new_targets'] = new_targets @@ -1550,6 +1553,7 @@ data['pretty_name'] = pretty_name data['description'] = description data['props'] = props + data['props_ordered'] = get_ordered_props(props) data['path'] = path data['mapper_type'] = mapper_type data['mapper_id'] = mapper_id @@ -1641,7 +1645,7 @@ d_value = value validation_data['min_length'] = var.getAttribute('min_length') validation_data['max_length'] = var.getAttribute('max_length') - validation_data['illegal_chars'] = var.getAttribute('illegal_chars') + validation_data['illegal_chars'] = var.getAttribute('illegal_chars').replace('\'', '\\\'').replace('<', '<').replace('>', '>').replace('"', '\\\"').replace('&', '&') validation_data['reserved_words'] = var.getAttribute('reserved_words') elif type == VARIABLE_TYPE_INT_SEL or type == VARIABLE_TYPE_STRING_SEL: d_type = 'select' @@ -1668,30 +1672,81 @@ d_value += node.getAttribute('value') + ', ' if d_value != '': d_value = d_value[:len(d_value)-2] + elif type == 'hidden': + d_type = 'hidden' + d_value = str(value) else: d_type = 'label' d_value = value - if not mutable and d_type != 'label': + if not mutable and d_type != 'label' and d_type != 'hidden': d_type = 'label' d_value = str(value) pass + hidden = False + if type == 'hidden' or name in ['partition_begin', 'snapshot']: + hidden = True + if name == 'removable': removable = value == 'true' elif name == 'path': pass else: - data[name] = {'type' : d_type, - 'value' : d_value, + data[name] = {'name' : name, 'pretty_name' : get_pretty_prop_name(name), + 'type' : d_type, + 'value' : d_value, 'units' : d_units, - 'validation' : validation_data} + 'validation' : validation_data, + 'hidden' : hidden} pass return (removable, data) +def get_ordered_props(props): + names = [] + sizes = [] + mounts = [] + min_max = [] + uuids = [] + rest = [] + for prop_name in props: + prop = props[prop_name] + # names + if 'name' in prop_name or 'label' in prop_name or 'vendor' == prop_name or 'model' == prop_name: + names.append(prop) + # sizes + elif 'size' in prop_name or 'extents' in prop_name or 'percent' in prop_name: + sizes.append(prop) + # mounts + elif 'mount' in prop_name or 'fstab' in prop_name: + mounts.append(prop) + # min_max + elif 'min' in prop_name or 'max' in prop_name: + min_max.append(prop) + elif 'uuid' in prop_name: + uuids.append(prop) + else: + rest.append(prop) + + ordered = [] + for prop in names: + ordered.append(prop) + for prop in sizes: + ordered.append(prop) + for prop in mounts: + ordered.append(prop) + for prop in min_max: + ordered.append(prop) + for prop in rest: + ordered.append(prop) + for prop in uuids: + ordered.append(prop) + return ordered + + def mutable_props(props): for name in props: @@ -1747,8 +1802,11 @@ old_props = d['props'] new_props = {} for name in old_props: - new_props['content_variable_' + d['id'] + '_' + name] = old_props[name] + new_name = 'content_variable_' + d['id'] + '_' + name + new_props[new_name] = old_props[name] + new_props[new_name]['name'] = new_name d['props'] = new_props + d['props_ordered'] = get_ordered_props(new_props) d['is_source'] = False # content's color and icon --- conga/luci/storage/form-macros 2006/10/16 07:39:27 1.15 +++ conga/luci/storage/form-macros 2006/10/16 15:30:02 1.16 @@ -370,7 +370,10 @@
- + + +
@@ -766,7 +769,7 @@ + tal:define="props mapper/props_ordered">
@@ -990,12 +993,13 @@ - + tal:repeat="prop props"> + - +
@@ -1122,7 +1126,7 @@ + tal:define="props cont/props_ordered">
@@ -1659,7 +1663,7 @@
+ tal:define="props bd_data/props_ordered">
@@ -1882,7 +1886,7 @@
+ tal:define="props mapper/props_ordered">