Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

705 lines
18 KiB

<HTML>
<HEAD>
<STYLE>
BODY { font-family:Verdana; font-size:5pt; margin:0px; color:teal; }
.instructions { font-style:italic; text-align:right; color:gray; margin-left:.5em; }
.headline { background-color:teal; color:white; font-family:Arial Black; font-size:10pt;
text-align:center; padding-top:1em; }
.group { font-family:Arial Black; font-size:8pt; margin-top:.5em; margin-left:.5em;
margin-bottom:.5em; }
.button { font-family:Verdana; font-size:10pt; font-weight:bold; text-align:right;
color:gray; }
.arrow { font-family:Webdings; }
</STYLE>
</HEAD>
<SCRIPT>
var source;
var style;
var liststyle;
var utilizationstyle;
var methodDataStyle;
var theRequest;
var sourceURL;
var styleURL;
var oldXSLitem;
var theXMLResponse;
var operationId;
var g_strDevID;
var timeoutID;
// Script to execute method
function ExecuteMethods()
{
theMethodData = theXMLResponse.transformNode(methodDataStyle);
// We have a list of methods now, and their arguments
// Pop up a dialogu asking for the method to be executed.
thePage = '<HTML><BODY><BUTTON onClick="parents.results.display(\"Hi\")">Hi</BUTTON></BODY></HTML>';
parent.results.display(thePage);
}
function UpdateOperationId ()
{
operationId = operation.value;
}
function UpdateStylesheet ()
{
var theXSL = new String (stylesheetSelect.value);
if (theXSL == "Raw")
changeXSL("raw-xml.xsl");
else if (theXSL == "Summary")
changeXSL("summary.xsl");
else
alert ("Unsupported stylesheet: " + theXSL);
}
function DoOperation (bSend)
{
operationId = "EnumerateInstances";
var theOp = new String (operationId);
var theBody;
theBody = EnumInstance ();
if (bSend)
ShowList(theRequest, theBody);
else if (null != theBody)
ShowRequest(theBody);
}
function DoFullOperation (strDevID)
{
//revoke the previous time (if it exists)
if(timeoutID > 0)
{
window.clearInterval(timeoutID);
timeoutID = 0;
}
operationId = "GetInstance";
var theOp = new String (operationId);
var theBody;
theBody = GetInstance(strDevID);
ShowResults(theRequest, theBody, strDevID);
}
function displayList(xslHTML)
{
document.all.item("xsllist").innerHTML = xslHTML;
// Include the following line to view the HTML source as well
// document.all.item("xsldebug").innerHTML = "<XMP>" + xslHTML + "</XMP>";
}
// ----- Scripts to control XSL Processing ------
function update()
{
parent.results.display(theXMLResponse.transformNode(style));
}
function updateUtilization()
{
operationId = "GetInstance";
var theOp = new String (operationId);
var theBody;
var theXMLRequest = new ActiveXObject("Microsoft.XMLHTTP");
var theLocalXMLResponse = new ActiveXObject("Microsoft.XMLDOM");
theXMLRequest.open("POST", document.all.urlbox.value, false);
theXMLRequest.setRequestHeader("Content-Type", "application/xml;charset=\"utf-8\"");
theXMLRequest.setRequestHeader("CIMOperation", "MethodCall");
theXMLRequest.setRequestHeader("CIMMethod", "GetInstance");
theXMLRequest.setRequestHeader("CIMObject", "root\\cimv2");
theXMLRequest.setRequestHeader("CIMProtocolVersion", "1.0");
theBody = RequestPreamble ("GetInstance") +
GetInstanceNameParameter (g_strDevID) +
"<IPARAMVALUE NAME=\"IncludeQualifiers\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"LocalOnly\"><VALUE>" + "FALSE" +
"</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"IncludeClassOrigin\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"DeepInheritance\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
RequestPostamble ();
theXMLRequest.send (theBody);
theLocalXMLResponse.async = false;
theLocalXMLResponse.validateOnParse = false;
theLocalXMLResponse.loadXML(theXMLRequest.responseText);
var parseError = theLocalXMLResponse.parseError;
if (parseError && (0 < parseError.errorCode))
{
alert (parseError.errorCode);
alert (parseError.reason);
}
iValue = GetUsage(theLocalXMLResponse);
if(iValue == "")
{
iValue = 0;
}
parent.results.displayUtilization(theLocalXMLResponse.transformNode(utilizationstyle), iValue);
}
function GetUsage(XMLDOM)
{
if(XMLDOM.nodeName == "VALUE.NAMEDOBJECT")
{
for(f = 0; f < XMLDOM.childNodes.length; f++)
{
if(XMLDOM.childNodes.item(f).nodeName == "INSTANCE")
{
newXMLDOM = XMLDOM.childNodes.item(f)
for(t = 0; t < newXMLDOM.childNodes.length; t++)
{
if(newXMLDOM.childNodes.item(t).nodeName == "PROPERTY")
{
if(newXMLDOM.childNodes.item(t).attributes.getNamedItem("NAME").text == "LoadPercentage")
{
for(k = 0; k < newXMLDOM.childNodes.item(t).childNodes.length; k++){
if(newXMLDOM.childNodes.item(t).childNodes.item(k).nodeName == "VALUE")
{
//we got what we're looking for
return newXMLDOM.childNodes.item(t).childNodes.item(k).text;
}
}
}
}
}
}
}
}
for(i = 0; i < XMLDOM.childNodes.length; i++)
{
strValue = GetUsage(XMLDOM.childNodes.item(i));
if(strValue != "")
{
//we got something decent... return it
return strValue;
}
}
return "";
}
function updateList()
{
displayList(theXMLResponse.transformNode(liststyle));
}
function changeXSL(xsldoc)
{
styleURL = xsldoc;
style.load(styleURL);
update();
}
// ----- Scripts to activate buttons ------
function over(item)
{
item.style.color = "black";
}
function out(item) {
item.style.color = "gray";
}
// called by parent frame when the whole frameset is ready
function init()
{
methodDataStyle = new ActiveXObject("Microsoft.XMLDOM");
methodDataStyle.async = false;
methodDataStyle.load("methoddata.xsl");
theRequest = new ActiveXObject("Microsoft.XMLHTTP");
theXMLResponse = new ActiveXObject("Microsoft.XMLDOM");
operationId = "EnumerateInstances";
style = new ActiveXObject("Microsoft.XMLDOM");
style.async = false;
style.load("summary.xsl");
liststyle = new ActiveXObject("Microsoft.XMLDOM");
liststyle.async = false;
liststyle.load("list.xsl");
utilizationstyle = new ActiveXObject("Microsoft.XMLDOM");
utilizationstyle.async = false;
utilizationstyle.load("utilization.xsl");
timeoutID = 0;
}
function GetOptions()
{
document.all("ResponseStatus").innerText = "";
theRequest.open("OPTIONS", document.all.urlbox.value, false);
return null;
}
function InitOperation (method)
{
theRequest.open("POST", document.all.urlbox.value, false);
theRequest.setRequestHeader("Content-Type", "application/xml;charset=\"utf-8\"");
theRequest.setRequestHeader("CIMOperation", "MethodCall");
theRequest.setRequestHeader("CIMMethod", method);
theRequest.setRequestHeader("CIMObject", "root\\cimv2");
theRequest.setRequestHeader("CIMProtocolVersion", "1.0");
}
function GetObjectNameParameter ()
{
var str = "<IPARAMVALUE NAME=\"ObjectName\">";
var objectPath = new String (document.all.classbox.value);
if (-1 == objectPath.indexOf (".", 0))
{
// a class name
str = str + "<CLASSNAME NAME=\"" +
objectPath + "\">";
}
else
{
// an instance name
str = str + GetInstanceName (objectPath);
}
str = str + "</IPARAMVALUE>";
return str;
}
function GetClassNameParameter ()
{
return ("<IPARAMVALUE NAME=\"ClassName\"><CLASSNAME NAME=\"" +
document.all.classbox.value + "\"/></IPARAMVALUE>");
}
function GetInstanceNameParameter (strDeviceID)
{
var str = "<IPARAMVALUE NAME=\"InstanceName\">";
str = str + GetInstanceName (strDeviceID);
str = str + "</IPARAMVALUE>";
return str;
}
function GetReference (inStr)
{
// TODO - just handle INSTANCENAME case for now
return GetInstanceName (inStr);
}
function GetInstanceName (inStr)
{
var pathValue = new String (inStr);
var str = "<INSTANCENAME CLASSNAME=\"";
// Step 1 - get the class name
var startIndex = pathValue.indexOf (".");
str = str + pathValue.substr (0, startIndex) + "\">";
startIndex = startIndex + 1;
// Step 2 - get the keybindings
while (-1 != (index = pathValue.indexOf ("=", startIndex)))
{
str = str +
'<KEYBINDING NAME="' + pathValue.substr (startIndex,
index - startIndex) + '">';
// Get the key value
startIndex = index + 1;
var valueStr;
if (-1 != (index = pathValue.indexOf (",", startIndex)))
{
valueStr = new String (pathValue.substr (startIndex,
index - startIndex));
startIndex = index + 1;
}
else
{
valueStr = new String (pathValue.substr (startIndex));
startIndex = pathValue.length;
}
str = str + '<KEYVALUE';
// Work out VALUETYPE attribute
if (valueStr.charAt (0) == '"')
{
// string
str = str + '>' + valueStr.substr (1, valueStr.length-2);
// TODO - this COULD be an object path - need to
// trap that case and do a VALUE.REFERENCE instead
}
else if (!isNaN (parseInt (valueStr)))
{
// numeric
str = str + ' VALUETYPE="numeric">' + valueStr;
}
else
{
// assume boolean
str = str + ' VALUETYPE="boolean">' + valueStr;
}
str = str + "</KEYVALUE></KEYBINDING>";
}
str = str + "</INSTANCENAME>";
return (str);
}
function GetIncludeQualifiersParameter ()
{
var IncludeQualifiers = "FALSE";
if (includeQualifiers.checked)
IncludeQualifiers = "TRUE";
return ("<IPARAMVALUE NAME=\"IncludeQualifiers\"><VALUE>" +
IncludeQualifiers + "</VALUE></IPARAMVALUE>");
}
function GetLocalOnlyParameter ()
{
var LocalOnly = "FALSE";
if (localOnly.checked)
LocalOnly = "TRUE";
return ("<IPARAMVALUE NAME=\"LocalOnly\"><VALUE>" + LocalOnly +
"</VALUE></IPARAMVALUE>");
}
function GetClassOriginParameter ()
{
var ClassOrigin = "FALSE";
if (includeClassOrigin.checked)
ClassOrigin = "TRUE";
return ("<IPARAMVALUE NAME=\"IncludeClassOrigin\"><VALUE>" +
ClassOrigin + "</VALUE></IPARAMVALUE>");
}
function GetPropertyNameParameter ()
{
return ("<IPARAMVALUE NAME=\"PropertyName\"><VALUE>" +
propertyBox.value + "</VALUE></IPARAMVALUE>");
}
function GetAssocClassParameter ()
{
if (assocClass.value)
{
return ("<IPARAMVALUE NAME=\"AssocClass\"><VALUE>" +
assocClass.value + "</VALUE></IPARAMVALUE>");
}
else
return "";
}
function GetResultClassParameter ()
{
if (document.all.resultClass.value)
{
return ("<IPARAMVALUE NAME=\"ResultClass\"><VALUE>" +
document.all.resultClass.value + "</VALUE></IPARAMVALUE>");
}
else
return "";
}
function GetRoleParameter ()
{
if (role.value)
return ("<IPARAMVALUE NAME=\"Role\"><VALUE>" +
role.value + "</VALUE></IPARAMVALUE>");
else
return "";
}
function GetResultRoleParameter ()
{
if (resultRole.value)
return ("<IPARAMVALUE NAME=\"ResultRole\"><VALUE>" +
resultRole.value + "</VALUE></IPARAMVALUE>");
else
return "";
}
function GetPropertyListParameter ()
{
var strValue = new String (propertyBox.value);
var value = "";
if (0 < strValue.length)
{
value = "<IPARAMVALUE NAME=\"PropertyList\"><VALUE.ARRAY>";
var startIndex = 0;
while (-1 != (index = strValue.indexOf (",", startIndex)))
{
value = value +
"<VALUE>" + strValue.substr (startIndex,
index - startIndex) + "</VALUE>";
startIndex = index + 1;
}
// Get the last element (TODO - empty arrays?)
value = value + "<VALUE>"
+ strValue.substr (startIndex) + "</VALUE>";
value = value + "</VALUE.ARRAY></IPARAMVALUE>"
}
return value;
}
function GetPropertyValueParameter ()
{
var strValue = new String (propertyValueBox.value);
var value = "<IPARAMVALUE NAME=\"NewValue\"";
// TODO - if first characters are "ref:" then treat
// as reference value
if (strValue.length == 0)
{
// NULL value
value = value + "/>";
}
else if (strValue.substring (0,4) == new String("ref:"))
{
if (4 == strValue.length)
value = value + "/>";
else
{
value = value + "><VALUE.REFERENCE>" +
GetReference (strValue.substr (4)) +
"</VALUE.REFERENCE></IPARAMVALUE>";
}
}
else if (strValue.charAt (0) == '{')
{
value = value + "><VALUE.ARRAY>";
// Assume an array value
var startIndex = 1;
while (-1 != (index = strValue.indexOf (",", startIndex)))
{
// TODO - build up <VALUE.ARRAY> for this
value = value +
"<VALUE>" + strValue.substr (startIndex,
index - startIndex) + "</VALUE>";
startIndex = index + 1;
}
// Get the last element (TODO - empty arrays?)
value = value + "<VALUE>"
+ strValue.substr (startIndex,
strValue.indexOf("}",startIndex) - startIndex) + "</VALUE>";
value = value + "</VALUE.ARRAY></IPARAMVALUE>";
}
else
value = value + "><VALUE>" + strValue + "</VALUE></IPARAMVALUE>";
return value;
}
function GetDeepInheritanceParameter ()
{
var DeepInheritance = "FALSE";
if (deepInheritance.checked)
DeepInheritance = "TRUE";
return ("<IPARAMVALUE NAME=\"DeepInheritance\"><VALUE>" +
DeepInheritance + "</VALUE></IPARAMVALUE>");
}
function GetQueryParameter ()
{
return ("<IPARAMVALUE NAME=\"Query\"><VALUE>" +
document.all.querybox.value + "</VALUE></IPARAMVALUE>" );
}
function GetQueryLanguageParameter ()
{
return ("<IPARAMVALUE NAME=\"QueryLanguage\"><VALUE>" +
"WQL" + "</VALUE></IPARAMVALUE>");
}
function DoCustomOperation()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var theFile = fso.OpenTextFile(".\multireq.xml");
alert ("Hello");
}
function EnumInstance()
{
InitOperation ("EnumerateInstances");
return RequestPreamble ("EnumerateInstances") +
"<IPARAMVALUE NAME=\"ClassName\"><CLASSNAME NAME=\"" +
"CIM_Processor" + "\"/></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"IncludeQualifiers\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"LocalOnly\"><VALUE>" + "FALSE" +
"</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"IncludeClassOrigin\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"DeepInheritance\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
RequestPostamble ();
}
function GetInstance(strDevID)
{
InitOperation ("GetInstance");
return RequestPreamble ("GetInstance") +
GetInstanceNameParameter (strDevID) +
"<IPARAMVALUE NAME=\"IncludeQualifiers\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"LocalOnly\"><VALUE>" + "FALSE" +
"</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"IncludeClassOrigin\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
"<IPARAMVALUE NAME=\"DeepInheritance\"><VALUE>" +
"TRUE" + "</VALUE></IPARAMVALUE>" +
RequestPostamble ();
}
function ShowResults(theXMLRequest, theXMLBody, strDevID)
{
theXMLRequest.send (theXMLBody);
theXMLResponse.async = false;
theXMLResponse.validateOnParse = false;
// document.all("ResponseHeaders").innerText = theXMLRequest.getAllResponseHeaders();
theXMLResponse.loadXML(theXMLRequest.responseText);
var parseError = theXMLResponse.parseError;
if (parseError && (0 < parseError.errorCode))
{
alert (parseError.errorCode);
alert (parseError.reason);
}
update(theXMLResponse);
g_strDevID = strDevID;
updateUtilization();
timeoutID = window.setInterval("updateUtilization()", 2000);
}
function ShowList(theXMLRequest, theXMLBody)
{
theXMLRequest.send (theXMLBody);
theXMLResponse.async = false;
theXMLResponse.validateOnParse = false;
theXMLResponse.loadXML(theXMLRequest.responseText);
var parseError = theXMLResponse.parseError;
if (parseError && (0 < parseError.errorCode))
{
alert (parseError.errorCode);
alert (parseError.reason);
}
updateList(theXMLResponse);
}
function ShowRequest(theBody)
{
theXMLResponse.loadXML(theBody);
update(theXMLResponse);
}
function ParseNamespace (nsPath)
{
var parsedPath = "";
var inputPath = new String (nsPath);
var startIndex = 0;
while ((-1 != (index = inputPath.indexOf ("/", startIndex))) ||
(-1 != (index = inputPath.indexOf ("\\", startIndex))))
{
parsedPath = parsedPath +
'<NAMESPACE NAME="' + inputPath.substr (startIndex,
index - startIndex) + '"/>';
startIndex = index + 1;
}
parsedPath = parsedPath + '<NAMESPACE NAME="'
+ inputPath.substr (startIndex) + '"/>';
return (parsedPath);
}
function RequestPreamble (method)
{
var str = "<?xml version=\"1.0\" ?>" +
"<CIM CIMVERSION=\"2.0\" DTDVERSION=\"2.0\">" +
"<MESSAGE ID=\"877\" PROTOCOLVERSION=\"1.0\">" +
"<SIMPLEREQ>" +
"<IMETHODCALL NAME=\"" + method + "\">" +
"<LOCALNAMESPACEPATH>" +
ParseNamespace ("root\\cimv2") +
"</LOCALNAMESPACEPATH>";
return (str);
}
function RequestPostamble ()
{
return ("</IMETHODCALL></SIMPLEREQ></MESSAGE></CIM>");
}
</SCRIPT>
<BODY>
<DIV CLASS="headline">CIM Processor Monitor</DIV>
<DIV class=group>
<TABLE align=left border=0 cellPadding=1 cellSpacing=1 width="75%">
<TR>
<TD><FONT size=1><LABEL>CIM Server URL&nbsp;</LABEL></FONT></TD>
</TR>
<TD><INPUT id=urlbox size=35 value=http://rajeshr72/cimom
style="HEIGHT: 22px; WIDTH: 235px"></TD></TR>
<TR>
<TD></TD>
<TD></TD></TR></TABLE></DIV>
<P>
<DIV class=group>&nbsp;</DIV>
<DIV class=group>&nbsp;</DIV>
<DIV class=group><CENTER><BUTTON
id=operationButton onclick=DoOperation(true) style="LEFT: 221px; TOP: 248px">Get
Processor List</BUTTON></CENTER></DIV>
<DIV class=instructions>
</DIV>
<DIV class=instructions>
<HR>
&nbsp;</DIV>
<DIV id="xsllist"><!-- resulting HTML will be inserted here --></DIV>
</BODY>
</HTML>