doc/client_api_versions.txt
author Shawn Walker <shawn.walker@oracle.com>
Tue, 14 Sep 2010 17:19:10 -0700
changeset 2073 9fcacc9e5eaa
parent 2055 552262a56a9a
child 2089 c8b9d6341530
permissions -rw-r--r--
16998 transport should support publisher-specific write and read caches 9572 FactoredManifest should allow consumers to specify cache location 14613 api should provide access to last_modified time of image 16261 ActionExecutionError stringify references unbound variable 16921 test suite can traceback on unit test failure when attempting to restore pwd 16996 manifest class should support pathname for setting content 16997 FactoredManifest class should not encode knowledge of how manifests are stored 17006 api_errors references undefined exception class
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2073
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     1
Version 44:
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     2
Compatible with clients using version 43.
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     3
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     4
    pkg.client.api.ImageInterface has changed as follows:
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     5
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     6
        * A new property 'last_modified' was added that returns a UTC
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     7
          datetime object representing the time the image's metadata
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     8
          was last changed.
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 2055
diff changeset
     9
2055
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    10
Version 43:
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    11
Incompatible with clients using versions 0-42.
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    12
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    13
    pkg.client.api.ImageInterface has changed as follows:
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    14
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    15
        * A new boot environment will now only be created if required
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    16
          for image-modifying operations (except for plan_update_all
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    17
          which continues to always create one by default).
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    18
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    19
        * The verbose parameter has been removed from the plan_*
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    20
          functions.
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    21
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    22
        * All plan_* functions now accept an additional boolean named
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    23
          'new_be' that indicates whether a new boot environment should
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    24
          be created for the operation.  This overrides the deafult
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    25
          behaviour that only creates one if needed.
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    26
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    27
    pkg.client.api.PlanDescription has changed as follows:
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    28
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    29
        * get_services(), get_varcets(), and get_actions() were added
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    30
          to allow clients more access to plan information.
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    31
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    32
        * A boolean property named new_be was added that indicates
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    33
          whether the planned operation will requires a new boot
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    34
          environment.
552262a56a9a 16950 imageconfig set property silently converts single values to lists breaking consumers
Shawn Walker <shawn.walker@oracle.com>
parents: 2028
diff changeset
    35
2028
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    36
Version 42:
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    37
Incompatible with clients using versions 0-41.
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    38
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    39
    pkg.client.api_errors has changed as follows:
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    40
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    41
        * The MainDictParsingException class was removed
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    42
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    43
        * The BadPublisherAlias and IndexLockedException
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    44
          exceptions were added.
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    45
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    46
    pkg.client.publisher has changed as follows:
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    47
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    48
        * The inter_certs property was renamed to intermediate_certs.
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    49
2026
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 1970
diff changeset
    50
Version 41:
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 1970
diff changeset
    51
Compatible with clients using versions 40-41.
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 1970
diff changeset
    52
2028
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    53
    Allows the client to handle signed packages.  This includes the
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    54
    addition of a large number of optional parameters to the
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    55
    client/publisher class.  It also makes changes to image creation to
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    56
    allow image properties to be set during the process.  New subclasses
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    57
    of ApiException were created to indicate different error conditions
b2c674e6ee28 16744 repository multi-publisher on-disk format should be formalized and implemented
Shawn Walker <shawn.walker@oracle.com>
parents: 2026
diff changeset
    58
    associated with signing failures.
2026
d1b30615bc99 9196 pkg(5) should have support for cryptographic manifest signatures
Brock Pytlik <bpytlik@sun.com>
parents: 1970
diff changeset
    59
1970
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    60
Version 40:
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    61
Incompatible with clients using versions 0-39.
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    62
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    63
    The pkg.client.api ImageInterface has changed as follows:
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    64
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    65
        * The info() method no longer detects and returns multiple
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    66
          matches for patterns and instead will return all matches
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    67
          for a given pattern.
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    68
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    69
        * The ImageInterface.INFO_MULTI_MATCH property has been
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    70
          removed.
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    71
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    72
        * The PackageInfo.PREF_PUBLISHER attribute and data has been
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    73
          removed.
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    74
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    75
        * Illegal patterns will cause info() to raise an exception
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    76
          immediately.
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1937
diff changeset
    77
1937
be8995c7bb8f 10924 Want ability to communicate over unix sockets
johansen <johansen@opensolaris.org>
parents: 1895
diff changeset
    78
Version 39:
be8995c7bb8f 10924 Want ability to communicate over unix sockets
johansen <johansen@opensolaris.org>
parents: 1895
diff changeset
    79
Compatible with clients using versions 36-38.
be8995c7bb8f 10924 Want ability to communicate over unix sockets
johansen <johansen@opensolaris.org>
parents: 1895
diff changeset
    80
be8995c7bb8f 10924 Want ability to communicate over unix sockets
johansen <johansen@opensolaris.org>
parents: 1895
diff changeset
    81
    Introduces the notion of a system repository to the publisher
be8995c7bb8f 10924 Want ability to communicate over unix sockets
johansen <johansen@opensolaris.org>
parents: 1895
diff changeset
    82
    heirarchy.  This specific type of repository is a subclass of
be8995c7bb8f 10924 Want ability to communicate over unix sockets
johansen <johansen@opensolaris.org>
parents: 1895
diff changeset
    83
    RepositoryURI.  A few new api exceptions are added, too.
be8995c7bb8f 10924 Want ability to communicate over unix sockets
johansen <johansen@opensolaris.org>
parents: 1895
diff changeset
    84
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    85
Version 38:
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    86
Compatible with clients using versions 36-37.
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    87
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    88
    The pkg.client.api now supports file-based repository access for all
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    89
    operations.  All related classes have been updated to support URIs
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    90
    that use the 'file' scheme.
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    91
1859
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    92
Version 37:
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    93
Compatible with clients using version 36.
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    94
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    95
    The pkg.client.api ImageInterface has changed as follows:
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    96
        * Whenever an unexpected change in the state or structure
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    97
          of the image is encountered during install, remove, or
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    98
          update operations (such as a missing file, directory,
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
    99
          or inability to remove an item) and it cannot be
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
   100
          recovered from without user intervention, an
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
   101
          ActionExecutionError exception is raised.
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1843
diff changeset
   102
1843
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   103
Version 36:
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   104
Incompatible with clients using versions 0-35.
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   105
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   106
    The interface for pkg.client.api.remote_search has changed as follows:
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   107
        * A new parameter, prune_versions, has been added which, when true,
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   108
          causes remote search to remove versions a user is unlikely to be
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   109
          interested in.
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   110
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   111
        * The return type of remote_search and local_search has changed.  Where
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   112
          the string representation used to be returned, a FMRI object is now
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   113
          returned.
b9333a197e40 6177 filtering search against a particular incorporation is needed
Brock Pytlik <bpytlik@sun.com>
parents: 1835
diff changeset
   114
1835
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   115
Version 35:
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   116
Compatible with clients using version 34.
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   117
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   118
    The ImageInterface class has changed as follows:
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   119
        * A new method named parse_fmri_patterns has been added to
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   120
          help clients parse user input and transform any valid patterns
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   121
          into FMRI objects that can be used for comparison.  See pydoc
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   122
          'pkg.client.api' for details.
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   123
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   124
        * New constants for the parse_fmri_patterns method were added:
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   125
          MATCH_EXACT, MATCH_FMRI, and MATCH_GLOB.
13fdfa2f7993 15029 pkg list can traceback if character only allowed with wildcards used
Shawn Walker <shawn.walker@oracle.com>
parents: 1795
diff changeset
   126
1795
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   127
Version 34:
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   128
Incompatible with clients using versions 0-33.
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   129
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   130
    The pkg.client.publisher.Publisher class has changed as follows:
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   131
        * The deprecated get_ssl_creds() and set_origin() methods
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   132
          were removed.  These functions have been marked as
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   133
          deprecated since the client API was first versioned
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   134
          and should not have been used by any clients.
1b3bed835773 14856 image-create / set-publisher shouldn't require repository configuration to have origins
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   135
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   136
Version 33:
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   137
Compatible with clients using version 32.
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   138
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   139
    The ImageInterface class has changed as follows:
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   140
        * file and directory actions will now have their mode validated
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   141
          if failure occurs during plan execution to determine if bad
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   142
          package metadata was the cause of execution failure.  In
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   143
          addition, the client API will catch failures due to corrupt
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   144
          or invalid package metadata and re-raise them as an
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   145
          InvalidPackageErrors exception.
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   146
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   147
    The pkg.client.api_errors module has changed as follows:
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   148
        * The InvalidPackageErrors exception was added.  See 'pydoc
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   149
          pkg.client.api_errors' for details.
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   150
1736
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   151
Version 32:
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   152
Incompatible with clients using versions 0-31.
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   153
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   154
    The ImageInterface class has changed as follows:
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   155
        * The add_publisher and update_publisher methods now validate
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   156
          the image's publisher configuration against the origins of
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   157
          the publisher.  If any of the origins are found to not match,
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   158
          an UnknownRepositoryPublishers exception will be raised.
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   159
          If one of the new repository origins does not provide
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   160
          publisher configuration information or it is incomplete,
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   161
          a RepoPubConfigUnavailable exception will be raised.
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   162
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   163
    The pkg.client.api module has changed as follows:
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   164
        * A new method named image_create has been added.  See 'pydoc
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   165
          pkg.client.api' for details.
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   166
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1736
diff changeset
   167
    The pkg.client.api_errors module has changed as follows:
1736
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   168
        * UnknownRepositoryPublishers, RepoPubConfigUnavailable, and
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   169
          UnknownErrors expections have been added for use by the
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   170
          pkg.client.api.  API consumers are reminded that they should
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   171
          catch all ApiException class exceptions, although catching
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   172
          specific exception subclasses for case-by-case handling in
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   173
          addition to that is acceptable.
727dda1e7968 11522 pkg should require publisher prefix to match repository information
Shawn Walker <srw@sun.com>
parents: 1710
diff changeset
   174
1710
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   175
Version 31:
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   176
Compatible with clients using version 30.
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   177
    All image-modifying operations now lock the image for exclusive use
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   178
    by the current thread and process.  If the lock cannot be obtained,
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   179
    an ImageLockedError exception will be raised.
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   180
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   181
    The ImageInterface class has changed as follows:
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   182
        * A new property named 'blocking_locks' has been added to allow
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   183
          clients to control image locking behaviour.  See 'pydoc
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   184
          pkg.client.api.ImageInterface' for details.
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   185
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   186
        * The prepare() and execute_plan() methods will now raise an
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   187
          InvalidPlanError if the image state has changed since the
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   188
          plan was originally created.  This is likely the result of
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   189
          another client or process modifying the image.
139720e2e756 1668 image locking needed to prevent race conditions
Shawn Walker <srw@sun.com>
parents: 1685
diff changeset
   190
1685
51f832187af7 3005 some pkg verify errors should be warnings or informational messages
Shawn Walker <srw@sun.com>
parents: 1618
diff changeset
   191
Version 30:
51f832187af7 3005 some pkg verify errors should be warnings or informational messages
Shawn Walker <srw@sun.com>
parents: 1618
diff changeset
   192
Incompatible with clients using versions 0-29:
51f832187af7 3005 some pkg verify errors should be warnings or informational messages
Shawn Walker <srw@sun.com>
parents: 1618
diff changeset
   193
    The ProgressTracker class has changed as follows:
51f832187af7 3005 some pkg verify errors should be warnings or informational messages
Shawn Walker <srw@sun.com>
parents: 1618
diff changeset
   194
        * ver_output_warning() and ver_output_info() were added so that
