forked from openvswitch/ovs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Only regenerate vswitch.pic when the schema really changes.
Until now, vswitch.pic has been rebuilt whenever the schema changed. This is OK when the E-R diagram would really change, but many changes to the schema don't change the E-R diagram, and it surprises people when vswitch.pic changes in such a situation. This commit fixes the problem. Requested-by: Justin Pettit <[email protected]>
- Loading branch information
Showing
5 changed files
with
124 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -49,19 +49,36 @@ vswitchd/vswitch-idl.ovsidl: $(VSWITCH_IDL_FILES) | |
mv $@.tmp $@ | ||
|
||
# vswitch E-R diagram | ||
if BUILD_ER_DIAGRAMS | ||
$(srcdir)/vswitchd/vswitch.pic: ovsdb/ovsdb-dot.in ovsdb/dot2pic \ | ||
vswitchd/vswitch.ovsschema | ||
$(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema \ | ||
| dot -T plain \ | ||
| $(srcdir)/ovsdb/dot2pic \ | ||
> [email protected] | ||
mv [email protected] $@ | ||
# | ||
# There are two complications here. First, if "python" or "dot" is not | ||
# available, then we have to just use the existing diagram. Second, different | ||
# "dot" versions produce slightly different output for the same input, but we | ||
# don't want to gratuitously change vswitch.pic if someone tweaks the schema in | ||
# some minor way that doesn't affect the table structure. To avoid that we | ||
# store a checksum of vswitch.gv in vswitch.pic and only regenerate vswitch.pic | ||
# if vswitch.gv actually changes. | ||
$(srcdir)/vswitchd/vswitch.gv: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema | ||
if HAVE_PYTHON | ||
$(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema > $@ | ||
else | ||
touch $@ | ||
endif | ||
$(srcdir)/vswitchd/vswitch.pic: $(srcdir)/vswitchd/vswitch.gv ovsdb/dot2pic | ||
if HAVE_DOT | ||
sum=`cksum < $(srcdir)/vswitchd/vswitch.gv`; \ | ||
if grep "$$sum" $@ >/dev/null 2>&1; then \ | ||
echo "vswitch.gv unchanged, not regenerating vswitch.pic"; \ | ||
touch $@; \ | ||
else \ | ||
echo "regenerating vswitch.pic"; \ | ||
(echo ".\\\" Generated from vswitch.gv with cksum \"$$sum\""; \ | ||
dot -T plain < $(srcdir)/vswitchd/vswitch.gv \ | ||
| $(srcdir)/ovsdb/dot2pic) > $@; \ | ||
fi | ||
else | ||
$(srcdir)/vswitchd/vswitch.pic: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema | ||
touch $@ | ||
endif | ||
EXTRA_DIST += vswitchd/vswitch.pic | ||
EXTRA_DIST += vswitchd/vswitch.gv vswitchd/vswitch.pic | ||
|
||
# vswitch schema documentation | ||
EXTRA_DIST += vswitchd/vswitch.xml | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
digraph Open_vSwitch { | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Bridge; | ||
Bridge -> sFlow [label="sflow"]; | ||
Bridge -> Mirror [label="mirrors"]; | ||
Bridge -> Port [label="ports"]; | ||
Bridge -> Controller [label="controller"]; | ||
Bridge -> NetFlow [label="netflow"]; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
QoS; | ||
QoS -> Queue [label="queues value"]; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Monitor; | ||
Monitor -> Maintenance_Point [label="remote_mps"]; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
sFlow; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Open_vSwitch; | ||
Open_vSwitch -> Bridge [label="bridges"]; | ||
Open_vSwitch -> Capability [label="capabilities value"]; | ||
Open_vSwitch -> SSL [label="ssl"]; | ||
Open_vSwitch -> Manager [label="manager_options"]; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Controller; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Queue; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
SSL; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Manager; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Capability; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Mirror; | ||
Mirror -> Port [constraint=false, label="select_src_port"]; | ||
Mirror -> Port [constraint=false, label="output_port"]; | ||
Mirror -> Port [constraint=false, label="select_dst_port"]; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Interface; | ||
Interface -> Monitor [label="monitor"]; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
NetFlow; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Maintenance_Point; | ||
size="6.5,4"; | ||
margin="0"; | ||
node [shape=box]; | ||
edge [dir=none, arrowhead=none, arrowtail=none]; | ||
Port; | ||
Port -> QoS [label="qos"]; | ||
Port -> Interface [label="interfaces"]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters