[Ovirt-devel] [PATCH matahari] Removes all code for the previous CPUWrapper class.

Darryl L. Pierce dpierce at redhat.com
Mon Apr 19 19:03:15 UTC 2010


This class has been replaced by the ProcessorsAgent.

Signed-off-by: Darryl L. Pierce <dpierce at redhat.com>
---
 src/Makefile.am |    4 -
 src/cpu.cpp     |  216 -------------------------------------------------------
 src/cpu.h       |  111 ----------------------------
 src/host.cpp    |   24 ------
 src/host.h      |    3 -
 src/schema.xml  |   16 ----
 6 files changed, 0 insertions(+), 374 deletions(-)
 delete mode 100644 src/cpu.cpp
 delete mode 100644 src/cpu.h

diff --git a/src/Makefile.am b/src/Makefile.am
index b4668b9..7606e20 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,8 +6,6 @@ first = qmf/com/redhat/matahari/Host.cpp
 
 generated_file_list = \
 	qmf/com/redhat/matahari/ArgsNICIdentify_nic.h \
-	qmf/com/redhat/matahari/CPU.cpp \
-	qmf/com/redhat/matahari/CPU.h \
 	qmf/com/redhat/matahari/Host.h \
 	qmf/com/redhat/matahari/NIC.cpp \
 	qmf/com/redhat/matahari/NIC.h \
@@ -19,8 +17,6 @@ generated_file_list = \
 nodist_matahari_SOURCES = $(generated_file_list) $(first)
 
 matahari_SOURCES = \
-	cpu.cpp \
-	cpu.h \
 	hal.cpp \
 	hal.h \
 	host.cpp \