51f832187af7 3005 some pkg verify errors should be warnings or informational messages
Shawn Walker <srw@sun.com>
parents: 1618
diff changeset
   195
          callers can choose to output warning and info verification
51f832187af7 3005 some pkg verify errors should be warnings or informational messages
Shawn Walker <srw@sun.com>
parents: 1618
diff changeset
   196
          messages separately from errors.
51f832187af7 3005 some pkg verify errors should be warnings or informational messages
Shawn Walker <srw@sun.com>
parents: 1618
diff changeset
   197
1618
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   198
Version 29:
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   199
Incompatible with clients using versions 0-28:
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   200
    The ImageInterface class has changed as follows:
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   201
        * set_plan_license_status() was added.  This is used to indicate
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   202
          whether licenses for the packages being operated on have been
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   203
          accepted or displayed.  Clients must do this if the related
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   204
          license requires acceptance or display.
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   205
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   206
    The LicenseInfo class has changed as follows:
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   207
        * get_text() may now trigger a remote retrieval of the license
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   208
          payload if needed to return the text.
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   209
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   210
        * The related package FMRI and license attributes are now
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   211
          properties: fmri, license, must_accept, and must_display.
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   212
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   213
    The PlanDescription class has changed as follows:
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   214
        * get_changes() is now a generator function.
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   215
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   216
        * get_licenses() was added to allow clients to retrieve the
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   217
          list of licenses related to the plan's operations as well
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   218
          as the current accepted and displayed status of each.
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   219
1603
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1581
diff changeset
   220
Version 28:
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1581
diff changeset
   221
Incompatible with clients using versions 0-27:
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1581
diff changeset
   222
    CatalogRefreshException.message was changed to
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1581
diff changeset
   223
    CatalogRefreshException.errmessage to work around a change
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1581
diff changeset
   224
    introduced in python2.5 and removed in python2.6 (Exception.message,
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1581
diff changeset
   225
    if used, triggers a deprecation warning).
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1581
diff changeset
   226
1581
37d9bf54ee23 13058 search makes resolve go slow
Brock Pytlik <bpytlik@sun.com>
parents: 1538
diff changeset
   227
Version 27:
1618
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   228
Compatible with clients using versions 25-26:
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   229
    The get_manifest function has been added to the api to allow clients
04f7471c9e72 5943 add 'must-accept' attribute to license actions
Shawn Walker <srw@sun.com>
parents: 1603
diff changeset
   230
    to retrieve the manifest directly.
1581
37d9bf54ee23 13058 search makes resolve go slow
Brock Pytlik <bpytlik@sun.com>
parents: 1538
diff changeset
   231
1538
78ac66abc186 12130 install/update operations should always refresh publisher metadata (when allowed)
Shawn Walker <srw@sun.com>
parents: 1537
diff changeset
   232
Version 26:
78ac66abc186 12130 install/update operations should always refresh publisher metadata (when allowed)
Shawn Walker <srw@sun.com>
parents: 1537
diff changeset
   233
Compatible with clients using version 25.
78ac66abc186 12130 install/update operations should always refresh publisher metadata (when allowed)
Shawn Walker <srw@sun.com>
parents: 1537
diff changeset
   234
    The client API has changed such that an immediate refresh is always
78ac66abc186 12130 install/update operations should always refresh publisher metadata (when allowed)
Shawn Walker <srw@sun.com>
parents: 1537
diff changeset
   235
    performed when the 'refresh_catalogs' parameter is True for install,
78ac66abc186 12130 install/update operations should always refresh publisher metadata (when allowed)
Shawn Walker <srw@sun.com>
parents: 1537
diff changeset
   236
    update, and change variant operations.
78ac66abc186 12130 install/update operations should always refresh publisher metadata (when allowed)
Shawn Walker <srw@sun.com>
parents: 1537
diff changeset
   237
1537
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   238
Version 25:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   239
Incompatible with clients using versions 0-24:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   240
Changes:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   241
    The PackageInfo class has changed as follows:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   242
        * The NOT_INSTALLED constant has been removed as checking
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   243
          for the presence of INSTALLED should be sufficient.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   244
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   245
        * A new constant named 'KNOWN' has been added.  It indicates
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   246
          that the package is currently available from a publisher's
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   247
           repository.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   248
     
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   249
         * A new constant named 'UPGRADABLE' has been added. It
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   250
           indicates that a new version of the package is available.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   251
 
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   252
     The following new api functions were added to ImageInterface (see
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   253
     'pydoc pkg.client.api.ImageInterface' for more information):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   254
         * get_pkg_categories
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   255
 
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   256
         * get_pkg_list
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   257
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   258
Version 24:
1537
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   259
Incompatible with clients using versions 0-23.
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   260
    The pkg.client.api module has changed as follows:
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   261
        * plan_install no longer takes a filters argument
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   262
	* plan_change_variant changed to plan_change_varcets.
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   263
	  w/ argument list changes.
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   264
	* Added get_pub_search_order
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   265
	* Added set_pub_search_after
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   266
	* Added set_pub_search_before
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1461
diff changeset
   267
1461
fdf40c8c6765 820 Need a way to obsolete packages
Danek Duvall <danek.duvall@sun.com>
parents: 1389
diff changeset
   268
Version 23:
1537
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   269
Incompatible with clients using versions 0-22.
1461
fdf40c8c6765 820 Need a way to obsolete packages
Danek Duvall <danek.duvall@sun.com>
parents: 1389
diff changeset
   270
    The pkg.client.api module has changed as follows:
fdf40c8c6765 820 Need a way to obsolete packages
Danek Duvall <danek.duvall@sun.com>
parents: 1389
diff changeset
   271
        * PackageInfo objects no longer take a "state" parameter, but a
fdf40c8c6765 820 Need a way to obsolete packages
Danek Duvall <danek.duvall@sun.com>
parents: 1389
diff changeset
   272
	  "states" parameter, and the corresponding "state" member is now
