/
constants.py
289 lines (220 loc) · 9.27 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
# coding=utf-8
"""Constants for Pulp RPM plugin tests."""
from urllib.parse import urljoin
from pulp_smash import config
from pulp_smash.pulp3.constants import (
BASE_CONTENT_PATH,
BASE_DISTRIBUTION_PATH,
BASE_REPO_PATH,
BASE_PATH,
BASE_PUBLICATION_PATH,
BASE_REMOTE_PATH,
)
RPM_COPY_PATH = urljoin(BASE_PATH, 'rpm/copy/')
"""The URL used for copying RPM content between repos."""
PULP_FIXTURES_BASE_URL = config.get_config().get_fixtures_url()
RPM_PACKAGE_CONTENT_NAME = 'rpm.package'
RPM_PACKAGECATEGORY_CONTENT_NAME = 'rpm.packagecategory'
RPM_PACKAGEGROUP_CONTENT_NAME = 'rpm.packagegroup'
RPM_PACKAGELANGPACKS_CONTENT_NAME = 'rpm.packagelangpacks'
RPM_ADVISORY_CONTENT_NAME = 'rpm.advisory'
RPM_ALT_LAYOUT_FIXTURE_URL = urljoin(PULP_FIXTURES_BASE_URL, 'rpm-alt-layout/')
"""The URL to a signed RPM repository. See :data:`RPM_SIGNED_FIXTURE_URL`."""
RPM_CONTENT_PATH = urljoin(BASE_CONTENT_PATH, 'rpm/packages/')
"""The location of RPM packages on the content endpoint."""
RPM_NAMESPACES = {
'metadata/common': 'http://linux.duke.edu/metadata/common',
'metadata/filelists': 'http://linux.duke.edu/metadata/filelists',
'metadata/other': 'http://linux.duke.edu/metadata/other',
'metadata/repo': 'http://linux.duke.edu/metadata/repo',
'metadata/rpm': 'http://linux.duke.edu/metadata/rpm',
}
"""Namespaces used by XML-based RPM metadata.
Many of the XML files generated by the ``createrepo`` utility make use of these
namespaces. Some of the files that use these namespaces are listed below:
metadata/common
Used by ``repodata/primary.xml``.
metadata/filelists
Used by ``repodata/filelists.xml``.
metadata/other
Used by ``repodata/other.xml``.
metadata/repo
Used by ``repodata/repomd.xml``.
metadata/rpm
Used by ``repodata/repomd.xml``.
"""
RPM_DISTRIBUTION_PATH = urljoin(BASE_DISTRIBUTION_PATH, 'rpm/rpm/')
RPM_REMOTE_PATH = urljoin(BASE_REMOTE_PATH, 'rpm/rpm/')
RPM_REPO_PATH = urljoin(BASE_REPO_PATH, 'rpm/rpm/')
RPM_PUBLICATION_PATH = urljoin(BASE_PUBLICATION_PATH, 'rpm/rpm/')
RPM_SHA512_FIXTURE_URL = urljoin(PULP_FIXTURES_BASE_URL, 'rpm-with-sha-512/')
"""The URL to an RPM repository with sha512 checksum."""
RPM_SIGNED_FIXTURE_URL = urljoin(PULP_FIXTURES_BASE_URL, 'rpm-signed/')
"""The URL to a repository with signed RPM packages."""
RPM_SINGLE_REQUEST_UPLOAD = urljoin(BASE_PATH, 'content/rpm/packages/')
RPM_UNSIGNED_FIXTURE_URL = urljoin(PULP_FIXTURES_BASE_URL, 'rpm-unsigned/')
"""The URL to a repository with unsigned RPM packages."""
RPM_PACKAGE_COUNT = 35
"""The number of packages available at
:data:`RPM_SIGNED_FIXTURE_URL` and :data:`RPM_UNSIGNED_FIXTURE_URL`
"""
RPM_PACKAGECATEGORY_COUNT = 1
"""The number of packagecategories."""
RPM_PACKAGEGROUP_COUNT = 2
"""The number of packagegroups."""
RPM_PACKAGELANGPACKS_COUNT = 1
"""The number of packagelangpacks."""
RPM_ADVISORY_COUNT = 4
"""The number of updated record units."""
RPM_FIXTURE_SUMMARY = {
RPM_PACKAGE_CONTENT_NAME: RPM_PACKAGE_COUNT,
RPM_ADVISORY_CONTENT_NAME: RPM_ADVISORY_COUNT,
RPM_PACKAGECATEGORY_CONTENT_NAME: RPM_PACKAGECATEGORY_COUNT,
RPM_PACKAGEGROUP_CONTENT_NAME: RPM_PACKAGEGROUP_COUNT,
RPM_PACKAGELANGPACKS_CONTENT_NAME: RPM_PACKAGELANGPACKS_COUNT,
}
"""The breakdown of how many of each type of content unit are present in the
standard repositories, i.e. :data:`RPM_SIGNED_FIXTURE_URL` and
:data:`RPM_UNSIGNED_FIXTURE_URL`. This matches the format output by the
"content_summary" field on "../repositories/../versions/../".
"""
RPM_EPEL_URL = 'https://dl.fedoraproject.org/pub/epel/7Server/x86_64/'
"""The URL to large repository. EPEL7.
.. NOTE:: This repository is not generated by pulp-fixtures.
"""
RPM_LONG_UPDATEINFO_FIXTURE_URL = urljoin(
PULP_FIXTURES_BASE_URL, 'rpm-long-updateinfo/'
)
"""The URL to RPM with a long updateinfo.xml."""
RPM_MODULAR_FIXTURE_URL = urljoin(PULP_FIXTURES_BASE_URL, 'rpm-with-modules/')
"""The URL to a modular RPM repository."""
RPM_MODULES_COUNT = 10
"""The number of modules present on `RPM_MODULAR_FIXTURE_URL`."""
RPM_MODULES_DEFAULTS_COUNT = 3
"""The number of modules-default present on `RPM_MODULAR_FIXTURE_URL`."""
RPM_MODULES_CONTENT_NAME = 'rpm.modulemd'
RPM_MODULES_DEFAULTS_CONTENT_NAME = 'rpm.modulemd_defaults'
RPM_ADVISORY_MODULAR_COUNT = 6
RPM_MODULAR_FIXTURE_SUMMARY = {
RPM_PACKAGE_CONTENT_NAME: RPM_PACKAGE_COUNT,
RPM_ADVISORY_CONTENT_NAME: RPM_ADVISORY_MODULAR_COUNT,
RPM_MODULES_CONTENT_NAME: RPM_MODULES_COUNT,
RPM_MODULES_DEFAULTS_CONTENT_NAME: RPM_MODULES_DEFAULTS_COUNT,
RPM_PACKAGECATEGORY_CONTENT_NAME: RPM_PACKAGECATEGORY_COUNT,
RPM_PACKAGEGROUP_CONTENT_NAME: RPM_PACKAGEGROUP_COUNT,
RPM_PACKAGELANGPACKS_CONTENT_NAME: RPM_PACKAGELANGPACKS_COUNT,
}
"""The breakdown of how many of each type of content unit are present in the
i.e. :data:`RPM_MODULAR_FIXTURE_URL`."""
RPM_PACKAGE_DATA = {
'name': 'kangaroo',
'epoch': '0',
'version': '0.3',
'release': '1',
'arch': 'noarch',
'description': 'A modular RPM fixture for testing Pulp.',
'summary': 'hop like a kangaroo in Australia',
'rpm_license': 'Public Domain',
'rpm_group': 'Unspecified',
'rpm_vendor': '',
# TODO: Complete this information once we figure out how to serialize
# everything nicely
}
"""The metadata for one RPM package."""
RPM_PACKAGE_DATA2 = {
'name': 'duck',
'epoch': '0',
'version': '0.7',
'release': '1',
'arch': 'noarch',
'description': 'A dummy package of duck',
'summary': 'A dummy package of duck',
'rpm_license': 'GPLv2',
'rpm_group': 'Internet/Applications',
'rpm_vendor': '',
# TODO: Complete this information once we figure out how to serialize
# everything nicely
}
"""The metadata for one RPM package."""
RPM_PACKAGE_NAME = '{}'.format(RPM_PACKAGE_DATA['name'])
"""The name of one RPM package."""
RPM_PACKAGE_FILENAME = '{}-{}-{}.{}.rpm'.format(
RPM_PACKAGE_DATA['name'],
RPM_PACKAGE_DATA['version'],
RPM_PACKAGE_DATA['release'],
RPM_PACKAGE_DATA['arch'],
)
"""The filename of one RPM package."""
RPM_PACKAGE_FILENAME2 = '{}-{}-{}.{}.rpm'.format(
RPM_PACKAGE_DATA2['name'],
RPM_PACKAGE_DATA2['version'],
RPM_PACKAGE_DATA2['release'],
RPM_PACKAGE_DATA2['arch'],
)
"""The filename of one RPM package."""
RPM_REFERENCES_UPDATEINFO_URL = urljoin(
PULP_FIXTURES_BASE_URL, 'rpm-references-updateinfo/'
)
"""The URL to a repository with ``updateinfo.xml`` containing references.
This repository includes advisory with reference element (0, 1 or 2 references)
and without it.
"""
RPM_RICH_WEAK_FIXTURE_URL = urljoin(
PULP_FIXTURES_BASE_URL, 'rpm-richnweak-deps/'
)
"""The URL to an RPM repository with weak and rich dependencies."""
RPM_SIGNED_URL = urljoin(RPM_SIGNED_FIXTURE_URL, RPM_PACKAGE_FILENAME)
"""The path to a single signed RPM package."""
RPM_SIGNED_URL2 = urljoin(RPM_SIGNED_FIXTURE_URL, RPM_PACKAGE_FILENAME2)
"""The path to a single signed RPM package."""
RPM_UNSIGNED_URL = urljoin(RPM_UNSIGNED_FIXTURE_URL, RPM_PACKAGE_FILENAME)
"""The path to a single unsigned RPM package."""
RPM_UPDATED_UPDATEINFO_FIXTURE_URL = urljoin(
PULP_FIXTURES_BASE_URL, 'rpm-updated-updateinfo/'
)
"""The URL to a repository containing UpdateRecords (Advisory) with the same IDs
as the ones in the standard repositories, but with different metadata.
Note: This repository uses unsigned RPMs.
"""
RPM_UPDATERECORD_ID = 'RHEA-2012:0058'
"""The ID of an UpdateRecord (advisory/erratum).
The package contained on this advisory is defined by
:data:`RPM_UPDATERECORD_RPM_NAME` and the advisory is present in the standard
repositories, i.e. :data:`RPM_SIGNED_FIXTURE_URL` and
:data:`RPM_UNSIGNED_FIXTURE_URL`.
"""
RPM_UPDATERECORD_RPM_NAME = 'gorilla'
"""The name of the RPM named by :data:`RPM_UPDATERECORD_ID`."""
RPM_WITH_NON_ASCII_NAME = 'rpm-with-non-ascii'
RPM_WITH_NON_ASCII_URL = urljoin(
PULP_FIXTURES_BASE_URL,
'rpm-with-non-ascii/{}-1-1.fc25.noarch.rpm'.format(
RPM_WITH_NON_ASCII_NAME
),
)
"""The URL to an RPM with non-ascii metadata in its header."""
RPM_WITH_NON_UTF_8_NAME = 'rpm-with-non-utf-8'
RPM_WITH_NON_UTF_8_URL = urljoin(
PULP_FIXTURES_BASE_URL,
'rpm-with-non-utf-8/{}-1-1.fc25.noarch.rpm'.format(
RPM_WITH_NON_UTF_8_NAME
),
)
"""The URL to an RPM with non-UTF-8 metadata in its header."""
SRPM_UNSIGNED_FIXTURE_URL = urljoin(PULP_FIXTURES_BASE_URL, 'srpm-unsigned/')
"""The URL to a repository with unsigned SRPM packages."""
UPDATERECORD_CONTENT_PATH = urljoin(BASE_CONTENT_PATH, 'rpm/advisories/')
"""The location of RPM UpdateRecords on the content endpoint."""
RPM_KICKSTART_FIXTURE_URL = urljoin(PULP_FIXTURES_BASE_URL, 'rpm-kickstart/')
RPM_KICKSTART_CONTENT_NAME = 'rpm.distribution_tree'
RPM_KICKSTART_COUNT = 1
RPM_KICKSTART_FIXTURE_SUMMARY = {
RPM_KICKSTART_CONTENT_NAME: RPM_KICKSTART_COUNT
}
CENTOS6_URL = "http://mirror.centos.org/centos-6/6.10/os/x86_64/"
CENTOS7_URL = "http://mirror.linux.duke.edu/pub/centos/7/os/x86_64/"
CENTOS8_KICKSTART_APP_URL = "http://mirror.linux.duke.edu/pub/centos/8/AppStream/x86_64/kickstart/"
CENTOS8_KICKSTART_BASEOS_URL = "http://mirror.linux.duke.edu/pub/centos/8/BaseOS/x86_64/kickstart/"
CENTOS8_APPSTREAM_URL = "http://mirror.linux.duke.edu/pub/centos/8/AppStream/x86_64/os/"
CENTOS8_BASEOS_URL = "http://mirror.linux.duke.edu/pub/centos/8/BaseOS/x86_64/os/"
EPEL7_URL = "https://dl.fedoraproject.org/pub/epel/7/x86_64/"