summaryrefslogtreecommitdiffstats
path: root/mof/LMI_Yum.mof
diff options
context:
space:
mode:
Diffstat (limited to 'mof/LMI_Yum.mof')
-rw-r--r--mof/LMI_Yum.mof581
1 files changed, 581 insertions, 0 deletions
diff --git a/mof/LMI_Yum.mof b/mof/LMI_Yum.mof
new file mode 100644
index 0000000..5e24598
--- /dev/null
+++ b/mof/LMI_Yum.mof
@@ -0,0 +1,581 @@
+/*
+ * Copyright (C) 2012 Michal Minar <miminar@redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma locale ("en_US")
+//#pragma namespace ("root/cimv2")
+
+[ Description (
+ "RPM package installed on particular computer system with"
+ " YUM (The Yellowdog Updated, Modified) package manager.")
+]
+class LMI_YumPackage : CIM_SoftwareElement {
+
+ [ Description (
+ "The release number (referred to in some older documentation as a"
+ " \"vepoch\") is how the maintainer marks build revisions, starting"
+ " from 1. When a minor change (spec file changed, patch added/removed)"
+ " occurs, or a package is rebuilt to use newer headers or libraries,"
+ " the release number should be incremented. If a major change"
+ " (new version of the software being packaged) occurs, the version"
+ " number should be changed to reflect the new software version,"
+ " and the release number should be reset to 1.")
+ ]
+ String Release;
+
+ [ Description (
+ "It is important to be careful with the version of post-release"
+ " scheme, to ensure that package ordering is correct. It may be"
+ " necessary to use Epoch to ensure that the current package is"
+ " considered newer than the previous package.")
+ ]
+ uint16 Epoch;
+
+ [ Description (
+ "Architecture name, that package is compiled for. In case of no"
+ "architecture dependency, this will contain \"noarch\"."),
+ ValueMap { "0" , "1" , "2" , "3" , "4" ,
+ "5" , "6" , "7" , "8" ,
+ "10", "11", "12", "13",
+ "15", "16", "17",
+ "20", "21", "22", "23", "24",
+ "30", "31",
+ "35", "36",
+ "40", "41", "42",
+ "45", "46",
+ "50", "51",
+ "55",
+ "60", "61", "62", "63", "64",
+ "70", "71", "72", "73", "74" },
+ Values { // 0
+ "noarch", "other", "unknown", "x86", "i386",
+ // 5
+ "i586", "i686", "x86_64", "Athlon",
+ // 10
+ "IA32e", "IA64", "PowerPC", "PowerPC 64",
+ // 15
+ "SPARC", "SPARC V9", "SPARC 64",
+ // 20
+ "ARM", "ARMv6", "ARMv7", "ARMv8", "ARMv9",
+ // 30
+ "StrongARM", "XScale",
+ // 35
+ "PA-RISC", "PA-RISC 11",
+ // 40
+ "MIPS", "MIPS 32", "MIPS 64",
+ // 45
+ "MIPS NEC VR 4xxx", "MIPS RM7000",
+ // 50
+ "MIPS TX 39", "MIPS TX 49",
+ // 55
+ "V850",
+ // 60
+ "Alpha", "Alpha EV6", "Alpha EV7", "Alpha EV8", "Alpha EV9",
+ // 70
+ "SuperH", "SuperH 2", "SuperH 3", "SuperH 4", "SuperH 5" }
+ ]
+ uint16 Architecture;
+
+ [ Description (
+ "A software license is a legal instrument (usually by way of contract"
+ " law) governing the usage or redistribution of software."
+ " All software is copyright protected, except material in the public"
+ " domain. Contractual confidentiality is another way of protecting"
+ " software. A typical software license grants an end-user permission"
+ " to use one or more copies of software in ways where such a use would"
+ " otherwise potentially constitute copyright infringement of the"
+ " software owner's exclusive rights under copyright law. List of"
+ " possible values is based on list of licences approved by the"
+ " Free Software Foundation and OSI. Values contain only most common"
+ " Licences, so not every package's license will match. Moreover"
+ " lot of software is distributed under more licenses. In these cases"
+ " property will hold \"Other\" and LicenseString will contain precise"
+ " value." ),
+ ValueMap { "0" , "1" , "2" ,
+ "5" , "6" , "7" ,
+ "10" , "11" ,
+ "15" , "16" , "17" , "18" , "19",
+ "25" , "26" ,
+ "30" , "31" , "32" , "33" ,
+ "35" , "36" ,
+ "40" , "41" , "42" , "43" , "44",
+ "45" , "46" , "47" , "48" ,
+ "50" , "51" , "52" , "53" ,
+ "55" , "56" , "57" ,
+ "65" , "66" , "67" , "68" ,
+ "70" , "71" , "72" , "73" ,
+ "75" , "76" , "77" ,
+ "80" , "81" , "82" , "83" , "84",
+ "85" , "86" , "87" , "88" , "89",
+ "90" , "91",
+ "100", "101", "102",
+ "110", "111", "112", "113", "114",
+ "115", "116", "117", "118", "119",
+ "125", "126", "127",
+ "130", "131", "132", "133",
+ "135", "136", "137", "138", "139",
+ "140", "141", "142",
+ "145", "146",
+ "150", "151", "152", "153", "154",
+ "155", "156", "157", "158", "159",
+ "160", "161", "162", "163", "164",
+ "165", "166", "167", "168", "169",
+ "170", "171", "172", "173", "174",
+ "175", "176", "177", "178", "179",
+ "180", "181", "182", "183", "184",
+ "185", "186", "187", "188", "189",
+ "190", "191", "192", "193", "194",
+ "195", "196", "197", "198",
+ "200", "201", "202", "203", "204",
+ "205", "206", "207", "208", "209",
+ "215", "216", "217",
+ "220", "221", "222", "223", "224",
+ "225", "226", "227", "228", "229",
+ "230", "231", "232", "233",
+ "235", "236", "237", "238", "239",
+ "240", "241", "242", "243", "244",
+ "245", "246", "247", "248", "249",
+ "250", "251", "252", "253", "254",
+ "255", "256", "257", "258", "259",
+ "260", "261", "262", "263", "264",
+ "265", "266",
+ "270", "271",
+ "275", "276", "277",
+ "280", "281",
+ "400", "401", "402", "403", "404",
+ "405", "406", "407", "408", "409",
+ "410", "411", "412", "413", "414",
+ "415", "416", "417", "418", "419"
+ "420", "421", "422", "423", "424",
+ "425", "426", "427", "428", "429",
+ "430", "431", "432", "433", "434",
+ "435", "436", "437", "438", "439",
+ "440" },
+ Values { // 0
+ "Other", "Unknown",
+ "Freely redistributable without restriction",
+ // 5
+ "Glide", "AFL", "Adobe",
+ // 10
+ "MIT", "MIT with advertising",
+ // 15
+ "AGPL", "AGPLv1", "AGPLv3", "AGPLv3+", "AGPLv3 with exceptions",
+ // 25
+ "ADSL", "AMDPLPA",
+ // 30
+ "ASL", "ASL 1.0", "ASL 1.1", "ASL 2.0",
+ // 35
+ "Artistic clarified", "Artistic 2.0",
+ // 40
+ "ARL", "AAL", "Bahyph", "Barr", "Beerware",
+ // 45
+ "BeOpen", "Bibtex", "Boost", "Borceux",
+ // 50
+ "BSD", "BSD with advertising", "BSD with attribution",
+ "BSD Protection",
+ // 55
+ "AMPAS BSD", "LBNL BSD", "RiceBSD",
+ // 65
+ "CATOSL", "CeCILL", "CeCILL-B", "CeCILL-C",
+ // 70
+ "Netscape", "CNRI", "CDDL", "CPL",
+ // 75
+ "Condor", "Copyright only", "CPAL",
+ // 80
+ "GPL", "GPL+", "GPL+ with exceptions", "GPLv1", "GPLv2",
+ // 85
+ "GPLv2 with exceptions", "GPLv2+", "GPLv2+ with exceptions",
+ "GPLv3", "GPLv3 with exceptions",
+ // 90
+ "GPLv3+", "GPLv3+ with exceptions",
+ // 100
+ "GPL+ or Artistic", "GPLv2 or Artistic", "GPLv2+ or Artistic",
+ // 110
+ "LGPL", "LGPLV2", "LGPLv2 with exceptions", "LGPLV2+",
+ "LGPLV2+ with exceptions",
+ // 115
+ "LGPLv3", "LGPLv3 with exceptions", "LGPLv3+",
+ "LGPLv3+ with exceptions", "LLGPL",
+ // 125
+ "CC0", "Crossword", "Crystal Stacker",
+ // 130
+ "MPL", "MPLv1.0", "MPLv1.1", "MPLv2.0",
+ // 135
+ "diffmark", "WTFPL", "DOC", "Dotseqn", "DSDP",
+ // 140
+ "dvipdfm", "EPL", "eCos",
+ // 145
+ "ECL 1.0", "ECL 2.0",
+ // 150
+ "eGenix", "EFL 2.0", "Entessa", "ERPL", "EU Datagrid",
+ // 155
+ "EUPL 1.1", "Eurosym", "Fair", "FTL", "Gitware",
+ // 160
+ "GL2PS", "Glulxe", "gnuplot", "HaskellReport", "IBM",
+ // 165
+ "iMatrix", "ImageMagick", "Imlib2", "IJG", "Intel ACPI",
+ // 170
+ "Interbase", "ISC", "Jabber", "JasPer", "JPython",
+ // 175
+ "Julius", "Knuth", "LPPL", "Latex2e", "Leptonica",
+ // 180
+ "Lhcyr", "libtiff", "Logica", "MakeIndex", "mecab-ipadic",
+ // 185
+ "MS-PL", "MS-RL", "midnight", "MirOS", "mod_macro",
+ // 190
+ "Motosoto", "Naumen", "NCSA", "NetCDF", "NGPL",
+ // 195
+ "NOSL", "Newmat", "Newsletr", "Nokia",
+ // 200
+ "NLPL", "Noweb", "OpenLDAP", "OML", "OpenPBS",
+ // 205
+ "OSL 1.0", "OSL 1.1", "OSL 2.0", "OSL 2.1", "OSL 3.0",
+ // 215
+ "OpenSSL", "OReilly", "Par",
+ // 220
+ "Phorum", "PHP", "PlainTeX", "Plexus", "PostgreSQL",
+ // 225
+ "psfrag", "psutils", "Public Domain", "Python", "Qhull",
+ // 230
+ "QPL", "Rdisc", "RPSL", "Romio",
+ // 235
+ "Rsfs", "Ruby", "Saxpath", "SCEA", "SCRIP",
+ // 240
+ "Sendmail", "Sleepycat", "SLIB", "SNIA", "SISSL",
+ // 245
+ "SPL", "TCL", "Teeworlds", "TPL", "Threeparttable",
+ // 250
+ "TMate", "TORQUEv1.1", "TOSL", "UCD", "Vim",
+ // 255
+ "VNLSL", "VOSTROM", "VSL", "W3C", "Webmin",
+ // 260
+ "Wsuipa", "wxWidgets", "xinetd", "Xerox", "xpp",
+ // 265
+ "XSkat", "YPLv1.1",
+ // 270
+ "Zed", "Zend",
+ // 275
+ "ZPLv1.0", "ZPLv2.0", "ZPLv2.1",
+ // 280
+ "zlib", "zlib with acknowledgement",
+
+ // 400 (Good documentation/content/font licenses)
+ "CDL", "CC-BY", "CC-BY-SA", "CC-BY-ND",
+ // 405
+ "DSL", "DMTF", "OAL", "FBSDDL", "GFDL",
+ // 410
+ "IEEE", "LDPL", "OFSFDL", "Open Publication", "Public Use",
+ // 415
+ "EFML", "Free Art", "GeoTratis", "Green OpenMusic", "OFL",
+ // 420
+ "Utopia", "AMS", "Arphic", "Baekmuk", "Bitstream Vera",
+ // 425
+ "Charter", "DoubleStroke", "ec", "elvish", "LPPL",
+ // 430
+ "Hershey", "IPA", "Liberation", "Lucida", "MgOpen",
+ // 435
+ "mplus", "PTFL", "Punknova", "STIX", "Wadalab",
+ // 440
+ "XANO"
+ }
+ ]
+ uint16 License;
+
+ [ Description (
+ "Provides the same information as License property, but"
+ " contains the exact string obtained from RPM package.")]
+ String LicenseString;
+
+ [ Description (
+ "Denotes the package group, in which the package belongs. Values"
+ " contain only the most common groups. That means, that not every"
+ " package belongs to any of them. In such case value \"Other\" is"
+ " returned. For precise value contained in RPM package, check out"
+ " GroupString property."),
+ ValueMap { "0", "1", "2", "3", "4",
+ "5", "6", "7", "8", "9",
+ "10","11","12","13","14",
+ "15","16","17","18","19",
+ "20","21","22","23","24",
+ "25","26","27","28","29",
+ "30","31","32","33","34",
+ "35","36","37","38","39",
+ "40" },
+ Values {
+ // 0
+ "Other", "Unknown", "Unspecified",
+ "Amusements/Games", "Amusements/Graphics",
+ // 5
+ "Applications/Archiving",
+ "Applications/Communications",
+ "Applications/Databases",
+ "Applications/Editors",
+ "Applications/Emulators",
+ // 10
+ "Applications/Engineering",
+ "Applications/File",
+ "Applications/Internet",
+ "Applications/Multimedia",
+ "Applications/Productivity",
+ // 15
+ "Applications/Publishing",
+ "Applications/System",
+ "Applications/Text",
+ "Development/Build Tools",
+ "Development/Debug",
+ // 20
+ "Development/Debuggers",
+ "Development/Documentation",
+ "Development/Java",
+ "Development/Languages",
+ "Development/Libraries",
+ // 25
+ "Development/Libraries/Java",
+ "Development/System",
+ "Development/Tools",
+ "Documentation",
+ "Internet/WWW/Dynamic Content",
+ // 30
+ "System/Libraries",
+ "System Environment/Base",
+ "System Environment/Daemons",
+ "System Environment/Kernel",
+ "System Environment/Libraries",
+ // 35
+ "System Environment/Shells",
+ "Text Processing/Markup/XML",
+ "User Interface/Desktops",
+ "User Interface/X",
+ "User Interface/X Hardware Support",
+ // 40
+ "Utilities" }
+ ]
+ uint16 Group;
+
+ [ Description (
+ "Provides the same information as Group, but contains precise string"
+ " contained in package. Lot of packages define their own custom"
+ " group name, which results in \"Other\" value returned by Group"
+ " property.") ]
+ String GroupString;
+
+ [ Description (
+ "Size of RPM package in Bytes" ) ]
+ uint64 Size;
+
+ [ Description (
+ "Updates the package to latest version."
+ " When any of \"epoch\", \"version\" or \"release\" argument is given"
+ ", install only matching available package. Otherwise try"
+ " to update to newest package available."
+ " If the \"epoch\", \"version\" and \"release\" of package is"
+ " already installed, or no newer package is available,"
+ " \"Already newest\" value is returned."),
+ ValueMap { "0", "1", "2" },
+ Values { "Already newest", "Successful installation", "Failed" } ]
+ uint16 Update(
+ [ IN(true), Description (
+ "Specify particular epoch of package to update to."
+ " Update to newest, when empty.") ]
+ String Epoch,
+ [ IN(true), Description (
+ "Specify particular version of package to update to."
+ " Update to newest, when empty") ]
+ String Version,
+ [ IN(true), Description (
+ "Specify particular release of package to update to."
+ " Update to newest, when empty.") ]
+ String Release,
+ [ IN(false), OUT, Description (
+ "The reference to newly installed package, if installation was"
+ " successful. Otherwise reference to current package.") ]
+ LMI_YumPackage REF Installed
+ );
+
+ [ Description (
+ "Verify existence and attributes of files installed from"
+ " RPM package. If all files installed exist and their attributes"
+ " matches, method returns \"Pass\". \"Not passed\" is returned when"
+ " arbitrary file differs in its attributes. And \"Error\" if"
+ " verification could not be done."),
+ ValueMap { "0", "1", "2" },
+ Values { "Pass", "Not passed", "Error" } ]
+ uint32 CheckIntegrity(
+ [ IN(false), OUT, Description (
+ "Array of references to LMI_YumFileCheck, that did not pass"
+ " verification.") ]
+ LMI_YumFileCheck REF Failed[]
+ );
+
+};
+
+[ Description (
+ "Identifies a file contained by RPM package. It's located"
+ " in directory identified in FileName. The Invoke methods"
+ " check for file existence and whether its attributes match"
+ " those given by RPM package.")
+]
+class LMI_YumFileCheck : CIM_FileSpecification {
+
+ [ Key, Description (
+ "Absolute path of file being checked.") ]
+ String Name;
+
+ [ Key, Description (
+ "Composition of RPM's name and absolute file path."
+ " It's format is \"rpm_name#path\"") ]
+ String CheckID;
+
+ [ Key, MaxLen(256), Description (
+ "RPM's nevra. This means: "
+ "\"name-epoch:version-release.architecture\".") ]
+ String SoftwareElementID;
+
+ [ Key, MaxLen(256), Description (
+ "Version of packaged software as listed by RPM package.") ]
+ String Version;
+
+ [ Description (
+ "True, if file is present in file system.")]
+ Boolean FileExists;
+
+ [ Description("Size of installed file in Bytes.") ]
+ uint64 FileSize;
+ [ Description("File size in Bytes from RPM database.") ]
+ uint64 ExpectedFileSize;
+
+ [ Description("File mode of installed file as a number.") ]
+ uint32 FileMode;
+ [ Description("File mode as a number given by RPM database.") ]
+ uint32 ExpectedFileMode;
+
+ [ Description (
+ "File mode of installed file as an array of permissions."
+ " Each value represents a bit position in file mode."),
+ ValueMap { "0", "1", "2" //XWR Other
+ , "3", "4", "5" //XWR Group
+ , "6", "7", "8" //XWR User
+ , "9","10","11" //Sticky, SGID, SUID
+ },
+ Values { "Execute Other", "Write Other", "Read Other"
+ , "Execute Group", "Write Group", "Read Group"
+ , "Execute User" , "Write User" , "Read User"
+ , "Sticky", "SGID", "SUID"
+ } ]
+ Uint8 FileModeFlags[];
+ [ Description (
+ "File mode as an array of permissions of file from RPM database."
+ " Each value represents a bit position in file mode."),
+ ValueMap { "0", "1", "2" //XWR Other
+ , "3", "4", "5" //XWR Group
+ , "6", "7", "8" //XWR User
+ , "9","10","11" //Sticky, SGID, SUID
+ },
+ Values { "Execute Other", "Write Other", "Read Other"
+ , "Execute Group", "Write Group", "Read Group"
+ , "Execute User" , "Write User" , "Read User"
+ , "Sticky", "SGID", "SUID"
+ } ]
+ Uint8 ExpectedFileModeFlags[];
+
+ [ Description("MD5 checksum of installed file.") ]
+ String MD5Checksum;
+ [ Description("Checksum of installed file."
+ " Hash algorithm used can be obtained with ChecksumType property.") ]
+ String Checksum;
+ [ Description("Checksum of file from RPM database."
+ " Hash algorithm used can be obtained with ChecksumType property.") ]
+ String ExpectedChecksum;
+
+ [ Description("Number of hash algorithm according to RFC4880."
+ " This algorithm is used for making checksums of RPM files and"
+ " packages. This algorithm is same for the whole RPM database."),
+ ValueMap { "0", "1", "2", "3"
+ , "8", "9","10","11" },
+ Values { "UNKNOWN", "MD5", "SHA-1", "RIPE-MD/160"
+ , "SHA256", "SHA384", "SHA512", "SHA224" } ]
+ uint16 ChecksumType;
+
+ [ Description("User ID of installed file.") ]
+ uint32 FileUserID;
+ [ Description("User ID of file from RPM database.") ]
+ uint32 ExpectedFileUserID;
+
+ [ Description("Group ID of installed file.") ]
+ uint32 FileGroupID;
+ [ Description("Group ID of file from RPM database.") ]
+ uint32 ExpectedFileGroupID;
+
+ [ Description("Time of last modification of installed file as number a"
+ " of secodns since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).") ]
+ uint64 LastModificationTime;
+ [ Description("Time of last modification of file from RPM database as"
+ " a number of secodns since the Epoch,"
+ " 1970-01-01 00:00:00 +0000 (UTC).") ]
+ uint64 ExpectedLastModificationTime;
+
+ [ Description("Target destination of symbolic link as returned by"
+ " readline. If file is not a symbolic link, NULL is returned.") ]
+ String LinkTarget;
+ [ Description("Target destination of symbolic link from RPM database"
+ " as returned by readline. If file is not a symbolic link,"
+ " NULL is returned.") ]
+ String ExpectedLinkTarget;
+
+ [ Description("File type."),
+ ValueMap { "0", "1", "2", "3", "4", "5", "6" },
+ Values { "Unknown", "File", "Directory", "Symlink"
+ , "FIFO", "Character Device", "Block Device" } ]
+ uint16 FileType;
+ [ Description("File type of file in RPM database."),
+ ValueMap { "0", "1", "2", "3", "4", "5", "6" },
+ Values { "Unknown", "File", "Directory", "Symlink"
+ , "FIFO", "Character Device", "Block Device" } ]
+ uint16 ExpectedFileType;
+
+ [ Description (
+ "Returns array of booleans for verification checks. Each value"
+ " is either true or false, whether file passed the check or not."
+ " True is present also if the check does not apply to the file"
+ " (file implicitly passes the check, if check can not be"
+ " performed)."
+ " PassedFlagsDescriptions returns a description for each field in"
+ " this array saying, what it means.") ]
+ Boolean PassedFlags[];
+
+ [ Description (
+ "Returns array of descriptions of checks corresponding to PassedFlags"
+ " array.")]
+ String PassedFlagsDescriptions[];
+
+};
+
+// ===================================================================
+// Associations
+// ===================================================================
+[ Association ]
+class LMI_YumInstalledPackage : CIM_InstalledSoftwareElement {
+ [ Key, Description (
+ "Reference to the installed RPM package.")]
+ LMI_YumPackage REF Software;
+
+ [ Key, Max(1),
+ Description (
+ "Reference to the ComputerSystem hosting a particular"
+ " RPM package.")]
+ LMI_ComputerSystem REF System;
+};
+