fdf40c8c6765 820 Need a way to obsolete packages
Danek Duvall <danek.duvall@sun.com>
parents: 1389
diff changeset
   273
	  "states", and is a list of states, rather than a single value.
fdf40c8c6765 820 Need a way to obsolete packages
Danek Duvall <danek.duvall@sun.com>
parents: 1389
diff changeset
   274
1389
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 1352
diff changeset
   275
Version 22:
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 1352
diff changeset
   276
Compatible with clients using version 21.
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 1352
diff changeset
   277
Changes:
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 1352
diff changeset
   278
	Adds the description field to the PackageInfo class.
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 1352
diff changeset
   279
1352
5c92c9d342ef 11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents: 1335
diff changeset
   280
Version 21:
1537
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents: 1505
diff changeset
   281
Incompatible with clients using versions 0-20.
1352
5c92c9d342ef 11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents: 1335
diff changeset
   282
Changes:
5c92c9d342ef 11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents: 1335
diff changeset
   283
    The pkg.client.api_errors module has changed as follows:
5c92c9d342ef 11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents: 1335
diff changeset
   284
        * All CatalogCacheError class exceptions were removed as the
5c92c9d342ef 11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents: 1335
diff changeset
   285
          catalog cache no longer exists.
5c92c9d342ef 11065 client v1 catalog support for v0 catalogs
Shawn Walker <srw@sun.com>
parents: 1335
diff changeset
   286
1335
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   287
Version 20:
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   288
Compatible with clients using version 19.
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   289
Changes:
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   290
   The following exceptions were added to pkg.client.api_errors:
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   291
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   292
   class ReadOnlyFileSystemException(PermissionsException):
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   293
   """Used to indicate that the operation was attempted on a
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   294
   read-only filesystem"""
3dde2385d05c 516 Clean up traceback for installs to read-only filesystems
John Sonnenschein <John.Sonnenschein@Sun.COM>
parents: 1279
diff changeset
   295
1279
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   296
Version 19:
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   297
Incompatible with clients using versions 0-18.
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   298
Changes:
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   299
    The ImageInterface class changed as follows:
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   300
        * plan_update_all no longer returns a third value, the exception
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   301
          caught.  This value was never set.
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   302
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   303
        * plan_install no longer returns a second value, the exception
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   304
          caught.  This value was never set.
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   305
1256
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   306
Version 18:
1279
12624144230f 10419 client api revisions doc update required
Shawn Walker <srw@sun.com>
parents: 1256
diff changeset
   307
Compatible with clients using versions 15-17.
1256
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   308
Changes:
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   309
   The following exceptions were added to pkg.client.api_errors:
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   310
    
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   311
    class SetDisabledPublisherPreferred(PublisherError):
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   312
        """Used to indicate an attempt to set a disabled publisher as
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   313
        the preferred publisher was made."""
921590dc232b 8863 error message unclear when trying to disable preferred publisher
Shawn Walker <srw@sun.com>
parents: 1255
diff changeset
   314
1255
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   315
Version 17:
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   316
Compatible with clients using versions 15-16.
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   317
Changes:
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   318
    The following properties were added to pkg.client.api
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   319
    ImageInterface class:
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   320
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   321
        root
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   322
            The absolute pathname of the filesystem root of the image.
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   323
            This property is read-only.
13914487fd06 8854 access to ImageInterface img root desired
Shawn Walker <srw@sun.com>
parents: 1254
diff changeset
   324
1254
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   325
Version 16:
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   326
Compatible with clients using version 15.
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   327
Changes:
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   328
   The following exceptions were added to pkg.client.api_errors:
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   329
    
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   330
    class NoSuchKey(CertificateError):
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   331
        """Used to indicate that a key could not be found."""
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   332
1141
a74d6815a7fc 4178 unfound_fmris is a poor name
Rich Burridge <rich.burridge@sun.com>
parents: 1087
diff changeset
   333
Version 15:
a74d6815a7fc 4178 unfound_fmris is a poor name
Rich Burridge <rich.burridge@sun.com>
parents: 1087
diff changeset
   334
Incompatible with clients using versions 1-14.
a74d6815a7fc 4178 unfound_fmris is a poor name
Rich Burridge <rich.burridge@sun.com>
parents: 1087
diff changeset
   335
Changes:
1254
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   336
    The unfound_fmris variable in the
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   337
    pkg.client.api_errors.PlanCreationException class is now called 
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   338
    unmatched_fmris.
1141
a74d6815a7fc 4178 unfound_fmris is a poor name
Rich Burridge <rich.burridge@sun.com>
parents: 1087
diff changeset
   339
1087
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   340
Version 14:
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   341
Compatible with clients using versions 12-14.
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   342
Changes:
1254
28871b08d49c 8463 missing key file error message says certificate is missing
Shawn Walker <srw@sun.com>
parents: 1141
diff changeset
   343
    The following methods were added to pkg.client.publisher.Publisher:
1087
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   344
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   345
        def create_meta_root(self):
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   346
                """Create the publisher's meta_root."""
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   347
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   348
        def remove_meta_root(self):
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   349
                """Removes the publisher's meta_root."""
293c0aa5f32e 8214 load_catalogs should only load catalog data when needed
Shawn Walker <srw@sun.com>
parents: 996
diff changeset
   350