diff --git a/src/cpu.cpp b/src/cpu.cpp
deleted file mode 100644
index 453c571..0000000
--- a/src/cpu.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/* cpu.cpp - Copyright (C) 2009 Red Hat, Inc.
- * Written by Arjun Roy <arroy at 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; version 2 of the License.
- *
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.  A copy of the GNU General Public License is
- * also available at http://www.gnu.org/copyleft/gpl.html.
- */
-
-#include <iostream>
-#include <fstream>
-#include <sstream>
-#include <string>
-#include <vector>
-#include <stdexcept>
-
-#include <pcre.h>
-
-#include "cpu.h"
-#include "qmf/com/redhat/matahari/CPU.h"
-
-using namespace std;
-namespace _qmf = qmf::com::redhat::matahari;
-
-template<typename targetType> targetType convert(const std::string& str)
-{
-    istringstream i(str);
-    targetType t;
-    if (!(i >> t))
-        throw invalid_argument("Conversion failure for " + str);
-    return t;
-}
-
-ostream& operator<<(ostream& output, const CPUWrapper& cpu)
-{
-    output << "Processor" << endl;
-    output << "CPU #: " << cpu.cpunum << endl;
-    output << "Core #: " << cpu.corenum << endl;
-    output << "Num. Cores: " << cpu.numcores << endl;
-    output << "Model: " << cpu.model << endl;
-    output << "Family: " << cpu.family << endl;
-    output << "CPU ID Level: " << cpu.cpuid_lvl << endl;
-    output << "Speed (Mhz): " << cpu.speed << endl;
-    output << "Cache (kB): " << cpu.cache << endl;
-    output << "Vendor: " << cpu.vendor << endl;
-    output << "Flags: " << cpu.flags << endl;
-    return output;
-}
-
-void CPUWrapper::setupQMFObject(ManagementAgent *agent, Manageable *parent)
-{
-    mgmt_object = new _qmf::CPU(agent, this, parent);
-    agent->addObject(mgmt_object);
-    syncQMFObject();
-}
-
-void CPUWrapper::cleanupQMFObject(void)
-{
-    mgmt_object->resourceDestroy();
-}
-
-void CPUWrapper::syncQMFObject(void)
-{
-    mgmt_object->set_cpunum(cpunum);
-    mgmt_object->set_corenum(corenum);
-    mgmt_object->set_numcores(numcores);
-    mgmt_object->set_model(model);
-    mgmt_object->set_family(family);
-    mgmt_object->set_cpuid_lvl(cpuid_lvl);
-    mgmt_object->set_speed(speed);
-    mgmt_object->set_cache(cache);
-    mgmt_object->set_vendor(vendor);
-    mgmt_object->set_flags(flags);
-}
-
-/**
- * void fillCPUInfo(vector <CPUWrapper*> &cpus, ManagementAgent *agent)
- *
- * Takes in a vector of CPUWrapper object pointers and populates it with
- * CPUs found by querying /proc/cpuinfo. NOTE: This method is very sensitive
- * to the output format of /proc/cpuinfo.
- *
- * Throws a runtime error if file io is unsuccessful.
- */
-void CPUWrapper::fillCPUInfo(vector<CPUWrapper*> &cpus, ManagementAgent *agent)
-{
-    string line;
-    string regexstr = "(.*\\S)\\s*:\\s*(\\S.*)";
-    int desiredmatches = 3; // Match string and two captured substrings
-    int matchArraySize = desiredmatches * 3;
-    int results[matchArraySize]; // pcre requires this much
-    const char *pcre_err;
-    int pcre_err_offset;
-    pcre *regex;
-
-    regex = pcre_compile(regexstr.c_str(), // input
-                         0,                // no options
-                         &pcre_err,        // where to place static error str
-                         &pcre_err_offset, // index in regex string of error
-                         NULL              // use the default charset
-                        );
-    if (!regex) {
-        ostringstream err;
-        err << "Error: Bad regex: " << regexstr << endl;
-        err << "Error was: " << pcre_err << " at " << pcre_err_offset << endl;
-        throw runtime_error(err.str());
-    }
-
-    ifstream cpuinfo("/proc/cpuinfo", ios::in);
-    if (!cpuinfo.is_open() || cpuinfo.fail())
-        throw runtime_error("Unable to open /proc/cpuinfo");
-
-    // Each line is a key:value pair. New processor
-    // delimiter is the "processor" key.
-    while (!cpuinfo.eof()) {
-        getline(cpuinfo, line);
-        int match = pcre_exec(regex,         // Regex
-                              NULL,          // No extra optimizations
-                              line.c_str(),  // Input
-                              line.length(), // Input length
-                              0,             // Start offset
-                              PCRE_NOTEMPTY, // options bitvector
-                              results,       // Results vector
-                              matchArraySize // Vector size
-                              );
-
-        if (match == desiredmatches) {
-            if (line.substr(results[2], results[3] - results[2]) == "processor") {
-                // Start pulling data for a new processor
-                int cpunum = -1;
-                int coreid = -1;
-                int cpucores = -1;
-                int model = -1;
-                int family = -1;
-                int cpuid_lvl = -1;
-                double speed = -1;
-                int cache = -1;
-                string vendor = "unknown";
-                string flags = "unknown";
-
-                // Get the cpu # from this line
-                cpunum = convert<int>(line.substr(results[4],
-                                       results[5] - results[4]));
-                // And now grab the rest
-                do {
-                    getline(cpuinfo, line);
-                    match = pcre_exec(regex,         // Regex
-                                      NULL,          // No extra optimizations
-                                      line.c_str(),  // Input
-                                      line.length(), // Input length
-                                      0,             // Start offset
-                                      PCRE_NOTEMPTY, // options bitvector
-                                      results,       // Results vector
-                                      matchArraySize // Vector size
-                                                      );
-
-                    if (match == desiredmatches) {
-                        string key = line.substr(results[2],
-                                                 results[3] - results[2]);
-
-                        string value = line.substr(results[4],
-                                                    results[5] - results[4]);
-
-                        if (key == "core id") {
-                            coreid = convert<int>(value);
-                        } else if (key == "cpu cores") {
-                            cpucores = convert<int>(value);
-                        } else if (key == "model") {
-                            model = convert<int>(value);
-                        } else if (key == "cpu family") {
-                            family = convert<int>(value);
-                        } else if (key == "cpuid level") {
-                            cpuid_lvl = convert<int>(value);
-                        } else if (key == "cpu MHz") {
-                            speed = convert<int>(value);
-                        } else if (key == "cache size") {
-                            int space = value.find(' ');
-                            cache = convert<int>(value.substr(0, space));
-                        } else if (key == "vendor_id") {
-                            vendor = value;
-                        } else if (key == "flags") {
-                            flags = value;
-                        }
-                            }
-                    }
-                    while (line != "");
-
-                        // Got all the data. Add the CPU to our list
-                CPUWrapper *cpu = new CPUWrapper(cpunum,
-                                                coreid,
-                                                cpucores,
-                                                model,
-                                                family,
-                                                cpuid_lvl,
-                                                speed,
-                                                cache,
-                                                vendor,
-                                                flags);
-                    cpus.push_back(cpu);
-                }
-        }
-        else
-            continue;
-    }
-        cpuinfo.close();
-}
diff --git a/src/cpu.h b/src/cpu.h
deleted file mode 100644
index bb3a9b3..0000000
--- a/src/cpu.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* cpu.h - Copyright (C) 2009 Red Hat, Inc.
- * Written by Arjun Roy <arroy at 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; version 2 of the License.
- *
- * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.  A copy of the GNU General Public License is
- * also available at http://www.gnu.org/copyleft/gpl.html.
- */
-
-#include <qpid/management/Manageable.h>
-#include <qpid/management/ManagementObject.h>
-#include <qpid/agent/ManagementAgent.h>
-
-#include "qmf/com/redhat/matahari/CPU.h"
-
-using namespace qpid::management;
-using namespace std;
-
-using qpid::management::Manageable;
-
-class CPUWrapper : public Manageable
-{
-    friend ostream& operator<<(ostream &output, const CPUWrapper& cpu);
-    friend class HostWrapper;
-
-    // CPU Parameters
-    int cpunum;
-    int corenum;
-    int numcores;
-
-    int model;
-    int family;
-    int cpuid_lvl;
-    double speed;
-    int cache;
-
-    string vendor;
-    string flags;
-
-    // QMF related fields
-    ManagementAgent *agent;
-    qmf::com::redhat::matahari::CPU *mgmt_object;
-
-    // Methods to put up / take down QMF Objects
-    void setupQMFObject(ManagementAgent *agent, Manageable *parent);
-    void cleanupQMFObject(void);
-    void syncQMFObject(void);
-
-    // Constructors and Destructor are private
-    CPUWrapper() {}
-    CPUWrapper(const CPUWrapper&) {}
-    ~CPUWrapper() {}
-
-    CPUWrapper(int cpunum__,
-               int corenum__,
-               int numcores__,
-               int model__,
-               int family__,
-               int cpuid_lvl__,
-               double speed__,
-               int cache__,
-               const string &vendor__,
-               const string &flags__) {
-            cpunum = cpunum__;
-        corenum = corenum__;
-        numcores = numcores__;
-        model = model__;
-        family = family__;
-        cpuid_lvl = cpuid_lvl__;
-        speed = speed__;
-        cache = cache__;
-        vendor = vendor__;
-        flags = flags__;
-    }
-
-public:
-
-    // Factory like method
-    static void fillCPUInfo(vector<CPUWrapper*> &cpus, ManagementAgent *agent);
-
-    // QMF Methods
-    ManagementObject* GetManagementObject(void) const { return mgmt_object; }
-
-    status_t ManagementMethod(uint32_t methodId, Args& args, string& text) {
-        return STATUS_NOT_IMPLEMENTED;
-    }
-
-    // Field Accessors
-    int getCpunum(void) { return cpunum; }
-    int getCorenum(void) { return corenum; }
-    int getNumcores(void) { return numcores; }
-
-    int getModel(void) { return model; }
-    int getFamily(void) { return family; }
-    int getCpuid_Lvl(void) { return cpuid_lvl; }
-    double getSpeed(void) { return speed; }
-    int getCache(void) { return cache; }
-
-    const string &getVendor(void) { return vendor; }
-    const string &getFlags(void) { return flags; }
-};
diff --git a/src/host.cpp b/src/host.cpp
index ac04f47..b3ed51f 100644
--- a/src/host.cpp
+++ b/src/host.cpp
@@ -46,14 +46,8 @@ ostream& operator<<(ostream &output, const HostWrapper& host)
     output << "Hypervisor: " << host.hypervisor << endl;
     output << "Arch: " << host.arch << endl << endl;
 
