11 Understanding Software Library

This chapter contains the following sections:

Introduction to Software Library Framework

Oracle Software Library (Software Library) is one of the core features offered by Enterprise Manager Cloud Control. Technically, it is a repository that stores certified software entities such as Software Patches, Virtual Appliance Images, Reference Gold Images, Application Software and their associated directive scripts. Software Library enables you to select any of the Oracle-supplied entities and customize them, or create a custom entity of your own. Once defined, you can reference these reusable entities from a Deployment Procedure to automate the operations like: patching, provisioning, and so on.

Key Features of Software Library Framework

Software Library framework supports:

  • Defining and registering metadata that is used by plug-in integrators to extend a Software Library to include extensions, and Out-of-box entities. For more information, see Defining Metadata to Extend Software Library.

  • Creating, managing, and accessing Software Library entities using various interfaces like: Software Library console, EM CLI, Action Script API, and so on which leverage the custom extensions registered. For more information, see Creating and Managing Software Library Entities.

  • Using the Software Library entities in various flows like: staging through Software Library console, job step execution, in a deployment procedure, and so on. For more information, see Using Software Library Entities.

Software Library Extensibility Concepts

This section gives a high level overview about the various attributes used in the Software Library extensibility framework:

  • Types and Subtypes

    All entities in Software Library belong to a type or a subtype. Normally, a type and subtype together define certain common features of the entities in terms of common and searchable metadata/configuration properties, their default values, file association requirements, and so on. Typically, Software Library framework defines and maintains the following types of artifacts:

    • Directive: Entities of this type represent scripts or executables.

    • Component: Entities of this type typically represent an installable software bundle. A subtype of the component type called Generic Component is also available by default with Enterprise Manager Cloud Control.

    All the other entity types that are appear in Software Library console, for example: Virtualization, Bare Metal Provisioning, and so on are basically extensions to the Software Library. These custom types and subtypes are part of plug-ins that ship by default with Enterprise Manager, and appear in the Software Library console once the EM is configured. Starting with Enterprise Manager 12.1.0.3 patch set 2, the Software Library framework is being extended to Oracle partners so that they can use it efficiently to define and register their own custom types and subtypes.

    Note:

    If your have entities other than Directives, then you are recommended to create your own custom type and one or more subtypes.

  • Folders

    A folder is a container of entities. A folder either contains other child folders or entities in it. Software Library allows you to organize the different user-defined or plugin-defined entities into logical folders for efficient management. Folders can be referred by their URN in Software Library.

  • Entities

    Entities are the primary artifacts stored in Software Library. An entity always has a folder associated. Similar entities may be grouped under a logical folder, and are further categorized by the type or subtype they are assigned. In general, it is a good practice to organize related entities into folders of their own.

    An entity can optionally have the following:

    • Attributes: Attributes are defined by the type/subtype definition. Usually, they contain simple string data types and must be defined in the metadata. Note that they are applicable to all the revisions of an entity.

    • Properties: Properties are used for specifying environment specific values. These are applicable only to specific revisions of an entity.

    • Attachments: Attachments are files that are related to the entity and are to be stored with the entity. Attachments may be any document or file that describes the entity or its associated script/software/configuration to its consumers. For example, Readme file. Attachments do not typically participate in patching/provisioning flows, and are not staged or copied to the targets.

    • Notes: Notes are comments that can be added to an entity. These are applicable to all revisions of an entity.

    • Associated Files: Associated files can either be uploaded to a Software Library or be stored and referenced from an external location. Once associated, the files can be retrieved during provisioning, and staged to the desired destination target by Software Library. These are applicable only to particular revisions of an entity.

    You can specify one of the following maturity status: Untested, Beta or Production for every entity revision. An entity revision can be in one of these states: Incomplete, Active or Ready. The state of an entity revision is computed based on the state of its associated files and related metadata.

    See:

    For more information about Software Library entities and its usage, refer to Oracle Enterprise Manager Administration.

  • Entity Revisions

    An entity can have one or more revisions. When the entity is created, its revision in Software Library is set to 0.1, following which, with each update the entity is revised by 0.1. Every entity revision is identified by a unique internal identifier, referred to as the revision's Uniform Resource Name (URN). Using the URN, you can identify entities even outside Software Library framework, for example, in jobs, deployment procedures, and so on. The URN is used to refer to an entity revision while attempting to use or create or modify it using interfaces like EM CLI, Jobtype, and so on.

  • External ID

    When a plug-in integrator defines entities in Software Library metadata XML, an identifier called the External ID needs to be specified for the entity. This identifier is used to track changes to an entity definition, while releasing a plug-in, in comparison with a previous release of the plug-in. When the plug-in is upgraded, the External ID of the latest revision is compared to the previous one, and only if the Ids do not match, the updated entity from the XML is re-applied. Therefore, revision is specific to Software Library updates of the entity, while the External ID helps to track the changes to the entity definition in metadata.