996
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   351
Version 13:
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   352
Compatible with clients using version 12.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   353
Changes:
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   354
    By default, publisher repositories will be checked for new metadata no more
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   355
    than once every four hours unless otherwise requested.  Each time a
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   356
    publisher's selected repository is checked for updates, the client will
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   357
    store a timestamp (in UTC) marking when the refresh was performed.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   358
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   359
    ImageInterface.refresh() has changed as follows:
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   360
        * Changed 'full_refresh' to an optional keyword argument that defaults
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   361
          to False.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   362
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   363
        * Added optional boolean keyword 'immediate' that allows the client to
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   364
          request that a publisher be checked for updates even if a check is
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   365
          not yet needed.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   366
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   367
        * Changed to properly use progress tracker for refreshing of publisher
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   368
          metadata.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   369
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   370
        * Now only refreshes publisher metadata based on the update interval
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   371
          specified by the refresh_seconds property on the publisher's
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   372
          selected_repository.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   373
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   374
    ImageInterface.update_publisher() has changed as follows:
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   375
        * When updating a publisher with 'refresh_allowed' set to False, its
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   376
          catalog will no longer be removed.  Instead, it is marked as needing
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   377
          refresh, and the next time the client can do so, it will.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   378
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   379
    pkg.client.publisher.Publisher has changed as follows:
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   380
        * New property 'last_refreshed':
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   381
                A datetime object representing the time (in UTC) the
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   382
                publisher's selected repository was last refreshed for new
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   383
                metadata (such as catalog updates).  'None' if the publisher
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   384
                hasn't been refreshed yet or the time is not available.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   385
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   386
          The above property will be automatically set by the api as needed
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   387
          although api consumers are free to retrieve its value.  Manually
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   388
          setting this value is not recommended.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   389
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   390
        * New property 'meta_root':
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   391
                The absolute pathname of the directory where the publisher's
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   392
                metadata should be written to and read from.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   393
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   394
          The above property will be automatically set by the api as needed
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   395
          although api consumers are free to retrieve its value.  Manually
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   396
          setting this value is not recommended.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   397
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   398
        * New property 'needs_refresh':
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   399
                A boolean value indicating whether the publisher's metadata for
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   400
                the currently selected repository needs to be refreshed.
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   401
941
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 926
diff changeset
   402
Version 12:
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 926
diff changeset
   403
Incompatible with clients using versions 1-12
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 926
diff changeset
   404
Changes:
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 926
diff changeset
   405
    This versions adds local_search and remote_search to the api and removes
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 926
diff changeset
   406
    those functions from pkg.client.image.
e7bff46da54e 6175 search needs to be moved to version 1
Brock Pytlik <bpytlik@sun.com>
parents: 926
diff changeset
   407
926
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   408
Version 11:
996
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   409
Incompatible with clients using versions 1-10
926
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   410
Changes:
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   411
   This version changes all parameter names and property names from 'authority'
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   412
   to 'publisher'.  For example, parameters named 'auths' were changed to
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   413
   'pubs'; parameters named 'authent' were changed to 'pubent' and so forth.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   414
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   415
   In addition, the following new api functions were added to ImageInterface:
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   416
        def add_publisher(self, pub, refresh_allowed=True):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   417
                """Add the provided publisher object to the image
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   418
                configuration."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   419
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   420
        def get_preferred_publisher(self):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   421
                """Returns the preferred publisher object for the image."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   422
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   423
        def get_publisher(self, prefix=None, alias=None, duplicate=False):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   424
                """Retrieves a publisher object matching the provided prefix
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   425
                (name) or alias.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   426
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   427
                'duplicate' is an optional boolean value indicating whether
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   428
                a copy of the publisher object should be returned instead
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   429
                of the original.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   430
                """
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   431
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   432
        def get_publishers(self, duplicate=False):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   433
                """Returns a list of the publisher objects for the current
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   434
                image.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   435
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   436
                'duplicate' is an optional boolean value indicating whether
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   437
                copies of the publisher objects should be returned instead
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   438
                of the originals.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   439
                """
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   440
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   441
        def get_publisher_last_update_time(self, prefix=None, alias=None):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   442
                """Returns a datetime object representing the last time the
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   443
                catalog for a publisher was modified or None."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   444
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   445
        def has_publisher(self, prefix=None, alias=None):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   446
                """Retrieves a publisher object matching the provided prefix
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   447
                (name) or alias."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   448
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   449
        def remove_publisher(self, prefix=None, alias=None):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   450
                """Removes a publisher object matching the provided prefix
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   451
                (name) or alias."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   452
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   453
        def set_preferred_publisher(self, prefix=None, alias=None):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   454
                """Sets the preferred publisher for the image."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   455
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   456
        def update_publisher(self, pub, refresh_allowed=True):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   457
                """Replaces an existing publisher object with the provided one
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   458
                using the _source_object_id identifier set during copy."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   459
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   460
        def update_publisher(self, pub, refresh_allowed=True):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   461
                """Replaces an existing publisher object with the provided one
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   462
                using the _source_object_id identifier set during copy.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   463
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   464
                'refresh_allowed' is an optional boolean value indicating
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   465
                whether a refresh of publisher metadata (such as its catalog)
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   466
                should be performed if transport information is changed for a
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   467
                repository, mirror, or origin.  If False, no attempt will be
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   468
                made to retrieve publisher metadata."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   469
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   470
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   471
        def log_operation_end(self, error=None, result=None):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   472
                """Marks the end of an operation to be recorded in image
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   473
                history.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   474
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   475
                'result' should be a pkg.client.history constant value
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   476
                representing the outcome of an operation.  If not provided,
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   477
                and 'error' is provided, the final result of the operation will
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   478
                be based on the class of 'error' and 'error' will be recorded
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   479
                for the current operation.  If 'result' and 'error' is not
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   480
                provided, success is assumed."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   481
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   482
        def log_operation_error(self, error):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   483
                """Adds an error to the list of errors to be recorded in image
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   484
                history for the current opreation."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   485
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   486
        def log_operation_start(self, name):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   487
                """Marks the start of an operation to be recorded in image
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   488
                history."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   489
 
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   490
        def parse_p5i(self, fileobj=None, location=None):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   491
                """Reads the pkg(5) publisher json formatted data at 'location'
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   492
                or from the provided file-like object 'fileobj' and returns a
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   493
                list of tuples of the format (publisher object, pkg_names).
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   494
                pkg_names is a list of strings representing package names or
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   495
                FMRIs.  If any pkg_names not specific to a publisher were
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   496
                provided, the last tuple returned will be of the format (None,
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   497
                pkg_names).
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   498
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   499
                'fileobj' is an optional file-like object that must support a
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   500
                'read' method for retrieving data.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   501
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   502
                'location' is an optional string value that should either start
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   503
                with a leading slash and be pathname of a file or a URI string.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   504
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   505
                'fileobj' or 'location' must be provided."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   506
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   507
        def write_p5i(self, fileobj, pkg_names=None, pubs=None):
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   508
                """Writes the publisher, repository, and provided package names
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   509
                to the provided file-like object 'fileobj' in json p5i format.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   510
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   511
                'fileobj' is only required to have a 'write' method that accepts
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   512
                data to be written as a parameter.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   513
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   514
                'pkg_names' is a dict of lists, tuples, or sets indexed by
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   515
                publisher prefix that contain package names, FMRI strings, or
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   516
                package info objects.  A prefix of "" can be used for packages
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   517
                that are not specific to a publisher.
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   518
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   519
                'pubs' is an optional list of publisher prefixes or Publisher
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   520
                objects.  If not provided, the information for all publishers
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   521
                (excluding those disabled) will be output."""
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   522
917
eed22f430a9f 6902 api.info needs a "fast" flag or a way to pass a set of the information required
Brock Pytlik <bpytlik@sun.com>
parents: 884
diff changeset
   523
