From da74ebab2463e5553e5e126ff6035a8034be3c30 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 09:50:10 +0000 Subject: automatic import of python-multiping --- python-multiping.spec | 387 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 387 insertions(+) create mode 100644 python-multiping.spec (limited to 'python-multiping.spec') diff --git a/python-multiping.spec b/python-multiping.spec new file mode 100644 index 0000000..8349d02 --- /dev/null +++ b/python-multiping.spec @@ -0,0 +1,387 @@ +%global _empty_manifest_terminate_build 0 +Name: python-multiping +Version: 1.1.2 +Release: 1 +Summary: Pure python library to send and receive ICMPecho request (ping) to monitor IP addresses +License: Apache Software License +URL: http://github.com/romana/multi-ping/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5e/2d/58d80a082f1985c83db0c9927fccb3108cfc6c384d5c55b107a3066eea6b/multiping-1.1.2.tar.gz +BuildArch: noarch + + +%description +# MultiPing: A pure-python implemention to monitor IP addresses with pings + +MultiPing is a Python library to monitor one or many IP addresses via ICMP echo +(ping) requests. Features: + +* It works for Python 2 and 3. +* Supports timeouts and retries. +* Supports IPv4 as well as IPv6. +* Small and compact and does not rely on any 3rd party packages, aside from + what's included in Python. + +It is ideally suited to monitor large numbers of hosts in clusters, but is just +as suitable to check on a single address. + +MultiPing was originally developed for the +[vpc-router](https://github.com/romana/vpc-router) project, but can easily +be used on its own. + +## Installation + +### Installation via pip + +MultiPing is available in PyPi, the Python Package Index. Therefore, you can +install it simply with: + + pip install multiping + +### Installation from source + +After downloading the code or cloning this repository, please run the `setup.py` +file, which is included in the source code: + + python setup.py install + +## Contributions + +We welcome any contributions, bug reports or feedback. Please use our +[issue tracker](https://github.com/romana/multi-ping/issues) to file bugs or +request additional features. We are happy to consider pull requests as well. + +## Using MultiPing + +_Note: ICMP packets can only be sent by processes with root privileges._ + +Here is an example of how to use MultiPing in your own code: + + from multiping import MultiPing + + # Create a MultiPing object to test three hosts / addresses + mp = MultiPing(["8.8.8.8", "youtube.com", "127.0.0.1"]) + + # Send the pings to those addresses + mp.send() + + # With a 1 second timout, wait for responses (may return sooner if all + # results are received). + responses, no_responses = mp.receive(1) + +The `receive()` function returns a tuple containing a results dictionary +(addresses and response times) as well as a list of addresses that did not +respond in time. The results may be processed like this: + + ... + + for addr, rtt in responses.items(): + print "%s responded in %f seconds" % (addr, rtt) + + if no_responses: + print "These addresses did not respond: %s" % ", ".join(no_responses) + # Sending pings once more, but just to those addresses that have not + # responded, yet. The MultiPing object 'mp' remembers the state of + # which address has responded already, so that another call to + # send() just generates packets to those hosts from which we haven't + # heard back, yet. + mp.send() + responses, no_responses = mp.receive(1) + + ... + +Note that `send()` can be called multiple times. If there are any addresses +left for which no response has been received yet then this will resend pings +to those remaining addresses. + +A convenient `multi_ping()` function is provided, which implements retries and +delivers results in a single and simple function call: + + from multiping import multi_ping + + addrs = ["8.8.8.8", "youtube.com", "127.0.0.1"] + + # Ping the addresses up to 4 times (initial ping + 3 retries), over the + # course of 2 seconds. This means that for those addresses that do not + # respond another ping will be sent every 0.5 seconds. + responses, no_responses = multi_ping(addrs, timeout=2, retry=3) + +Also see the `demo.py` file for more examples. + +If there are any names or addresses in the list of target addresses, which +cannot be resolved or looked up, a `socket.gaierror` is raised. This can be +surpressed if the `silent_lookup_errors` parameter flag is set. Either as named +parameter for the `multi_ping` function or when a `MultiPing` object is +created. + + + + + +%package -n python3-multiping +Summary: Pure python library to send and receive ICMPecho request (ping) to monitor IP addresses +Provides: python-multiping +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-multiping +# MultiPing: A pure-python implemention to monitor IP addresses with pings + +MultiPing is a Python library to monitor one or many IP addresses via ICMP echo +(ping) requests. Features: + +* It works for Python 2 and 3. +* Supports timeouts and retries. +* Supports IPv4 as well as IPv6. +* Small and compact and does not rely on any 3rd party packages, aside from + what's included in Python. + +It is ideally suited to monitor large numbers of hosts in clusters, but is just +as suitable to check on a single address. + +MultiPing was originally developed for the +[vpc-router](https://github.com/romana/vpc-router) project, but can easily +be used on its own. + +## Installation + +### Installation via pip + +MultiPing is available in PyPi, the Python Package Index. Therefore, you can +install it simply with: + + pip install multiping + +### Installation from source + +After downloading the code or cloning this repository, please run the `setup.py` +file, which is included in the source code: + + python setup.py install + +## Contributions + +We welcome any contributions, bug reports or feedback. Please use our +[issue tracker](https://github.com/romana/multi-ping/issues) to file bugs or +request additional features. We are happy to consider pull requests as well. + +## Using MultiPing + +_Note: ICMP packets can only be sent by processes with root privileges._ + +Here is an example of how to use MultiPing in your own code: + + from multiping import MultiPing + + # Create a MultiPing object to test three hosts / addresses + mp = MultiPing(["8.8.8.8", "youtube.com", "127.0.0.1"]) + + # Send the pings to those addresses + mp.send() + + # With a 1 second timout, wait for responses (may return sooner if all + # results are received). + responses, no_responses = mp.receive(1) + +The `receive()` function returns a tuple containing a results dictionary +(addresses and response times) as well as a list of addresses that did not +respond in time. The results may be processed like this: + + ... + + for addr, rtt in responses.items(): + print "%s responded in %f seconds" % (addr, rtt) + + if no_responses: + print "These addresses did not respond: %s" % ", ".join(no_responses) + # Sending pings once more, but just to those addresses that have not + # responded, yet. The MultiPing object 'mp' remembers the state of + # which address has responded already, so that another call to + # send() just generates packets to those hosts from which we haven't + # heard back, yet. + mp.send() + responses, no_responses = mp.receive(1) + + ... + +Note that `send()` can be called multiple times. If there are any addresses +left for which no response has been received yet then this will resend pings +to those remaining addresses. + +A convenient `multi_ping()` function is provided, which implements retries and +delivers results in a single and simple function call: + + from multiping import multi_ping + + addrs = ["8.8.8.8", "youtube.com", "127.0.0.1"] + + # Ping the addresses up to 4 times (initial ping + 3 retries), over the + # course of 2 seconds. This means that for those addresses that do not + # respond another ping will be sent every 0.5 seconds. + responses, no_responses = multi_ping(addrs, timeout=2, retry=3) + +Also see the `demo.py` file for more examples. + +If there are any names or addresses in the list of target addresses, which +cannot be resolved or looked up, a `socket.gaierror` is raised. This can be +surpressed if the `silent_lookup_errors` parameter flag is set. Either as named +parameter for the `multi_ping` function or when a `MultiPing` object is +created. + + + + + +%package help +Summary: Development documents and examples for multiping +Provides: python3-multiping-doc +%description help +# MultiPing: A pure-python implemention to monitor IP addresses with pings + +MultiPing is a Python library to monitor one or many IP addresses via ICMP echo +(ping) requests. Features: + +* It works for Python 2 and 3. +* Supports timeouts and retries. +* Supports IPv4 as well as IPv6. +* Small and compact and does not rely on any 3rd party packages, aside from + what's included in Python. + +It is ideally suited to monitor large numbers of hosts in clusters, but is just +as suitable to check on a single address. + +MultiPing was originally developed for the +[vpc-router](https://github.com/romana/vpc-router) project, but can easily +be used on its own. + +## Installation + +### Installation via pip + +MultiPing is available in PyPi, the Python Package Index. Therefore, you can +install it simply with: + + pip install multiping + +### Installation from source + +After downloading the code or cloning this repository, please run the `setup.py` +file, which is included in the source code: + + python setup.py install + +## Contributions + +We welcome any contributions, bug reports or feedback. Please use our +[issue tracker](https://github.com/romana/multi-ping/issues) to file bugs or +request additional features. We are happy to consider pull requests as well. + +## Using MultiPing + +_Note: ICMP packets can only be sent by processes with root privileges._ + +Here is an example of how to use MultiPing in your own code: + + from multiping import MultiPing + + # Create a MultiPing object to test three hosts / addresses + mp = MultiPing(["8.8.8.8", "youtube.com", "127.0.0.1"]) + + # Send the pings to those addresses + mp.send() + + # With a 1 second timout, wait for responses (may return sooner if all + # results are received). + responses, no_responses = mp.receive(1) + +The `receive()` function returns a tuple containing a results dictionary +(addresses and response times) as well as a list of addresses that did not +respond in time. The results may be processed like this: + + ... + + for addr, rtt in responses.items(): + print "%s responded in %f seconds" % (addr, rtt) + + if no_responses: + print "These addresses did not respond: %s" % ", ".join(no_responses) + # Sending pings once more, but just to those addresses that have not + # responded, yet. The MultiPing object 'mp' remembers the state of + # which address has responded already, so that another call to + # send() just generates packets to those hosts from which we haven't + # heard back, yet. + mp.send() + responses, no_responses = mp.receive(1) + + ... + +Note that `send()` can be called multiple times. If there are any addresses +left for which no response has been received yet then this will resend pings +to those remaining addresses. + +A convenient `multi_ping()` function is provided, which implements retries and +delivers results in a single and simple function call: + + from multiping import multi_ping + + addrs = ["8.8.8.8", "youtube.com", "127.0.0.1"] + + # Ping the addresses up to 4 times (initial ping + 3 retries), over the + # course of 2 seconds. This means that for those addresses that do not + # respond another ping will be sent every 0.5 seconds. + responses, no_responses = multi_ping(addrs, timeout=2, retry=3) + +Also see the `demo.py` file for more examples. + +If there are any names or addresses in the list of target addresses, which +cannot be resolved or looked up, a `socket.gaierror` is raised. This can be +surpressed if the `silent_lookup_errors` parameter flag is set. Either as named +parameter for the `multi_ping` function or when a `MultiPing` object is +created. + + + + + +%prep +%autosetup -n multiping-1.1.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-multiping -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot - 1.1.2-1 +- Package Spec generated -- cgit v1.2.3