Browse Source

Prepare `network-checker` package

Prepare `network-checker` package to upload it to `pypi`. It is
required for `fuelmenu`. So it will be added to the `requirements.txt`
when it will be available on `pypi`.

Move content of `setup.py` file to `setup.cfg` file.

Add `Makefile` for quick and handy `release` command.

Some changes (files) were taken from `openstack-dev/cookiecutter.git`.

Change-Id: Ibf884a5eeb006d26d49190e99efadb67c5681984
Partial-Bug: #1502047
Andrey Tykhonov 3 years ago
parent
commit
f55d017758
11 changed files with 303 additions and 61 deletions
  1. 3
    0
      .gitignore
  2. 17
    0
      CONTRIBUTING.rst
  3. 175
    0
      LICENSE
  4. 8
    1
      MANIFEST.in
  5. 5
    1
      debian/control
  6. 4
    0
      debian/rules
  7. 14
    9
      requirements.txt
  8. 49
    0
      setup.cfg
  9. 10
    35
      setup.py
  10. 11
    11
      specs/network-checker.spec
  11. 7
    4
      test-requirements.txt

+ 3
- 0
.gitignore View File

@@ -28,3 +28,6 @@ test_run/*
28 28
 *.egg-info
29 29
 
30 30
 .bashrc
31
+
32
+AUTHORS
33
+ChangeLog

+ 17
- 0
CONTRIBUTING.rst View File

@@ -0,0 +1,17 @@
1
+If you would like to contribute to the development of OpenStack, you must
2
+follow the steps in this page:
3
+
4
+   http://docs.openstack.org/infra/manual/developers.html
5
+
6
+If you already have a good understanding of how the system works and your
7
+OpenStack accounts are set up, you can skip to the development workflow
8
+section of this documentation to learn how changes to OpenStack should be
9
+submitted for review via the Gerrit tool:
10
+
11
+   http://docs.openstack.org/infra/manual/developers.html#development-workflow
12
+
13
+Pull requests submitted through GitHub will be ignored.
14
+
15
+Bugs should be filed on Launchpad, not GitHub:
16
+
17
+   https://bugs.launchpad.net/fuel

+ 175
- 0
LICENSE View File

@@ -0,0 +1,175 @@
1
+
2
+                                 Apache License
3
+                           Version 2.0, January 2004
4
+                        http://www.apache.org/licenses/
5
+
6
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+   1. Definitions.
9
+
10
+      "License" shall mean the terms and conditions for use, reproduction,
11
+      and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+      "Licensor" shall mean the copyright owner or entity authorized by
14
+      the copyright owner that is granting the License.
15
+
16
+      "Legal Entity" shall mean the union of the acting entity and all
17
+      other entities that control, are controlled by, or are under common
18
+      control with that entity. For the purposes of this definition,
19
+      "control" means (i) the power, direct or indirect, to cause the
20
+      direction or management of such entity, whether by contract or
21
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+      outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+      "You" (or "Your") shall mean an individual or Legal Entity
25
+      exercising permissions granted by this License.
26
+
27
+      "Source" form shall mean the preferred form for making modifications,
28
+      including but not limited to software source code, documentation
29
+      source, and configuration files.
30
+
31
+      "Object" form shall mean any form resulting from mechanical
32
+      transformation or translation of a Source form, including but
33
+      not limited to compiled object code, generated documentation,
34
+      and conversions to other media types.
35
+
36
+      "Work" shall mean the work of authorship, whether in Source or
37
+      Object form, made available under the License, as indicated by a
38
+      copyright notice that is included in or attached to the work
39
+      (an example is provided in the Appendix below).
40
+
41
+      "Derivative Works" shall mean any work, whether in Source or Object
42
+      form, that is based on (or derived from) the Work and for which the
43
+      editorial revisions, annotations, elaborations, or other modifications
44
+      represent, as a whole, an original work of authorship. For the purposes
45
+      of this License, Derivative Works shall not include works that remain
46
+      separable from, or merely link (or bind by name) to the interfaces of,
47
+      the Work and Derivative Works thereof.
48
+
49
+      "Contribution" shall mean any work of authorship, including
50
+      the original version of the Work and any modifications or additions
51
+      to that Work or Derivative Works thereof, that is intentionally
52
+      submitted to Licensor for inclusion in the Work by the copyright owner
53
+      or by an individual or Legal Entity authorized to submit on behalf of
54
+      the copyright owner. For the purposes of this definition, "submitted"
55
+      means any form of electronic, verbal, or written communication sent
56
+      to the Licensor or its representatives, including but not limited to
57
+      communication on electronic mailing lists, source code control systems,
58
+      and issue tracking systems that are managed by, or on behalf of, the
59
+      Licensor for the purpose of discussing and improving the Work, but
60
+      excluding communication that is conspicuously marked or otherwise
61
+      designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+      "Contributor" shall mean Licensor and any individual or Legal Entity
64
+      on behalf of whom a Contribution has been received by Licensor and
65
+      subsequently incorporated within the Work.
66
+
67
+   2. Grant of Copyright License. Subject to the terms and conditions of
68
+      this License, each Contributor hereby grants to You a perpetual,
69
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+      copyright license to reproduce, prepare Derivative Works of,
71
+      publicly display, publicly perform, sublicense, and distribute the
72
+      Work and such Derivative Works in Source or Object form.
73
+
74
+   3. Grant of Patent License. Subject to the terms and conditions of
75
+      this License, each Contributor hereby grants to You a perpetual,
76
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+      (except as stated in this section) patent license to make, have made,
78
+      use, offer to sell, sell, import, and otherwise transfer the Work,
79
+      where such license applies only to those patent claims licensable
80
+      by such Contributor that are necessarily infringed by their
81
+      Contribution(s) alone or by combination of their Contribution(s)
82
+      with the Work to which such Contribution(s) was submitted. If You
83
+      institute patent litigation against any entity (including a
84
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+      or a Contribution incorporated within the Work constitutes direct
86
+      or contributory patent infringement, then any patent licenses
87
+      granted to You under this License for that Work shall terminate
88
+      as of the date such litigation is filed.
89
+
90
+   4. Redistribution. You may reproduce and distribute copies of the
91
+      Work or Derivative Works thereof in any medium, with or without
92
+      modifications, and in Source or Object form, provided that You
93
+      meet the following conditions:
94
+
95
+      (a) You must give any other recipients of the Work or
96
+          Derivative Works a copy of this License; and
97
+
98
+      (b) You must cause any modified files to carry prominent notices
99
+          stating that You changed the files; and
100
+
101
+      (c) You must retain, in the Source form of any Derivative Works
102
+          that You distribute, all copyright, patent, trademark, and
103
+          attribution notices from the Source form of the Work,
104
+          excluding those notices that do not pertain to any part of
105
+          the Derivative Works; and
106
+
107
+      (d) If the Work includes a "NOTICE" text file as part of its
108
+          distribution, then any Derivative Works that You distribute must
109
+          include a readable copy of the attribution notices contained
110
+          within such NOTICE file, excluding those notices that do not
111
+          pertain to any part of the Derivative Works, in at least one
112
+          of the following places: within a NOTICE text file distributed
113
+          as part of the Derivative Works; within the Source form or
114
+          documentation, if provided along with the Derivative Works; or,
115
+          within a display generated by the Derivative Works, if and
116
+          wherever such third-party notices normally appear. The contents
117
+          of the NOTICE file are for informational purposes only and
118
+          do not modify the License. You may add Your own attribution
119
+          notices within Derivative Works that You distribute, alongside
120
+          or as an addendum to the NOTICE text from the Work, provided
121
+          that such additional attribution notices cannot be construed
122
+          as modifying the License.
123
+
124
+      You may add Your own copyright statement to Your modifications and
125
+      may provide additional or different license terms and conditions
126
+      for use, reproduction, or distribution of Your modifications, or
127
+      for any such Derivative Works as a whole, provided Your use,
128
+      reproduction, and distribution of the Work otherwise complies with
129
+      the conditions stated in this License.
130
+
131
+   5. Submission of Contributions. Unless You explicitly state otherwise,
132
+      any Contribution intentionally submitted for inclusion in the Work
133
+      by You to the Licensor shall be under the terms and conditions of
134
+      this License, without any additional terms or conditions.
135
+      Notwithstanding the above, nothing herein shall supersede or modify
136
+      the terms of any separate license agreement you may have executed
137
+      with Licensor regarding such Contributions.
138
+
139
+   6. Trademarks. This License does not grant permission to use the trade
140
+      names, trademarks, service marks, or product names of the Licensor,
141
+      except as required for reasonable and customary use in describing the
142
+      origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+   7. Disclaimer of Warranty. Unless required by applicable law or
145
+      agreed to in writing, Licensor provides the Work (and each
146
+      Contributor provides its Contributions) on an "AS IS" BASIS,
147
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+      implied, including, without limitation, any warranties or conditions
149
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+      PARTICULAR PURPOSE. You are solely responsible for determining the
151
+      appropriateness of using or redistributing the Work and assume any
152
+      risks associated with Your exercise of permissions under this License.
153
+
154
+   8. Limitation of Liability. In no event and under no legal theory,
155
+      whether in tort (including negligence), contract, or otherwise,
156
+      unless required by applicable law (such as deliberate and grossly
157
+      negligent acts) or agreed to in writing, shall any Contributor be
158
+      liable to You for damages, including any direct, indirect, special,
159
+      incidental, or consequential damages of any character arising as a
160
+      result of this License or out of the use or inability to use the
161
+      Work (including but not limited to damages for loss of goodwill,
162
+      work stoppage, computer failure or malfunction, or any and all
163
+      other commercial damages or losses), even if such Contributor
164
+      has been advised of the possibility of such damages.
165
+
166
+   9. Accepting Warranty or Additional Liability. While redistributing
167
+      the Work or Derivative Works thereof, You may choose to offer,
168
+      and charge a fee for, acceptance of support, warranty, indemnity,
169
+      or other liability obligations and/or rights consistent with this
170
+      License. However, in accepting such obligations, You may act only
171
+      on Your own behalf and on Your sole responsibility, not on behalf
172
+      of any other Contributor, and only if You agree to indemnify,
173
+      defend, and hold each Contributor harmless for any liability
174
+      incurred by, or claims asserted against, such Contributor by reason
175
+      of your accepting any such warranty or additional liability.

+ 8
- 1
MANIFEST.in View File

@@ -1 +1,8 @@
1
-recursive-include network_checker *
1
+exclude debian
2
+exclude specs
3
+exclude Dockerfile
4
+exclude Vagrantfile
5
+exclude .gitignore
6
+exclude .gitreview
7
+exclude Makefile
8
+global-exclude *.pyc

+ 5
- 1
debian/control View File

@@ -2,7 +2,11 @@ Source: network-checker
2 2
 Section: unknown
3 3
 Priority: net
4 4
 Maintainer: Mirantis Product <product@mirantis.com>
5
-Build-Depends: debhelper (>= 8.0.0), python-setuptools
5
+Build-Depends: debhelper (>= 8.0.0),
6
+	       openstack-pkg-tools (>= 8~),
7
+	       python-all (>= 2.6.6-3),
8
+	       python-pbr (>= 0.6), python-pbr (<< 0.7) | python-pbr (>> 0.7),
9
+	       python-setuptools
6 10
 X-Python-Version: 2.6, 2.7
7 11
 Standards-Version: 3.9.2
8 12
 Homepage: mirantis.com

+ 4
- 0
debian/rules View File

@@ -3,6 +3,10 @@ DH_VERBOSE=1
3 3
 
4 4
 topdir=$(shell pwd)
5 5
 
6
+include /usr/share/openstack-pkg-tools/pkgos.make
7
+
8
+export OSLO_PACKAGE_VERSION=$(VERSION)
9
+
6 10
 %:
7 11
 	dh $@ --with python2
8 12
 

+ 14
- 9
requirements.txt View File

@@ -1,10 +1,15 @@
1
+# The order of packages is significant, because pip processes them in the order
2
+# of appearance. Changing the order has an impact on the overall integration
3
+# process, which may cause wedges in the gate later.
4
+
5
+pbr!=0.7,<1.0,>=0.6
1 6
 argparse
2
-cliff-tablib
3
-scapy==2.2.0-dev
4
-pypcap==1.1.1
5
-stevedore
6
-daemonize
7
-pyyaml
8
-requests
9
-netifaces
10
-six
7
+cliff-tablib<=1.1,>=1.0
8
+scapy>=2.2.0-dev
9
+pypcap>=1.1.1
10
+stevedore<=1.3.0,>=1.0.0  # Apache-2.0
11
+daemonize>=1.7.3
12
+PyYAML<=3.10,>=3.1.0
13
+requests!=2.4.0,<=2.2.1,>=2.1.0
14
+netifaces<=0.10.4,>=0.10.4
15
+six<=1.9.0,>=1.7.0

+ 49
- 0
setup.cfg View File

@@ -0,0 +1,49 @@
1
+[metadata]
2
+name = network-checker
3
+summary = Nailgun Network Checker
4
+version = 8.0.1
5
+author = OpenStack
6
+author-email = openstack-dev@lists.openstack.org
7
+home-page = http://www.openstack.org/
8
+project-url: Repository, https://github.com/openstack/network-checker
9
+license = Apache License, Version 2.0
10
+classifier =
11
+    Environment :: OpenStack
12
+    Intended Audience :: Information Technology
13
+    Intended Audience :: System Administrators
14
+    License :: OSI Approved :: Apache Software License
15
+    Operating System :: POSIX :: Linux
16
+    Programming Language :: Python
17
+    Programming Language :: Python :: 2
18
+    Programming Language :: Python :: 2.6
19
+    Programming Language :: Python :: 2.7
20
+
21
+[files]
22
+packages =
23
+    dhcp_checker
24
+    network_checker
25
+    fuel_network_checker
26
+    url_access_checker
27
+
28
+[entry_points]
29
+console_scripts =
30
+    net_probe.py = network_checker.net_check.api:main
31
+    fuel-netcheck = network_checker.cli:main
32
+    dhcpcheck = dhcp_checker.cli:main
33
+    urlaccesscheck = url_access_checker.cli:main
34
+
35
+dhcp.check =
36
+    discover = dhcp_checker.commands:ListDhcpServers
37
+    request = dhcp_checker.commands:ListDhcpAssignment
38
+    vlans = dhcp_checker.commands:DhcpWithVlansCheck
39
+
40
+network_checker =
41
+    multicast = network_checker.multicast.api:MulticastChecker
42
+    simple = network_checker.tests.simple:SimpleChecker
43
+
44
+urlaccesscheck =
45
+    check = url_access_checker.commands:CheckUrls
46
+    with_setup = url_access_checker.commands:CheckUrlsWithSetup
47
+
48
+[wheel]
49
+python-tag = py2

+ 10
- 35
setup.py View File

@@ -12,42 +12,17 @@
12 12
 #    License for the specific language governing permissions and limitations
13 13
 #    under the License.
14 14
 
15
+# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
15 16
 import setuptools
16 17
 
18
+# In python < 2.7.4, a lazy loading of package `pbr` will break
19
+# setuptools if some other modules registered functions in `atexit`.
20
+# solution from: http://bugs.python.org/issue15881#msg170215
21
+try:
22
+    import multiprocessing  # noqa
23
+except ImportError:
24
+    pass
17 25
 
18 26
 setuptools.setup(
19
-    name="network-checker",
20
-    version='8.0.0',
21
-    author="Mirantis Inc",
22
-    classifiers=[
23
-        "License :: OSI Approved :: Apache 2.0",
24
-        "Development Status :: 5 - Production/Stable",
25
-        "Environment :: Console",
26
-        "Operating System :: POSIX",
27
-        "Programming Language :: Python",
28
-        "Topic :: Software Development :: Testing"
29
-    ],
30
-    include_package_data=True,
31
-    packages=setuptools.find_packages(),
32
-    entry_points={
33
-        'console_scripts': [
34
-            'net_probe.py = network_checker.net_check.api:main',
35
-            'fuel-netcheck = network_checker.cli:main',
36
-            'dhcpcheck = dhcp_checker.cli:main',
37
-            'urlaccesscheck = url_access_checker.cli:main',
38
-        ],
39
-        'dhcp.check': [
40
-            'discover = dhcp_checker.commands:ListDhcpServers',
41
-            'request = dhcp_checker.commands:ListDhcpAssignment',
42
-            'vlans = dhcp_checker.commands:DhcpWithVlansCheck'
43
-        ],
44
-        'network_checker': [
45
-            'multicast = network_checker.multicast.api:MulticastChecker',
46
-            'simple = network_checker.tests.simple:SimpleChecker'
47
-        ],
48
-        'urlaccesscheck': [
49
-            'check = url_access_checker.commands:CheckUrls',
50
-            'with_setup = url_access_checker.commands:CheckUrlsWithSetup'
51
-        ],
52
-    },
53
-)
27
+    setup_requires=['pbr'],
28
+    pbr=True)

+ 11
- 11
specs/network-checker.spec View File

@@ -2,7 +2,7 @@
2 2
 %{!?version: %define version 8.0.0}
3 3
 
4 4
 Name: %{name}
5
-Summary:   Network checking package for CentOS
5
+Summary:   Network checking package
6 6
 Version:   %{version}
7 7
 Release:   1%{?dist}~mos8.0.0
8 8
 Source0: %{name}-%{version}.tar.gz
@@ -10,19 +10,19 @@ License:   GPLv2
10 10
 Obsoletes: nailgun-net-check
11 11
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
12 12
 URL:       http://github.com/Mirantis
13
-Requires:  scapy
13
+Requires:  scapy >= 2.2.0
14 14
 %if 0%{?rhel} == 6
15 15
 Requires: python-argparse
16 16
 Requires: vconfig
17 17
 %endif
18
-Requires:  python-pypcap
19
-Requires:  python-cliff-tablib
20
-Requires:  python-stevedore
21
-Requires:  python-daemonize
22
-Requires:  python-yaml
18
+Requires:  python-pypcap >= 1.1.1
19
+Requires:  python-cliff-tablib >= 1.0
20
+Requires:  python-stevedore >= 1.0.0
21
+Requires:  python-daemonize >= 1.7.3
22
+Requires:  python-yaml >= 3.1.0
23 23
 Requires:  tcpdump
24
-Requires:  python-requests
25
-Requires:  python-netifaces
24
+Requires:  python-requests >= 2.1.0
25
+Requires:  python-netifaces >= 0.10.4
26 26
 BuildRequires: libpcap-devel
27 27
 BuildRequires: python-setuptools
28 28
 Conflicts: nailgun-net-check
@@ -35,10 +35,10 @@ between hosts in network.
35 35
 %setup -cq -n %{name}-%{version}
36 36
 
37 37
 %build
38
-cd %{_builddir}/%{name}-%{version} && python setup.py build
38
+cd %{_builddir}/%{name}-%{version} && PBR_VERSION=%{version} python setup.py build
39 39
 
40 40
 %install
41
-cd %{_builddir}/%{name}-%{version} && python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=%{_builddir}/%{name}-%{version}/INSTALLED_FILES
41
+cd %{_builddir}/%{name}-%{version} && PBR_VERSION=%{version} python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=%{_builddir}/%{name}-%{version}/INSTALLED_FILES
42 42
 
43 43
 %clean
44 44
 rm -rf $RPM_BUILD_ROOT

+ 7
- 4
test-requirements.txt View File

@@ -1,6 +1,9 @@
1
--r requirements.txt
1
+# The order of packages is significant, because pip processes them in the order
2
+# of appearance. Changing the order has an impact on the overall integration
3
+# process, which may cause wedges in the gate later.
4
+
2 5
 hacking==0.7
3
-mock==1.0.1
6
+mock<=1.0.1,>=1.0
4 7
 pytest
5
-unittest2
6
-requests-mock
8
+unittest2<=0.8.0
9
+requests-mock>=0.4.0  # Apache-2.0

Loading…
Cancel
Save