-    vector<CPUWrapper*> cpus = host.cpus;
     vector<NICWrapper*> nics = host.nics;
 
-    for (vector<CPUWrapper*>::iterator iter = cpus.begin();
-         iter!= cpus.end();
-         iter++) {
-        output << **iter << endl;
-    }
     for (vector<NICWrapper*>::iterator iter = nics.begin();
          iter!= nics.end();
          iter++) {
@@ -84,12 +78,6 @@ void HostWrapper::setupQMFObjects(ManagementAgent *agent)
 
     processors.setup(agent, this);
 
-    // Iterate over list and set up CPU objects
-    for (vector<CPUWrapper*>::iterator iter = cpus.begin();
-         iter!= cpus.end();
-         iter++) {
-        (*iter)->setupQMFObject(agent, this);
-    }
     // Iterate over list and set up NIC objects
     for (vector<NICWrapper*>::iterator iter = nics.begin();
          iter!= nics.end();
@@ -113,12 +101,6 @@ void HostWrapper::cleanupQMFObjects(void)
     // Clean up Host object
     mgmt_object->resourceDestroy();
 
-    // Iterate over list and clean up CPU objects
-    for (vector<CPUWrapper*>::iterator iter = cpus.begin();
-         iter!= cpus.end();
-         iter++) {
-        (*iter)->cleanupQMFObject();
-    }
     // Iterate over list and clean up NIC objects
     for (vector<NICWrapper*>::iterator iter = nics.begin();
          iter!= nics.end();
@@ -129,11 +111,6 @@ void HostWrapper::cleanupQMFObjects(void)
 
 void HostWrapper::cleanupMemberObjects(void)
 {
-    // Get rid of the CPUWrapper objects for this host
-    for (vector<CPUWrapper*>::iterator iter = cpus.begin(); iter != cpus.end();) {
-        delete (*iter);
-        iter = cpus.erase(iter);
-    }
     // Get rid of the NICWrapper objects for this host
     for (vector<NICWrapper*>::iterator iter = nics.begin(); iter != nics.end();) {
         delete (*iter);
@@ -169,7 +146,6 @@ HostWrapper* HostWrapper::setupHostWrapper(ManagementAgent *agent)
     HostWrapper *host = new HostWrapper();
 
     try {
-        CPUWrapper::fillCPUInfo(host->cpus, agent);
         NICWrapper::fillNICInfo(host->nics, agent, hal_ctx);
 
         // Host UUID
diff --git a/src/host.h b/src/host.h
index 148c91f..bdf43fa 100644
--- a/src/host.h
+++ b/src/host.h
@@ -23,7 +23,6 @@
 
 #include "qmf/com/redhat/matahari/Host.h"
 
-#include "cpu.h"
 #include "nic.h"
 #include "processors.h"
 
@@ -47,7 +46,6 @@ class HostWrapper : public Manageable
     int memory;
 
     // Aggregated components
-    vector<CPUWrapper*> cpus;
     vector<NICWrapper*> nics;
 
     ProcessorsAgent processors;
@@ -90,7 +88,6 @@ class HostWrapper : public Manageable
     bool isBeeping(void) { return beeping; }
     int getMemory(void) { return memory; }
 
-    const vector<CPUWrapper*> &getCPUList(void) { return cpus; }
     const vector<NICWrapper*> &getNICList(void) { return nics; }
 
     // Main Loop
diff --git a/src/schema.xml b/src/schema.xml
index f9c6f6b..e6b54db 100644
--- a/src/schema.xml
+++ b/src/schema.xml
@@ -23,22 +23,6 @@
     <statistic name="load_average" type="float" desc="The processing load average." />
   </class>
 
-  <class name="CPU">
-
-    <property name="host"      type="objId"  access="RO" desc="Host that this cpu belongs to" index="y" references="Host" parentRef="y"/>
-    <property name="cpunum"    type="int32"  access="RO" desc="CPU # for this host"           index="y"/>
-    <property name="corenum"   type="int32"  access="RO" desc="Index of core within CPU"/>
-    <property name="numcores"  type="int32"  access="RO" desc="Total # of cores for CPU"/>
-    <property name="model"     type="int32"  access="RO" desc="Processor Model"/>
-    <property name="family"    type="int32"  access="RO" desc="Processor Family"/>
-    <property name="cpuid_lvl" type="int32"  access="RO" desc="CPU ID Level"/>
-    <property name="speed"     type="double" access="RO" desc="CPU Speed"      unit="MHz"/>
-    <property name="cache"     type="int32"  access="RO" desc="CPU Cache Size" unit="kb"/>
-    <property name="vendor"    type="sstr"   access="RO" desc="CPU Vendor"/>
-    <property name="flags"     type="lstr"   access="RO" desc="CPU Flags"/>
-
-  </class>
-
   <class name="NIC">
 
     <property name="host"      type="objId" access="RO" desc="Host that this NIC belongs to" index="y" references="Host" parentRef="y"/>
-- 
1.6.6.1




More information about the ovirt-devel mailing list