author | Shawn Walker <shawn.walker@oracle.com> |
Mon, 29 Nov 2010 17:30:29 -0800 | |
changeset 2152 | 623da55258c6 |
parent 2144 | 2ac203b826ab |
child 2158 | 5a688b5b92a3 |
permissions | -rw-r--r-- |
1516
8c950a3b4171
10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents:
1504
diff
changeset
|
1 |
#!/usr/bin/python |
581 | 2 |
# |
3 |
# CDDL HEADER START |
|
4 |
# |
|
5 |
# The contents of this file are subject to the terms of the |
|
6 |
# Common Development and Distribution License (the "License"). |
|
7 |
# You may not use this file except in compliance with the License. |
|
8 |
# |
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
|
10 |
# or http://www.opensolaris.org/os/licensing. |
|
11 |
# See the License for the specific language governing permissions |
|
12 |
# and limitations under the License. |
|
13 |
# |
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
|
19 |
# |
|
20 |
# CDDL HEADER END |
|
21 |
# |
|
22 |
||
926
6ee411c9026a
5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
683
diff
changeset
|
23 |
# |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
24 |
# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. |
926
6ee411c9026a
5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
683
diff
changeset
|
25 |
# |
581 | 26 |
|
27 |
import testutils |
|
28 |
if __name__ == "__main__": |
|
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
29 |
testutils.setup_environment("../../../proto") |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
30 |
import pkg5unittest |
581 | 31 |
|
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
32 |
import os |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
33 |
import pkg.portable |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
34 |
import pkg.catalog |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
35 |
import pkg.client.image as image |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
36 |
import pkg.config as cfg |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
37 |
import pkg.misc as misc |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
38 |
import shutil |
581 | 39 |
import unittest |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
40 |
|
581 | 41 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
42 |
class TestPkgImageCreateBasics(pkg5unittest.ManyDepotTestCase): |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
43 |
# Only start/stop the depots once (instead of for every test) |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
44 |
persistent_setup = True |
581 | 45 |
|
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
46 |
def setUp(self): |
1504
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
47 |
# Extra instances of test1 are created so that a valid |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
48 |
# repository that is different than the actual test1 |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
49 |
# repository can be used. |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
50 |
pkg5unittest.ManyDepotTestCase.setUp(self, ["test1", "test2", |
2100
6a366b063036
17144 Unix socket support is defunct
johansen <johansen@opensolaris.org>
parents:
2097
diff
changeset
|
51 |
"test1", "test1", "nopubconfig"]) |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
52 |
|
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
53 |
self.rurl1 = self.dcs[1].get_repo_url() |
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
54 |
self.rurl2 = self.dcs[2].get_repo_url() |
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
55 |
self.rurl3 = self.dcs[3].get_repo_url() |
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
56 |
self.rurl4 = self.dcs[4].get_repo_url() |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
57 |
self.durl5 = self.dcs[5].get_depot_url() |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
58 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
59 |
# The fifth depot is purposefully one with the publisher |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
60 |
# operation disabled. |
2115
c6a812ab117a
16818 pkgrecv -d should publish per-package, not in one lump
Shawn Walker <shawn.walker@oracle.com>
parents:
2100
diff
changeset
|
61 |
self.dcs[5].set_disable_ops(["publisher/0", "publisher/1"]) |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
62 |
self.dcs[5].start() |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
63 |
|
581 | 64 |
def test_basic(self): |
65 |
""" Create an image, verify it. """ |
|
66 |
||
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
67 |
self.pkg_image_create(self.rurl1, prefix="test1") |
581 | 68 |
self.pkg("verify") |
69 |
||
70 |
def test_image_create_bad_opts(self): |
|
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
71 |
"""Test some bad cli options.""" |
581 | 72 |
|
73 |
self.pkg("image-create -@", exit=2) |
|
74 |
self.pkg("image-create --bozo", exit=2) |
|
75 |
self.pkg("image-create", exit=2) |
|
76 |
||
2026
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
77 |
self.pkg("image-create --set-property foo -p test1=%s %s" % |
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
78 |
(self.rurl1, self.test_root), exit=2) |
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
79 |
self.pkg("image-create --set-property foo=bar --set-property " |
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
80 |
"foo=baz -p test1=%s %s" % (self.rurl1, self.test_root), |
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
81 |
exit=2) |
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
82 |
|
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
83 |
def __add_install_file(self, imgdir, fmri): |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
84 |
"""Take an image path and fmri. Write a file to disk that |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
85 |
indicates that the package named by the fmri has been |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
86 |
installed. Assumes package was installed from a preferred |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
87 |
publisher.""" |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
88 |
|
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
89 |
def install_file(fmri): |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
90 |
return "%s/pkg/%s/installed" % (imgdir, |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
91 |
fmri.get_dir_path()) |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
92 |
|
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
93 |
f = file(install_file(fmri), "w") |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
94 |
f.writelines(["VERSION_1\n_PRE_", fmri.publisher]) |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
95 |
f.close() |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
96 |
|
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
97 |
fi = file("%s/state/installed/%s" % (imgdir, |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
98 |
fmri.get_link_path()), "w") |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
99 |
fi.close() |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
100 |
|
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
101 |
@staticmethod |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
102 |
def __transform_v1_v0(v1_cat, v0_dest): |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
103 |
name = os.path.join(v0_dest, "attrs") |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
104 |
f = open(name, "wb") |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
105 |
f.write("S " |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
106 |
"Last-Modified: %s\n" % v1_cat.last_modified.isoformat()) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
107 |
f.write("S prefix: CRSV\n") |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
108 |
f.write("S npkgs: %s\n" % v1_cat.package_version_count) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
109 |
f.close() |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
110 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
111 |
name = os.path.join(v0_dest, "catalog") |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
112 |
f = open(name, "wb") |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
113 |
# Now write each FMRI in the catalog in the v0 format: |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
114 |
# V pkg:/[email protected],5.11-0.86:20080426T173208Z |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
115 |
for pub, stem, ver in v1_cat.tuples(): |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
116 |
f.write("V pkg:/%s@%s\n" % (stem, ver)) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
117 |
f.close() |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
118 |
|
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
119 |
def test_3588(self): |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
120 |
"""Ensure that image creation works as expected when an image |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
121 |
already exists.""" |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
122 |
|
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
123 |
# These tests are interdependent. |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
124 |
# |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
125 |
# Bug 3588: Make sure we can't create an image where one |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
126 |
# already exists |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
127 |
self.pkg("image-create -p test1=%s %s/3588_image" % ( |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
128 |
self.rurl1, self.get_img_path())) |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
129 |
self.pkg("image-create -p test1=%s %s/3588_image" % ( |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
130 |
self.rurl1, self.get_img_path()), exit=1) |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
131 |
|
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
132 |
# Make sure we can create an image where one |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
133 |
# already exists with the -f (force) flag |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
134 |
self.pkg("image-create -p test1=%s %s/3588_image_1" % ( |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
135 |
self.rurl1, self.get_img_path())) |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
136 |
self.pkg("image-create -f -p test1=%s %s/3588_image_1" % |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
137 |
(self.rurl1, self.get_img_path())) |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
138 |
|
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
139 |
# Bug 3588: Make sure we can't create an image where a |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
140 |
# non-empty directory exists |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
141 |
p = os.path.join(self.get_img_path(), "3588_2_image") |
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
142 |
os.mkdir(p) |
2026
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
143 |
self.cmdline_run("touch %s/%s" % (p, "somefile"), |
d1b30615bc99
9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents:
1937
diff
changeset
|
144 |
coverage=False) |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
145 |
self.pkg("image-create -p test1=%s %s" % (self.rurl1, p), |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
146 |
exit=1) |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
147 |
self.pkg("image-create -f -p test1=%s %s" % (self.rurl1, p)) |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
148 |
|
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
149 |
def __verify_pub_cfg(self, img_path, prefix, pub_cfg): |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
150 |
"""Private helper method to verify publisher configuration.""" |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
151 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
152 |
img = image.Image(img_path, should_exist=True) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
153 |
pub = img.get_publisher(prefix=prefix) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
154 |
for section in pub_cfg: |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
155 |
for prop, val in pub_cfg[section].iteritems(): |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
156 |
if section == "publisher": |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
157 |
pub_val = getattr(pub, prop) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
158 |
else: |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
159 |
pub_val = getattr( |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
160 |
pub.selected_repository, prop) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
161 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
162 |
if prop in ("legal_uris", "mirrors", "origins", |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
163 |
"related_uris"): |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
164 |
# The publisher will have these as lists, |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
165 |
# so transform both sets of data first |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
166 |
# for reliable comparison. Remove any |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
167 |
# trailing slashes so comparison can |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
168 |
# succeed. |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
169 |
if not val: |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
170 |
val = set() |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
171 |
else: |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
172 |
val = set(val.split(",")) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
173 |
new_pub_val = set() |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
174 |
for u in pub_val: |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
175 |
uri = u.uri |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
176 |
if uri.endswith("/"): |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
177 |
uri = uri[:-1] |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
178 |
new_pub_val.add(uri) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
179 |
pub_val = new_pub_val |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
180 |
self.assertEqual(val, pub_val) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
181 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
182 |
# Loading an image changed the cwd, so change it back. |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
183 |
os.chdir(self.test_root) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
184 |
|
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
185 |
def test_4_options(self): |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
186 |
"""Verify that all of the options for specifying publisher |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
187 |
information work as expected for image-create.""" |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
188 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
189 |
img_path = os.path.join(self.test_root, "test_4_img") |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
190 |
for opt in ("-a", "-p", "--publisher"): |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
191 |
self.pkg("image-create %s test1=%s %s" % (opt, |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
192 |
self.rurl1, img_path)) |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
193 |
shutil.rmtree(img_path) |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
194 |
|
1504
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
195 |
# Verify that specifying additional mirrors and origins works. |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
196 |
mirrors = " ".join( |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
197 |
"-m %s" % u |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
198 |
for u in (self.rurl3, self.rurl4) |
1504
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
199 |
) |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
200 |
origins = " ".join( |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
201 |
"-g %s" % u |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
202 |
for u in (self.rurl3, self.rurl4) |
1504
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
203 |
) |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
204 |
|
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
205 |
self.pkg("image-create -p test1=%s %s %s %s" % (self.rurl1, |
1504
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
206 |
mirrors, origins, img_path)) |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
207 |
|
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
208 |
self.pkg("-R %s publisher | grep origin.*%s" % (img_path, |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
209 |
self.rurl1)) |
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
210 |
for u in (self.rurl3, self.rurl4): |
1504
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
211 |
self.pkg("-R %s publisher | grep mirror.*%s" % ( |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
212 |
img_path, u)) |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
213 |
self.pkg("-R %s publisher | grep origin.*%s" % ( |
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
214 |
img_path, u)) |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
215 |
shutil.rmtree(img_path, True) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
216 |
|
1795
1b3bed835773
14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents:
1736
diff
changeset
|
217 |
# Verify that a v0 repo can be configured for a publisher. |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
218 |
# This should succeed as the API should fallback to manual |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
219 |
# configuration if auto-configuration isn't available. |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
220 |
self.pkg("image-create -p test5=%s %s" % (self.durl5, img_path)) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
221 |
pub_cfg = { |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
222 |
"publisher": { "prefix": "test5" }, |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
223 |
"repository": { "origins": self.durl5 } |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
224 |
} |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
225 |
self.__verify_pub_cfg(img_path, "test5", pub_cfg) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
226 |
shutil.rmtree(img_path) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
227 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
228 |
# Verify that -p auto-configuration works as expected for a |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
229 |
# a v1 repository when no prefix is provided. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
230 |
self.pkg("image-create -p %s %s" % (self.rurl1, img_path)) |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
231 |
pub_cfg = { |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
232 |
"publisher": { "prefix": "test1" }, |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
233 |
"repository": { "origins": self.rurl1 } |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
234 |
} |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
235 |
self.__verify_pub_cfg(img_path, "test1", pub_cfg) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
236 |
shutil.rmtree(img_path) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
237 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
238 |
# Verify that -p auto-configuration works as expected for a |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
239 |
# a v1 repository when a prefix is provided. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
240 |
self.pkg("image-create -p test1=%s %s" % (self.rurl1, img_path)) |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
241 |
pub_cfg = { |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
242 |
"publisher": { "prefix": "test1" }, |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
243 |
"repository": { "origins": self.rurl1 } |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
244 |
} |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
245 |
self.__verify_pub_cfg(img_path, "test1", pub_cfg) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
246 |
shutil.rmtree(img_path) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
247 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
248 |
# Verify that -p auto-configuration works as expected for a |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
249 |
# a v1 repository with additional origins and mirrors. |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
250 |
self.pkg("image-create -p test1=%s -g %s -m %s %s" % ( |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
251 |
self.rurl1, self.rurl3, self.durl5, img_path)) |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
252 |
pub_cfg = { |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
253 |
"publisher": { "prefix": "test1" }, |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
254 |
"repository": { |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
255 |
"origins": "%s,%s" % (self.rurl1,self.rurl3), |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
256 |
"mirrors": self.durl5, |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
257 |
}, |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
258 |
} |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
259 |
self.__verify_pub_cfg(img_path, "test1", pub_cfg) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
260 |
shutil.rmtree(img_path) |
1504
265a1d6b86bd
9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents:
1431
diff
changeset
|
261 |
|
1086
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
262 |
def test_5_bad_values_no_image(self): |
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
263 |
"""Verify that an invalid publisher URI or other piece of |
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
264 |
information provided to image-create will not result in an |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
265 |
empty image being created despite failure. In addition, |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
266 |
test that omitting required information will also not result |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
267 |
in the creation of an image.""" |
1086
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
268 |
|
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
269 |
p = os.path.join(self.get_img_path(), "test_5_image") |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
270 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
271 |
# Invalid URIs should not result in the creation of an image. |
1086
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
272 |
self.pkg("image-create -p test=InvalidURI %s" % p, exit=1) |
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
273 |
self.assertFalse(os.path.exists(p)) |
16500d7bf1ca
8321 image_create should not validate publisher uri
Shawn Walker <srw@sun.com>
parents:
938
diff
changeset
|
274 |
|
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
275 |
self.pkg("image-create -p InvalidURI %s" % p, exit=1) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
276 |
self.assertFalse(os.path.exists(p)) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
277 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
278 |
# Valid URI but without prefix and with --no-refresh; auto- |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
279 |
# configuration isn't possible in this scenario and so |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
280 |
# an image should not be created. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
281 |
self.pkg("image-create --no-refresh -p %s %s" % (self.rurl1, p), |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
282 |
exit=2) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
283 |
self.assertFalse(os.path.exists(p)) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
284 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
285 |
# Valid URI but with the wrong publisher prefix should |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
286 |
# not create an image. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
287 |
self.pkg("image-create -p nosuchpub=%s %s" % (self.rurl1, p), |
1736
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
288 |
exit=1) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
289 |
self.assertFalse(os.path.exists(p)) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
290 |
|
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
291 |
# Valid URI, without a publisher prefix, but for a repository |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
292 |
# that doesn't provide publisher configuration should not |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
293 |
# create an image. |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
294 |
self.pkg("image-create -p %s %s" % (self.durl5, p), |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
295 |
exit=1) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
296 |
self.assertFalse(os.path.exists(p)) |
727dda1e7968
11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents:
1715
diff
changeset
|
297 |
|
1133
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
298 |
def test_6_relative_root_create(self): |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
299 |
"""Verify that an image with a relative path for the root is |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
300 |
created correctly.""" |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
301 |
|
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
302 |
pwd = os.getcwd() |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
303 |
img_path = "test_6_image" |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
304 |
abs_img_path = os.path.join(self.test_root, img_path) |
1133
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
305 |
|
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
306 |
# Now verify that the image root isn't duplicated within the |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
307 |
# specified image root if the specified root doesn't already |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
308 |
# exist. |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
309 |
os.chdir(self.test_root) |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
310 |
self.pkg("image-create -p test1=%s %s" % (self.rurl1, |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
311 |
img_path)) |
1133
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
312 |
os.chdir(pwd) |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
313 |
self.assertFalse(os.path.exists(os.path.join(abs_img_path, |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
314 |
img_path))) |
1133
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
315 |
shutil.rmtree(abs_img_path) |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
316 |
|
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
317 |
# Now verify that the image root isn't duplicated within the |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
318 |
# specified image root if the specified root already exists. |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
319 |
os.chdir(self.test_root) |
1133
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
320 |
os.mkdir(img_path) |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
321 |
self.pkg("image-create -p test1=%s %s" % (self.rurl1, |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
322 |
img_path)) |
1133
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
323 |
os.chdir(pwd) |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
324 |
self.assertFalse(os.path.exists(os.path.join(abs_img_path, |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
325 |
img_path))) |
1133
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
326 |
shutil.rmtree(abs_img_path) |
2c28e4526a6e
8720 image-create with a non-absolute path can cause strange results
Shawn Walker <srw@sun.com>
parents:
1086
diff
changeset
|
327 |
|
1143
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
328 |
def test_7_image_create_no_refresh(self): |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
329 |
"""Verify that image-create --no-refresh works as expected. |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
330 |
See bug 8777 for related issue.""" |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
331 |
|
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
332 |
pkgsend_data = """ |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
333 |
open [email protected] |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
334 |
close |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
335 |
""" |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
336 |
self.pkgsend_bulk(self.rurl1, pkgsend_data) |
1143
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
337 |
|
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
338 |
# First, check to be certain that an image-create --no-refresh |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
339 |
# will succeed. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
340 |
self.pkg_image_create(self.rurl2, prefix="test1", |
1143
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
341 |
additional_args="--no-refresh") |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
342 |
self.pkg("list --no-refresh -a | grep baz", exit=1) |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
343 |
|
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
344 |
# Finally, verify that using set-publisher will cause a refresh |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
345 |
# which in turn should cause 'baz' to be listed *if* the origin |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
346 |
# has changed (setting it to the same value again won't work). |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
347 |
self.pkg("set-publisher -O %s test1" % self.rurl1) |
1143
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
348 |
self.pkg("list --no-refresh -a | grep baz") |
71becfca5cfd
8777 image-create traceback with --no-refresh
Shawn Walker <srw@sun.com>
parents:
1133
diff
changeset
|
349 |
|
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
350 |
def test_8_image_upgrade(self): |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
351 |
"""Verify that a version 2 or version 3 image can be used by a |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
352 |
client that creates version 4 images, and that it will be |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
353 |
upgraded correctly when a privileged user uses it.""" |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
354 |
|
1353
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
355 |
# Publish some sample packages (to separate repositories). |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
356 |
self.pkgsend_bulk(self.rurl1, "open [email protected]\nclose") |
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
357 |
self.pkgsend_bulk(self.rurl2, "open [email protected]\nclose") |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
358 |
|
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
359 |
# First, create a new image. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
360 |
self.pkg_image_create(self.rurl1, prefix="test1") |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
361 |
|
2152
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
362 |
# Create a 'repo' directory in image directory so that we |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
363 |
# can verify that it survives the various upgrades. |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
364 |
rpath = os.path.join(self.get_img_path(), "repo") |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
365 |
self.pkgrepo("create %s" % rpath) |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
366 |
|
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
367 |
# Create an 'ssl' directory in image directory so that we |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
368 |
# can verify that it survives the various upgrades. |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
369 |
sslpath = os.path.join(self.get_img_path(), "ssl") |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
370 |
sslfile = os.path.join(sslpath, "my.cert") |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
371 |
os.mkdir(sslpath) |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
372 |
open(sslfile, "wb").close() |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
373 |
|
1353
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
374 |
# Add the second repository. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
375 |
self.pkg("set-publisher -O %s test2" % self.rurl2) |
1353
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
376 |
|
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
377 |
# Next, install the packages. |
1353
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
378 |
self.pkg("install quux") |
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
379 |
self.pkg("set-publisher -P test2") |
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
380 |
|
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
381 |
# This is necessary to ensure that packages installed from a |
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
382 |
# previously preferred publisher also get the correct status. |
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
383 |
self.pkg("install corge") |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
384 |
self.pkg("set-publisher -P test1") |
1353
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
385 |
|
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
386 |
# Next, disable the second repository's publisher. |
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
387 |
self.pkg("set-publisher -d test2") |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
388 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
389 |
# Next, convert the v4 image to a v2 image. |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
390 |
img_root = os.path.join(self.get_img_path(), "var", "pkg") |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
391 |
|
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
392 |
cat_path = os.path.join(img_root, "catalog") |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
393 |
pub_path = os.path.join(img_root, "publisher") |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
394 |
|
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
395 |
v1_cat = pkg.catalog.Catalog(meta_root=os.path.join(pub_path, |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
396 |
"test1", "catalog"), read_only=True) |
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
397 |
v0_cat_path = os.path.join(cat_path, "test1") |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
398 |
|
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
399 |
# For conversion, the v0 catalogs need to be generated in |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
400 |
# the v2 location. |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
401 |
os.makedirs(v0_cat_path) |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
402 |
self.__transform_v1_v0(v1_cat, v0_cat_path) |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
403 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
404 |
# Manifests have to be linked into their v2/v3 location. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
405 |
def link_manifests(): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
406 |
for pub in os.listdir(pub_path): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
407 |
pkg_root = os.path.join(pub_path, pub, "pkg") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
408 |
for stem in os.listdir(pkg_root): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
409 |
stem_root = os.path.join(pkg_root, stem) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
410 |
for ver in os.listdir(stem_root): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
411 |
src = os.path.join(stem_root, |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
412 |
ver) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
413 |
dest = os.path.join(img_root, |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
414 |
"pkg", stem, ver, |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
415 |
"manifest") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
416 |
misc.makedirs( |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
417 |
os.path.dirname(dest)) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
418 |
os.link(src, dest) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
419 |
link_manifests() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
420 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
421 |
# The existing installed state has to be converted to v2. |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
422 |
state_dir = os.path.join(img_root, "state") |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
423 |
inst_state_dir = os.path.join(state_dir, "installed") |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
424 |
cat = pkg.catalog.Catalog(meta_root=inst_state_dir) |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
425 |
for f in cat.fmris(): |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
426 |
self.__add_install_file(img_root, f) |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
427 |
cat = None |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
428 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
429 |
# Now dump any v4 directories not found in v2 images. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
430 |
shutil.rmtree(pub_path) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
431 |
for entry in ("cache", "license", "ssl", "state/known"): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
432 |
shutil.rmtree(os.path.join(img_root, entry)) |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
433 |
|
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
434 |
for fname in sorted(os.listdir(inst_state_dir)): |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
435 |
if fname.startswith("catalog"): |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
436 |
pkg.portable.remove(os.path.join(inst_state_dir, |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
437 |
fname)) |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
438 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
439 |
# Finally, rename image configuration and revert it. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
440 |
src = os.path.join(img_root, "pkg5.image") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
441 |
dest = os.path.join(img_root, "cfg_cache") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
442 |
newcfg = cfg.FileConfig(src) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
443 |
newcfg._version = 2 |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
444 |
newcfg.set_property("image", "version", 2) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
445 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
446 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
447 |
# Older clients store disabled authorities in separate config |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
448 |
# file. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
449 |
disabled_src = os.path.join(img_root, "disabled_auth") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
450 |
discfg = cfg.FileConfig(disabled_src, version=2) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
451 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
452 |
for p in ("publisher-search-order", "signature-required-names"): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
453 |
newcfg.remove_property("property", p) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
454 |
for p in ("origins", "property.signature-required-names", |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
455 |
"intermediate_certs", "approved_ca_certs", |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
456 |
"revoked_ca_certs", "signing_ca_certs"): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
457 |
newcfg.remove_property("authority_test1", p) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
458 |
newcfg.remove_property("authority_test2", p) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
459 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
460 |
discfg.add_section(newcfg.get_section("authority_test2")) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
461 |
newcfg.remove_section("authority_test2") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
462 |
newcfg.write() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
463 |
pkg.portable.rename(src, dest) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
464 |
discfg.write() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
465 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
466 |
# Next, verify that the new client can read v2 images as an |
1353
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
467 |
# an unprivileged user. Each must be done with and without |
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
468 |
# the publisher prefix to test that these are stripped and |
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
469 |
# read properly (because of the publisher preferred prefix). |
1672
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
470 |
self.pkg("publisher -a", su_wrap=True) |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
471 |
self.pkg("info pkg://test1/quux corge", su_wrap=True) |
1353
b9535ddac1c6
11319 image format upgrade can traceback on installed packages from disabled publisher
Shawn Walker <srw@sun.com>
parents:
1352
diff
changeset
|
472 |
self.pkg("info pkg://test2/corge quux", su_wrap=True) |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
473 |
self.pkg("update -nv --no-refresh", su_wrap=True, exit=4) |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
474 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
475 |
# Verify pkg refresh fails when not simulating a live root |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
476 |
# since image needs format update. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
477 |
self.pkg("refresh", exit=1) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
478 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
479 |
# Next, verify that the client won't automatically upgrade |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
480 |
# images unless the image is the liveroot. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
481 |
self.pkg("--debug simulate_live_root=True info quux " |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
482 |
"pkg://test1/quux pkg://test2/corge") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
483 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
484 |
# Next, verify that the new client can upgrade v2 images to |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
485 |
# v4 images if the image is the liveroot. |
1431
62b6033670e4
10416 server catalog v1 support desired
Shawn Walker <srw@sun.com>
parents:
1359
diff
changeset
|
486 |
self.pkg("info quux pkg://test1/quux pkg://test2/corge") |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
487 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
488 |
# Next, verify that the old structures and state information |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
489 |
# are gone and a part of the new structure is present. |
1352
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
490 |
self.assertFalse(os.path.exists(cat_path)) |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
491 |
self.assertTrue(os.path.exists(pub_path)) |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
492 |
|
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
493 |
for pl in sorted(os.listdir(inst_state_dir)): |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
494 |
# If there any other files but catalog files here, then |
5c92c9d342ef
11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents:
1143
diff
changeset
|
495 |
# the old state information didn't get properly removed. |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
496 |
self.assert_(pl.startswith("catalog.")) |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
497 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
498 |
# Now convert the v4 image to a v3 image. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
499 |
link_manifests() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
500 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
501 |
# Dump any v4 directories not found in v3 images. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
502 |
for entry in ("cache", "license", "ssl"): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
503 |
shutil.rmtree(os.path.join(img_root, entry)) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
504 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
505 |
# Next, revert image configuration. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
506 |
src = os.path.join(img_root, "pkg5.image") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
507 |
newcfg = cfg.FileConfig(src) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
508 |
newcfg._version = 3 |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
509 |
newcfg.set_property("image", "version", 3) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
510 |
newcfg.write() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
511 |
newcfg.reset() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
512 |
newcfg.write() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
513 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
514 |
# Next, verify that the new client can read v3 images as an |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
515 |
# an unprivileged user. Each must be done with and without |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
516 |
# the publisher prefix to test that these are stripped and |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
517 |
# read properly. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
518 |
self.pkg("--debug simulate_live_root=True publisher -a", |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
519 |
su_wrap=True) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
520 |
self.pkg("--debug simulate_live_root=True info " |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
521 |
"pkg://test1/quux corge", su_wrap=True) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
522 |
self.pkg("--debug simulate_live_root=True info " |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
523 |
"pkg://test2/corge quux", su_wrap=True) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
524 |
self.pkg("--debug simulate_live_root=True update -nv " |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
525 |
"--no-refresh", su_wrap=True, exit=4) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
526 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
527 |
# Next, verify that the new client can upgrade v3 images to |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
528 |
# v4 images. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
529 |
self.pkg("--debug simulate_live_root=True info quux " |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
530 |
"pkg://test1/quux pkg://test2/corge") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
531 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
532 |
# Next, verify that the old structures and state information |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
533 |
# are gone and a part of the new structure is present. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
534 |
self.assertFalse(os.path.exists( |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
535 |
os.path.join(img_root, "index"))) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
536 |
self.assertTrue(os.path.exists( |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
537 |
os.path.join(img_root, "cache"))) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
538 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
539 |
# Now convert the v4 image to a v3 image again. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
540 |
link_manifests() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
541 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
542 |
# Dump any v4 directories not found in v3 images. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
543 |
for entry in ("cache", "license", "ssl"): |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
544 |
shutil.rmtree(os.path.join(img_root, entry)) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
545 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
546 |
# Next, revert image configuration. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
547 |
src = os.path.join(img_root, "pkg5.image") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
548 |
newcfg = cfg.FileConfig(src) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
549 |
newcfg._version = 3 |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
550 |
newcfg.set_property("image", "version", 3) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
551 |
newcfg.write() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
552 |
newcfg.reset() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
553 |
newcfg.write() |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
554 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
555 |
# Verify pkg update-format fails as an unprivileged user. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
556 |
self.pkg("update-format", su_wrap=True, exit=1) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
557 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
558 |
# Verify pkg refresh succeeds even when image needs format |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
559 |
# update for a v3 image. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
560 |
self.pkg("refresh") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
561 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
562 |
# Verify update-format will upgrade a v3 image to a v4 image. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
563 |
self.pkg("update-format") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
564 |
self.assertFalse(os.path.exists( |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
565 |
os.path.join(img_root, "index"))) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
566 |
self.assertTrue(os.path.exists( |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
567 |
os.path.join(img_root, "cache"))) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
568 |
self.pkg("verify") |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
569 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
570 |
# Verify updated image works as expected. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
571 |
self.pkg("publisher -a", su_wrap=True) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
572 |
self.pkg("info pkg://test1/quux corge", su_wrap=True) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
573 |
self.pkg("info pkg://test2/corge quux", su_wrap=True) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
574 |
self.pkg("update -nv --no-refresh", su_wrap=True, exit=4) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
575 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
576 |
# Verify an already updated image will cause update-format to |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
577 |
# exit 4. |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
578 |
self.pkg("update-format", exit=4) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
2115
diff
changeset
|
579 |
|
2152
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
580 |
# Finally, check that repository and ssl data still exists |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
581 |
# through all the upgrades. |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
582 |
self.assert_(os.path.exists(os.path.join(rpath, |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
583 |
"pkg5.repository"))) |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
584 |
self.assert_(os.path.exists(sslfile)) |
623da55258c6
17453 /var/pkg/repo should be preserved during image format upgrades and not used as a default depot location
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
585 |
|
1658
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
586 |
def test_9_bad_image_state(self): |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
587 |
"""Verify that the pkg(1) command handles invalid image state |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
588 |
gracefully.""" |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
589 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
590 |
# Publish a package. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
591 |
self.pkgsend_bulk(self.rurl1, """ |
1658
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
592 |
open [email protected] |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
593 |
close |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
594 |
""") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
595 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
596 |
# First, create a new image. |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
597 |
self.pkg_image_create(self.rurl1, prefix="test1") |
1658
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
598 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
599 |
# Verify pkg info works as expected. |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
600 |
self.pkg("info -r foo") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
601 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
602 |
# Now invalidate the existing image data. |
2073
9fcacc9e5eaa
16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents:
2026
diff
changeset
|
603 |
state_path = self.get_img_api_obj().img._statedir |
1658
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
604 |
kfile_path = os.path.join(state_path, "known", "catalog.attrs") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
605 |
ifile_path = os.path.join(state_path, "installed", |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
606 |
"catalog.attrs") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
607 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
608 |
self.pkg("install foo") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
609 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
610 |
with open(kfile_path, "w") as f: |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
611 |
f.write("InvalidCatalogFile") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
612 |
f.flush() |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
613 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
614 |
# Should work since known catalog file was corrupted, not the |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
615 |
# installed catalog file. |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
616 |
self.pkg("info foo") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
617 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
618 |
# These should all fail as they depend on the known catalog |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
619 |
# file. |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
620 |
self.pkg("list -a", exit=1) |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
621 |
self.pkg("install -nv foo", exit=1) |
2089
c8b9d6341530
2775 pkg should provide a way to downgrade (reinstall) packages
Shawn Walker <shawn.walker@oracle.com>
parents:
2073
diff
changeset
|
622 |
self.pkg("update -nv", exit=1) |
1658
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
623 |
self.pkg("info -r foo", exit=1) |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
624 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
625 |
with open(ifile_path, "w") as f: |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
626 |
f.write("InvalidCatalogFile") |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
627 |
f.flush() |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
628 |
|
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
629 |
# Should fail since installed catalog file is corrupt. |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
630 |
self.pkg("info foo", exit=1) |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
631 |
self.pkg("list", exit=1) |
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
632 |
|
1672
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
633 |
def test_10_unprivileged(self): |
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
634 |
"""Verify that pkg correctly handles permission errors during |
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
635 |
image-create.""" |
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
636 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
637 |
p = os.path.join(self.test_root, "unpriv_test_10") |
1672
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
638 |
os.mkdir(p) |
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
639 |
|
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
640 |
self.pkg("image-create -p test1=%s %s/image" % ( |
1895
0a260cc2a689
15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents:
1859
diff
changeset
|
641 |
self.rurl1, p), su_wrap=True, exit=1) |
1672
3a71439a03f3
13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents:
1658
diff
changeset
|
642 |
|
1658
49b8cc06eecb
13360 client can traceback if corrupt catalogs exist
Shawn Walker <srw@sun.com>
parents:
1516
diff
changeset
|
643 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
644 |
class TestImageCreateNoDepot(pkg5unittest.CliTestCase): |
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
645 |
persistent_setup = True |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
646 |
def test_bad_image_create(self): |
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
647 |
""" Create image from non-existent server """ |
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
648 |
|
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
649 |
# |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
650 |
# Currently port 4 is unassigned by IANA and we |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
651 |
# Can just hope that it never gets assigned. |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
652 |
# We choose localhost because, well, we think |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
653 |
# it will be universally able to be looked up. |
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
654 |
# |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
655 |
durl = "http://localhost:4" |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
656 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
1859
6e6e866921e7
529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents:
1795
diff
changeset
|
657 |
self.pkg_image_create, durl) |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
658 |
|
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
659 |
def test_765(self): |
926
6ee411c9026a
5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
683
diff
changeset
|
660 |
"""Bug 765: malformed publisher URL.""" |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
661 |
|
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
662 |
durl = "bar=baz" |
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
663 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
1859
6e6e866921e7
529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents:
1795
diff
changeset
|
664 |
self.pkg_image_create, durl) |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
665 |
|
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
666 |
def test_763a(self): |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
667 |
"""Bug 763, traceback 1: no -p option given to image-create.""" |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
668 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
669 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
670 |
self.pkg, "image-create foo") |
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
671 |
|
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
672 |
def test_763c(self): |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
673 |
"""Bug 763, traceback 3: -p given to image-create, but no |
926
6ee411c9026a
5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
683
diff
changeset
|
674 |
publisher specified.""" |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
675 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
676 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
677 |
self.pkg, "image-create -p foo") |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
678 |
|
926
6ee411c9026a
5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
683
diff
changeset
|
679 |
def test_bad_publisher_options(self): |
6ee411c9026a
5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
683
diff
changeset
|
680 |
"""More tests that abuse the publisher prefix and URL.""" |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
681 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
682 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
683 |
self.pkg, "image-create -p $%^8" + ("=http://%s1" % |
683
5e5d509f00e3
4422 t_pkg_authority pinging extant node accidentally
Brock Pytlik <bpytlik@sun.com>
parents:
582
diff
changeset
|
684 |
self.bogus_url)) |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
685 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
686 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
687 |
self.pkg, "image-create -p test1=http://$%^8") |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
688 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
689 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
690 |
self.pkg, "image-create -p test1=http://%s1:abcde" % |
683
5e5d509f00e3
4422 t_pkg_authority pinging extant node accidentally
Brock Pytlik <bpytlik@sun.com>
parents:
582
diff
changeset
|
691 |
self.bogus_url) |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
692 |
|
1715
8f305f0a6864
8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents:
1672
diff
changeset
|
693 |
self.assertRaises(pkg5unittest.UnexpectedExitCodeException, \ |
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
694 |
self.pkg, "image-create -p test1=ftp://%s1" % |
683
5e5d509f00e3
4422 t_pkg_authority pinging extant node accidentally
Brock Pytlik <bpytlik@sun.com>
parents:
582
diff
changeset
|
695 |
self.bogus_url) |
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
696 |
|
938
eeb932b9b44e
7336 putback for 5871 missed a few vestiges of authority
Shawn Walker <Shawn.Walker@Sun.COM>
parents:
926
diff
changeset
|
697 |
|
582
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
698 |
if __name__ == "__main__": |
303fa3b78f93
3588 Ensure that users don't image-create over top of an image
Brad Hall <bhall@eng.sun.com>
parents:
581
diff
changeset
|
699 |
unittest.main() |