perfsonar-user - RRD-MA 2.0 issue
Subject: perfSONAR User Q&A and Other Discussion
List archive
- From: Frederic LOUI <>
- To:
- Cc:
- Subject: RRD-MA 2.0 issue
- Date: Tue, 17 Apr 2007 16:59:38 +0200
- Organization: GIP RENATER
Hello,
I'm still trying to set up RRD-MA 2.0.
During the installation process everything went fine and the test using rrd-database_TEST.xml file is working well.
In order to test the RRD-MA 2.0 with our own data, I used the wrote the confPerfSonar.xml file. (Here attached to this mail)
Then I used http://193.49.159.5:8080/exist/admin/admin.xql?panel=browse&collection=/db/rrdmaconfig to upload the new xml file
describing the RRD repository.
Last week, thanks to Nina Jeliiazkova, I managed to get the graph displayed (Last monday) using PerfSONARUI 0.10 (web start version),
but now I no the graph is displayed ...
During the installation process I used the document Metadata_Configuration_Specification.doc
and also the "stitching part" of the RRD-MA 2.0 installation dicument on the wiki ...
Here attached this mail the xml metadata file and a screenshot of PerfSONARUI0.10 showing that no graph is displayed for the interface.
So my question is:
1- Do, I miss something in the installation/configuration/process ?
2- Is there a "known case" describing this issue ? (Maybe this is part of a FAQ...)
3- What log file to look at so as to solve the problem ? (Here attached perfsonar_debug.log when I click on the interface)
Thanks to all in advance for your help
Best regards/Frederic
--
Frederic LOUI / GIP RENATER
Service de Suivi Operationnel / Metrologie & QoS
Network Operations Service / Metrology & QoS
Tel: +33 1 53 94 20 40 / Fax: +33 1 53 94 20 31
http://www.renater.fr
<nmwg:store xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/" xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/" xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/" xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/" xmlns="http://ggf.org/ns/nmwg/base/2.0/"> <nmwg:metadata id="meta_in_8728"> <netutil:subject id="subj1"> <nmwgt:interface> <nmwgt:hostName>nri-b</nmwgt:hostName> <nmwgt:ifAddress type="ipv4">193.51.179.1</nmwgt:ifAddress> <nmwgt:ifName>GigabitEthernet1/0/0.210</nmwgt:ifName> <nmwgt:ifDescription>-R-- Lien vers UNIV-PARIS10(Gi0/3.210) ----</nmwgt:ifDescription> <nmwgt:direction>in</nmwgt:direction> <nmwgt:authRealm>RENATER-test</nmwgt:authRealm> <nmwgt:capacity>1000000000</nmwgt:capacity> </nmwgt:interface> </netutil:subject> <nmwg:parameters> <nmwg:parameter name="supportedEventType">http://ggf.org/ns/nmwg/characteristic/utilization/2.0</nmwg:parameter> </nmwg:parameters> </nmwg:metadata> <nmwg:data id="data_in_8728" metadataIdRef="meta_in_8728"> <nmwg:key> <nmwg:parameters> <nmwg:parameter name="file">/mnt/RRD-RENATER4/snmp/8728_Debit.rrd</nmwg:parameter> <nmwg:parameter name="dataSource">input</nmwg:parameter> <nmwg:parameter name="valueUnits">Bps</nmwg:parameter> </nmwg:parameters> </nmwg:key> </nmwg:data> <nmwg:metadata id="meta_out_8728"> <netutil:subject id="subj1"> <nmwgt:interface> <nmwgt:hostName>nri-b</nmwgt:hostName> <nmwgt:ifAddress type="ipv4">193.51.179.1</nmwgt:ifAddress> <nmwgt:ifName>GigabitEthernet1/0/0.210</nmwgt:ifName> <nmwgt:ifDescription>-R-- Lien vers UNIV-PARIS10(Gi0/3.210) ----</nmwgt:ifDescription> <nmwgt:direction>out</nmwgt:direction> <nmwgt:authRealm>RENATER-test</nmwgt:authRealm> <nmwgt:capacity>1000000000</nmwgt:capacity> </nmwgt:interface> </netutil:subject> <nmwg:parameters> <nmwg:parameter name="supportedEventType">http://ggf.org/ns/nmwg/characteristic/utilization/2.0</nmwg:parameter> </nmwg:parameters> </nmwg:metadata> <nmwg:data id="data_out_8728" metadataIdRef="meta_out_8728"> <nmwg:key> <nmwg:parameters> <nmwg:parameter name="file">/mnt/RRD-RENATER4/snmp/8728_Debit.rrd</nmwg:parameter> <nmwg:parameter name="dataSource">output</nmwg:parameter> <nmwg:parameter name="valueUnits">Bps</nmwg:parameter> </nmwg:parameters> </nmwg:key> </nmwg:data> </nmwg:store>2007-04-17 16:40:24,522 DEBUG - MetadataConfigurationStorageManager.fetch:
The number of elements returned as a result of xquery statement: 2
2007-04-17 16:40:24,547 DEBUG - RRDStorageManager.fetchRRDData: command:
fetch /mnt/RRD-RENATER4/snmp/8728_Debit.rrd AVERAGE --start 1176815396 --end
1176820796 --resolution 300
2007-04-17 16:40:24,548 DEBUG - Request.execute: run Service Engine for
extracted request
2007-04-17 16:40:24,548 DEBUG - RRDTypeMAServiceEngine.takeAction: Received a
request of type - GET_DATA
2007-04-17 16:40:24,548 DEBUG - MetadataConfigurationStorageManager.fetch:
xquery to fetch metadata/data from the metadata configuration:
declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/';
declare namespace
netutil='http://ggf.org/ns/nmwg/characteristic/utilization/2.0/';
declare namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/';
declare namespace functx = 'http://www.functx.com';
declare function functx:trim
( $arg as xs:string? ) as xs:string {
replace(replace($arg,'\s+$',''),'^\s+','')
};
let $res :=
for $i in //nmwg:metadata
where 1
and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType') or
(functx:trim(@value)='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType')]and
$i/netutil:subject/nmwgt:interface/nmwgt:hostName[functx:trim(text())='nri-b']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifName[functx:trim(text())='GigabitEthernet1/0/0.210']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifAddress[functx:trim(text())='193.51.179.1']and
$i/netutil:subject/nmwgt:interface/nmwgt:direction[functx:trim(text())='in']
return $i
let $metaids :=
for $j in $res
return fn:data($j/@id)
let $datas :=
for $k in $metaids
let $d :=
for $l in //nmwg:data
where fn:data($l/@metadataIdRef) = $k
return $l
return $d
return ($res, $datas)
2007-04-17 16:40:24,548 DEBUG - ExistXMLDatabaseAccess: perform XQuery
2007-04-17 16:40:24,618 DEBUG - MetadataConfigurationStorageManager.fetch:
The number of elements returned as a result of xquery statement: 2
2007-04-17 16:40:24,635 DEBUG - RRDStorageManager.fetchRRDData: command:
fetch /mnt/RRD-RENATER4/snmp/8728_Debit.rrd AVERAGE --start 1176815396 --end
1176820796 --resolution 300
2007-04-17 16:40:32,615 DEBUG - RequestHandler: Calling on parser to parse
the request
2007-04-17 16:40:32,643 DEBUG - RequestHandler: Message object constructed
from request. Request is of type: SetupDataRequest
2007-04-17 16:40:32,643 DEBUG - MessageHandlerFactory: classname asked for is
org.perfsonar.commons.messages.SetupDataRequest
2007-04-17 16:40:32,644 DEBUG - ExistDbFactory: Creating XML RPC Data
Repository: (xmldb:exist://127.0.0.1:8080/exist/xmlrpc/db/rrdmaconfig,
rrdmaservice, rrdmaservice)
2007-04-17 16:40:32,644 DEBUG - XmlDbDataRepository: created
2007-04-17 16:40:32,644 DEBUG - ExistDbFactory: Creating XML RPC Storage
Manager
2007-04-17 16:40:32,644 DEBUG - ExistDbXmlrpcXmlStorageManager: initStorage
with data repository
2007-04-17 16:40:32,644 DEBUG - SetupDataRequest: MessageHandler created
2007-04-17 16:40:32,644 DEBUG - RequestHandler: Calling on MessageHandler
[class org.perfsonar.commons.messages.SetupDataRequest] to satisfy request
2007-04-17 16:40:32,644 DEBUG - Request: MessageHandler.execute()
2007-04-17 16:40:32,644 DEBUG - Request.execute: run Service Engine for
extracted request
2007-04-17 16:40:32,644 DEBUG - RRDTypeMAServiceEngine.takeAction: Received a
request of type - GET_DATA
2007-04-17 16:40:32,644 DEBUG - MetadataConfigurationStorageManager.fetch:
xquery to fetch metadata/data from the metadata configuration:
declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/';
declare namespace
netutil='http://ggf.org/ns/nmwg/characteristic/utilization/2.0/';
declare namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/';
declare namespace functx = 'http://www.functx.com';
declare function functx:trim
( $arg as xs:string? ) as xs:string {
replace(replace($arg,'\s+$',''),'^\s+','')
};
let $res :=
for $i in //nmwg:metadata
where 1
and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType') or
(functx:trim(@value)='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType')]and
$i/netutil:subject/nmwgt:interface/nmwgt:hostName[functx:trim(text())='nri-b']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifName[functx:trim(text())='GigabitEthernet1/0/0.210']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifAddress[functx:trim(text())='193.51.179.1']and
$i/netutil:subject/nmwgt:interface/nmwgt:direction[functx:trim(text())='out']
return $i
let $metaids :=
for $j in $res
return fn:data($j/@id)
let $datas :=
for $k in $metaids
let $d :=
for $l in //nmwg:data
where fn:data($l/@metadataIdRef) = $k
return $l
return $d
return ($res, $datas)
2007-04-17 16:40:32,644 DEBUG - ExistXMLDatabaseAccess: perform XQuery
2007-04-17 16:40:32,644 DEBUG - ExistDbXmlrpcXmlDataRepository: connect
2007-04-17 16:40:32,687 DEBUG - MetadataConfigurationStorageManager.fetch:
The number of elements returned as a result of xquery statement: 2
2007-04-17 16:40:32,710 DEBUG - RRDStorageManager.fetchRRDData: command:
fetch /mnt/RRD-RENATER4/snmp/8728_Debit.rrd AVERAGE --start 1176216004 --end
1176820804 --resolution 300
2007-04-17 16:40:32,710 DEBUG - Request.execute: run Service Engine for
extracted request
2007-04-17 16:40:32,710 DEBUG - RRDTypeMAServiceEngine.takeAction: Received a
request of type - GET_DATA
2007-04-17 16:40:32,711 DEBUG - MetadataConfigurationStorageManager.fetch:
xquery to fetch metadata/data from the metadata configuration:
declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/';
declare namespace
netutil='http://ggf.org/ns/nmwg/characteristic/utilization/2.0/';
declare namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/';
declare namespace functx = 'http://www.functx.com';
declare function functx:trim
( $arg as xs:string? ) as xs:string {
replace(replace($arg,'\s+$',''),'^\s+','')
};
let $res :=
for $i in //nmwg:metadata
where 1
and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType') or
(functx:trim(@value)='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType')]and
$i/netutil:subject/nmwgt:interface/nmwgt:hostName[functx:trim(text())='nri-b']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifName[functx:trim(text())='GigabitEthernet1/0/0.210']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifAddress[functx:trim(text())='193.51.179.1']and
$i/netutil:subject/nmwgt:interface/nmwgt:direction[functx:trim(text())='in']
return $i
let $metaids :=
for $j in $res
return fn:data($j/@id)
let $datas :=
for $k in $metaids
let $d :=
for $l in //nmwg:data
where fn:data($l/@metadataIdRef) = $k
return $l
return $d
return ($res, $datas)
2007-04-17 16:40:32,711 DEBUG - ExistXMLDatabaseAccess: perform XQuery
2007-04-17 16:40:32,742 DEBUG - MetadataConfigurationStorageManager.fetch:
The number of elements returned as a result of xquery statement: 2
2007-04-17 16:40:32,757 DEBUG - RRDStorageManager.fetchRRDData: command:
fetch /mnt/RRD-RENATER4/snmp/8728_Debit.rrd AVERAGE --start 1176216004 --end
1176820804 --resolution 300
2007-04-17 16:47:57,214 DEBUG - RequestHandler: Calling on parser to parse
the request
2007-04-17 16:47:57,228 DEBUG - RequestHandler: Message object constructed
from request. Request is of type: MetadataKeyRequest
2007-04-17 16:47:57,229 DEBUG - MessageHandlerFactory: classname asked for is
org.perfsonar.commons.messages.MetadataKeyRequest
2007-04-17 16:47:57,229 DEBUG - ExistDbFactory: Creating XML RPC Data
Repository: (xmldb:exist://127.0.0.1:8080/exist/xmlrpc/db/rrdmaconfig,
rrdmaservice, rrdmaservice)
2007-04-17 16:47:57,229 DEBUG - XmlDbDataRepository: created
2007-04-17 16:47:57,229 DEBUG - ExistDbFactory: Creating XML RPC Storage
Manager
2007-04-17 16:47:57,229 DEBUG - ExistDbXmlrpcXmlStorageManager: initStorage
with data repository
2007-04-17 16:47:57,229 DEBUG - MetadataKeyRequest: MessageHandler created
2007-04-17 16:47:57,229 DEBUG - RequestHandler: Calling on MessageHandler
[class org.perfsonar.commons.messages.MetadataKeyRequest] to satisfy request
2007-04-17 16:47:57,229 DEBUG - Request: MessageHandler.execute()
2007-04-17 16:47:57,229 DEBUG - Request.execute: run Service Engine for
extracted request
2007-04-17 16:47:57,229 DEBUG - RRDTypeMAServiceEngine.takeAction: Received a
request of type - GET_KEY
2007-04-17 16:47:57,229 DEBUG - MetadataConfigurationStorageManager.fetch:
xquery to fetch metadata/data from the metadata configuration:
declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/';
declare namespace
netutil='http://ggf.org/ns/nmwg/characteristic/utilization/2.0/';
declare namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/';
declare namespace functx = 'http://www.functx.com';
declare function functx:trim
( $arg as xs:string? ) as xs:string {
replace(replace($arg,'\s+$',''),'^\s+','')
};
let $res :=
for $i in //nmwg:metadata
where 1
and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType') or
(functx:trim(@value)='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType')]
return $i
let $metaids :=
for $j in $res
return fn:data($j/@id)
let $datas :=
for $k in $metaids
let $d :=
for $l in //nmwg:data
where fn:data($l/@metadataIdRef) = $k
return $l
return $d
return ($res, $datas)
2007-04-17 16:47:57,230 DEBUG - ExistXMLDatabaseAccess: perform XQuery
2007-04-17 16:47:57,230 DEBUG - ExistDbXmlrpcXmlDataRepository: connect
2007-04-17 16:47:57,285 DEBUG - MetadataConfigurationStorageManager.fetch:
The number of elements returned as a result of xquery statement: 4
2007-04-17 16:47:57,409 DEBUG - RequestHandler: Calling on parser to parse
the request
2007-04-17 16:47:57,424 DEBUG - RequestHandler: Message object constructed
from request. Request is of type: SetupDataRequest
2007-04-17 16:47:57,424 DEBUG - MessageHandlerFactory: classname asked for is
org.perfsonar.commons.messages.SetupDataRequest
2007-04-17 16:47:57,425 DEBUG - ExistDbFactory: Creating XML RPC Data
Repository: (xmldb:exist://127.0.0.1:8080/exist/xmlrpc/db/rrdmaconfig,
rrdmaservice, rrdmaservice)
2007-04-17 16:47:57,425 DEBUG - XmlDbDataRepository: created
2007-04-17 16:47:57,425 DEBUG - ExistDbFactory: Creating XML RPC Storage
Manager
2007-04-17 16:47:57,425 DEBUG - ExistDbXmlrpcXmlStorageManager: initStorage
with data repository
2007-04-17 16:47:57,425 DEBUG - SetupDataRequest: MessageHandler created
2007-04-17 16:47:57,425 DEBUG - RequestHandler: Calling on MessageHandler
[class org.perfsonar.commons.messages.SetupDataRequest] to satisfy request
2007-04-17 16:47:57,425 DEBUG - Request: MessageHandler.execute()
2007-04-17 16:47:57,425 DEBUG - Request.execute: run Service Engine for
extracted request
2007-04-17 16:47:57,425 DEBUG - RRDTypeMAServiceEngine.takeAction: Received a
request of type - GET_DATA
2007-04-17 16:47:57,429 DEBUG - MetadataConfigurationStorageManager.fetch:
xquery to fetch metadata/data from the metadata configuration:
declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/';
declare namespace
netutil='http://ggf.org/ns/nmwg/characteristic/utilization/2.0/';
declare namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/';
declare namespace functx = 'http://www.functx.com';
declare function functx:trim
( $arg as xs:string? ) as xs:string {
replace(replace($arg,'\s+$',''),'^\s+','')
};
let $res :=
for $i in //nmwg:metadata
where 1
and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType') or
(functx:trim(@value)='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType')]and
$i/netutil:subject/nmwgt:interface/nmwgt:hostName[functx:trim(text())='nri-b']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifName[functx:trim(text())='GigabitEthernet1/0/0.210']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifAddress[functx:trim(text())='193.51.179.1']and
$i/netutil:subject/nmwgt:interface/nmwgt:direction[functx:trim(text())='out']
return $i
let $metaids :=
for $j in $res
return fn:data($j/@id)
let $datas :=
for $k in $metaids
let $d :=
for $l in //nmwg:data
where fn:data($l/@metadataIdRef) = $k
return $l
return $d
return ($res, $datas)
2007-04-17 16:47:57,429 DEBUG - ExistXMLDatabaseAccess: perform XQuery
2007-04-17 16:47:57,430 DEBUG - ExistDbXmlrpcXmlDataRepository: connect
2007-04-17 16:47:57,493 DEBUG - MetadataConfigurationStorageManager.fetch:
The number of elements returned as a result of xquery statement: 2
2007-04-17 16:47:57,512 DEBUG - RRDStorageManager.fetchRRDData: command:
fetch /mnt/RRD-RENATER4/snmp/8728_Debit.rrd AVERAGE --start 1176815849 --end
1176821249 --resolution 300
2007-04-17 16:47:57,512 DEBUG - Request.execute: run Service Engine for
extracted request
2007-04-17 16:47:57,512 DEBUG - RRDTypeMAServiceEngine.takeAction: Received a
request of type - GET_DATA
2007-04-17 16:47:57,513 DEBUG - MetadataConfigurationStorageManager.fetch:
xquery to fetch metadata/data from the metadata configuration:
declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/';
declare namespace
netutil='http://ggf.org/ns/nmwg/characteristic/utilization/2.0/';
declare namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/';
declare namespace functx = 'http://www.functx.com';
declare function functx:trim
( $arg as xs:string? ) as xs:string {
replace(replace($arg,'\s+$',''),'^\s+','')
};
let $res :=
for $i in //nmwg:metadata
where 1
and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType') or
(functx:trim(@value)='http://ggf.org/ns/nmwg/characteristic/utilization/2.0'
and functx:trim(@name)='supportedEventType')]and
$i/netutil:subject/nmwgt:interface/nmwgt:hostName[functx:trim(text())='nri-b']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifName[functx:trim(text())='GigabitEthernet1/0/0.210']and
$i/netutil:subject/nmwgt:interface/nmwgt:ifAddress[functx:trim(text())='193.51.179.1']and
$i/netutil:subject/nmwgt:interface/nmwgt:direction[functx:trim(text())='in']
return $i
let $metaids :=
for $j in $res
return fn:data($j/@id)
let $datas :=
for $k in $metaids
let $d :=
for $l in //nmwg:data
where fn:data($l/@metadataIdRef) = $k
return $l
return $d
return ($res, $datas)
2007-04-17 16:47:57,513 DEBUG - ExistXMLDatabaseAccess: perform XQuery
2007-04-17 16:47:57,614 DEBUG - MetadataConfigurationStorageManager.fetch:
The number of elements returned as a result of xquery statement: 2
2007-04-17 16:47:57,638 DEBUG - RRDStorageManager.fetchRRDData: command:
fetch /mnt/RRD-RENATER4/snmp/8728_Debit.rrd AVERAGE --start 1176815849 --end
1176821249 --resolution 300
- RRD-MA 2.0 issue, Frederic LOUI, 04/17/2007
- Message not available
- Re: RRD-MA 2.0 issue, Frederic LOUI, 04/23/2007
- Re: [perfsonar-user] Re: RRD-MA 2.0 issue, Loukik Kudarimoti, 04/24/2007
- Re: [perfsonar-user] Re: RRD-MA 2.0 issue, Frederic LOUI, 04/24/2007
- Re: [perfsonar-user] Re: RRD-MA 2.0 issue, Loukik Kudarimoti, 04/24/2007
- Re: [perfsonar-user] Re: RRD-MA 2.0 issue, Frederic LOUI, 04/24/2007
- Re: [perfsonar-user] Re: RRD-MA 2.0 issue, Loukik Kudarimoti, 04/24/2007
- Re: RRD-MA 2.0 issue, Frederic LOUI, 04/23/2007
- Re: [perfsonar-user] RRD-MA 2.0 issue, Loukik Kudarimoti, 04/24/2007
- Re: [perfsonar-user] RRD-MA 2.0 issue, Frederic LOUI, 04/24/2007
- Message not available
Archive powered by MHonArc 2.6.16.