Version 10:
996
31d152a5212b 7582 pkg set-publisher --no-refresh will delete catalogs
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 941
diff changeset
   524
Incompatible with clients using versions 1-9
917
eed22f430a9f 6902 api.info needs a "fast" flag or a way to pass a set of the information required
Brock Pytlik <bpytlik@sun.com>
parents: 884
diff changeset
   525
Changes:
eed22f430a9f 6902 api.info needs a "fast" flag or a way to pass a set of the information required
Brock Pytlik <bpytlik@sun.com>
parents: 884
diff changeset
   526
    This version changes the interface to info. It removes the action info
920
5cb8100e9cea 6902 api.info needs a "fast" flag or a way to pass a set of the information required (followup)
Brock Pytlik <bpytlik@sun.com>
parents: 917
diff changeset
   527
    and licenses flag and replaces them with a set of options to allow
5cb8100e9cea 6902 api.info needs a "fast" flag or a way to pass a set of the information required (followup)
Brock Pytlik <bpytlik@sun.com>
parents: 917
diff changeset
   528
    the caller control over which information is retrieved.
917
eed22f430a9f 6902 api.info needs a "fast" flag or a way to pass a set of the information required
Brock Pytlik <bpytlik@sun.com>
parents: 884
diff changeset
   529
884
d780afc023ff 3718 plan_update_all needs to have an optional argument for the new BE name
Brock Pytlik <bpytlik@sun.com>
parents: 835
diff changeset
   530
Version 9:
d780afc023ff 3718 plan_update_all needs to have an optional argument for the new BE name
Brock Pytlik <bpytlik@sun.com>
parents: 835
diff changeset
   531
Compatible with clients using versions 1-8
d780afc023ff 3718 plan_update_all needs to have an optional argument for the new BE name
Brock Pytlik <bpytlik@sun.com>
parents: 835
diff changeset
   532
Changes:
917
eed22f430a9f 6902 api.info needs a "fast" flag or a way to pass a set of the information required
Brock Pytlik <bpytlik@sun.com>
parents: 884
diff changeset
   533
    This version adds an optional argument to plan_update_all to allow the
884
d780afc023ff 3718 plan_update_all needs to have an optional argument for the new BE name
Brock Pytlik <bpytlik@sun.com>
parents: 835
diff changeset
   534
    specification of a name for the clone of the BE which is made. It also
d780afc023ff 3718 plan_update_all needs to have an optional argument for the new BE name
Brock Pytlik <bpytlik@sun.com>
parents: 835
diff changeset
   535
    exposes check_be_name as part of the api.
d780afc023ff 3718 plan_update_all needs to have an optional argument for the new BE name
Brock Pytlik <bpytlik@sun.com>
parents: 835
diff changeset
   536
835
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   537
Version 8:
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   538
Compatible with clients using versions 1-7
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   539
Changes:
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   540
    This version introduces InvalidDepotResponseException.  The
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   541
    exception is thrown when operations that refresh the catalog
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   542
    discover that the server is not a pkg depot.  Clients of the api
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   543
    should catch this exception and respond appropriately.
34ec4401dc48 686 Client needs a way to tell that a response is actually from an IPS server
johansen <johansen@sun.com>
parents: 696
diff changeset
   544
696
6bbfd2dece6f 4371 user-agent string needs to be different for different client front-ends
Danek Duvall <danek.duvall@sun.com>
parents: 688
diff changeset
   545
Version 7:
884
d780afc023ff 3718 plan_update_all needs to have an optional argument for the new BE name
Brock Pytlik <bpytlik@sun.com>
parents: 835
diff changeset
   546
Compatible with clients using versions 1-6
696
6bbfd2dece6f 4371 user-agent string needs to be different for different client front-ends
Danek Duvall <danek.duvall@sun.com>
parents: 688
diff changeset
   547
Changes:
6bbfd2dece6f 4371 user-agent string needs to be different for different client front-ends
Danek Duvall <danek.duvall@sun.com>
parents: 688
diff changeset
   548
    Ignore the pkg_client_name parameter passed to api.ImageInterface() if
6bbfd2dece6f 4371 user-agent string needs to be different for different client front-ends
Danek Duvall <danek.duvall@sun.com>
parents: 688
diff changeset
   549
    pkg.client.global_settings.client_name isn't None.  This latter object
6bbfd2dece6f 4371 user-agent string needs to be different for different client front-ends
Danek Duvall <danek.duvall@sun.com>
parents: 688
diff changeset
   550
    is now the preferred way to set the client name, and the
