Group Based Policy
Go to file
Kent Wu 357fbd4d83 Optimize the nova vm name query inside get_gbp_details()
1. Each controller will have a polling thread which will query
Nova API every 1 min to get the list of nova VMs and use that
to build up/update the DB cache.

2. There are 2 types of udpates, one is the full udpate which
will query all the nova VMs while the other is the incremental
update which will only query the new/updated VMs in the past
10 mins. We will do incremental udpate every 1 min then a full
update every 10 mins.

3. Inside get_gbp_details(), it will then query this DB cache
instead for the VM name. If its not there, it will just use the
device_id instead for the time being to speed up the performance.

4. Then when there are added/updated VMs, the polling thread will
call notify_port_update() to trigger an update to the
corresponding EP file.

5. This patch can also take care of the VM name change case.

6. The VMNameUpdate DB table is used to corodinate which
controller's polling thread should be in charge of the periodical
updates. So at any given time, there will be only one active
polling thread doing the updates.

Change-Id: I820d8078825dbc1e801b7e87752138e9509369d8
2019-01-31 16:15:47 -08:00
devstack For queens sync 2018-09-07 16:24:08 -07:00
doc/source Replace Chinese quotes to English quotes 2018-02-12 10:41:23 +08:00
etc Remove monolithic service chain plugin and drivers 2017-06-13 13:35:03 -07:00
gbpservice Optimize the nova vm name query inside get_gbp_details() 2019-01-31 16:15:47 -08:00
tools For queens sync 2018-09-07 16:24:08 -07:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:59:28 +00:00
.gitignore Status attributes for GBP resources 2016-06-22 01:29:46 -07:00
.gitreview Changing stackforge references 2015-10-17 13:43:25 -07:00
.stestr.conf For queens sync 2018-09-07 16:24:08 -07:00
.testr.conf Raise OS_TEST_TIMEOUT 2017-09-13 20:58:48 +00:00
CONTRIBUTING.rst Update the outdated links 2018-03-20 06:09:16 +00:00
HACKING.rst Update links to the latest addresses 2017-08-18 21:38:05 +08:00
LICENSE Project boilerplate and base modules 2014-09-26 15:16:17 -07:00
MANIFEST.in Project boilerplate and base modules 2014-09-26 15:16:17 -07:00
README.rst Add some acronyms for brevity in README 2017-10-13 17:24:42 +08:00
TESTING.rst Adding dir structure for developer reference docs 2016-02-19 14:46:27 -08:00
babel.cfg Project boilerplate and base modules 2014-09-26 15:16:17 -07:00
openstack-common.conf Renaming gbp package to gbpservice 2014-12-31 19:13:19 -08:00
requirements.txt For queens sync 2018-09-07 16:24:08 -07:00
run_tests.sh For queens sync 2018-09-07 16:24:08 -07:00
setup.cfg [AIM] Validation/Repair/Migration Tool 2018-05-21 15:30:01 -04:00
setup.py Syncing with mitaka dependencies 2016-02-25 18:35:47 -08:00
test-requirements.txt For queens sync 2018-09-07 16:24:08 -07:00
tox.ini For queens sync 2018-09-07 16:24:08 -07:00

README.rst

Group Based Policy (GBP) provides declarative abstractions for achieving scalable intent-based infrastructure automation.

GBP complements the OpenStack networking model with the notion of policies that can be applied between groups of network endpoints. As users look beyond basic connectivity, richer network services with diverse implementations and network properties are naturally expressed as policies. Examples include service chaining, QoS, path properties, access control, etc.

GBP allows application administrators to express their networking requirements using a Group and a Policy Rules-Set abstraction. The specifics of policy rendering are left to the underlying pluggable policy driver.

GBP model also supports a redirect operation that makes it easy to abstract and consume complex network service chains and graphs.

Checkout the GBP wiki page for more detailed information: <https://wiki.openstack.org/wiki/GroupBasedPolicy>

The latest code is available at: <http://git.openstack.org/cgit/openstack/group-based-policy>.

GBP project management (blueprints, bugs) is done via Launchpad: <https://launchpad.net/group-based-policy>

For help using or hacking on GBP, you can send mail to <mailto:openstack-dev@lists.openstack.org>.

Acronyms used in code for brevity:

  • PT: Policy Target
  • PTG: Policy Target Group
  • PR: Policy Rule
  • PRS: Policy Rule Set
  • L2P: L2 Policy
  • L3P: L3 Policy
  • NSP: Network Service Policy
  • EP: External Policy
  • ES: External Segment
  • SC: Service Chain
  • SP: Service Profile