From f7660edd0f0b1068038f8d4e92830c9e986a72c9 Mon Sep 17 00:00:00 2001 From: Michal Minar Date: Thu, 4 Jul 2013 12:24:06 +0200 Subject: added profile registration class Each OpenLMI profile should define static instance of LMI_RegisteredProfile in one of its mof files. This instance should use CIM_RegisteredProfile::RegisteredVersion to say, which version of DMTF/SMASH profile it implements. And Major/Minor versions and RevisionNumber for any API/implementation changes. --- mof/30_LMI_ProfileRegistration.mof | 70 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 mof/30_LMI_ProfileRegistration.mof (limited to 'mof') diff --git a/mof/30_LMI_ProfileRegistration.mof b/mof/30_LMI_ProfileRegistration.mof new file mode 100644 index 0000000..1e5ed06 --- /dev/null +++ b/mof/30_LMI_ProfileRegistration.mof @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2012-2013 Red Hat, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Michal Minar + */ + +#pragma locale ("en_US") + +[ Version("1.0.0"), + Description( + "A RegisteredProfile describes a set of CIM Schema classes with" + " required properties and/or methods, necessary to manage a real-world" + " entity or to support a usage scenario, in an interoperable fashion." + " RegisteredProfiles can be defined by the DMTF or other standards" + " organizations. Note that this class should not be confused with" + " CIM_Profile, which collects SettingData instances, to be applied as a" + " 'configuration profile' for an element. A RegisteredProfile is a named" + " 'standard' for CIM-based management of a particular System, subsystem," + " Service or other entity, for a specified set of uses. It is a" + " complete, standalone definition, as opposed to the subclass" + " RegisteredSubProfile, which requires a scoping profile for context." + " The uses for a RegisteredProfile or SubProfile MUST be specified in" + " the document that defines the profile. Examples of Profiles are to" + " manage various aspects of an Operating System, Storage Array, or" + " Database. The name of the profile is defined and scoped by its" + " authoring organization.\n" + " This subclass adds version numbers specific to providers of OpenLMI" + " project. These can be used by clients to check for compability. Clients" + " may use provided features not covered by implemented DMTF or SMASH" + " profiles, that's why the \"CIM_RegisteredProfile::RegisteredVersion\"" + " property is insufficient.")] +class LMI_RegisteredProfile : CIM_RegisteredProfile { + + [Required(True), Description( + "Major version of LMI profile API. All provider releases with the same" + " MajorVersion are backwards compatible. If some API breaking change" + " occurs in a new release, this version number must be incremented.")] + uint16 MajorVersion; + [Required(True), Description( + "MinorVersion of LMI profile API. This number is incremented, when there" + " is an API change bringing new features, but preserving backwards" + " compatibility. This includes adding new classes, properties, methods or" + " just adding some parameters to the existing method. When MajorVersion is" + " increased, this number is reset to 0.")] + uint16 MinorVersion; + [Required(True), Description( + "RevisionNumber of LMI profile API. Implementations with the same" + " Major and Minor versions, varying only in Revision have exactly the" + " same API. This number is incremented when the change affects only" + " the implementation, not the API. It's reset to 0, when MajorVersion or" + " MinorVersion gets incremented.")] + uint16 RevisionNumber; + +}; + +// ex:ts=2:sw=2:et -- cgit