src/tests/cli/t_pkg_temp_sources.py
author Brock Pytlik <brock.pytlik@oracle.com>
Wed, 15 Jun 2011 20:06:10 -0700
changeset 2414 ce704b29a50c
parent 2339 aa5954c06b9d
child 2511 9ce778d8c86a
permissions -rw-r--r--
18464 revoka-ca-cert needs a rethink
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2320
b02a1adb7324 18222 pkg info --license can fail with "unknown publisher" when using -g (fix shebang)
Shawn Walker <shawn.walker@oracle.com>
parents: 2313
diff changeset
     1
#!/usr/bin/python
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     2
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     4
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     8
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    13
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    19
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    21
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    22
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    23
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    24
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    25
import testutils
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    26
if __name__ == "__main__":
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    27
        testutils.setup_environment("../../../proto")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    28
import pkg5unittest
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    29
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    30
import os
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    31
import pkg.fmri as fmri
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    32
import pkg.portable as portable
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    33
import pkg.misc as misc
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    34
import pkg.p5p
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    35
import shutil
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    36
import stat
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    37
import tempfile
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    38
import unittest
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    39
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    40
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    41
class TestPkgTempSources(pkg5unittest.ManyDepotTestCase):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    42
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    43
        # Don't discard repository or setUp() every test.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    44
        persistent_setup = True
2272
d81ea073d050 3617 Testsuite should allow choice for base port to use
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2219
diff changeset
    45
        # Tests in this suite use the read only data directory.
d81ea073d050 3617 Testsuite should allow choice for base port to use
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2219
diff changeset
    46
        need_ro_data = True
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    47
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    48
        foo_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    49
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    50
            add set name=pkg.summary value="Example package foo."
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
    51
            add set name=variant.debug.foo value=true value=false
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    52
            add dir mode=0755 owner=root group=bin path=lib
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    53
            add dir mode=0755 owner=root group=bin path=usr
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    54
            add dir mode=0755 owner=root group=bin path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    55
            add dir mode=0755 owner=root group=bin path=usr/local
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    56
            add dir mode=0755 owner=root group=bin path=usr/local/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    57
            add dir mode=0755 owner=root group=bin path=usr/share
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    58
            add dir mode=0755 owner=root group=bin path=usr/share/doc
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    59
            add dir mode=0755 owner=root group=bin path=usr/share/doc/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    60
            add dir mode=0755 owner=root group=bin path=usr/share/man
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    61
            add dir mode=0755 owner=root group=bin path=usr/share/man/man1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    62
            add file tmp/foo mode=0755 owner=root group=bin path=usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    63
            add file tmp/libfoo.so.1 mode=0755 owner=root group=bin path=lib/libfoo.so.1 variant.debug.foo=false
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    64
            add file tmp/libfoo_debug.so.1 mode=0755 owner=root group=bin path=lib/libfoo.so.1 variant.debug.foo=true
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    65
            add file tmp/foo.1 mode=0444 owner=root group=bin path=usr/share/man/man1/foo.1 facet.doc.man=true
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    66
            add file tmp/README mode=0444 owner=root group=bin path=/usr/share/doc/foo/README
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    67
            add link path=usr/local/bin/soft-foo target=usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    68
            add hardlink path=usr/local/bin/hard-foo target=/usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    69
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    70
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    71
        incorp_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    72
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    73
            add set name=pkg.summary value="Incorporation"
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    74
            add depend type=incorporate [email protected],5.11-0.1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    75
            close
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    76
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    77
            add set name=pkg.summary value="Incorporation"
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    78
            add depend type=incorporate [email protected],5.11-0.2
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    79
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    80
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    81
        licensed_pkg = """
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    82
            open pkg://test2/[email protected]
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    83
            add license tmp/LICENSE license=sample_license
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    84
            close """
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    85
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    86
        signed_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    87
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    88
            add depend type=require [email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    89
            add dir mode=0755 owner=root group=bin path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    90
            add file tmp/quux mode=0755 owner=root group=bin path=usr/bin/quark
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    91
            add set name=authorized.species value=bobcat
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    92
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    93
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    94
        quux_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    95
            open pkg://test2/[email protected],5.11-0.1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    96
            add set name=pkg.summary value="Example package quux."
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    97
            add depend type=require fmri=pkg:/incorp
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    98
            close
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    99
            open pkg://test2/[email protected],5.11-0.2
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   100
            add set name=pkg.summary value="Example package quux."
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   101
            add depend type=require fmri=pkg:/incorp
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   102
            add dir mode=0755 owner=root group=bin path=usr
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   103
            add dir mode=0755 owner=root group=bin path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   104
            add file tmp/quux mode=0755 owner=root group=bin path=usr/bin/quux
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   105
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   106
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   107
        misc_files = ["tmp/foo", "tmp/libfoo.so.1", "tmp/libfoo_debug.so.1",
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   108
            "tmp/foo.1", "tmp/README", "tmp/LICENSE", "tmp/quux"]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   109
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   110
        def __seed_ta_dir(self, certs, dest_dir=None):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   111
                if isinstance(certs, basestring):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   112
                        certs = [certs]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   113
                if not dest_dir:
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   114
                        dest_dir = self.ta_dir
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   115
                self.assert_(dest_dir)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   116
                self.assert_(self.raw_trust_anchor_dir)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   117
                for c in certs:
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   118
                        name = "%s_cert.pem" % c
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   119
                        portable.copyfile(
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   120
                            os.path.join(self.raw_trust_anchor_dir, name),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   121
                            os.path.join(dest_dir, name))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   122
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   123
        def image_create(self, *args, **kwargs):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   124
                pkg5unittest.ManyDepotTestCase.image_create(self,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   125
                    *args, **kwargs)
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   126
                self.ta_dir = os.path.join(self.img_path(), "etc/certs/CA")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   127
                os.makedirs(self.ta_dir)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   128
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   129
        def __publish_packages(self, rurl):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   130
                """Private helper function to publish packages needed for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   131
                testing.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   132
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   133
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   134
                pkgs = "".join([self.foo_pkg, self.incorp_pkg, self.signed_pkg,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   135
                    self.quux_pkg])
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   136
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   137
                # Publish packages needed for tests.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   138
                plist = self.pkgsend_bulk(rurl, pkgs)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   139
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   140
                # Sign the 'signed' package.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   141
                r = self.get_repo(self.dcs[1].get_repodir())
2286
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   142
                sign_args = "-k %(key)s -c %(cert)s -i %(i1)s -i %(i2)s " \
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   143
                    "-i %(i3)s -i %(i4)s -i %(i5)s -i %(i6)s %(pkg)s" % {
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   144
                      "key": os.path.join(self.keys_dir, "cs1_ch5_ta1_key.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   145
                      "cert": os.path.join(self.cs_dir, "cs1_ch5_ta1_cert.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   146
                      "i1": os.path.join(self.chain_certs_dir,
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   147
                          "ch1_ta1_cert.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   148
                      "i2": os.path.join(self.chain_certs_dir,
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   149
                          "ch2_ta1_cert.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   150
                      "i3": os.path.join(self.chain_certs_dir,
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   151
                          "ch3_ta1_cert.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   152
                      "i4": os.path.join(self.chain_certs_dir,
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   153
                          "ch4_ta1_cert.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   154
                      "i5": os.path.join(self.chain_certs_dir,
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   155
                          "ch5_ta1_cert.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   156
                      "i6": os.path.join(self.chain_certs_dir,
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   157
                          "ch1_ta3_cert.pem"),
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   158
                      "pkg": plist[3]
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   159
                    }
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   160
                self.pkgsign(rurl, sign_args)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   161
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   162
                # This is just a test assertion to verify that the
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   163
                # package was signed as expected.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   164
                self.image_create(rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   165
                self.__seed_ta_dir("ta1")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   166
                self.pkg("set-property signature-policy verify")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   167
                self.pkg("install signed")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   168
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   169
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   170
                return [
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   171
                    fmri.PkgFmri(sfmri)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   172
                    for sfmri in plist
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   173
                ]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   174
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   175
        def __archive_packages(self, arc_name, repo, plist):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   176
                """Private helper function to archive packages needed for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   177
                testing.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   178
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   179
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   180
                arc_path = os.path.join(self.test_root, arc_name)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   181
                assert not os.path.exists(arc_path)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   182
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   183
                arc = pkg.p5p.Archive(arc_path, mode="w")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   184
                for pfmri in plist:
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   185
                        arc.add_repo_package(pfmri, repo)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   186
                arc.close()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   187
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   188
                return arc_path
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   189
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   190
        def setUp(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   191
                pkg5unittest.ManyDepotTestCase.setUp(self, ["test", "test",
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   192
                    "empty", "test2"])
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   193
                self.make_misc_files(self.misc_files)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   194
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   195
                # First repository will contain all packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   196
                self.all_rurl = self.dcs[1].get_repo_url()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   197
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   198
                # Second repository will contain only foo.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   199
                self.foo_rurl = self.dcs[2].get_repo_url()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   200
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   201
                # Third will be empty.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   202
                self.empty_rurl = self.dcs[3].get_repo_url()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   203
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   204
                # Fourth will be for license packages only.
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   205
                self.licensed_rurl = self.dcs[4].get_repo_url()
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   206
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   207
                # Setup base test paths.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   208
                self.path_to_certs = os.path.join(self.ro_data_root,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   209
                    "signing_certs", "produced")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   210
                self.keys_dir = os.path.join(self.path_to_certs, "keys")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   211
                self.cs_dir = os.path.join(self.path_to_certs,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   212
                    "code_signing_certs")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   213
                self.chain_certs_dir = os.path.join(self.path_to_certs,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   214
                    "chain_certs")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   215
                self.raw_trust_anchor_dir = os.path.join(self.path_to_certs,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   216
                    "trust_anchors")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   217
                self.crl_dir = os.path.join(self.path_to_certs, "crl")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   218
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   219
                # Publish packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   220
                plist = self.__publish_packages(self.all_rurl)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   221
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   222
                # Copy foo to second repository.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   223
                self.pkgrecv(self.all_rurl, "-d %s foo" % self.foo_rurl)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   224
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   225
                # Now create a package archive containing all packages, and
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   226
                # then one for each.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   227
                repo = self.dcs[1].get_repo()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   228
                self.all_arc = self.__archive_packages("all_pkgs.p5p", repo,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   229
                    plist)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   230
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   231
                for alist in ([plist[0]], [plist[1], plist[2]], [plist[3]],
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   232
                    [plist[4], plist[5]]):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   233
                        arc_path = self.__archive_packages(
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   234
                            "%s.p5p" % alist[0].pkg_name, repo, alist)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   235
                        setattr(self, "%s_arc" % alist[0].pkg_name, arc_path)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   236
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   237
                self.ta_dir = None
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   238
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   239
                # Copy an archive and set its permissions to 0000 for testing
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   240
                # unprivileged user access attempts.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   241
                self.perm_arc = os.path.join(self.test_root, "noaccess.p5p")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   242
                portable.copyfile(self.foo_arc, self.perm_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   243
                os.chmod(self.perm_arc, 0)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   244
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   245
                # Create an empty archive.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   246
                arc_path = os.path.join(self.test_root, "empty.p5p")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   247
                arc = pkg.p5p.Archive(arc_path, mode="w")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   248
                arc.close()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   249
                self.empty_arc = arc_path
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   250
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   251
                # Store FMRIs for later use.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   252
                self.foo10 = plist[0]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   253
                self.incorp10 = plist[1]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   254
                self.incorp20 = plist[2]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   255
                self.signed10 = plist[3]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   256
                self.quux01 = plist[4]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   257
                self.quux10 = plist[5]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   258
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   259
                # Handle license package specially.
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   260
                self.licensed10 = self.pkgsend_bulk(self.licensed_rurl,
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   261
                    self.licensed_pkg)[0]
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   262
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   263
        def test_00_list(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   264
                """Verify that the list operation works as expected for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   265
                temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   266
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   267
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   268
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   269
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   270
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   271
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   272
                # Verify graceful failure for an empty source alone or in
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   273
                # combination with another temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   274
                self.pkg("list -H -g %s" % self.empty_arc, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   275
                self.pkg("list -H -g %s -g %s" % (self.empty_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   276
                    self.foo_arc), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   277
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   278
                # Verify graceful failure if source doesn't exist.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   279
                self.pkg("list -H -g %s" % (self.foo_arc + ".nosuchpkg"),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   280
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   281
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   282
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   283
                # access temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   284
                self.pkg("list -H -g %s" % self.perm_arc, su_wrap=True, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   285
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   286
                # Verify graceful list failure if -u is used with -g.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   287
                self.pkg("list -H -u -g %s" % self.foo_arc, exit=2)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   288
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   289
                # Verify list output for a single package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   290
                # -a is used here to verify that even though -a is implicit,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   291
                # it is not an error to specify it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   292
                self.pkg("list -aH -g %s" % self.foo_arc)
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   293
                expected = "foo (test) 1.0 ---\n"
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   294
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   295
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   296
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   297
                # Note that -a is implicit when -g is used, so all of
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   298
                # the following tests purposefully omit it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   299
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   300
                # Verify list output for a multiple package temporary source
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   301
                # as an unprivileged user.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   302
                self.pkg("list -fH -g %s" % self.all_arc, su_wrap=True)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   303
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   304
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   305
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   306
                    "incorp (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   307
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   308
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   309
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   310
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   311
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   312
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   313
                # Verify list output for a multiple package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   314
                self.pkg("list -fH -g %s" % self.all_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   315
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   316
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   317
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   318
                # Verify list output for multiple temporary sources using
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   319
                # different combinations of archives and repositories.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   320
                self.pkg("list -fH -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   321
                    self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   322
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   323
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   324
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   325
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   326
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   327
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   328
                self.pkg("list -fH -g %s -g %s -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   329
                    self.incorp_arc, self.quux_arc, self.foo_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   330
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   331
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   332
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   333
                    "incorp (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   334
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   335
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   336
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   337
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   338
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   339
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   340
                self.pkg("list -fH -g %s -g %s -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   341
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   342
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   343
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   344
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   345
                self.pkg("list -fH -g %s -g %s" % (self.all_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   346
                    self.all_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   347
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   348
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   349
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   350
                # Verify list -g without -f.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   351
                self.pkg("list -H -g %s -g %s -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   352
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   353
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   354
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   355
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   356
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   357
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   358
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   359
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   360
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   361
                # Verify package installed from archive shows in default list
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   362
                # output.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   363
                self.pkg("install -g %s [email protected]" % self.incorp_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   364
                self.pkg("list -H")
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   365
                expected = "incorp (test) 1.0 i--\n"
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   366
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   367
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   368
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   369
                # Verify list -g with an incorp installed without -f.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   370
                self.pkg("list -H -g %s -g %s -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   371
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   372
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   373
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   374
                    "incorp (test) 1.0 i--\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   375
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   376
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   377
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   378
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   379
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   380
                # Verify output again as unprivileged user.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   381
                self.pkg("list -H -g %s -g %s -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   382
                    self.quux_arc, self.incorp_arc, self.foo_rurl),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   383
                    su_wrap=True)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   384
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   385
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   386
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   387
                # Verify list -g with an incorp installed with -f.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   388
                self.pkg("list -fH -g %s -g %s -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   389
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   390
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   391
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   392
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   393
                    "incorp (test) 1.0 i--\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   394
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   395
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   396
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   397
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   398
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   399
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   400
                # Verify list -g with an incorp installed and -n.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   401
                self.pkg("list -nH -g %s -g %s -g %s -g %s" % (self.signed_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   402
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   403
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   404
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   405
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   406
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   407
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   408
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   409
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   410
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   411
                # Uninstall all packages and verify there are no known packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   412
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   413
                self.pkg("list -af", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   414
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   415
                # Cleanup.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   416
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   417
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   418
        def test_01_info(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   419
                """Verify that the info operation works as expected for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   420
                temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   421
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   422
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   423
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   424
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   425
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   426
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   427
                # Verify graceful failure for an empty source alone or in
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   428
                # combination with another temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   429
                self.pkg("info -g %s \*" % self.empty_arc, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   430
                self.pkg("info -g %s -g %s foo" % (self.empty_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   431
                    self.foo_arc), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   432
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   433
                # Verify graceful failure if source doesn't exist.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   434
                self.pkg("info -g %s foo" % (self.foo_arc + ".nosuchpkg"),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   435
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   436
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   437
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   438
                # access temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   439
                self.pkg("info -g %s foo" % self.perm_arc, su_wrap=True, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   440
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   441
                # Verify graceful failure if -l is used with -g.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   442
                self.pkg("info -l -g %s foo" % self.foo_arc, exit=2)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   443
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   444
                # Verify output for a single package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   445
                # -r is used here to verify that even though -r is implicit,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   446
                # it is not an error to specify it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   447
                def pd(pfmri):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   448
                        return pfmri.version.get_timestamp().strftime("%c")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   449
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   450
                self.pkg("info -r -g %s foo" % self.foo_arc, su_wrap=True)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   451
                expected = """\
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   452
          Name: foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   453
       Summary: Example package foo.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   454
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   455
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   456
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   457
 Build Release: 5.11
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   458
        Branch: None
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   459
Packaging Date: %(pkg_date)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   460
          Size: 41.00 B
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   461
          FMRI: %(pkg_fmri)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   462
""" % { "pkg_date": pd(self.foo10), "pkg_fmri": self.foo10 }
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   463
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   464
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   465
                # Again, as prvileged user.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   466
                self.pkg("info -r -g %s foo" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   467
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   468
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   469
                # Note that -r is implicit when -g is used, so all of
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   470
                # the following tests purposefully omit it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   471
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   472
                # Verify info output for a multiple package temporary source
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   473
                # as an unprivileged user.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   474
                self.pkg("info -g %s \*" % self.all_arc, su_wrap=True)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   475
                expected = """\
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   476
          Name: foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   477
       Summary: Example package foo.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   478
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   479
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   480
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   481
 Build Release: 5.11
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   482
        Branch: None
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   483
Packaging Date: %(foo10_pkg_date)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   484
          Size: 41.00 B
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   485
          FMRI: %(foo10_pkg_fmri)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   486
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   487
          Name: incorp
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   488
       Summary: Incorporation
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   489
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   490
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   491
       Version: 2.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   492
 Build Release: 5.11
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   493
        Branch: None
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   494
Packaging Date: %(incorp20_pkg_date)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   495
          Size: 0.00 B
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   496
          FMRI: %(incorp20_pkg_fmri)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   497
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   498
          Name: quux
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   499
       Summary: Example package quux.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   500
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   501
     Publisher: test2
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   502
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   503
 Build Release: 5.11
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   504
        Branch: 0.2
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   505
Packaging Date: %(quux10_pkg_date)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   506
          Size: 8.00 B
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   507
          FMRI: %(quux10_pkg_fmri)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   508
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   509
          Name: signed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   510
       Summary: 
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   511
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   512
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   513
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   514
 Build Release: 5.11
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   515
        Branch: None
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   516
Packaging Date: %(signed10_pkg_date)s
2414
ce704b29a50c 18464 revoka-ca-cert needs a rethink
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2339
diff changeset
   517
          Size: 7.79 kB
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   518
          FMRI: %(signed10_pkg_fmri)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   519
""" % { "foo10_pkg_date": pd(self.foo10), "foo10_pkg_fmri": self.foo10,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   520
    "incorp20_pkg_date": pd(self.incorp20), "incorp20_pkg_fmri": self.incorp20,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   521
    "quux10_pkg_date": pd(self.quux10), "quux10_pkg_fmri": self.quux10,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   522
    "signed10_pkg_date": pd(self.signed10), "signed10_pkg_fmri": self.signed10
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   523
    }
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   524
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   525
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   526
                # Verify info output for a multiple package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   527
                self.pkg("info -g %s [email protected] [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   528
                    "[email protected]" % self.all_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   529
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   530
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   531
                # Verify info result for multiple temporary sources using
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   532
                # different combinations of archives and repositories.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   533
                self.pkg("info -g %s -g %s [email protected] [email protected] [email protected]" % (
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   534
                    self.signed_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   535
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   536
                self.pkg("info -g %s -g %s -g %s -g %s [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   537
                    "[email protected] [email protected]" % (
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   538
                    self.signed_arc, self.incorp_arc, self.quux_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   539
                    self.foo_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   540
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   541
                self.pkg("info -g %s -g %s -g %s -g %s [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   542
                    "[email protected] [email protected]" % (
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   543
                    self.signed_arc, self.incorp_arc, self.quux_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   544
                    self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   545
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   546
                self.pkg("info -g %s -g %s [email protected] [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   547
                    "[email protected]" % (self.all_arc, self.all_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   548
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   549
                # Verify package installed from archive shows in default info
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   550
                # output.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   551
                self.pkg("install -g %s [email protected]" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   552
                self.pkg("info")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   553
                expected = """\
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   554
          Name: foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   555
       Summary: Example package foo.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   556
         State: Installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   557
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   558
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   559
 Build Release: 5.11
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   560
        Branch: None
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   561
Packaging Date: %(pkg_date)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   562
          Size: 41.00 B
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   563
          FMRI: %(pkg_fmri)s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   564
""" % { "pkg_date": pd(self.foo10), "pkg_fmri": self.foo10 }
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   565
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   566
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   567
                # Verify that when showing package info from archive that
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   568
                # package shows as installed if it matches the installed one.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   569
                self.pkg("info -g %s foo" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   570
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   571
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   572
                # Uninstall all packages and verify there are no known packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   573
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   574
                self.pkg("info -r \*", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   575
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   576
                # Verify that --license works as expected with -g.
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   577
                self.pkg("info -g %s --license licensed" % self.licensed_rurl)
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   578
                self.assertEqualDiff("tmp/LICENSE\n", self.output)
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   579
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   580
                # Cleanup.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   581
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   582
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   583
        def test_02_contents(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   584
                """Verify that the contents operation works as expected for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   585
                temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   586
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   587
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   588
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   589
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   590
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   591
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   592
                # Verify graceful failure for an empty source alone or in
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   593
                # combination with another temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   594
                self.pkg("contents -g %s \*" % self.empty_arc, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   595
                self.pkg("contents -g %s -g %s foo" % (self.empty_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   596
                    self.foo_arc), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   597
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   598
                # Verify graceful failure if source doesn't exist.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   599
                self.pkg("contents -g %s foo" % (self.foo_arc + ".nosuchpkg"),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   600
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   601
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   602
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   603
                # access temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   604
                self.pkg("contents -g %s foo" % self.perm_arc, su_wrap=True,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   605
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   606
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   607
                # Verify output for a single package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   608
                # -r is used here to verify that even though -r is implicit,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   609
                # it is not an error to specify it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   610
                def pd(pfmri):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   611
                        return pfmri.version.get_timestamp().strftime("%c")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   612
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   613
                self.pkg("contents -mr -g %s foo" % self.foo_arc, su_wrap=True)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   614
                expected = """\
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   615
set name=pkg.fmri value=%s
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   616
set name=pkg.summary value="Example package foo."
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   617
set name=variant.debug.foo value=true value=false
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   618
dir group=bin mode=0755 owner=root path=lib
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   619
dir group=bin mode=0755 owner=root path=usr
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   620
dir group=bin mode=0755 owner=root path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   621
dir group=bin mode=0755 owner=root path=usr/local
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   622
dir group=bin mode=0755 owner=root path=usr/local/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   623
dir group=bin mode=0755 owner=root path=usr/share
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   624
dir group=bin mode=0755 owner=root path=usr/share/doc
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   625
dir group=bin mode=0755 owner=root path=usr/share/doc/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   626
dir group=bin mode=0755 owner=root path=usr/share/man
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   627
dir group=bin mode=0755 owner=root path=usr/share/man/man1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   628
file 0acf1107d31f3bab406f8611b21b8fade78ac874 chash=20db00fbd7c9fb551e54c5b424bf24d48cf81b7a facet.doc.man=true group=bin mode=0444 owner=root path=usr/share/man/man1/foo.1 pkg.csize=29 pkg.size=9
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   629
file b265f2ec87c4a55eb2b6b4c926e7c65f7247a27e chash=5ae38559680146c49d647163ac2f60cdf43e20d8 group=bin mode=0755 owner=root path=usr/bin/foo pkg.csize=27 pkg.size=7
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   630
file 4ea0699d20b99238a877051e50406687fd4fe163 chash=7a23120f5a4f1eae2829a707020d0cdbab10e9a2 group=bin mode=0755 owner=root path=lib/libfoo.so.1 pkg.csize=41 pkg.size=21 variant.debug.foo=true
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   631
file a285ada5f3cae14ea00e97a8d99bd3e357cb0dca chash=97a09a2356d068d8dbe418de90012908c095d3e2 group=bin mode=0755 owner=root path=lib/libfoo.so.1 pkg.csize=35 pkg.size=15 variant.debug.foo=false
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   632
file dc84bd4b606fe43fc892eb245d9602b67f8cba38 chash=e1106f9505253dfe46aa48c353740f9e1896a844 group=bin mode=0444 owner=root path=usr/share/doc/foo/README pkg.csize=30 pkg.size=10
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   633
hardlink path=usr/local/bin/hard-foo target=/usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   634
link path=usr/local/bin/soft-foo target=usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   635
""" % self.foo10
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   636
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   637
                # Again, as prvileged user.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   638
                self.pkg("contents -mr -g %s foo" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   639
                self.assertEqualDiff(sorted(expected.splitlines()),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   640
                    sorted(self.output.splitlines()))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   641
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   642
                # Note that -r is implicit when -g is used, so all of
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   643
                # the following tests purposefully omit it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   644
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   645
                # Verify contents result for multiple temporary sources using
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   646
                # different combinations of archives and repositories.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   647
                self.pkg("contents -g %s -g %s [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   648
                    "[email protected]" % (self.signed_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   649
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   650
                self.pkg("contents -g %s -g %s -g %s -g %s [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   651
                    "[email protected] [email protected]" % (self.signed_arc, self.incorp_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   652
                    self.quux_arc, self.foo_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   653
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   654
                self.pkg("contents -g %s -g %s -g %s -g %s [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   655
                    "[email protected] [email protected]" % (self.signed_arc, self.incorp_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   656
                    self.quux_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   657
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   658
                self.pkg("contents -g %s -g %s [email protected] [email protected] [email protected] "
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   659
                    "[email protected]" % (self.all_arc, self.all_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   660
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   661
                # Verify package installed from archive can be used with
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   662
                # contents.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   663
                self.pkg("install -g %s [email protected]" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   664
                self.pkg("contents foo")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   665
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   666
                # Uninstall all packages and verify there are no known packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   667
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   668
                self.pkg("contents -r \*", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   669
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   670
                # Cleanup.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   671
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   672
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   673
        def test_03_install_update(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   674
                """Verify that install and update work as expected for temporary
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   675
                origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   676
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   677
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   678
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   679
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   680
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   681
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   682
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   683
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   684
                # Verify graceful failure if source doesn't exist.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   685
                self.pkg("install -g %s foo" % (self.foo_arc + ".nosuchpkg"),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   686
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   687
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   688
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   689
                # access temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   690
                self.pkg("install -g %s foo" % self.perm_arc, su_wrap=True,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   691
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   692
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   693
                # Verify attempting to install a package with a missing
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   694
                # dependency fails gracefully.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   695
                self.pkg("install -g %s signed" % self.signed_arc, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   696
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   697
                # Verify a package from a publisher not already configured can
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   698
                # be installed using temporary origins.  Installing a package
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   699
                # in this scenario will result in the publisher being added
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   700
                # but without any origin information.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   701
                self.pkg("install -g %s foo" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   702
                self.pkg("list foo")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   703
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   704
                # Verify that publisher exists now (without origin information)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   705
                # and is enabled and sticky (-n omits disabled publishers).
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   706
                self.pkg("publisher -nH")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   707
                expected = """\
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2286
diff changeset
   708
empty origin online %s/
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   709
test 
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   710
""" % self.empty_rurl
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   711
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   712
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   713
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   714
                # Verify that signed package can now be installed since
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   715
                # dependency was satisfied.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   716
                self.pkg("install -g %s signed" % self.signed_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   717
                self.pkg("list foo signed")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   718
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   719
                # Verify that removing all packages leaves no packages known
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   720
                # even though publisher remains configured.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   721
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   722
                self.pkg("list -af", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   723
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   724
                # Verify publisher can be removed.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   725
                self.pkg("unset-publisher test")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   726
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   727
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   728
                # Create an image using the foo archive.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   729
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   730
                self.image_create(misc.parse_uri(self.foo_arc), prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   731
                self.__seed_ta_dir("ta1")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   732
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   733
                # Verify that signed package can be installed and the archive
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   734
                # configured for the publisher allows dependencies to be
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   735
                # satisfied.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   736
                self.pkg("set-property signature-policy verify")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   737
                self.pkg("install -g %s signed" % self.signed_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   738
                self.pkg("list foo signed")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   739
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   740
                # Verify that removing all packages leaves only foo known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   741
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   742
                self.pkg("list -aH")
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   743
                expected = "foo 1.0 ---\n"
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   744
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   745
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   746
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   747
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   748
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   749
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   750
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   751
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   752
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   753
                # Install an older version of a known package.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   754
                self.pkg("install -g %s [email protected]" % self.all_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   755
                self.pkg("list [email protected] [email protected]")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   756
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   757
                # Verify graceful failure if source doesn't exist.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   758
                self.pkg("update -g %s foo" % (self.foo_arc + ".nosuchpkg"),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   759
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   760
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   761
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   762
                # access temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   763
                self.pkg("update -g %s foo" % self.perm_arc, su_wrap=True,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   764
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   765
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   766
                # Verify that packages can be updated using temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   767
                self.pkg("update -g %s -g %s" % (self.incorp_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   768
                    self.quux_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   769
                self.pkg("list [email protected] [email protected]")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   770
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   771
                # Verify that both test and test2 are configured without
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   772
                # origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   773
                self.pkg("publisher -H")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   774
                expected = """\
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2286
diff changeset
   775
empty origin online %s/
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   776
test 
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   777
test2 
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   778
""" % self.empty_rurl
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   779
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   780
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   781
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   782
        def test_04_change_varcets(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   783
                """Verify that change-facet and change-variant work as expected
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   784
                for temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   785
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   786
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   787
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   788
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   789
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   790
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   791
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   792
                self.pkg("set-property flush-content-cache-on-sucess True")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   793
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   794
                # Install a package from an archive.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   795
                self.pkg("install -g %s foo" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   796
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   797
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   798
                # Verify change-facet can use temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   799
                #
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   800
                fpath = os.path.join(self.img_path(),
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   801
                    "usr/share/man/man1/foo.1")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   802
                assert os.path.exists(fpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   803
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   804
                # Now set facet.doc.man to false and verify faceted item is
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   805
                # gone.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   806
                self.pkg("change-facet facet.doc.man=false")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   807
                assert not os.path.exists(fpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   808
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   809
                # Now attempt to set the facet to true again; this should
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   810
                # fail.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   811
                self.pkg("change-facet facet.doc.man=true", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   812
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   813
                # Verify graceful failure if source doesn't exist.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   814
                self.pkg("change-facet -g %s facet.doc.man=true" %
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   815
                    (self.foo_arc + ".nosuchpkg"), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   816
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   817
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   818
                # access temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   819
                self.pkg("change-facet -g %s facet.doc.man=true" %
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   820
                    self.perm_arc, su_wrap=True, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   821
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   822
                # Verify that if the original archive is provided, the operation
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   823
                # will succeed.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   824
                self.pkg("change-facet -g %s facet.doc.man=True" % self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   825
                assert os.path.exists(fpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   826
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   827
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   828
                # Verify change-variant can use temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   829
                #
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   830
                vpath = os.path.join(self.img_path(),
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   831
                    "lib/libfoo.so.1")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   832
                assert os.path.exists(vpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   833
                self.assertEqual(os.stat(vpath).st_size, 15)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   834
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   835
                # Now attempt to change the debug variant; this should fail.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   836
                self.pkg("change-variant -vv variant.debug.foo=true", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   837
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   838
                # Verify graceful failure if source doesn't exist.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   839
                self.pkg("change-variant -vvg %s variant.debug.foo=true" %
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   840
                    (self.foo_arc + ".nosuchpkg"), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   841
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   842
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   843
                # access temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   844
                self.pkg("change-variant -vvg %s variant.debug.foo=true" %
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   845
                    self.perm_arc, su_wrap=True, exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   846
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   847
                # Verify that if the original archive is provided, the operation
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   848
                # will succeed.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   849
                self.pkg("change-variant -vvg %s variant.debug.foo=true" %
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   850
                    self.foo_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   851
                assert os.path.exists(vpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   852
                self.assertEqual(os.stat(vpath).st_size, 21)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   853
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   854
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   855
if __name__ == "__main__":
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   856
        unittest.main()