2011-10-31 14:56:08 -07:00
|
|
|
ovstest_pyfiles = \
|
|
|
|
python/ovstest/__init__.py \
|
|
|
|
python/ovstest/args.py \
|
|
|
|
python/ovstest/rpcserver.py \
|
|
|
|
python/ovstest/tcp.py \
|
2012-06-28 15:52:40 -07:00
|
|
|
python/ovstest/tests.py \
|
2011-10-31 14:56:08 -07:00
|
|
|
python/ovstest/udp.py \
|
2012-03-29 19:03:08 -07:00
|
|
|
python/ovstest/util.py \
|
|
|
|
python/ovstest/vswitch.py
|
2011-10-31 14:56:08 -07:00
|
|
|
|
2010-08-25 10:26:40 -07:00
|
|
|
ovs_pyfiles = \
|
|
|
|
python/ovs/__init__.py \
|
2018-04-12 19:24:27 -05:00
|
|
|
python/ovs/compat/__init__.py \
|
|
|
|
python/ovs/compat/sortedcontainers/__init__.py \
|
|
|
|
python/ovs/compat/sortedcontainers/sortedlist.py \
|
|
|
|
python/ovs/compat/sortedcontainers/sorteddict.py \
|
|
|
|
python/ovs/compat/sortedcontainers/sortedset.py \
|
2010-08-25 10:26:40 -07:00
|
|
|
python/ovs/daemon.py \
|
2023-07-11 22:55:52 -05:00
|
|
|
python/ovs/dns_resolve.py \
|
2010-08-25 10:26:40 -07:00
|
|
|
python/ovs/db/__init__.py \
|
2018-04-12 19:24:27 -05:00
|
|
|
python/ovs/db/custom_index.py \
|
2010-08-25 10:26:40 -07:00
|
|
|
python/ovs/db/data.py \
|
|
|
|
python/ovs/db/error.py \
|
|
|
|
python/ovs/db/idl.py \
|
|
|
|
python/ovs/db/parser.py \
|
|
|
|
python/ovs/db/schema.py \
|
|
|
|
python/ovs/db/types.py \
|
|
|
|
python/ovs/fatal_signal.py \
|
2022-07-08 20:03:00 +02:00
|
|
|
python/ovs/fcntl_win.py \
|
|
|
|
python/ovs/flow/__init__.py \
|
|
|
|
python/ovs/flow/decoders.py \
|
python: Add flow filtering syntax.
Based on pyparsing, create a very simple filtering syntax.
It supports basic logic statements (and, &, or, ||, not, !), numerical
operations (<, >), equality (=, !=), and masking (~=). The latter is only
supported in certain fields (IntMask, EthMask, IPMask).
Masking operation is semantically equivalent to "includes",
therefore:
ip_src ~= 192.168.1.1
means that ip_src field is either a host IP address equal to 192.168.1.1
or an IPMask that includes it (e.g: 192.168.1.1/24).
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Adrian Moreno <amorenoz@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2022-07-08 20:03:08 +02:00
|
|
|
python/ovs/flow/filter.py \
|
2022-07-08 20:03:05 +02:00
|
|
|
python/ovs/flow/flow.py \
|
2022-07-08 20:03:00 +02:00
|
|
|
python/ovs/flow/kv.py \
|
python: Add list parser.
Some openflow or dpif flows encode their arguments in lists, eg:
"some_action(arg1,arg2,arg3)". In order to decode this in a way that can
be then stored and queried, add ListParser and ListDecoders classes
that parse lists into KeyValue instances.
The ListParser / ListDecoders mechanism is quite similar to KVParser and
KVDecoders. Since the "key" of the different KeyValue objects is now
ommited, it has to be provided by ListDecoders.
For example, take the openflow action "resubmit" that can be written as:
resubmit([port],[table][,ct])
Can be decoded by creating a ListDecoders instance such as:
ListDecoders([
("port", decode_default),
("table", decode_int),
("ct", decode_flag),
])
Naturally, the order of the decoders must be kept.
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Adrian Moreno <amorenoz@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2022-07-08 20:03:02 +02:00
|
|
|
python/ovs/flow/list.py \
|
2022-07-08 20:03:07 +02:00
|
|
|
python/ovs/flow/odp.py \
|
2022-07-08 20:03:06 +02:00
|
|
|
python/ovs/flow/ofp.py \
|
|
|
|
python/ovs/flow/ofp_act.py \
|
2022-07-08 20:03:04 +02:00
|
|
|
python/ovs/flow/ofp_fields.py \
|
2010-08-25 10:26:40 -07:00
|
|
|
python/ovs/json.py \
|
|
|
|
python/ovs/jsonrpc.py \
|
|
|
|
python/ovs/ovsuuid.py \
|
|
|
|
python/ovs/poller.py \
|
|
|
|
python/ovs/process.py \
|
|
|
|
python/ovs/reconnect.py \
|
|
|
|
python/ovs/socket_util.py \
|
|
|
|
python/ovs/stream.py \
|
|
|
|
python/ovs/timeval.py \
|
2012-05-14 11:26:36 -07:00
|
|
|
python/ovs/unixctl/__init__.py \
|
|
|
|
python/ovs/unixctl/client.py \
|
|
|
|
python/ovs/unixctl/server.py \
|
2012-02-16 19:15:01 -08:00
|
|
|
python/ovs/util.py \
|
2012-02-29 17:20:03 -08:00
|
|
|
python/ovs/version.py \
|
2017-01-03 20:10:49 +00:00
|
|
|
python/ovs/vlog.py \
|
|
|
|
python/ovs/winutils.py
|
2022-07-08 20:03:00 +02:00
|
|
|
|
2022-07-08 20:03:12 +02:00
|
|
|
ovs_pytests = \
|
2022-07-08 20:03:14 +02:00
|
|
|
python/ovs/tests/test_decoders.py \
|
2023-07-11 22:55:52 -05:00
|
|
|
python/ovs/tests/test_dns_resolve.py \
|
2022-07-08 20:03:16 +02:00
|
|
|
python/ovs/tests/test_filter.py \
|
2022-07-08 20:03:13 +02:00
|
|
|
python/ovs/tests/test_kv.py \
|
2022-07-08 20:03:14 +02:00
|
|
|
python/ovs/tests/test_list.py \
|
2022-07-08 20:03:15 +02:00
|
|
|
python/ovs/tests/test_odp.py \
|
2022-07-08 20:03:14 +02:00
|
|
|
python/ovs/tests/test_ofp.py
|
2022-07-08 20:03:12 +02:00
|
|
|
|
2015-02-19 10:59:12 -08:00
|
|
|
# These python files are used at build time but not runtime,
|
|
|
|
# so they are not installed.
|
|
|
|
EXTRA_DIST += \
|
2023-08-23 16:29:00 +02:00
|
|
|
python/ovs_build_helpers/__init__.py \
|
|
|
|
python/ovs_build_helpers/extract_ofp_fields.py \
|
|
|
|
python/ovs_build_helpers/nroff.py \
|
|
|
|
python/ovs_build_helpers/soutil.py
|
2015-02-19 10:59:12 -08:00
|
|
|
|
2015-04-10 14:57:00 -05:00
|
|
|
# PyPI support.
|
|
|
|
EXTRA_DIST += \
|
2018-04-12 19:24:27 -05:00
|
|
|
python/ovs/compat/sortedcontainers/LICENSE \
|
2015-04-10 14:57:00 -05:00
|
|
|
python/README.rst \
|
2022-07-08 20:03:12 +02:00
|
|
|
python/setup.py \
|
|
|
|
python/test_requirements.txt
|
2015-04-10 14:57:00 -05:00
|
|
|
|
2016-06-08 08:55:14 -05:00
|
|
|
# C extension support.
|
|
|
|
EXTRA_DIST += python/ovs/_json.c
|
|
|
|
|
2022-07-08 20:03:12 +02:00
|
|
|
PYFILES = $(ovs_pyfiles) python/ovs/dirs.py $(ovstest_pyfiles) $(ovs_pytests)
|
|
|
|
|
2012-02-28 16:28:08 -08:00
|
|
|
EXTRA_DIST += $(PYFILES)
|
|
|
|
PYCOV_CLEAN_FILES += $(PYFILES:.py=.py,cover)
|
2010-08-25 10:26:40 -07:00
|
|
|
|
2015-12-21 20:24:34 -05:00
|
|
|
FLAKE8_PYFILES += \
|
2018-04-12 19:24:27 -05:00
|
|
|
$(filter-out python/ovs/compat/% python/ovs/dirs.py,$(PYFILES)) \
|
2023-08-23 16:29:00 +02:00
|
|
|
python/ovs_build_helpers/__init__.py \
|
|
|
|
python/ovs_build_helpers/extract_ofp_fields.py \
|
|
|
|
python/ovs_build_helpers/nroff.py \
|
|
|
|
python/ovs_build_helpers/soutil.py \
|
2022-07-08 20:03:03 +02:00
|
|
|
python/ovs/dirs.py.template \
|
|
|
|
python/setup.py
|
2015-12-21 20:24:34 -05:00
|
|
|
|
2011-10-31 14:56:08 -07:00
|
|
|
nobase_pkgdata_DATA = $(ovs_pyfiles) $(ovstest_pyfiles)
|
2010-08-25 10:26:40 -07:00
|
|
|
ovs-install-data-local:
|
|
|
|
$(MKDIR_P) python/ovs
|
2012-08-02 16:01:49 -07:00
|
|
|
sed \
|
|
|
|
-e '/^##/d' \
|
2020-11-19 03:44:34 -05:00
|
|
|
-e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
|
|
|
|
-e 's,[@]RUNDIR[@],$(RUNDIR),g' \
|
|
|
|
-e 's,[@]LOGDIR[@],$(LOGDIR),g' \
|
|
|
|
-e 's,[@]bindir[@],$(bindir),g' \
|
|
|
|
-e 's,[@]sysconfdir[@],$(sysconfdir),g' \
|
|
|
|
-e 's,[@]DBDIR[@],$(DBDIR),g' \
|
2012-08-02 16:01:49 -07:00
|
|
|
< $(srcdir)/python/ovs/dirs.py.template \
|
2010-11-29 12:28:26 -08:00
|
|
|
> python/ovs/dirs.py.tmp
|
2010-08-25 10:26:40 -07:00
|
|
|
$(MKDIR_P) $(DESTDIR)$(pkgdatadir)/python/ovs
|
|
|
|
$(INSTALL_DATA) python/ovs/dirs.py.tmp $(DESTDIR)$(pkgdatadir)/python/ovs/dirs.py
|
|
|
|
rm python/ovs/dirs.py.tmp
|
2015-04-10 14:57:00 -05:00
|
|
|
|
2023-08-23 16:29:01 +02:00
|
|
|
.PHONY: python-sdist
|
2015-04-10 14:57:00 -05:00
|
|
|
python-sdist: $(srcdir)/python/ovs/version.py $(ovs_pyfiles) python/ovs/dirs.py
|
2023-08-23 16:29:02 +02:00
|
|
|
cd python/ && $(PYTHON3) -m build --sdist
|
2015-04-10 14:57:00 -05:00
|
|
|
|
2023-08-23 16:29:01 +02:00
|
|
|
.PHONY: pypi-upload
|
|
|
|
pypi-upload: python-sdist
|
|
|
|
twine upload python/dist/ovs-$(VERSION).tar.gz
|
|
|
|
|
2010-08-25 10:26:40 -07:00
|
|
|
install-data-local: ovs-install-data-local
|
|
|
|
|
2011-08-25 10:19:23 -07:00
|
|
|
UNINSTALL_LOCAL += ovs-uninstall-local
|
2010-08-25 10:26:40 -07:00
|
|
|
ovs-uninstall-local:
|
|
|
|
rm -f $(DESTDIR)$(pkgdatadir)/python/ovs/dirs.py
|
2012-02-29 17:20:03 -08:00
|
|
|
|
|
|
|
ALL_LOCAL += $(srcdir)/python/ovs/version.py
|
|
|
|
$(srcdir)/python/ovs/version.py: config.status
|
2014-09-29 14:34:11 -07:00
|
|
|
$(AM_V_GEN)$(ro_shell) > $(@F).tmp && \
|
|
|
|
echo 'VERSION = "$(VERSION)"' >> $(@F).tmp && \
|
2012-03-12 10:34:22 -07:00
|
|
|
if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi
|
2012-08-02 16:01:49 -07:00
|
|
|
|
|
|
|
ALL_LOCAL += $(srcdir)/python/ovs/dirs.py
|
|
|
|
$(srcdir)/python/ovs/dirs.py: python/ovs/dirs.py.template
|
2014-09-29 14:34:11 -07:00
|
|
|
$(AM_V_GEN)sed \
|
2012-08-02 16:01:49 -07:00
|
|
|
-e '/^##/d' \
|
2020-11-19 03:44:34 -05:00
|
|
|
-e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
|
|
|
|
-e 's,[@]RUNDIR[@],$(RUNDIR),g' \
|
|
|
|
-e 's,[@]LOGDIR[@],$(LOGDIR),g' \
|
|
|
|
-e 's,[@]bindir[@],$(bindir),g' \
|
|
|
|
-e 's,[@]sysconfdir[@],$(sysconfdir),g' \
|
|
|
|
-e 's,[@]DBDIR[@],$(sysconfdir)/openvswitch,g' \
|
2014-09-29 14:34:11 -07:00
|
|
|
< $? > $@.tmp && \
|
2012-08-02 16:01:49 -07:00
|
|
|
mv $@.tmp $@
|
2015-06-10 09:04:23 -07:00
|
|
|
EXTRA_DIST += python/ovs/dirs.py.template
|
2020-11-11 04:25:30 -05:00
|
|
|
CLEANFILES += python/ovs/dirs.py
|
2022-06-27 12:44:32 +02:00
|
|
|
|
|
|
|
EXTRA_DIST += python/TODO.rst
|
2022-07-08 20:03:04 +02:00
|
|
|
|
|
|
|
$(srcdir)/python/ovs/flow/ofp_fields.py: $(srcdir)/build-aux/gen_ofp_field_decoders include/openvswitch/meta-flow.h
|
|
|
|
$(AM_V_GEN)$(run_python) $< $(srcdir)/include/openvswitch/meta-flow.h > $@.tmp
|
|
|
|
$(AM_V_at)mv $@.tmp $@
|
|
|
|
EXTRA_DIST += python/ovs/flow/ofp_fields.py
|
|
|
|
CLEANFILES += python/ovs/flow/ofp_fields.py
|