Skip to Content.
Sympa Menu

perfsonar-dev - Re: [pS-dev] time types in requests to SQL MA and E2Emon MP

Subject: perfsonar development work

List archive

Re: [pS-dev] time types in requests to SQL MA and E2Emon MP


Chronological Thread 
  • From: "Jeff W. Boote" <>
  • To: Roman Lapacz <>
  • Cc: Roman Lapacz <>, Mark Yampolskiy <>, "Matthias K. Hamm" <>, Loukik Kudarimoti <>, "" <>, Jason Zurawski <>
  • Subject: Re: [pS-dev] time types in requests to SQL MA and E2Emon MP
  • Date: Thu, 03 May 2007 10:24:27 -0600

Roman Lapacz wrote:
It would be good to find time to discuss the schema of transformation stuff and container structures in parameter (see my one of previous emails). I asked Szymon to include these topics in the aganda.

I'm attaching two requests to this message. The first one is a simple transformation from the snmp namespace to the characteristic namespace.

The second one is more complex - it allows you to specify exactly which elements in the response message should be converted using XPath. (Alternatively, it could be made much more simple if we just used a specific targeted eventType that would do this conversion for one type of response data only. I was just playing with the idea of a general time conversion transformation description. What do you think?)

I'd be happy to show the demo next week (and I'll send out a link too).

Not sure how long this will be working - but here are the two demos:


http://packrat.internet2.edu/circUIts/both.html
http://packrat.internet2.edu/gmaps/index.cgi?mode=map&domain=perfsonar.net&action=Go


They are probably very dependent on browser version - the first one only supports FireFox 1.5 right now. (I wrote the first one - Yee wrote the second one. Jason made modifications to both and added support into services for us.)

jeff
<?xml version='1.0' encoding='UTF-8'?>

<!-- Purpose:	Transform tool snmp namespace of 'utilization' into
                the characteristic namespace -->
<!-- Version:	$Id$ -->

<nmwg:message id="msg4"
              type="http://schema.perfsonar.net/MessageTypes/SetupDataRequest/2.0";
              <!-- perhaps ops namespace? -->
              xmlns:trans="http://schema.perfsonar.net/tools/transform/SnmpToUtil/2.0/";
              xmlns:utilization="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
              xmlns:snmp="http://ggf.org/ns/nmwg/tools/snmp/2.0/";
              xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
              xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";
              xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
              xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";>

  <nmwg:metadata id="meta1">
  
    <snmp:subject id="iusub1">
      <nmwgt:interface>
        <nmwgt:ipAddress type="v4">10.10.11.1</nmwgt:ipAddress>
        <nmwgt:hostName>dreadnought</nmwgt:hostName>
        <nmwgt:ifName>eth0</nmwgt:ifName>
        <nmwgt:ifDescription>gigE</nmwgt:ifDescription>
        <nmwgt:ifAddress type="ipv4">128.4.133.163</nmwgt:ifAddress>
        <nmwgt:ifIndex>0</nmwgt:ifIndex>
           
<!--
        Can specify this up here, or use seperate metadata chains
        to describe.
                
        <nmwgt:direction>*</nmwgt:direction>
        <nmwgt:direction>in</nmwgt:direction>
        <nmwgt:direction>out</nmwgt:direction>        
-->        
      </nmwgt:interface>
    </snmp:subject>
    
    <snmp:parameters id="param1">
      <nmwg:parameter name="SNMPVersion" value="1"/>
      <nmwg:parameter name="SNMPCommunity" value="public"/>
      <nmwg:parameter name="OID" value="1.3.6.1.2.1.2.2.1.10"/>
      <nmwg:parameter name="Alias" value="ifInOctets"/>
    </snmp:parameters> 
    
  </nmwg:metadata>

  <!-- The second metadata is used to convert the results of the second
  operation. It selects a specific time-range. This could potentially
  be chained in before the conversion to the 'characteristic' namespace. -->
  <nmwg:metadata id="meta2">
  
    <select:subject id="iusub2" metadataIdRef="meta1"/>

    <select:parameters id="param2">
    
      <nmwg:parameter name="startTime">1121472000</nmwg:parameter>
      <nmwg:parameter name="endTime">1121904000</nmwg:parameter>
      <!--
      <nmwg:parameter name="startTime">
          <nmtm:time type="ISO" value="2005-07-16T00:00:00Z"/>
      </nmwg:parameter>
      <nmwg:parameter name="endTime">
          <nmtm:time type="ISO" value="2005-07-21T00:00:00Z"/>
      </nmwg:parameter>
      -->
      <nmwg:parameter name="consolidationFunction">AVERAGE</nmwg:parameter>
      <nmwg:parameter name="resolution">60</nmwg:parameter>
    </select:parameters>

    <nmwg:eventType>http://ggf.org/ns/nmwg/ops/select/2.0</nmwg:eventType>

  </nmwg:metadata>

  <!-- The third metadata is used to convert the results of the first
  operation. It converts it into the 'characteristic' namespace. -->
  <nmwg:metadata id="meta3">
  
    <trans:subject id="iusub3" metadataIdRef="meta2"/>

    <trans:parameters id="param3">
    
      <!--
      <nmwg:parameter name="AnyConversionOptionsNeeded">Blah</nmwg:parameter>
      -->
    </trans:parameters>

    <nmwg:eventType>http://schema.perfsonar.net/tools/transform/SnmpToUtil/2.0</nmwg:eventType>

  </nmwg:metadata>

  <!-- This is the specific data we wish to see -->
  <nmwg:data id="data1" metadataIdRef="meta3"/>

