OpenStack Networking (Neutron)
Go to file
Ihar Hrachyshka 0a33e355bc objects.qos.policy: support per type rule lists as synthetic fields
This is a significant piece of work.

It enables neutron objects to define fields that are lazily loaded on
field access. To achieve that,

- field should be mentioned in cls.synthetic_fields
- obj_load_attr should be extended to lazily fetch and cache the field

Based on this work, we define per type rule fields that are lists of
appropriate neutron objects. (At the moment, we have only single type
supported, but I tried hard to make it easily extendable, with little or
no coding needed when a new rule type object definition is added to
rule.py: for example, we inspect object definitions based on
VALID_RULE_TYPES, and define appropriate fields for the policy object).

To implement lazy loading for those fields, I redefined get_by_id for
rules that now meld fields from both base and subtype db models into the
corresponding neutron object.

Added a simple test that checks bandwidth_rules attribute behaves for
policies.

Some objects unit test framework rework was needed to accomodate
synthetic fields that are not propagated to db layer.

Change-Id: Ia16393453b1ed48651fbd778bbe0ac6427560117
2015-07-16 15:51:47 +02:00
bin
doc
etc
neutron objects.qos.policy: support per type rule lists as synthetic fields 2015-07-16 15:51:47 +02:00
rally-jobs
tools
.coveragerc
.gitignore
.gitreview
.mailmap
.pylintrc
.testr.conf
babel.cfg
CONTRIBUTING.rst
HACKING.rst
LICENSE
MANIFEST.in
openstack-common.conf
README.rst
requirements.txt
run_tests.sh
setup.cfg
setup.py
test-requirements.txt
TESTING.rst
tox.ini

Welcome!

You have come across a cloud computing network fabric controller. It has identified itself as "Neutron." It aims to tame your (cloud) networking!

External Resources:

The homepage for Neutron is: http://launchpad.net/neutron. Use this site for asking for help, and filing bugs. Code is available on git.openstack.org at <http://git.openstack.org/cgit/openstack/neutron>.

The latest and most in-depth documentation on how to use Neutron is available at: <http://docs.openstack.org>. This includes:

Neutron Administrator Guide

http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html

Neutron API Reference:

http://docs.openstack.org/api/openstack-network/2.0/content/

Current Neutron developer documentation is available at:

http://wiki.openstack.org/NeutronDevelopment

For help on usage and hacking of Neutron, please send mail to <mailto:openstack-dev@lists.openstack.org>.

For information on how to contribute to Neutron, please see the contents of the CONTRIBUTING.rst file.