An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by a computing system, cause the computing system to perform operations comprising:
- associating a representation of a software downgrade definition with a software model specification for a software package, wherein the software model specification includes a publisher of the software package, an application title of the software package, and the version of the software package, and wherein the software downgrade definition specifies a version of the software package and one or more earlier versions of the software package;
- obtaining one or more entitlements for the software package;
- based on the software downgrade definition being associated with the software model specification, associating the software downgrade definition with the one or more entitlements;
- and
- calculating compliance of installations of the software package in a managed network with the one or more entitlements, wherein the software downgrade definition causes each of the one or more entitlements to be applicable to the installations of the version of the software package or to the one or more earlier versions of the software package, wherein calculating the compliance of the installations of the software package in the managed network with the one or more entitlements comprises:
- selecting a first computing device of the managed network, wherein the first computing device has an installation of the software package;
- determining an installed version of the software package on the first computing device;
- identifying a group of associated entitlements of the one or more entitlements for the software package, wherein each associated entitlement of the group of associated entitlements is associated with the installed version of the software package;
- selecting a closest-match entitlement of the group of associated entitlements based on respective software downgrade definitions associated with each associated entitlement of the group of associated entitlements, wherein the closest-match entitlement comprises a smallest number of applicable versions of the software package, specified by its respective software downgrade definition, of the group of associated entitlements, wherein the closest-match entitlement comprises closest-match license metric data specifying availability of a software license associated with the closest-match entitlement;
- determining whether a software license for the installed version of the software package is available based on the closest-match entitlement;
- and
- in response to determining that the closest-match license metric data indicates that the software license associated with the closest-match entitlement is not available for the installed version:
- determining whether the group of associated entitlements includes a minimum entitlement that is associated with a minimum number of software downgrade definitions of the group of associated entitlements and has license metric data that indicates that a software license associated with the minimum entitlement is available for the installed version, wherein the minimum entitlement differs from the closest-match entitlement;
- and
- in response to determining that the group of associated entitlements does not include the minimum entitlement, determining that the software license for the installed version of the software package is not available.