6bbfd2dece6f 4371 user-agent string needs to be different for different client front-ends
Danek Duvall <danek.duvall@sun.com>
parents: 688
diff changeset
   551
    pkg_client_name parameter may be ignored or removed in the future.
6bbfd2dece6f 4371 user-agent string needs to be different for different client front-ends
Danek Duvall <danek.duvall@sun.com>
parents: 688
diff changeset
   552
688
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 685
diff changeset
   553
Version 6:
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 685
diff changeset
   554
Compatible with clients using versions 1-5
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 685
diff changeset
   555
Changes:
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 685
diff changeset
   556
Adds a new field to PackageInfo, category_info_list, which is a list of 
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 685
diff changeset
   557
     PackageCategory objects. These objects contain the scheme and category
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 685
diff changeset
   558
     information for packages.
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 685
diff changeset
   559
685
6f53483db920 1469 image-update by unprivileged user should give better error message
Brock Pytlik <bpytlik@sun.com>
parents: 625
diff changeset
   560
Version 5:
6f53483db920 1469 image-update by unprivileged user should give better error message
Brock Pytlik <bpytlik@sun.com>
parents: 625
diff changeset
   561
Compatible with clients using versions 1-4 as long as they have a generic
6f53483db920 1469 image-update by unprivileged user should give better error message
Brock Pytlik <bpytlik@sun.com>
parents: 625
diff changeset
   562
APIException. This is the case for PackageManager and UpdateManaget.
6f53483db920 1469 image-update by unprivileged user should give better error message
Brock Pytlik <bpytlik@sun.com>
parents: 625
diff changeset
   563
Changes:
6f53483db920 1469 image-update by unprivileged user should give better error message
Brock Pytlik <bpytlik@sun.com>
parents: 625
diff changeset
   564
plan_install and plan_update_all can now raise PermissionsException.
6f53483db920 1469 image-update by unprivileged user should give better error message
Brock Pytlik <bpytlik@sun.com>
parents: 625
diff changeset
   565
625
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   566
Version 4:
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   567
Compatible with clients using versions 1, 2, and 3
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   568
Changes:
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   569
Modifies where certain progress tracking calls were made, calling 
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   570
    evaluate_start much sooner.
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   571
Adds refresh tracking to progress.py. This allows for active feedback when
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   572
    the catalogs of authorities are being refreshed.
e46b345645d6 3799 need to start progress tracker going early on
Brock Pytlik <bpytlik@sun.com>
parents: 615
diff changeset
   573
615
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   574
Version 3:
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   575
Compatible with clients using Versions 1 and 2
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   576
Changes:
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   577
Adds an optional argument to info which determines whether detailed information
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   578
    about actions will be returned
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   579
Adds the following new fields to PackageInfo objects: links, hardlinks,
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   580
    files, dirs, dependencies
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   581
598
c53f6107fdb6 2863 pkg install should have a way to disable indexing
Brock Pytlik <bpytlik@sun.com>
parents: 594
diff changeset
   582
Version 2:
c53f6107fdb6 2863 pkg install should have a way to disable indexing
Brock Pytlik <bpytlik@sun.com>
parents: 594
diff changeset
   583
Compatible with clients using Version 1
c53f6107fdb6 2863 pkg install should have a way to disable indexing
Brock Pytlik <bpytlik@sun.com>
parents: 594
diff changeset
   584
Changes:
c53f6107fdb6 2863 pkg install should have a way to disable indexing
Brock Pytlik <bpytlik@sun.com>
parents: 594
diff changeset
   585
Adds the optional argument update_index to plan_install, plan_uninstall, and 
615
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   586
    plan_update_all. When the argument is false, no automatic update to the
aeeeb9f31173 4114 Api.Info needs to provide more info
Brock Pytlik <bpytlik@sun.com>
parents: 598
diff changeset
   587
    index occurs. By default, the argument is true.
598
c53f6107fdb6 2863 pkg install should have a way to disable indexing
Brock Pytlik <bpytlik@sun.com>
parents: 594
diff changeset
   588