Defining Metadata to Extend Software Library

Plug-in integrators can define Software Library metadata like: types, subtypes, entities, folders, and register them using the Metadata Registration Service (MRS). The steps required to create and edit the entity through UI, default values, attributes can be described in the type/subtype metadata. The name, description, properties and files can be described in the entity metadata. During plug-in installation, the metadata is registered with Software Library, and the defined types, subtypes, folders, and entities get created accordingly.

Once registered, the custom types, subtypes, folders, and entities can be accessed using the Software Library interfaces like Cloud Control UI or EMCLI. The registered folders and entities are Oracle Owned, and can be viewed, to use them, you can use the Create Like feature of Software Library that enables you to customize the default entities to suit your requirements. In addition to this, you can create new entities through UI or EMCLI for the custom type or subtype registered. The UI flows for the entities of the custom type/subtype are defined by the UI specification in the metadata.

When the plug-in is uninstalled, the types, subtypes, folders, entities are removed. Entities of the custom type/subtype created using UI or EMCLI are also removed during the un-deployment of the plug-in.

Creating and Managing Software Library Entities

There are many interfaces to create and manager Software Library entities:

Note:

An entity once created and saved in the Software Library using one of the following interfaces: Software Library console, EM CLI, Action Script API, and so on, can be accessed at a later point using any of the other interfaces.

Enterprise Manager Cloud Control

To use Software Library Console, from Enterprise menu, select Provisioning and Patching, and then click Software Library. The Software Library console is single GUI enabled page that facilitates managing the complete lifecycle of the entities (create, manage, delete) efficiently. Using the Software Library features, you can perform a host of tasks such as: create folders, create entities, edit entities, delete entities, manage maturity status, add notes and attachments, manage privileges, and so on. Once the plug-in is defined and registered, from the Software Library console, you can choose the plug-in integrator defined types and subtypes when creating the entities. This in turn allows, creating entities that closely model the required artifact. You can also customize the default Oracle-owned entities using the Create Like option. For more information about using the Enterprise Manager Cloud Control to perform these operations, see Oracle Enterprise Manager Administration.

Enterprise Manager Command Line Interface (EMCLI)

You may choose to use a command line interface called EM CLI to automate the creation and management of entities. For more information about the Software Library verbs and their usage, see Oracle Enterprise Manager Lifecycle Management Administrator's Guide.

Using Software Library Entities

The user defined entities and the default entities from the Software Library can be used to complete various processing flows.

Note:

For information about how plug-in UI uses the Software Library search service, see Oracle Enterprise Manager Cloud Control Extensibility Programmer's Reference.

  • Using Entities in Jobs

    Plug-in integrators who create and register custom job types can nest the Software Library job types SwlibStageEntities and SwlibUploadFiles within their job type definition to create custom flows.

    For more information on how to create custom job types, refer to the section in EDK for Adding job types

  • Using entities in Deployment Procedures

    You can either create your own deployment procedure using the PAF framework, (User Defined Deployment Procedures), or customize the default Oracle-owned deployment procedure to suit your requirement. Lets assume that to do so, you need to include a Component step or Directive step to search for the component/directive, and include them in the procedure. When these steps in procedure are executed, the staging of the chosen entity is performed.

    For more information about creating UDDP, and Customize Oracle Owned Procedures, see Oracle Enterprise Manager Lifecycle Management Administrator's Guide

  • Staging through Software Library Console UI

    To test and verify the usage before including them in other flows, you can select the required entity and stage the same through Software Library Console UI.

  • Using Action Script API

    Entity details can be searched and retrieved through Action Script web service API. Once retrieved, the details can be displayed in a custom manner like FLEX UI.