From 2aa4f8635b13e1849763a1964eb45032ee30948c Mon Sep 17 00:00:00 2001 From: Michal Minar Date: Wed, 10 Oct 2012 17:55:12 +0200 Subject: renamed yum package providers to software renamed LMI_Yum* to LMI_Software* removed attributes GroupString and LicenseString from LMI_SoftwarePackage modified attributes Group, Architecture and License of LMI_SoftwarePackage to return string instead of Uints - because values and valuemaps would need frequent updates --- mof/LMI_Software.mof | 315 ++++++++++++++++++++++++++ mof/LMI_Software.reg | 23 ++ mof/LMI_Yum.mof | 617 --------------------------------------------------- mof/LMI_Yum.reg | 23 -- 4 files changed, 338 insertions(+), 640 deletions(-) create mode 100644 mof/LMI_Software.mof create mode 100644 mof/LMI_Software.reg delete mode 100644 mof/LMI_Yum.mof delete mode 100644 mof/LMI_Yum.reg (limited to 'mof') diff --git a/mof/LMI_Software.mof b/mof/LMI_Software.mof new file mode 100644 index 0000000..90c7974 --- /dev/null +++ b/mof/LMI_Software.mof @@ -0,0 +1,315 @@ +/* + * Copyright (C) 2012 Michal Minar + * + * 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 . + */ + +#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_SoftwarePackage : 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\".") + ] + String 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. The string is obtained from RPM" + " package." ) + ] + String License; + + [ Description ( + "Denotes the package group, in which the package belongs.") + ] + String Group; + + [ Description ( + "Size of RPM package in Bytes" ) ] + uint64 Size; + + [ Description ( + "Will install available package."), + ValueMap { "0", "1", "2" }, + Values { "Already installed", "Successful installation", "Failed" } ] + uint32 Install( + [ IN(false), OUT, Description ( + "The reference to newly installed package, if installation was" + " successful. Reference to current package if it is already" + " installed and Null otherwise.") ] + LMI_SoftwareInstalledPackage REF Installed + ); + + [ Description ( + "Will uninstall installed package."), + ValueMap { "0", "1", "2" }, + Values { "Not installed", "Successful removal", "Failed" } ] + uint32 Remove(); + +}; + +[ 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_SoftwareFileCheck : CIM_FileSpecification { + + [ Key, Description ( + "Absolute path of file being checked.") ] + String Name; + + [ Description ( + "Composition of RPM's name and absolute file path." + " It's format is \"rpm_name#path\"") ] + String CheckID; + + [ Override("SoftwareElementID"), Description ( + "RPM's nevra. This means: " + "\"name-[epoch:]version-release.architecture\"." + " If epoch part is missing, a \"0:\" is assumed." ) ] + String SoftwareElementID; + + [ Override("Version"), Description ( + "Version of packaged software as listed by RPM package.") ] + String Version; + + [ Description ( + "True, if file is present in file system.")] + Boolean FileExists; + + [ Override("FileSize"), + Description("Size of installed file in Bytes.") ] + uint64 FileSize; + [ Units("KiloBytes"), + 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[]; + + [ Override("MD5Checksum"), + 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_SoftwareInstalledPackage : CIM_InstalledSoftwareElement { + + [ Override("Software"), Weak, Description ( + "Reference to the installed RPM package.")] + LMI_SoftwarePackage REF Software; + + [ Override("System"), Min(1), Description ( + "Reference to the ComputerSystem hosting a particular" + " RPM package.")] + CIM_ComputerSystem REF System; + + [ 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_SoftwareInstalledPackage 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_SoftwareFileCheck, that did not pass" + " verification.") ] + LMI_SoftwareFileCheck REF Failed[] + ); + +}; + +[ Association, Aggregation ] +class LMI_SoftwarePackageChecks : CIM_SoftwareElementChecks { + + [ Override("Element"), Description("The RPM package being checked") ] + LMI_SoftwarePackage REF Element; + + [ Override("Check"), Description("The Check for the element.") ] + LMI_SoftwareFileCheck REF Check; + +}; + diff --git a/mof/LMI_Software.reg b/mof/LMI_Software.reg new file mode 100644 index 0000000..c75e69e --- /dev/null +++ b/mof/LMI_Software.reg @@ -0,0 +1,23 @@ +[LMI_SoftwarePackage] + provider: /usr/lib/python2.7/site-packages/cura/software/LMI_SoftwarePackage.py + location: pyCmpiProvider + type: instance method + namespace: root/cimv2 + +[LMI_SoftwareInstalledPackage] + provider: /usr/lib/python2.7/site-packages/cura/software/LMI_SoftwareInstalledPackage.py + location: pyCmpiProvider + type: instance association method + namespace: root/cimv2 + +[LMI_SoftwareFileCheck] + provider: /usr/lib/python2.7/site-packages/cura/software/LMI_SoftwareFileCheck.py + location: pyCmpiProvider + type: instance method + namespace: root/cimv2 + +[LMI_SoftwarePackageFile] + provider: /usr/lib/python2.7/site-packages/cura/software/LMI_SoftwarePackageFile.py + location: pyCmpiProvider + type: instance association + namespace: root/cimv2 diff --git a/mof/LMI_Yum.mof b/mof/LMI_Yum.mof deleted file mode 100644 index 892c1fb..0000000 --- a/mof/LMI_Yum.mof +++ /dev/null @@ -1,617 +0,0 @@ -/* - * Copyright (C) 2012 Michal Minar - * - * 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 . - */ - -#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 ( - "Will install available package."), - ValueMap { "0", "1", "2" }, - Values { "Already installed", "Successful installation", "Failed" } ] - uint32 Install( - [ IN(false), OUT, Description ( - "The reference to newly installed package, if installation was" - " successful. Reference to current package if it is already" - " installed and Null otherwise.") ] - LMI_YumInstalledPackage REF Installed - ); - - [ Description ( - "Will uninstall installed package."), - ValueMap { "0", "1", "2" }, - Values { "Not installed", "Successful removal", "Failed" } ] - uint32 Remove(); - -}; - -[ 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; - - [ Description ( - "Composition of RPM's name and absolute file path." - " It's format is \"rpm_name#path\"") ] - String CheckID; - - [ Override("SoftwareElementID"), Description ( - "RPM's nevra. This means: " - "\"name-[epoch:]version-release.architecture\"." - " If epoch part is missing, a \"0:\" is assumed." ) ] - String SoftwareElementID; - - [ Override("Version"), Description ( - "Version of packaged software as listed by RPM package.") ] - String Version; - - [ Description ( - "True, if file is present in file system.")] - Boolean FileExists; - - [ Override("FileSize"), - Description("Size of installed file in Bytes.") ] - uint64 FileSize; - [ Units("KiloBytes"), - 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[]; - - [ Override("MD5Checksum"), - 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 { - - [ Override("Software"), Weak, Description ( - "Reference to the installed RPM package.")] - LMI_YumPackage REF Software; - - [ Override("System"), Min(1), Description ( - "Reference to the ComputerSystem hosting a particular" - " RPM package.")] - CIM_ComputerSystem REF System; - - [ 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_YumInstalledPackage 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[] - ); - -}; - -[ Association, Aggregation ] -class LMI_YumPackageFile : CIM_SoftwareElementChecks { - - [ Override("Element"), Description("The RPM package being checked") ] - LMI_YumPackage REF Element; - - [ Override("Check"), Description("The Check for the element.") ] - LMI_YumFileCheck REF Check; - -}; - diff --git a/mof/LMI_Yum.reg b/mof/LMI_Yum.reg deleted file mode 100644 index 7ada5df..0000000 --- a/mof/LMI_Yum.reg +++ /dev/null @@ -1,23 +0,0 @@ -[LMI_YumPackage] - provider: /usr/lib/python2.7/site-packages/cura/yum/LMI_YumPackage.py - location: pyCmpiProvider - type: instance method - namespace: root/cimv2 - -[LMI_YumInstalledPackage] - provider: /usr/lib/python2.7/site-packages/cura/yum/LMI_YumInstalledPackage.py - location: pyCmpiProvider - type: instance association method - namespace: root/cimv2 - -[LMI_YumFileCheck] - provider: /usr/lib/python2.7/site-packages/cura/yum/LMI_YumFileCheck.py - location: pyCmpiProvider - type: instance method - namespace: root/cimv2 - -[LMI_YumPackageFile] - provider: /usr/lib/python2.7/site-packages/cura/yum/LMI_YumPackageFile.py - location: pyCmpiProvider - type: instance association - namespace: root/cimv2 -- cgit