From b65fe8f6b8e632f2eaf4f10fb2f0ebc54a39e128 Mon Sep 17 00:00:00 2001 From: "Sean M. Collins" Date: Tue, 1 Dec 2015 13:15:36 -0500 Subject: [PATCH] Docs: Classifier example for a Security Group Rule Change-Id: I33c5f0fb91fd22a85fe7feaa789f42b9fb33616d --- doc/source/usage.rst | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/doc/source/usage.rst b/doc/source/usage.rst index 818989e..9803960 100644 --- a/doc/source/usage.rst +++ b/doc/source/usage.rst @@ -45,4 +45,39 @@ with the specific attributes for that table. 2015-10-30 23:25:24,252 INFO sqlalchemy.engine.base.Engine ('099a754f-1e91-42db-853d-9a385ddef39d', '0c8c9f51-4d4b-47d9-a030-ddc3cf86418e', '7244cbba-03af-4a10-8995-10c75725d7c1', 1) 2015-10-30 23:25:24,253 INFO sqlalchemy.engine.base.Engine COMMIT + +Classifier Chain +---------------- + +In the previous example, we created a `ClassifierGroup` that only has +a single `ClassifierChain` entry, that matches on `source_ip_prefix` and +`destination_ip_prefix`. + +A more realistic example is going to be a `ClassifierGroup` that +stores multiple `ClassifierEntry` objects, that can be used to store a +`Security Group Rule` + +A Security Group Rule is stored as a `ClassifierGroup` that has a +`IpClassifier` (for `source_ip_prefix` and `destination_ip_prefix`) +and a `TransportClassifier` (for source port and destination port). + +:: + + 2015-12-01 13:09:48,122 INFO sqlalchemy.engine.base.Engine BEGIN (implicit) + 2015-12-01 13:09:48,124 INFO sqlalchemy.engine.base.Engine INSERT INTO classifier_groups (tenant_id, id, name, description, service) VALUES (?, ?, ?, ?, ?) + 2015-12-01 13:09:48,124 INFO sqlalchemy.engine.base.Engine (None, '67dca269-5d41-47de-ba4a-0aa1a6339519', None, None, 'security-group') + 2015-12-01 13:09:48,125 INFO sqlalchemy.engine.base.Engine INSERT INTO classifiers (id, classifier_type) VALUES (?, ?) + 2015-12-01 13:09:48,125 INFO sqlalchemy.engine.base.Engine ('fbf89a6c-919e-4ab2-8110-380602bc071e', 'ipclassifier') + 2015-12-01 13:09:48,126 INFO sqlalchemy.engine.base.Engine INSERT INTO classifiers (id, classifier_type) VALUES (?, ?) + 2015-12-01 13:09:48,126 INFO sqlalchemy.engine.base.Engine ('97674e2b-3765-4eba-945e-d47f5ee4924c', 'transportclassifier') + 2015-12-01 13:09:48,127 INFO sqlalchemy.engine.base.Engine INSERT INTO transport_classifiers (id, source_port_range_max, source_port_range_min, destination_port_range_max, destination_port_range_min) VALUES (?, ?, ?, ?, ?) + 2015-12-01 13:09:48,127 INFO sqlalchemy.engine.base.Engine ('97674e2b-3765-4eba-945e-d47f5ee4924c', None, None, 80, 80) + 2015-12-01 13:09:48,128 INFO sqlalchemy.engine.base.Engine INSERT INTO ip_classifiers (id, source_ip_prefix, destination_ip_prefix) VALUES (?, ?, ?) + 2015-12-01 13:09:48,128 INFO sqlalchemy.engine.base.Engine ('fbf89a6c-919e-4ab2-8110-380602bc071e', 'fddf:cb3b:bc4::/48', None) + 2015-12-01 13:09:48,130 INFO sqlalchemy.engine.base.Engine INSERT INTO classifier_chains (id, classifier_group_id, classifier_id, sequence) VALUES (?, ?, ?, ?) + 2015-12-01 13:09:48,130 INFO sqlalchemy.engine.base.Engine ('f765f038-b8fa-4369-a1ab-73d130f2c7d5', '67dca269-5d41-47de-ba4a-0aa1a6339519', 'fbf89a6c-919e-4ab2-8110-380602bc071e', 1) + 2015-12-01 13:09:48,130 INFO sqlalchemy.engine.base.Engine INSERT INTO classifier_chains (id, classifier_group_id, classifier_id, sequence) VALUES (?, ?, ?, ?) + 2015-12-01 13:09:48,130 INFO sqlalchemy.engine.base.Engine ('41ac7fb9-631a-4885-8240-2597595fefce', '67dca269-5d41-47de-ba4a-0aa1a6339519', '97674e2b-3765-4eba-945e-d47f5ee4924c', 1) + 2015-12-01 13:09:48,131 INFO sqlalchemy.engine.base.Engine COMMIT + .. _joined table inheritance: http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/declarative/inheritance.html#joined-table-inheritance