</nmwg:message>
<?xml version='1.0' encoding='UTF-8'?>

<!-- Purpose:	Transform tool snmp namespace of 'utilization' into
                the characteristic namespace -->
<!-- Version:	$Id$ -->

              <!-- perhaps ops namespace for xmlns:trans? -->
<nmwg:message id="msg4"
              type="http://schema.perfsonar.net/MessageTypes/SetupDataRequest/2.0";
              xmlns:trans="http://schema.perfsonar.net/tools/transform/SnmpToUtil/2.0/";
              xmlns:utilization="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
              xmlns:snmp="http://ggf.org/ns/nmwg/tools/snmp/2.0/";
              xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
              xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";
              xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
              xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";>

  <nmwg:metadata id="meta1">
  
    <snmp:subject id="iusub1">
      <nmwgt:interface>
        <nmwgt:ipAddress type="v4">10.10.11.1</nmwgt:ipAddress>
        <nmwgt:hostName>dreadnought</nmwgt:hostName>
        <nmwgt:ifName>eth0</nmwgt:ifName>
        <nmwgt:ifDescription>gigE</nmwgt:ifDescription>
        <nmwgt:ifAddress type="ipv4">128.4.133.163</nmwgt:ifAddress>
        <nmwgt:ifIndex>0</nmwgt:ifIndex>
           
<!--
        Can specify this up here, or use seperate metadata chains
        to describe.
                
        <nmwgt:direction>*</nmwgt:direction>
        <nmwgt:direction>in</nmwgt:direction>
        <nmwgt:direction>out</nmwgt:direction>        
-->        
      </nmwgt:interface>
    </snmp:subject>
    
    <snmp:parameters id="param1">
      <nmwg:parameter name="SNMPVersion" value="1"/>
      <nmwg:parameter name="SNMPCommunity" value="public"/>
      <nmwg:parameter name="OID" value="1.3.6.1.2.1.2.2.1.10"/>
      <nmwg:parameter name="Alias" value="ifInOctets"/>
    </snmp:parameters> 
    
  </nmwg:metadata>

  <!-- The second metadata is used to convert the results of the second
  operation. It selects a specific time-range. This could potentially
  be chained in before the conversion to the 'characteristic' namespace. -->
  <nmwg:metadata id="meta2">
  
    <select:subject id="iusub2" metadataIdRef="meta1"/>

    <select:parameters id="param2">
    
      <nmwg:parameter name="startTime">1121472000</nmwg:parameter>
      <nmwg:parameter name="endTime">1121904000</nmwg:parameter>
      <!--
      <nmwg:parameter name="startTime">
          <nmtm:time type="ISO" value="2005-07-16T00:00:00Z"/>
      </nmwg:parameter>
      <nmwg:parameter name="endTime">
          <nmtm:time type="ISO" value="2005-07-21T00:00:00Z"/>
      </nmwg:parameter>
      -->
      <nmwg:parameter name="consolidationFunction">AVERAGE</nmwg:parameter>
      <nmwg:parameter name="resolution">60</nmwg:parameter>
    </select:parameters>

    <nmwg:eventType>http://ggf.org/ns/nmwg/ops/select/2.0</nmwg:eventType>

  </nmwg:metadata>

  <!-- The third metadata is used to convert the results of the first
  operation. It converts it into the 'characteristic' namespace. -->
  <nmwg:metadata id="meta3">
  
    <trans:subject id="iusub3" metadataIdRef="meta2"/>

    <trans:parameters id="param3">
    
        <nmwg:parameter name="ConvertTo">unix</nmwg:parameter>
        <nmwg:parameter name="ConvertFrom">iso</nmwg:parameter>
        <nmwg:parameter name="ConvertElements">
            <trans:parameters id="cp1">
                <nmwg:parameter name="startTime">//nmwg:message//select:parameters/nmwg:parameter[@name="startTime"]</nmwg:parameter>
                <nmwg:parameter name="endTime">//nmwg:message//select:parameters/nmwg:parameter[@name="endTime"]</nmwg:parameter>
                <nmwg:parameter name="datumTimeValue">//nmwg:message//nmwg:data/nmwg:datum[@timeType!="iso"]</nmwg:parameter>
            </trans:parameters>
        </nmwg:parameter>
    </trans:parameters>

    <nmwg:eventType>http://schema.perfsonar.net/tools/transform/Time/2.0</nmwg:eventType>

  </nmwg:metadata>

  <!-- This is the specific data we wish to see -->
  <nmwg:data id="data1" metadataIdRef="meta3"/>

</nmwg:message>



Archive powered by MHonArc 2.6.16.

Top of Page