From: <ba...@us...> - 2007-02-27 00:42:19
|
Revision: 445 http://svn.sourceforge.net/omc/?rev=445&view=rev Author: bartw Date: 2007-02-26 16:42:17 -0800 (Mon, 26 Feb 2007) Log Message: ----------- adding link to return to namespace on top; clickable method REF out params Modified Paths: -------------- tools/trunk/yawn/yawn.py Modified: tools/trunk/yawn/yawn.py =================================================================== --- tools/trunk/yawn/yawn.py 2007-02-22 00:19:49 UTC (rev 444) +++ tools/trunk/yawn/yawn.py 2007-02-27 00:42:17 UTC (rev 445) @@ -65,7 +65,7 @@ strItem = '"' + strItem + '"' rval+= strItem rval+= '}' - return rval + return cgi.escape(rval) elif type(x) == datetime: #http://windowssdk.msdn.microsoft.com/en-us/library/ms739696.aspx rval = x.strftime('%Y%m%d%H%M%S') @@ -87,7 +87,7 @@ while len(uoff) < 3: uoff = '0'+uoff uoff = neg and '-'+uoff or '+'+uoff - return rval + uoff + return cgi.escape(rval + uoff) elif type(x) == timedelta: #http://windowssdk.msdn.microsoft.com/en-us/library/ms744132.aspx mss = str(x.microseconds) @@ -108,10 +108,10 @@ days = str(x.days) while len(days) < 8: days = '0'+days - return days + hours + mins + secs + '.' + mss + ':000' + return cgi.escape(days + hours + mins + secs + '.' + mss + ':000') else: - return str(x) + return cgi.escape(str(x)) ############################################################################## _status_codes = [('', '') @@ -221,9 +221,11 @@ ') : ' + arg[1] + '</i>') req.write( '</body></html>') return; - req.write( _printHead('Deleted Instance of '+instName.classname)) - urlargs = {} - req.write('Deleted Instance of ' + instName.classname) + urlargs = {'ns':ns,'url':url} + req.write( _printHead('Deleted Instance of '+instName.classname, + urlargs=urlargs)) + req.write('Deleted Instance of ' + _makeHref(req, 'GetClass', + urlargs, instName.classname)) _printInstanceNames(req, urlargs, [instName], omitGetLink=True) return '</body></html>' @@ -265,7 +267,7 @@ class_urlargs["className"] = instName.classname ht = 'Objects associated with instance of ' ht+= _makeHref(req, 'GetClass', class_urlargs, instName.classname) - ht = _printHead('ReferenceNames '+instName.classname, ht, req) + ht = _printHead('ReferenceNames '+instName.classname, ht, req, urlargs) req.write(ht) _printInstanceNames(req, urlargs, [instName]) @@ -359,7 +361,7 @@ urlargs['url'] = url instName = _decodeObject(instPath) refs = None - req.write( _printHead(assocCall+' '+instName.classname)) + req.write( _printHead(assocCall+' '+instName.classname,urlargs=urlargs)) class_urlargs = urlargs.copy() class_urlargs["className"] = instName.classname @@ -440,7 +442,7 @@ urlargs['url'] = url instName = _decodeObject(instPath) assocs = _ex(req,conn.AssociatorNames,ObjectName=instName) - ht = _printHead('AssociatorNames '+instName.classname) + ht = _printHead('AssociatorNames '+instName.classname, urlargs=urlargs) groupedAssocs = {} for assoc in assocs: if assoc.classname not in groupedAssocs.keys(): @@ -464,7 +466,7 @@ class_urlargs['ns'] = ns class_urlargs['url'] = url class_urlargs["className"] = instName.classname - ht = _printHead('Filtered ReferenceNames Dialog... (Coming...)') + ht = _printHead('Filtered ReferenceNames Dialog... (Coming...)', urlargs=urlargs) ht+= '<h1>Filtered References on Class '+_makeHref(req, 'GetClass', class_urlargs, instName.classname)+'</h1>' req.write(ht) _printInstanceNames(req, class_urlargs, [instName]) @@ -626,7 +628,7 @@ inst = None klass = _ex(req,conn.GetClass,ClassName=instName.classname, LocalOnly = False, IncludeQualifiers = True) inst = _ex(req,conn.GetInstance,InstanceName=instName, LocalOnly = False) - ht = _printHead('Instance of '+instName.classname, req=req) + ht = _printHead('Instance of '+instName.classname, req=req, urlargs=urlargs) ht+= _displayInstance(req, inst, instName, klass, urlargs) return ht + '</body></html>' @@ -721,7 +723,7 @@ urlargs['ns'] = ns urlargs['url'] = url insts = _ex(req,conn.EnumerateInstances,ClassName = className, LocalOnly = False) - ht = _printHead('Instances of '+className, 'Instances of '+className, req) + ht = _printHead('Instances of '+className, 'Instances of '+className, req, urlargs=urlargs) numInsts = len(insts) msgStart = 'Showing '+`numInsts`+' Instances<br />' if numInsts == 0: @@ -811,7 +813,7 @@ def CreateInstancePrep(req, url, ns, className): conn = _frontMatter(req, url, ns) klass = _ex(req, conn.GetClass, ClassName = className, LocalOnly = False, IncludeQualifiers = True) - ht = _printHead('Create Instances of '+className,'Create Instances of '+className, req) + ht = _printHead('Create Instances of '+className,'Create Instances of '+className, req, urlargs={'ns':ns, 'url':url}) ht+= _displayInstanceMod(req, conn, url, ns, klass) return ht + '</body></html>' @@ -820,7 +822,7 @@ conn = _frontMatter(req, url, ns) instPathDec = _decodeObject(instPath) klass = _ex(req,conn.GetClass,ClassName=instPathDec.classname, LocalOnly = False, IncludeQualifiers = True) - ht = _printHead('Modify Instances of '+instPathDec.classname,'Modify Instances of '+instPathDec.classname, req) + ht = _printHead('Modify Instances of '+instPathDec.classname,'Modify Instances of '+instPathDec.classname, req, urlargs={'ns':ns, 'url':url}) ht+= _displayInstanceMod(req, conn, url, ns, klass, (instPath, instPathDec)) return ht + '</body></html>' @@ -980,7 +982,7 @@ class_urlargs["className"] = className ht+= ' of ' ht+= _makeHref(req, 'GetClass', class_urlargs, className) + '</h1>' - ht = _printHead('Instances of '+className, ht, req) + ht = _printHead('Instances of '+className, ht, req, urlargs=urlargs) req.write(ht) _printInstanceNames(req, urlargs, instNames) ht = '<p>' @@ -1013,7 +1015,7 @@ ht = 'Invoked method '+_makeHref(req, 'GetClass', urlargs, className) ht+= '::'+_makeHref(req, 'GetClass', urlargs, method, '#'+method.lower()) ht+= '()' - ht = _printHead('Results of Method '+className+'::'+method, ht, req) + ht = _printHead('Results of Method '+className+'::'+method, ht, req, urlargs=urlargs) cimmethod = klass.methods[method] inParms = {} @@ -1065,8 +1067,12 @@ ht+= '<th>Data Type</th><th>Param Name</th><th>Value</th></tr>' for parmName, parm in outParms.items(): metaParm = cimmethod.parameters[parmName] + isRef = False if metaParm.reference_class is not None: - dt = metaParm.reference_class + isRef = True + urlargs['className'] = metaParm.reference_class + dt = _makeHref(req, 'GetClass', urlargs, + metaParm.reference_class) else: dt = metaParm.type ht+= '<tr><td>'+dt+'</td><td>'+metaParm.name+'</td><td>' @@ -1080,7 +1086,10 @@ display = display + ' ('+valuesQual[valIdx]+')' ht+= display else: - ht+= _val2str(parm) + if isRef: + ht+= _makeGetInstLink(req, urlargs, parm, _val2str(parm)) + else: + ht+= _val2str(parm) ht+= '</td></tr>' ht+= '</table>' @@ -1118,12 +1127,12 @@ outParms.append(param) - ht = _printHead('Method '+className+'::'+method) classUrlArgs = urlargs.copy() classUrlArgs['className'] = className ht = 'Invoke method '+_makeHref(req, 'GetClass', classUrlArgs, className) ht+= '::'+_makeHref(req, 'GetClass', classUrlArgs, method, '#'+method.lower())+'()' - ht = _printHead('Method '+className+'::'+method, ht, req) + # note, ht passed in as param. + ht = _printHead('Method '+className+'::'+method, ht, req, urlargs=urlargs) if isinstance(lobjPath, pywbem.CIMInstanceName): ht+= 'on instance' req.write(ht,0) @@ -1277,7 +1286,7 @@ urlargs['ns'] = ns urlargs['url'] = url klass = _ex(req, conn.GetClass, ClassName = className, LocalOnly = "false", IncludeClassOrigin = "true") - ht = _printHead('Class '+className, 'Class '+className, req) + ht = _printHead('Class '+className, 'Class '+className, req, urlargs=urlargs) instUrlArgs = urlargs.copy() instUrlArgs['className'] = className ht+= '<table border=0><tr><td>' @@ -1316,7 +1325,7 @@ ht+= ', ' ht+= qual.name if qual.name not in ["Composition", "Association", "Aggregation"]: - ht+= ' ("'+cgi.escape(_val2str(qual.value))+'") ' + ht+= ' ("'+_val2str(qual.value)+'") ' ht+= '</td></tr>' ht+= '<tr><td align="center" bgcolor="#C0C0C0" colspan="3"><b>' ht+= 'Parameters (local in grey)</b></td></tr>' @@ -1765,7 +1774,7 @@ return "</table></body></html>" ############################################################################## -def _printHead(title = None, heading = None, req = None): +def _printHead(title = None, heading = None, req = None, urlargs = None): ht = '\n<html><head><title>YAWN: CIM' if title is not None: ht+= ' ' + title @@ -1777,7 +1786,13 @@ ht+= '<table border=0 cellpadding=0 cellspacing=0 vspace=0><tr><td nowrap width=100% valign=top>' if heading is not None: ht+= '<h1>'+heading+'</h1>' - ht+= '</td><td valign=top nowrap align=right><font size=-1><i>' + ht+= '</td>' + if urlargs and 'ns' in urlargs.keys() and 'url' in urlargs.keys(): + lurlargs = {'ns':urlargs['ns'], 'url':urlargs['url']} + ht+= '<td valign=top nowrap align=right><font size=-1><i>' + ht+= _makeHref(req, 'EnumClassNames', lurlargs, lurlargs['ns']) + ht+= ' </i></td>' + ht+= '<td valign=top nowrap align=right><font size=-1><i>' ht+= '<a href="'+_baseScript(req)+'/Logout">Logout >></a></i>' ht+= '</td></tr></table>' return ht @@ -1841,6 +1856,8 @@ ht+= 'Unable to enumerate Namespaces. Return to the ' ht+= '<a href="'+_baseScript(req)+'">Login page</a> and specify a ' ht+= 'Namespace.' + if req.conn.last_reply is not None: + ht+= '<pre>'+cgi.escape(req.conn.last_reply)+'</pre>' return ht + '</body></html>' urlargs = {} urlargs['url'] = url This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |