Version 12: Incompatible with clients using versions 0-11. pkg.server.api changed as follows: * New constants 'PKG_STATE_RENAMED' and 'PKG_STATE_OBSOLETE' were added to assist in determining package state information returned from functions to the CatalogInterface class. * The fmris() function of CatalogInterface now has an 'ordered' parameter to control whether FMRIs are returned in ascending name, descending version order. * A new function named 'gen_allowed_packages' was added to CatalogInterface to determine a list of packages allowed based on the FMRI of a package that incorporates other packages. * A new function named 'gen_packages' was added to CatalogInterface as a replacement for the removed functions get_matching_version_fmris() and get_matching_pattern_fmris(). It provides superior filtering capabilities and includes package state and attribute information. Version 11: Incompatible with clients using versions 0-10. pkg.server.api changed as follows: * A new property named 'version' was added to the CatalogInterface class to expose the version format of the catalog. * The 'rename_requests' property was removed from the ConfigInterface class as the stat it represented was for functionality that was never implemented. * A new property named 'publisher' that returns the Publisher object for the publisher related to the request was added to the RequestInterface class. Version 10: Incompatible with clients using versions 0-9. pkg.server.api changed as follows: * The PackageInfo.PREF_PUBLISHER property and data was removed. * The CatalogInterface.INFO_MULTI_MATCH property was removed and the info() method no longer detects and considers multiple matches for a single pattern an error. Version 9: Incompatible with clients using versions 0-8. pkg.server.api changed as follows: * All feed related properties retrieved or set using the (get|set)_repo_* methods are no longer valid. Instead, all feed-related configuration information must be retrieved using the new depot configuration methods found in the ConfigInterface class. Version 8: Incompatible with clients using versions 0-7. pkg.server.api changed as follows: * The return type of CatalogInterface.search changed so that instead of returning the fmri string in the result, it returns a PkgFmri object. Version 7: Compatible with clients using version 6. CatalogInterface has changed as follows: * A new function named 'info' was added to provide a way to retrieved package information. It returns a PackageInfo object representing the set of available package information. See pydoc 'pkg.client.api.PackageInfo' for more information. * A new function named 'get_entry_all_variants' was added to provide access to the list of variants for a given package. pkg.server.api changed as follows: * New classes representing package metadata and license information were added to pkg.api_common. pkg.server.api_errors changed as follows: * A new exception named 'UnrecognizedOptionsToInfo' was added. Version 6: Incompatible with clients using versions 0-5. CatalogInterface: * get_matching_pattern_fmris() and get_matching_version_fmris() now return a tuple of (fmris, unmatched). Where 'fmris' is a list of matching FMRIs, and 'unmatched' is a dict of unmatched patterns or versions indexed by match criteria. * package_count now returns the number of unique packages in the catalog instead of the unique number of package versions. * package_version_count, a new property, was added that contains the number of unique package versions in the catalog. ConfigInterface: * get_repo_attrs was renamed to get_repo_properties * get_repo_attr_value was renamed to get_repo_property_value Version 5: Compatible with clients using Versions 3-4. ConfigInterface.get_repo_attr_value() has changed as follows: * Section 'feed' attribute 'authority' has been removed. It has been replaced by section 'publisher' attribute 'prefix'. * Section 'publisher' with attributes 'alias' and 'prefix' was added. * New attributes were added for section 'repository': 'collection_type', 'legal_uris', 'mirrors', 'origins', 'refresh_seconds', 'registration_uri', and 'related_uris'. See the pydoc for pkg.server.api.ConfigInterface for details. Version 4: Compatible with clients using Version 3. Changes: CatalogInterface.search() has changed as follows: * A docstring has been added; see pydoc pkg.server.api for details. * Added optional keyword 'matching_version' that allows consumers to filter search results based on version. * Added optional, boolean keyword 'return_latest' that causes only the the newest versions of packages to be returned when 'return_type' is Query.RETURN_PACKAGES. Version 3: Incompatible with clients using Versions 0-2. Changes: CatalogInterface.search() has changed as follows: * Added optional, boolean keyword 'case_sensitive'. This indicates whether a case-sensitive search should be performed. * Added optional keyword argument 'return_type'. This determines whether results should be returned as Query.RETURN_ACTIONS or Query.RETURN_PACKAGES. * Added optional, integer keyword argument 'start_point'. This specifies how many matching results should be skipped before returning anything. * Added optional, integer keyword argument 'num_to_return'. This indicates how many results should be returned before the search is aborted. * search_done() was removed. Previously, after calling search(), api consumers would have to call search_done(). This is no longer necessary. Version 2: Incompatible with clients using Versions 0-1. Changes: CatalogInterface.get_matching_version_fmris() no longer accepts the constraint parameter. However, as before, it expects a list of version strings for the 'versions' parameter. These version strings may now contain the wildcard characters '*' and '?'. Version 1: Incompatible with clients using Version 0. Changes: CatalogInterface.search_done() was added to perform cleanup after all results have been retrieved from search(). CatalogInterface.search() now returns a generator object, instead of a list object, that requires that CatalogInterface.search_done() is called after all of the desired results have been retrieved for proper cleanup. Version 0: Initial api version, containing the following: class BaseInterface -- used to instantiate other interface objects class CatalogInterface def __init__(self, version_id, base): def fmris(self): def get_matching_pattern_fmris(self, patterns): def get_matching_version_fmris(self, versions, constraint=pkg.version.CONSTRAINT_AUTO): @property last_modified @property package_count def search(self, token): @property search_available class ConfigInterface def __init__(self, version_id, base): @property catalog_requests @property content_root @property file_requests @property filelist_requests @property filelist_file_requests @property in_flight_transactions @property manifest_requests @property mirror @property readonly @property rename_requests @property web_root def get_repo_attrs(self): def get_repo_attr_value(self, section, attr): class RequestInterface def __init__(self, version_id, base): def get_accepted_languages(self): def get_rel_path(self, uri): def log(self, msg): @property params @property path_info def url(self, path='', qs='', script_name=None, relative=None):