Commit 1cbd5191 authored by Naoki Kambe's avatar Naoki Kambe
Browse files

[master] Merge branch 'trac547-summarized'

Conflicts:
	ChangeLog
	src/bin/stats/tests/b10-stats_test.py
parents bc436f1f 5a6f9f8c
225. [func] naokikambe
Added the HTTP/XML interface(b10-stats-httpd) to the statistics feature
in BIND 10. b10-stats-httpd is a standalone HTTP server and it requests
statistics data to the stats daemon(b10-stats) and sends it to HTTP
clients in XML format. Items of the data collected via b10-stats-httpd
are almost equivalent to ones which are collected via bindctl. Since it
also can send XSL(Extensible Stylessheet Language) document and XSD(XML
Schema definition) document, XML document is human-friendly to view
through web browsers and its data types are strictly defined.
(Trac #547, git tbdtbdtbdtbdtbdtbdtbdtbdtbdtbdtbdtbdttbd)
224. [bug] jinmei
b10-auth, src/lib/datasrc: inconsistency between the hot spot
cache and actual data source could cause a crash while query
......
......@@ -640,6 +640,7 @@ AC_CONFIG_FILES([Makefile
src/bin/stats/tests/isc/config/Makefile
src/bin/stats/tests/isc/util/Makefile
src/bin/stats/tests/testdata/Makefile
src/bin/stats/tests/http/Makefile
src/bin/usermgr/Makefile
src/bin/tests/Makefile
src/lib/Makefile
......@@ -729,10 +730,14 @@ AC_OUTPUT([doc/version.ent
src/bin/zonemgr/tests/zonemgr_test
src/bin/zonemgr/run_b10-zonemgr.sh
src/bin/stats/stats.py
src/bin/stats/stats_stub.py
src/bin/stats/stats.spec.pre
src/bin/stats/stats_httpd.py
src/bin/stats/stats.spec
src/bin/stats/stats-httpd.spec
src/bin/stats/stats-httpd-xml.tpl
src/bin/stats/stats-httpd-xsd.tpl
src/bin/stats/stats-httpd-xsl.tpl
src/bin/stats/run_b10-stats.sh
src/bin/stats/run_b10-stats_stub.sh
src/bin/stats/run_b10-stats-httpd.sh
src/bin/stats/tests/stats_test
src/bin/bind10/bind10.py
src/bin/bind10/run_bind10.sh
......@@ -774,7 +779,7 @@ AC_OUTPUT([doc/version.ent
chmod +x src/bin/zonemgr/run_b10-zonemgr.sh
chmod +x src/bin/stats/tests/stats_test
chmod +x src/bin/stats/run_b10-stats.sh
chmod +x src/bin/stats/run_b10-stats_stub.sh
chmod +x src/bin/stats/run_b10-stats-httpd.sh
chmod +x src/bin/bind10/run_bind10.sh
chmod +x src/bin/cmdctl/tests/cmdctl_test
chmod +x src/bin/xfrin/tests/xfrin_test
......
......@@ -546,6 +546,9 @@ class BoB:
def start_stats(self, c_channel_env):
self.start_simple("b10-stats", c_channel_env)
def start_stats_httpd(self, c_channel_env):
self.start_simple("b10-stats-httpd", c_channel_env)
def start_cmdctl(self, c_channel_env):
"""
Starts the command control process
......@@ -595,6 +598,7 @@ class BoB:
# ... and finally start the remaining processes
self.start_stats(c_channel_env)
self.start_stats_httpd(c_channel_env)
self.start_cmdctl(c_channel_env)
def startup(self):
......@@ -644,6 +648,7 @@ class BoB:
self.cc_session.group_sendmsg(cmd, "Xfrin", "Xfrin")
self.cc_session.group_sendmsg(cmd, "Zonemgr", "Zonemgr")
self.cc_session.group_sendmsg(cmd, "Stats", "Stats")
self.cc_session.group_sendmsg(cmd, "StatsHttpd", "StatsHttpd")
def stop_process(self, process, recipient):
"""
......
......@@ -183,6 +183,7 @@ class MockBob(BoB):
self.xfrin = False
self.zonemgr = False
self.stats = False
self.stats_httpd = False
self.cmdctl = False
self.c_channel_env = {}
self.processes = { }
......@@ -236,10 +237,15 @@ class MockBob(BoB):
self.processes[10] = ProcessInfo('b10-stats', ['/bin/false'])
self.processes[10].pid = 10
def start_stats_httpd(self, c_channel_env):
self.stats_httpd = True
self.processes[11] = ProcessInfo('b10-stats-httpd', ['/bin/false'])
self.processes[11].pid = 11
def start_cmdctl(self, c_channel_env):
self.cmdctl = True
self.processes[11] = ProcessInfo('b10-cmdctl', ['/bin/false'])
self.processes[11].pid = 11
self.processes[12] = ProcessInfo('b10-cmdctl', ['/bin/false'])
self.processes[12].pid = 12
# We don't really use all of these stop_ methods. But it might turn out
# someone would add some stop_ method to BoB and we want that one overriden
......@@ -289,9 +295,14 @@ class MockBob(BoB):
del self.processes[10]
self.stats = False
def stop_stats_httpd(self):
if self.stats_httpd:
del self.processes[11]
self.stats_httpd = False
def stop_cmdctl(self):
if self.cmdctl:
del self.processes[11]
del self.processes[12]
self.cmdctl = False
class TestStartStopProcessesBob(unittest.TestCase):
......@@ -316,6 +327,7 @@ class TestStartStopProcessesBob(unittest.TestCase):
self.assertEqual(bob.xfrin, auth)
self.assertEqual(bob.zonemgr, auth)
self.assertEqual(bob.stats, core)
self.assertEqual(bob.stats_httpd, core)
self.assertEqual(bob.cmdctl, core)
def check_preconditions(self, bob):
......@@ -544,7 +556,8 @@ class TestBossCmd(unittest.TestCase):
[8, 'b10-xfrin'],
[9, 'b10-zonemgr'],
[10, 'b10-stats'],
[11, 'b10-cmdctl']]
[11, 'b10-stats-httpd'],
[12, 'b10-cmdctl']]
self.assertEqual(answer, {'result': [0, processes]})
class TestParseArgs(unittest.TestCase):
......
......@@ -2,35 +2,36 @@ SUBDIRS = tests
pkglibexecdir = $(libexecdir)/@PACKAGE@
pkglibexec_SCRIPTS = b10-stats
noinst_SCRIPTS = b10-stats_stub
pkglibexec_SCRIPTS = b10-stats b10-stats-httpd
b10_statsdir = $(pkgdatadir)
b10_stats_DATA = stats.spec
b10_stats_DATA = stats.spec stats-httpd.spec
b10_stats_DATA += stats-httpd-xml.tpl stats-httpd-xsd.tpl stats-httpd-xsl.tpl
CLEANFILES = stats.spec b10-stats stats.pyc stats.pyo b10-stats_stub stats_stub.pyc stats_stub.pyo
CLEANFILES = b10-stats stats.pyc
CLEANFILES += b10-stats-httpd stats_httpd.pyc
man_MANS = b10-stats.8
EXTRA_DIST = $(man_MANS) b10-stats.xml
man_MANS = b10-stats.8 b10-stats-httpd.8
EXTRA_DIST = $(man_MANS) b10-stats.xml b10-stats-httpd.xml
EXTRA_DIST += stats.spec stats-httpd.spec
EXTRA_DIST += stats-httpd-xml.tpl stats-httpd-xsd.tpl stats-httpd-xsl.tpl
if ENABLE_MAN
b10-stats.8: b10-stats.xml
xsltproc --novalid --xinclude --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $(srcdir)/b10-stats.xml
endif
b10-stats-httpd.8: b10-stats-httpd.xml
xsltproc --novalid --xinclude --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $(srcdir)/b10-stats-httpd.xml
stats.spec: stats.spec.pre
$(SED) -e "s|@@LOCALSTATEDIR@@|$(localstatedir)|" stats.spec.pre >$@
endif
# this is done here since configure.ac AC_OUTPUT doesn't expand exec_prefix
b10-stats: stats.py
$(SED) -e "s|@@PYTHONPATH@@|@pyexecdir@|" \
-e "s|@@LOCALSTATEDIR@@|$(localstatedir)|" \
-e "s|.*#@@REMOVED@@$$||" stats.py >$@
chmod a+x $@
b10-stats_stub: stats_stub.py stats.py
$(SED) -e "s|@@PYTHONPATH@@|@pyexecdir@|" \
-e "s|@@LOCALSTATEDIR@@|$(localstatedir)|" stats_stub.py >$@
b10-stats-httpd: stats_httpd.py
$(SED) -e "s|@@PYTHONPATH@@|@pyexecdir@|" stats_httpd.py >$@
chmod a+x $@
'\" t
.\" Title: b10-stats-httpd
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: Mar 8, 2011
.\" Manual: BIND10
.\" Source: BIND10
.\" Language: English
.\"
.TH "B10\-STATS\-HTTPD" "8" "Mar 8, 2011" "BIND10" "BIND10"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
b10-stats-httpd \- BIND 10 HTTP server for HTTP/XML interface of statistics
.SH "SYNOPSIS"
.HP \w'\fBb10\-stats\-httpd\fR\ 'u
\fBb10\-stats\-httpd\fR [\fB\-v\fR]| [\fB\-\-verbose\fR]
.SH "DESCRIPTION"
.PP
\fBb10\-stats\-httpd\fR
is a standalone HTTP server\&. It is intended for HTTP/XML interface for statistics module\&. This server process runs as a process separated from the process of the BIND 10 Stats daemon (\fBb10\-stats\fR)\&. The server is initially executed by the BIND 10 boss process (\fBbind10\fR) and eventually exited by it\&. The server is intended to be server requests by HTTP clients like web browsers and third\-party modules\&. When the server is asked, it requests BIND 10 statistics data from
\fBb10\-stats\fR, and it sends the data back in Python dictionary format and the server converts it into XML format\&. The server sends it to the HTTP client\&. The server can send three types of document, which are XML (Extensible Markup Language), XSD (XML Schema definition) and XSL (Extensible Stylesheet Language)\&. The XML document is the statistics data of BIND 10, The XSD document is the data schema of it, and The XSL document is the style sheet to be showed for the web browsers\&. There is different URL for each document\&. But please note that you would be redirected to the URL of XML document if you request the URL of the root document\&. For example, you would be redirected to http://127\&.0\&.0\&.1:8000/bind10/statistics/xml if you request http://127\&.0\&.0\&.1:8000/\&. Please see the manual and the spec file of
\fBb10\-stats\fR
for more details about the items of BIND 10 statistics\&. The server uses CC session in communication with
\fBb10\-stats\fR\&. CC session is provided by
\fBb10\-msgq\fR
which is started by
\fBbind10\fR
in advance\&. The server is implemented by HTTP\-server libraries included in Python 3\&. The server obtains the configuration from the config manager (\fBb10\-cfgmgr\fR) in runtime\&. Please see below for more details about this spec file and configuration of the server\&.
.SH "OPTIONS"
.PP
The argument is as follow:
.PP
\fB\-v\fR, \fB\-\-verbose\fR
.RS 4
\fBb10\-stats\-httpd\fR
switches to verbose mode and sends verbose messages to STDOUT\&.
.RE
.SH "FILES"
.PP
/usr/local/share/bind10\-devel/stats\-httpd\&.spec
\(em the spec file of
\fBb10\-stats\-httpd\fR\&. This file contains configurable settings of
\fBb10\-stats\-httpd\fR\&. This setting can be configured in runtime via
bindctl(1)\&. Please see the manual of
bindctl(1)
about how to configure the settings\&.
.PP
/usr/local/share/bind10\-devel/stats\-httpd\-xml\&.tpl
\(em the template file of XML document\&.
.PP
/usr/local/share/bind10\-devel/stats\-httpd\-xsd\&.tpl
\(em the template file of XSD document\&.
.PP
/usr/local/share/bind10\-devel/stats\-httpd\-xsl\&.tpl
\(em the template file of XSL document\&.
.SH "CONFIGURATION AND COMMANDS"
.PP
The configurable setting in
stats\-httpd\&.spec
is:
.PP
\fIlisten_on\fR
.RS 4
a list of pairs of address and port for
\fBb10\-stats\-httpd\fR
to listen HTTP requests on\&. The pair consists of the
\fIaddress\fR
string and
\fIport\fR
number\&. The default setting is the list of address 127\&.0\&.0\&.1 port 8000\&. If the server is started by the default setting being left, for example, the URL for XML document is http://127\&.0\&.0\&.1:8000/bind10/statistics/xml\&. And also IPv6 addresses can be configured and they works in the runtime environment for dual stack\&. You can change the settings through
bindctl(8)\&.
.RE
.PP
The commands in
stats\-httpd\&.spec
are:
.PP
\fBstatus\fR
.RS 4
shows the status of
\fBb10\-stats\-httpd\fR
with its PID\&.
.RE
.PP
\fBshutdown\fR
.RS 4
exits the
\fBb10\-stats\-httpd\fR
process\&. (Note that the BIND 10 boss process will restart this service\&.)
.RE
.SH "SEE ALSO"
.PP
\fBb10-stats\fR(8),
\fBb10-msgq\fR(8),
\fBb10-cfgmgr\fR(8),
\fBbind10\fR(8),
\fBbindctl\fR(1),
BIND 10 Guide\&.
.SH "HISTORY"
.PP
\fBb10\-stats\-httpd\fR
was designed and implemented by Naoki Kambe of JPRS in Mar 2011\&.
.SH "COPYRIGHT"
.br
Copyright \(co 2011 Internet Systems Consortium, Inc. ("ISC")
.br
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<refentry>
<refentryinfo>
<date>Mar 8, 2011</date>
</refentryinfo>
<refmeta>
<refentrytitle>b10-stats-httpd</refentrytitle>
<manvolnum>8</manvolnum>
<refmiscinfo>BIND10</refmiscinfo>
</refmeta>
<refnamediv>
<refname>b10-stats-httpd</refname>
<refpurpose>BIND 10 HTTP server for HTTP/XML interface of statistics</refpurpose>
</refnamediv>
<docinfo>
<copyright>
<year>2011</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
<refsynopsisdiv>
<cmdsynopsis> <command>b10-stats-httpd</command>
<arg><option>-v</option></arg>|<arg><option>--verbose</option></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>DESCRIPTION</title>
<para>
<command>b10-stats-httpd</command> is a standalone HTTP server. It is
intended for HTTP/XML interface for statistics module. This server
process runs as a process separated from the process of the BIND 10 Stats
daemon (<command>b10-stats</command>). The server is initially executed
by the BIND 10 boss process (<command>bind10</command>) and eventually
exited by it. The server is intended to be server requests by HTTP
clients like web browsers and third-party modules. When the server is
asked, it requests BIND 10 statistics data from
<command>b10-stats</command>, and it sends the data back in Python
dictionary format and the server converts it into XML format. The server
sends it to the HTTP client. The server can send three types of document,
which are XML (Extensible Markup Language), XSD (XML Schema definition)
and XSL (Extensible Stylesheet Language). The XML document is the
statistics data of BIND 10, The XSD document is the data schema of it,
and The XSL document is the style sheet to be showed for the web
browsers. There is different URL for each document. But please note that
you would be redirected to the URL of XML document if you request the URL
of the root document. For example, you would be redirected to
http://127.0.0.1:8000/bind10/statistics/xml if you request
http://127.0.0.1:8000/. Please see the manual and the spec file
of <command>b10-stats</command> for more details about the items of BIND
10 statistics. The server uses CC session in communication
with <command>b10-stats</command>. CC session is provided
by <command>b10-msgq</command> which is started
by <command>bind10</command> in advance. The server is implemented by
HTTP-server libraries included in Python 3. The server obtains the
configuration from the config manager (<command>b10-cfgmgr</command>) in
runtime. Please see below for more details about this spec file and
configuration of the server.
</para>
</refsect1>
<refsect1>
<title>OPTIONS</title>
<para>The argument is as follow:</para>
<variablelist>
<varlistentry>
<term><option>-v</option>, <option>--verbose</option></term>
<listitem>
<para>
<command>b10-stats-httpd</command> switches to verbose mode and sends
verbose messages to STDOUT.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>FILES</title>
<para>
<filename>/usr/local/share/bind10-devel/stats-httpd.spec</filename>
<!--TODO: The filename should be computed from prefix-->
&mdash; the spec file of <command>b10-stats-httpd</command>. This file
contains configurable settings
of <command>b10-stats-httpd</command>. This setting can be configured in
runtime via
<refentrytitle>bindctl</refentrytitle><manvolnum>1</manvolnum>. Please
see the manual
of <refentrytitle>bindctl</refentrytitle><manvolnum>1</manvolnum> about
how to configure the settings.
</para>
<para>
<filename>/usr/local/share/bind10-devel/stats-httpd-xml.tpl</filename>
<!--TODO: The filename should be computed from prefix-->
&mdash; the template file of XML document.
</para>
<para>
<filename>/usr/local/share/bind10-devel/stats-httpd-xsd.tpl</filename>
<!--TODO: The filename should be computed from prefix-->
&mdash; the template file of XSD document.
</para>
<para>
<filename>/usr/local/share/bind10-devel/stats-httpd-xsl.tpl</filename>
<!--TODO: The filename should be computed from prefix-->
&mdash; the template file of XSL document.
</para>
</refsect1>
<refsect1>
<title>CONFIGURATION AND COMMANDS</title>
<para>
The configurable setting in
<filename>stats-httpd.spec</filename> is:
</para>
<variablelist>
<varlistentry>
<term><varname>listen_on</varname></term>
<listitem>
<para>
a list of pairs of address and port for
<command>b10-stats-httpd</command> to listen HTTP requests on. The
pair consists of the <varname>address</varname> string
and <varname>port</varname> number. The default setting is the list
of address 127.0.0.1 port 8000. If the server is started by the
default setting being left, for example, the URL for XML document
is http://127.0.0.1:8000/bind10/statistics/xml. And also IPv6
addresses can be configured and they works in the runtime
environment for dual stack. You can change the settings
through <refentrytitle>bindctl</refentrytitle><manvolnum>8</manvolnum>.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The commands in <filename>stats-httpd.spec</filename> are:
</para>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<listitem>
<para>
shows the status of <command>b10-stats-httpd</command> with its
PID.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>shutdown</command></term>
<listitem>
<para>
exits the <command>b10-stats-httpd</command> process. (Note that
the BIND 10 boss process will restart this service.)
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>b10-stats</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>b10-msgq</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>b10-cfgmgr</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>bind10</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>bindctl</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citetitle>BIND 10 Guide</citetitle>.
</para>
</refsect1>
<refsect1>
<title>HISTORY</title>
<para>
<command>b10-stats-httpd</command> was designed and implemented by Naoki
Kambe of JPRS in Mar 2011.
</para>
</refsect1>
</refentry><!--
- Local variables:
- mode: sgml
- End:
-->
#! /bin/sh
# Copyright (C) 2010 Internet Systems Consortium.
# Copyright (C) 2011 Internet Systems Consortium.
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
......@@ -21,13 +21,13 @@ export PYTHON_EXEC
PYTHONPATH=@abs_top_builddir@/src/lib/python
export PYTHONPATH
B10_FROM_BUILD=@abs_top_srcdir@
export B10_FROM_BUILD
BIND10_MSGQ_SOCKET_FILE=@abs_top_builddir@/msgq_socket
export BIND10_MSGQ_SOCKET_FILE
STATS_PATH=@abs_top_builddir@/src/bin/stats
B10_FROM_SOURCE=@abs_top_srcdir@/src/bin/stats
export B10_FROM_SOURCE
cd ${STATS_PATH}
exec ${PYTHON_EXEC} -O b10-stats_stub "$@"
exec ${PYTHON_EXEC} -O b10-stats-httpd "$@"
#! /bin/sh
# Copyright (C) 2010 Internet Systems Consortium.
# Copyright (C) 2010, 2011 Internet Systems Consortium.
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
......@@ -24,8 +24,8 @@ export PYTHONPATH
BIND10_MSGQ_SOCKET_FILE=@abs_top_builddir@/msgq_socket
export BIND10_MSGQ_SOCKET_FILE
B10_FROM_BUILD=@abs_top_builddir@
export B10_FROM_BUILD
B10_FROM_SOURCE=@abs_top_srcdir@/src/bin/stats
export B10_FROM_SOURCE
STATS_PATH=@abs_top_builddir@/src/bin/stats
......
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="$xsl_url_path"?>
<!--
- Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<stats:stats_data version="1.0"
xmlns:stats="$xsd_namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="$xsd_namespace $xsd_url_path">
$xml_string
</stats:stats_data>
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<schema targetNamespace="$xsd_namespace"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:stats="$xsd_namespace">
<annotation>
<documentation xml:lang="en">XML schema of the statistics
data in BIND 10</documentation>
</annotation>
<element name="stats_data">
<annotation>
<documentation>A set of statistics data</documentation>
</annotation>
<complexType>
$xsd_string
<attribute name="version" type="token" use="optional" default="1.0">