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

Ian Main imain at redhat.com
Tue Apr 20 17:00:52 UTC 2010


On Mon, 2010-04-19 at 15:03 -0400, Darryl L. Pierce wrote:
> This class has been replaced by the ProcessorsAgent.

ACK

	Ian

> 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"/>





More information about the ovirt-devel mailing list