You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2014/06/02 21:37:57 UTC

dispatch: WARNING significant configuration schema changes coming soon.

I am proposing to rework the dispatch configuration schema as part of
"DISPATCH-56: Implement Create/Read/Update/Delete operations in the
agent"

The idea is to have a single schema for the configuration file, AMQP
management messages and anything else that involves configuration.

The proposal is comitted since r1599320 but not yet wired into dispatch.
See python/qpid_dispatch_internal/management/*

The schema content has not changed much. The main differences
- schema is in JSON, not python, more open to future non-python work.
- documentation is integrated into the schema.

The *.py files provide code to
- load/dump a scheam from JSON
- handle management data in JSON format based on the schema.
- parse the existing qdrouterd.conf file based on the schema.
- generate a man page like the existing qdrouterd.conf.5 from the schema
(see build/doc/man/qdrouterdconf.conf.5.new)

If there are no objections my next move will be to *remove* the existing
configuration file schema and parsing code and integrate this stuff.

In particular if you are using the fact that you can currently extend
the schema in python, please let me know. It will be straightforward to
provide this under the new schema but will involve some syntactic
changes.

The commits for the new schema stuff are:

------------------------------------------------------------------------
r1599320 | aconway | 2014-06-02 15:26:53 -0400 (Mon, 02 Jun 2014) | 5
lines

DISPATCH-56: Generate qdrouterd.conf man file from management schema.

Move documentation from qdrouterd.conf.5.in to the qdrouter.json schema,
generate
the man file from the schema.

------------------------------------------------------------------------
r1598667 | aconway | 2014-05-30 12:48:56 -0400 (Fri, 30 May 2014) | 25
lines

DISPATCH-56: Introduce Json/AMQP friendly schema and config file
parsing.

Added qpid_dispatch_internal.management package with the following:
- schema.py: manipulate general purpose json schema for management
entities.
- Schema.validate(): verifies attribute values, adds default values, and
enforces
  required/unique/singleton constraints in the schema.
- entity.py: represent management entity instances with attribute values
- qdrouter.json: json schema for the dispatch router.
- qdrouter.py: parse qdrouterd.conf into a Schema.

These classes are intended to replace config.schema and config.parser,
they are more general and more JSON/AMQP friendly.

They are not yet wired into the C router.

The config file parser introduces some minor change to config file
format to
accomodate the AMQP requirement that all entities have name and identity
attributes:
- all sections (entities) can have name and identity attributes as per
AMQP spec.
- sections without explicit name/identity attributes are given defaults.
- section router: "router-id" replaced with "identity"
- section log: renamed "logging"
- section log: "module" replaced by "name"
- section listener/connector: "label" replaced by "name"

------------------------------------------------------------------------



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org