594
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   589
Version 1:
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   590
Incompatible with clients using Version 0
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   591
Changes:
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   592
plan_install now returns a tuple of whether there is anything to do and 
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   593
    a catalog refresh exception, if one was caught. In this, it mirrors the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   594
    first and third return values from plan_update_all.
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   595
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   596
Version 0:
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   597
        def __init__(self, img_path, version_id, progesstracker,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   598
            cancel_state_callable, pkg_client_name):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   599
                """Constructs an ImageInterface. img_path should point to an
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   600
                existing image. version_id indicates the version of the api
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   601
                the client is expecting to use. progesstracker is the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   602
                progresstracker the client wants the api to use for UI
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   603
                callbacks. cancel_state_callable is a function which the client
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   604
                wishes to have called each time whether the operation can be
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   605
                canceled changes. It can raise VersionException and
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   606
                ImageNotFoundException."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   607
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   608
        def plan_install(self, pkg_list, filters, refresh_catalogs=True,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   609
            noexecute=False, verbose=False):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   610
                """Contructs a plan to install the packages provided in
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   611
                pkg_list. pkg_list is a list of packages to install. filters
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   612
                is a list of filters to apply to the actions of the installed
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   613
                packages. refresh_catalogs controls whether the catalogs will
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   614
                automatically be refreshed. noexecute determines whether the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   615
                history will be recorded after planning is finished. verbose
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   616
                controls whether verbose debugging output will be printed to the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   617
                terminal. Its existence is temporary. If there are things to do
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   618
                to complete the install, it returns True, otherwise it returns
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   619
                False. It can raise InvalidCertException, PlanCreationException,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   620
                NetworkUnavailableException, and InventoryException. The
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   621
                noexecute argument is included for compatibility with
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   622
                operational history. The hope is it can be removed in the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   623
                future."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   624
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   625
        def plan_uninstall(self, pkg_list, recursive_removal, noexecute=False,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   626
            verbose=False):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   627
                """Contructs a plan to uninstall the packages provided in
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   628
                pkg_list. pkg_list is a list of packages to install.
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   629
                recursive_removal controls whether recursive removal is
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   630
                allowed. noexecute determines whether the history will be
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   631
                recorded after planning is finished. verbose controls whether
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   632
                verbose debugging output will be printed to the terminal. Its
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   633
                existence is temporary. If there are things to do to complete
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   634
                the uninstall, it returns True, otherwise it returns False. It
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   635
                can raise NonLeafPackageException and PlanCreationException."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   636
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   637
        def plan_update_all(self, actual_cmd, refresh_catalogs=True,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   638
            noexecute=False, force=False, pkgs_must_be_up_to_date=None,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   639
            verbose=False):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   640
                """Creates a plan to update all packages on the system to the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   641
                latest known versions. actual_cmd is the command used to start
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   642
                the client. It is used to determine the image to check whether
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   643
                SUNWipkg is up to date. refresh_catalogs controls whether the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   644
                catalogs will automatically be refreshed. noexecute determines
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   645
                whether the history will be recorded after planning is finished.
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   646
                force controls whether update should proceed even if ipkg is not
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   647
                up to date. verbose controls whether verbose debugging output
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   648
                will be printed to the terminal. Its existence is temporary. It
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   649
                returns a tuple of three things. The first is a boolean which
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   650
                tells the client whether there is anything to do. The second
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   651
                tells whether the image is an opensolaris image. The third is
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   652
                either None, or an exception which indicates partial success.
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   653
                This is currently used to indicate a failure in refreshing
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   654
                catalogs. It can raise CatalogRefreshException,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   655
                IpkgOutOfDateException, NetworkUnavailableException, and
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   656
                PlanCreationException."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   657
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   658
        def describe(self):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   659
                """Returns None if no plan is ready yet, otherwise returns
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   660
                a PlanDescription"""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   661
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   662
        def prepare(self):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   663
                """Takes care of things which must be done before the plan
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   664
                can be executed. This includes downloading the packages to
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   665
                disk and preparing the indexes to be updated during
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   666
                execution. It can raise ProblematicPermissionsIndexException,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   667
                and PlanMissingException. Should only be called once a
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   668
                plan_X method has been called."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   669
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   670
        def execute_plan(self, be_name=None):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   671
                """Executes the plan. This is uncancelable one it begins. It
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   672
                can raise  CorruptedIndexException,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   673
                ProblematicPermissionsIndexException, ImageplanStateException,
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   674
                ImageUpdateOnLiveImageException, and PlanMissingException.
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   675
                Should only be called after the prepare method has been
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   676
                called."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   677
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   678
        def refresh(self, full_refresh, auths=None):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   679
                """Refreshes the catalogs. full_refresh controls whether to do
926
6ee411c9026a 5871 publisher apis desired
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 920
diff changeset
   680
                a full retrieval of the catalog from the publisher or only
594
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   681
                update the existing catalog. auths is a list of authorities to
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   682
                refresh. Passing an empty list or using the default value means
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   683
                all known authorities will be refreshed. While it currently
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   684
                returns an image object, this is an expedient for allowing
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   685
                existing code to work while the rest of the API is put into
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   686
                place."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   687
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   688
        def info(self, fmri_strings, local, get_licenses):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   689
                """Gathers information about fmris. fmri_strings is a list
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   690
                of fmri_names for which information is desired. local
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   691
                determines whether to retrieve the information locally.
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   692
                get_licenses determines whether to retrieve the text of
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   693
                the licenses. It returns a dictionary of lists. The keys
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   694
                for the dictionary are the constants specified in the class
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   695
                definition. The values are lists of PackageInfo objects or
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   696
                strings."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   697
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   698
        def can_be_canceled(self):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   699
                """Returns true if the API is in a cancelable state."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   700
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   701
        def reset(self):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   702
                """Resets the API back the the initial state. Note:
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   703
                this does not necessarily return the disk to its initial state
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   704
                since the indexes or download cache may have been changed by
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   705
                the prepare method."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   706
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   707
        def cancel(self):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   708
                """Used for asynchronous cancelation. It returns the API
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   709
                to the state it was in prior to the current method being
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   710
                invoked.  Canceling during a plan phase returns the API to
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   711
                its initial state. Canceling during prepare puts the API
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   712
                into the state it was in just after planning had completed.
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   713
                Plan execution cannot be canceled. A call to this method blocks
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   714
                until the canelation has happened. Note: this does not
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   715
                necessarily return the disk to its initial state since the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   716
                indexes or download cache may have been changed by the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   717
                prepare method."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   718
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   719
class PlanDescription(object):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   720
        """A class which describes the changes the plan will make. It
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   721
        provides a list of tuples of PackageInfo's. The first item in the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   722
        tuple is the package that is being changed. The second item in the
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   723
        tuple is the package that will be in the image after the change."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   724
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   725
        def get_changes(self):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   726
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   727
class LicenseInfo(object):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   728
        """A class representing the license information a package
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   729
        provides."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   730
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   731
        def get_text(self):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   732
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   733
class PackageInfo(object):
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   734
        """A class capturing the information about packages that a client
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   735
        could need. The fmri is guaranteed to be set. All other values may
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   736
        be None, depending on how the PackageInfo instance was created."""
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   737
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   738
        # Possible package installation states
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   739
        INSTALLED = 1
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   740
        NOT_INSTALLED = 2
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   741
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   742
        self.pkg_stem
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   743
        self.summary
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   744
        self.state
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   745
        self.authority
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   746
        self.preferred_authority
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   747
        self.version
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   748
        self.build_release
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   749
        self.branch
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   750
        self.packaging_date
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   751
        self.size
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   752
        self.fmri
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   753
        self.licenses
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   754
b072bc027c54 3770 pkg install when authority unavailable traces back
Brock Pytlik <bpytlik@sun.com>
parents:
diff changeset
   755
        def __str__(self):