author | Yiteng Zhang <yiteng.zhang@oracle.com> |
Mon, 26 Jan 2015 01:30:45 -0800 | |
changeset 3158 | 58c9c2c21e67 |
parent 2958 | 868e07939116 |
child 3193 | 618a7acf5f09 |
permissions | -rw-r--r-- |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
2 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
3 |
# CDDL HEADER START |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
4 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
5 |
# The contents of this file are subject to the terms of the |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
6 |
# Common Development and Distribution License (the "License"). |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
7 |
# You may not use this file except in compliance with the License. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
8 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
10 |
# or http://www.opensolaris.org/os/licensing. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
11 |
# See the License for the specific language governing permissions |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
12 |
# and limitations under the License. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
13 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
19 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
20 |
# CDDL HEADER END |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
21 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
22 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
23 |
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
24 |
|
2915
a7756acea9ef
17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents:
2862
diff
changeset
|
25 |
|
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
26 |
import testutils |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
27 |
if __name__ == "__main__": |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
28 |
testutils.setup_environment("../../../proto") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
29 |
import pkg5unittest |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
30 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
31 |
import os |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
32 |
import pkg.fmri as fmri |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
33 |
import pkg.portable as portable |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
34 |
import pkg.misc as misc |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
35 |
import pkg.p5p |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
36 |
import shutil |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
37 |
import stat |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
38 |
import tempfile |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
39 |
import unittest |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
40 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
41 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
42 |
class TestPkgCompositePublishers(pkg5unittest.ManyDepotTestCase): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
43 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
44 |
# Don't discard repository or setUp() every test. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
45 |
persistent_setup = True |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
46 |
# Tests in this suite use the read only data directory. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
47 |
need_ro_data = True |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
48 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
49 |
foo_pkg = """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
50 |
open pkg://test/[email protected] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
51 |
add set name=pkg.summary value="Example package foo." |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
52 |
add dir mode=0755 owner=root group=bin path=lib |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
53 |
add dir mode=0755 owner=root group=bin path=usr |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
54 |
add dir mode=0755 owner=root group=bin path=usr/bin |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
55 |
add dir mode=0755 owner=root group=bin path=usr/local |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
56 |
add dir mode=0755 owner=root group=bin path=usr/local/bin |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
57 |
add dir mode=0755 owner=root group=bin path=usr/share |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
58 |
add dir mode=0755 owner=root group=bin path=usr/share/doc |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
59 |
add dir mode=0755 owner=root group=bin path=usr/share/doc/foo |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
60 |
add dir mode=0755 owner=root group=bin path=usr/share/man |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
61 |
add dir mode=0755 owner=root group=bin path=usr/share/man/man1 |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
62 |
add file tmp/foo mode=0755 owner=root group=bin path=usr/bin/foo |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
63 |
add file tmp/libfoo.so.1 mode=0755 owner=root group=bin path=lib/libfoo.so.1 variant.debug.foo=false |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
64 |
add file tmp/libfoo_debug.so.1 mode=0755 owner=root group=bin path=lib/libfoo.so.1 variant.debug.foo=true |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
65 |
add file tmp/foo.1 mode=0444 owner=root group=bin path=usr/share/man/man1/foo.1 facet.doc.man=true |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
66 |
add file tmp/README mode=0444 owner=root group=bin path=/usr/share/doc/foo/README |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
67 |
add link path=usr/local/bin/soft-foo target=usr/bin/foo |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
68 |
add hardlink path=usr/local/bin/hard-foo target=/usr/bin/foo |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
69 |
close """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
70 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
71 |
incorp_pkg = """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
72 |
open pkg://test/[email protected] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
73 |
add set name=pkg.summary value="Incorporation" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
74 |
add depend type=incorporate [email protected],5.11-0.1 |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
75 |
close |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
76 |
open pkg://test/[email protected] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
77 |
add set name=pkg.summary value="Incorporation" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
78 |
add depend type=incorporate [email protected],5.11-0.2 |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
79 |
close """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
80 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
81 |
signed_pkg = """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
82 |
open pkg://test/[email protected] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
83 |
add depend type=require [email protected] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
84 |
add dir mode=0755 owner=root group=bin path=usr/bin |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
85 |
add file tmp/quux mode=0755 owner=root group=bin path=usr/bin/quark |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
86 |
add set name=authorized.species value=bobcat |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
87 |
close """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
88 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
89 |
quux_pkg = """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
90 |
open pkg://test2/[email protected],5.11-0.1 |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
91 |
add set name=pkg.summary value="Example package quux." |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
92 |
add depend type=require fmri=pkg:/incorp |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
93 |
close |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
94 |
open pkg://test2/[email protected],5.11-0.2 |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
95 |
add set name=pkg.summary value="Example package quux." |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
96 |
add depend type=require fmri=pkg:/incorp |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
97 |
add dir mode=0755 owner=root group=bin path=usr |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
98 |
add dir mode=0755 owner=root group=bin path=usr/bin |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
99 |
add file tmp/quux mode=0755 owner=root group=bin path=usr/bin/quux |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
100 |
close """ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
101 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
102 |
misc_files = ["tmp/foo", "tmp/libfoo.so.1", "tmp/libfoo_debug.so.1", |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
103 |
"tmp/foo.1", "tmp/README", "tmp/LICENSE", "tmp/quux"] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
104 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
105 |
def __seed_ta_dir(self, certs, dest_dir=None): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
106 |
if isinstance(certs, basestring): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
107 |
certs = [certs] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
108 |
if not dest_dir: |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
109 |
dest_dir = self.ta_dir |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
110 |
self.assert_(dest_dir) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
111 |
self.assert_(self.raw_trust_anchor_dir) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
112 |
for c in certs: |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
113 |
name = "{0}_cert.pem".format(c) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
114 |
portable.copyfile( |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
115 |
os.path.join(self.raw_trust_anchor_dir, name), |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
116 |
os.path.join(dest_dir, name)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
117 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
118 |
def __publish_packages(self, rurl): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
119 |
"""Private helper function to publish packages needed for |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
120 |
testing. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
121 |
""" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
122 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
123 |
pkgs = "".join([self.foo_pkg, self.incorp_pkg, self.signed_pkg, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
124 |
self.quux_pkg]) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
125 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
126 |
# Publish packages needed for tests. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
127 |
plist = self.pkgsend_bulk(rurl, pkgs) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
128 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
129 |
# Sign the 'signed' package. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
130 |
r = self.get_repo(self.dcs[1].get_repodir()) |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
131 |
sign_args = "-k {key} -c {cert} -i {i1} -i {i2} " \ |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
132 |
"-i {i3} -i {i4} -i {i5} -i {i6} {pkg}".format( |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
133 |
key=os.path.join(self.keys_dir, "cs1_ch5_ta1_key.pem"), |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
134 |
cert=os.path.join(self.cs_dir, "cs1_ch5_ta1_cert.pem"), |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
135 |
i1=os.path.join(self.chain_certs_dir, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
136 |
"ch1_ta1_cert.pem"), |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
137 |
i2=os.path.join(self.chain_certs_dir, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
138 |
"ch2_ta1_cert.pem"), |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
139 |
i3=os.path.join(self.chain_certs_dir, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
140 |
"ch3_ta1_cert.pem"), |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
141 |
i4=os.path.join(self.chain_certs_dir, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
142 |
"ch4_ta1_cert.pem"), |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
143 |
i5=os.path.join(self.chain_certs_dir, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
144 |
"ch5_ta1_cert.pem"), |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
145 |
i6=os.path.join(self.chain_certs_dir, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
146 |
"ch1_ta3_cert.pem"), |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
147 |
pkg=plist[3] |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
148 |
) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
149 |
self.pkgsign(rurl, sign_args) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
150 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
151 |
# This is just a test assertion to verify that the |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
152 |
# package was signed as expected. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
153 |
self.image_create(rurl, prefix=None) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
154 |
self.__seed_ta_dir("ta1") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
155 |
self.pkg("set-property signature-policy verify") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
156 |
self.pkg("install signed") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
157 |
self.image_destroy() |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
158 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
159 |
return [ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
160 |
fmri.PkgFmri(sfmri) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
161 |
for sfmri in plist |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
162 |
] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
163 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
164 |
def __archive_packages(self, arc_name, repo, plist): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
165 |
"""Private helper function to archive packages needed for |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
166 |
testing. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
167 |
""" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
168 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
169 |
arc_path = os.path.join(self.test_root, arc_name) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
170 |
assert not os.path.exists(arc_path) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
171 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
172 |
arc = pkg.p5p.Archive(arc_path, mode="w") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
173 |
for pfmri in plist: |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
174 |
arc.add_repo_package(pfmri, repo) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
175 |
arc.close() |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
176 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
177 |
return arc_path |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
178 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
179 |
def setUp(self): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
180 |
pkg5unittest.ManyDepotTestCase.setUp(self, ["test", "test", |
2862
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
181 |
"test", "empty", "void"]) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
182 |
self.make_misc_files(self.misc_files) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
183 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
184 |
# First repository will contain all packages. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
185 |
self.all_rurl = self.dcs[1].get_repo_url() |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
186 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
187 |
# Second repository will contain only foo. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
188 |
self.foo_rurl = self.dcs[2].get_repo_url() |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
189 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
190 |
# Third repository will contain only signed. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
191 |
self.signed_rurl = self.dcs[3].get_repo_url() |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
192 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
193 |
# Fourth will be empty. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
194 |
self.empty_rurl = self.dcs[4].get_repo_url() |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
195 |
self.pkgrepo("refresh -s {0}".format(self.empty_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
196 |
|
2862
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
197 |
# Fifth will have a publisher named 'void', but no packages. |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
198 |
self.void_rurl = self.dcs[5].get_repo_url() |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
199 |
self.pkgrepo("refresh -s {0}".format(self.void_rurl)) |
2862
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
200 |
|
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
201 |
# Setup base test paths. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
202 |
self.path_to_certs = os.path.join(self.ro_data_root, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
203 |
"signing_certs", "produced") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
204 |
self.keys_dir = os.path.join(self.path_to_certs, "keys") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
205 |
self.cs_dir = os.path.join(self.path_to_certs, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
206 |
"code_signing_certs") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
207 |
self.chain_certs_dir = os.path.join(self.path_to_certs, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
208 |
"chain_certs") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
209 |
self.pub_cas_dir = os.path.join(self.path_to_certs, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
210 |
"publisher_cas") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
211 |
self.inter_certs_dir = os.path.join(self.path_to_certs, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
212 |
"inter_certs") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
213 |
self.raw_trust_anchor_dir = os.path.join(self.path_to_certs, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
214 |
"trust_anchors") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
215 |
self.crl_dir = os.path.join(self.path_to_certs, "crl") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
216 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
217 |
# Publish packages. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
218 |
plist = self.__publish_packages(self.all_rurl) |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
219 |
self.pkgrepo("refresh -s {0}".format(self.all_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
220 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
221 |
# Copy foo to second repository and build index. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
222 |
self.pkgrecv(self.all_rurl, "-d {0} foo".format(self.foo_rurl)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
223 |
self.pkgrepo("refresh -s {0}".format(self.foo_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
224 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
225 |
# Copy incorp and quux to third repository and build index. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
226 |
self.pkgrecv(self.all_rurl, "-d {0} signed".format(self.signed_rurl)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
227 |
self.pkgrepo("refresh -s {0}".format(self.signed_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
228 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
229 |
# Now create a package archive containing all packages, and |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
230 |
# then one for each. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
231 |
repo = self.dcs[1].get_repo() |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
232 |
self.all_arc = self.__archive_packages("all_pkgs.p5p", repo, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
233 |
plist) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
234 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
235 |
for alist in ([plist[0]], [plist[1], plist[2]], [plist[3]], |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
236 |
[plist[4], plist[5]]): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
237 |
arc_path = self.__archive_packages( |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
238 |
"{0}.p5p".format(alist[0].pkg_name), repo, alist) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
239 |
setattr(self, "{0}_arc".format(alist[0].pkg_name), arc_path) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
240 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
241 |
self.ta_dir = None |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
242 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
243 |
# Store FMRIs for later use. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
244 |
self.foo10 = plist[0] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
245 |
self.incorp10 = plist[1] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
246 |
self.incorp20 = plist[2] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
247 |
self.signed10 = plist[3] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
248 |
self.quux01 = plist[4] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
249 |
self.quux10 = plist[5] |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
250 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
251 |
def test_00_list(self): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
252 |
"""Verify that the list operation works as expected when |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
253 |
compositing publishers. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
254 |
""" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
255 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
256 |
# Create an image and verify no packages are known. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
257 |
self.image_create(self.empty_rurl, prefix=None) |
2511
9ce778d8c86a
16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents:
2352
diff
changeset
|
258 |
self.pkg("set-property signature-policy ignore") |
9ce778d8c86a
16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents:
2352
diff
changeset
|
259 |
self.pkg("set-publisher --set-property signature-policy=ignore " |
9ce778d8c86a
16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents:
2352
diff
changeset
|
260 |
"test") |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
261 |
self.pkg("list -a", exit=1) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
262 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
263 |
# Verify list output for multiple, disparate sources using |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
264 |
# different combinations of archives and repositories. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
265 |
self.pkg("set-publisher -g {0} -g {1} test".format(self.signed_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
266 |
self.foo_rurl)) |
2749
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
267 |
self.pkg("list -afH") |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
268 |
expected = \ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
269 |
("foo (test) 1.0 ---\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
270 |
"signed (test) 1.0 ---\n") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
271 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
272 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
273 |
|
2749
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
274 |
# Verify removing origins while others remain configured |
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
275 |
# works as expected. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
276 |
self.pkg("set-publisher -G {0} test".format(self.foo_rurl)) |
2749
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
277 |
self.pkg("list -afH") |
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
278 |
expected = "signed (test) 1.0 ---\n" |
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
279 |
output = self.reduceSpaces(self.output) |
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
280 |
self.assertEqualDiff(expected, output) |
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
281 |
|
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
282 |
# Verify simply adding origins works as expected. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
283 |
self.pkg("set-publisher -g {0} test".format(self.foo_arc)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
284 |
self.pkg("set-publisher -g {0} test".format(self.incorp_arc)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
285 |
self.pkg("set-publisher -g {0} test2".format(self.quux_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
286 |
self.pkg("list -afH") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
287 |
expected = \ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
288 |
("foo (test) 1.0 ---\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
289 |
"incorp (test) 2.0 ---\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
290 |
"incorp (test) 1.0 ---\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
291 |
"quux (test2) 1.0-0.2 ---\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
292 |
"quux (test2) 0.1-0.1 ---\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
293 |
"signed (test) 1.0 ---\n") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
294 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
295 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
296 |
|
2749
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
297 |
# Verify removing and adding origins at the same time works as |
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
298 |
# expected. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
299 |
self.pkg("set-publisher -G {0} -g {1} test".format(self.foo_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
300 |
self.foo_rurl)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
301 |
self.pkg("list -afH") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
302 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
303 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
304 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
305 |
self.pkg("set-publisher -G \* -g {0} test".format(self.all_arc)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
306 |
self.pkg("set-publisher -G {0} -g {1} -g {2} test2".format( |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
307 |
self.quux_arc, self.all_arc, self.all_rurl)) |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
308 |
self.pkg("list -afH -g {0} -g {1}".format(self.all_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
309 |
self.all_rurl)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
310 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
311 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
312 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
313 |
# Verify packages can be installed from disparate sources and |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
314 |
# show in default list output. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
315 |
self.pkg("install [email protected] quux signed") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
316 |
self.pkg("list -H") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
317 |
expected = \ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
318 |
("foo (test) 1.0 i--\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
319 |
"incorp (test) 1.0 i--\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
320 |
"quux (test2) 0.1-0.1 i--\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
321 |
"signed (test) 1.0 i--\n") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
322 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
323 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
324 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
325 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
326 |
def test_01_info(self): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
327 |
"""Verify that the info operation works as expected when |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
328 |
compositing publishers. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
329 |
""" |
2915
a7756acea9ef
17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents:
2862
diff
changeset
|
330 |
# because we compare date strings we must run this in |
a7756acea9ef
17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents:
2862
diff
changeset
|
331 |
# a consistent locale, which we made 'C' |
a7756acea9ef
17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents:
2862
diff
changeset
|
332 |
|
a7756acea9ef
17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents:
2862
diff
changeset
|
333 |
os.environ['LC_ALL'] = 'C' |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
334 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
335 |
# Create an image and verify no packages are known. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
336 |
self.image_create(self.empty_rurl, prefix=None) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
337 |
self.pkg("list -a", exit=1) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
338 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
339 |
# Verify info result for multiple disparate sources using |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
340 |
# different combinations of archives and repositories. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
341 |
self.pkg("set-publisher -g {0} -g {1} test".format(self.signed_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
342 |
self.foo_rurl)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
343 |
self.pkg("info -r [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
344 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
345 |
self.pkg("set-publisher -G {0} -g {1} -g {2} test".format( |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
346 |
self.foo_rurl, self.foo_arc, self.incorp_arc)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
347 |
self.pkg("set-publisher -g {0} test2".format(self.quux_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
348 |
self.pkg("info -r [email protected] [email protected] [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
349 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
350 |
self.pkg("set-publisher -G {0} -g {1} test".format(self.foo_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
351 |
self.foo_rurl)) |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
352 |
self.pkg("info -g {0} -g {1} -g {2} -g {3} [email protected] [email protected] " |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
353 |
"[email protected] [email protected]".format( |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
354 |
self.signed_arc, self.incorp_arc, self.quux_arc, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
355 |
self.foo_rurl)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
356 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
357 |
self.pkg("set-publisher -G \* -g {0} -g {1} test".format( |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
358 |
self.all_arc, self.all_rurl)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
359 |
self.pkg("set-publisher -G \* -g {0} -g {1} test2".format( |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
360 |
self.all_arc, self.all_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
361 |
self.pkg("info -r [email protected] [email protected] [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
362 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
363 |
# Verify package installed from archive shows in default info |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
364 |
# output. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
365 |
self.pkg("install [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
366 |
self.pkg("info") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
367 |
expected = """\ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
368 |
Name: foo |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
369 |
Summary: Example package foo. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
370 |
State: Installed |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
371 |
Publisher: test |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
372 |
Version: 1.0 |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
373 |
Branch: None |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
374 |
Packaging Date: {pkg_date} |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
375 |
Size: 41.00 B |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
376 |
FMRI: {pkg_fmri} |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
377 |
""".format(pkg_date=self.foo10.version.get_timestamp().strftime("%c"), |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
378 |
pkg_fmri=self.foo10.get_fmri(include_build=False)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
379 |
self.assertEqualDiff(expected, self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
380 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
381 |
def test_02_contents(self): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
382 |
"""Verify that the contents operation works as expected when |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
383 |
compositing publishers. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
384 |
""" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
385 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
386 |
# Create an image and verify no packages are known. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
387 |
self.image_create(self.empty_rurl, prefix=None) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
388 |
self.pkg("list -a", exit=1) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
389 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
390 |
# Verify contents result for multiple disparate sources using |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
391 |
# different combinations of archives and repositories. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
392 |
self.pkg("set-publisher -g {0} -g {1} test".format(self.signed_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
393 |
self.foo_rurl)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
394 |
self.pkg("contents -r [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
395 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
396 |
self.pkg("set-publisher -G {0} -g {1} -g {2} test".format( |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
397 |
self.foo_rurl, self.foo_arc, self.incorp_arc)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
398 |
self.pkg("set-publisher -g {0} test2".format(self.quux_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
399 |
self.pkg("contents -r [email protected] [email protected] [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
400 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
401 |
self.pkg("set-publisher -G {0} -g {1} test".format(self.foo_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
402 |
self.foo_rurl)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
403 |
self.pkg("contents -r [email protected] [email protected] [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
404 |
|
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
405 |
self.pkg("set-publisher -G \* -g {0} -g {1} test".format( |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
406 |
self.all_arc, self.all_rurl)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
407 |
self.pkg("set-publisher -G \* -g {0} -g {1} test2".format( |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
408 |
self.all_arc, self.all_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
409 |
self.pkg("contents -r [email protected] [email protected] [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
410 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
411 |
# Verify package installed from archive can be used with |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
412 |
# contents. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
413 |
self.pkg("install [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
414 |
self.pkg("contents foo") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
415 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
416 |
def test_03_install_update(self): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
417 |
"""Verify that install and update work as expected when |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
418 |
compositing publishers. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
419 |
""" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
420 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
421 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
422 |
# Create an image and verify no packages are known. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
423 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
424 |
self.image_create(self.empty_rurl, prefix=None) |
2511
9ce778d8c86a
16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents:
2352
diff
changeset
|
425 |
self.pkg("set-property signature-policy ignore") |
9ce778d8c86a
16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents:
2352
diff
changeset
|
426 |
self.pkg("set-publisher --set-property signature-policy=ignore " |
9ce778d8c86a
16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents:
2352
diff
changeset
|
427 |
"test") |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
428 |
self.pkg("list -a", exit=1) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
429 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
430 |
# Verify that packages with dependencies can be installed when |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
431 |
# using multiple, disparate sources. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
432 |
self.pkg("set-publisher -g {0} -g {1} test".format(self.foo_arc, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
433 |
self.signed_arc)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
434 |
self.pkg("install signed") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
435 |
self.pkg("list foo signed") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
436 |
self.pkg("uninstall \*") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
437 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
438 |
# Verify publisher can be removed. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
439 |
self.pkg("unset-publisher test") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
440 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
441 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
442 |
# Create an image using the signed archive. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
443 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
444 |
self.image_create(misc.parse_uri(self.signed_arc), prefix=None) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
445 |
self.__seed_ta_dir("ta1") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
446 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
447 |
# Verify that signed package can be installed and the archive |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
448 |
# configured for the publisher allows dependencies to be |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
449 |
# satisfied. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
450 |
self.pkg("set-publisher -g {0} test".format(self.foo_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
451 |
self.pkg("set-property signature-policy verify") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
452 |
self.pkg("publisher test") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
453 |
self.pkg("install signed") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
454 |
self.pkg("list foo signed") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
455 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
456 |
# Verify that removing all packages and the signed archive as |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
457 |
# a source leaves only foo known. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
458 |
self.pkg("uninstall \*") |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
459 |
self.pkg("set-publisher -G {0} test".format(self.signed_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
460 |
self.pkg("list -aH") |
2749
9d664b5d7896
7175436 removal-only of origins with set-publisher can result in stale image catalog
Shawn Walker <shawn.walker@oracle.com>
parents:
2511
diff
changeset
|
461 |
expected = "foo 1.0 ---\n" |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
462 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
463 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
464 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
465 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
466 |
# Create an image and verify no packages are known. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
467 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
468 |
self.image_create(self.empty_rurl, prefix=None) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
469 |
self.pkg("list -a", exit=1) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
470 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
471 |
# Install an older version of a known package. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
472 |
self.pkg("set-publisher -g {0} test".format(self.all_arc)) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
473 |
self.pkg("set-publisher -g {0} test2".format(self.all_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
474 |
self.pkg("install [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
475 |
self.pkg("list [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
476 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
477 |
# Verify that packages can be updated when using multiple, |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
478 |
# disparate sources (that have some overlap). |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
479 |
self.pkg("set-publisher -g {0} test".format(self.incorp_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
480 |
self.pkg("update") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
481 |
self.pkg("list [email protected] [email protected]") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
482 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
483 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
484 |
# Create an image using the signed archive. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
485 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
486 |
self.image_create(misc.parse_uri(self.signed_arc), prefix=None) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
487 |
self.__seed_ta_dir("ta1") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
488 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
489 |
# Add the incorp archive as a source. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
490 |
self.pkg("set-publisher -g {0} test".format(self.incorp_arc)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
491 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
492 |
# Now verify that temporary package sources can be used during |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
493 |
# package operations when multiple, disparate sources are |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
494 |
# already configured for the same publisher. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
495 |
self.pkg("install -g {0} incorp signed".format(self.foo_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
496 |
self.pkg("list incorp foo signed") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
497 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
498 |
def test_04_search(self): |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
499 |
"""Verify that search works as expected when compositing |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
500 |
publishers. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
501 |
""" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
502 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
503 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
504 |
# Create an image and verify no packages are known. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
505 |
# |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
506 |
self.image_create(self.empty_rurl, prefix=None) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
507 |
self.pkg("list -a", exit=1) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
508 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
509 |
# Add multiple, different sources. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
510 |
self.pkg("set-publisher -g {0} -g {1} test".format(self.foo_rurl, |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
511 |
self.signed_rurl)) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
512 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
513 |
# Verify a remote search that should only match one of the |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
514 |
# sources works as expected. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
515 |
self.pkg("search -Hpr -o pkg.shortfmri /usr/bin/foo") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
516 |
expected = "pkg:/[email protected]\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
517 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
518 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
519 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
520 |
# Verify a remote search for multiple terms that should match |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
521 |
# each source works as expected. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
522 |
self.pkg("search -Hpr -o pkg.shortfmri /usr/bin/foo OR " |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
523 |
"/usr/bin/quark") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
524 |
expected = \ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
525 |
("pkg:/[email protected]\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
526 |
"pkg:/[email protected]\n") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
527 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
528 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
529 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
530 |
# Add a source that partially overlaps with the existing ones |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
531 |
# (provides some of the same packages) and verify that some |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
532 |
# of the results are duplicated (since search across sources |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
533 |
# is a simple aggregation of all sources). |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
534 |
self.pkg("set-publisher -g {0} test".format(self.all_rurl)) |
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
535 |
self.pkg("search -Hpr -o pkg.shortfmri /usr/bin/foo OR " |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
536 |
"/usr/bin/quark OR Incorporation") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
537 |
expected = \ |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
538 |
("pkg:/[email protected]\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
539 |
"pkg:/[email protected]\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
540 |
"pkg:/[email protected]\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
541 |
"pkg:/[email protected]\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
542 |
"pkg:/[email protected]\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
543 |
"pkg:/[email protected]\n") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
544 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
545 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
546 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
547 |
# Add a publisher with no origins and verify output still |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
548 |
# matches expected (although it will currently exit 3). |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
549 |
self.pkg("set-publisher no-origins") |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
550 |
self.pkg("search -Hpr -o pkg.shortfmri /usr/bin/foo OR " |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
551 |
"/usr/bin/quark OR Incorporation", exit=3) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
552 |
output = self.reduceSpaces(self.output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
553 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
554 |
# Elide error output from client to verify that search |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
555 |
# results were returned despite error. |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
556 |
output = output[:output.find("pkg: ")] + "\n" |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
557 |
self.assertEqualDiff(expected, output) |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
558 |
|
2862
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
559 |
def test_05_empty(self): |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
560 |
"""Verify empty repositories and repositories with a publisher, |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
561 |
but no packages, can be used with -g.""" |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
562 |
|
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
563 |
self.image_create(repourl=None, prefix=None) |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
564 |
|
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
565 |
# Verify usage alone. |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
566 |
for uri in (self.empty_rurl, self.void_rurl): |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
567 |
self.pkg("list -afH -g {0} '*'".format(uri), exit=1) |
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
568 |
self.pkg("contents -H -g {0} '*'".format(uri), exit=1) |
2862
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
569 |
|
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
570 |
# Verify usage in combination with non-empty. |
3158
58c9c2c21e67
20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents:
2958
diff
changeset
|
571 |
self.pkg("list -afH -g {0} -g {1} -g {2} '*'".format(self.empty_rurl, |
2862
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
572 |
self.void_rurl, self.foo_rurl)) |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
573 |
expected = \ |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
574 |
("foo (test) 1.0 ---\n") |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
575 |
output = self.reduceSpaces(self.output) |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
576 |
self.assertEqualDiff(expected, output) |
1ec958dbd40a
15949886 pkg traceback when using -g for repository with no packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2753
diff
changeset
|
577 |
|
2352
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
578 |
|
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
579 |
if __name__ == "__main__": |
3c17f86cd994
18105 api should support multiple repositories (origins) with different package data
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
580 |
unittest.main() |