Commit a65e13cfb5a1a588df74f7378d97891e3930e9a7

Authored by Eric Menezes Noronha
1 parent b1048928
Exists in master

alteração da coleta, inclusão da coleta de software para windows

cacic-teste/cacic-teste.pro
... ... @@ -22,11 +22,12 @@ SOURCES += \
22 22 ../src/ccacic.cpp \
23 23 ../src/cacic_computer.cpp \
24 24 ../src/operatingsystem.cpp \
25   - ../src/qtservice/src/qtservice.cpp \
26   - ../src/qtservice/src/qtservice_unix.cpp \
27   - ../src/qtservice/src/qtservice_win.cpp \
28   - ../src/qtservice/src/qtunixserversocket.cpp \
29   - ../src/qtservice/src/qtunixsocket.cpp
  25 + ../src/cacic_software.cpp \
  26 +# ../src/qtservice/src/qtservice.cpp \
  27 +# ../src/qtservice/src/qtservice_unix.cpp \
  28 +# ../src/qtservice/src/qtservice_win.cpp \
  29 +# ../src/qtservice/src/qtunixserversocket.cpp \
  30 +# ../src/qtservice/src/qtunixsocket.cpp
30 31  
31 32  
32 33 HEADERS += \
... ... @@ -36,10 +37,11 @@ HEADERS += \
36 37 ../src/cacic_comm.h \
37 38 ../src/console.h \
38 39 ../src/operatingsystem.h \
39   - ../src/qtservice/src/qtservice.h \
40   - ../src/qtservice/src/qtservice_p.h \
41   - ../src/qtservice/src/qtunixserversocket.h \
42   - ../src/qtservice/src/qtunixsocket.h
  40 + ../src/cacic_software.h \
  41 +# ../src/qtservice/src/qtservice.h \
  42 +# ../src/qtservice/src/qtservice_p.h \
  43 +# ../src/qtservice/src/qtunixserversocket.h \
  44 +# ../src/qtservice/src/qtunixsocket.h
43 45  
44 46 INCLUDEPATH += ../src \
45 47 ../src/crypto++/include/
... ...
cacic-teste/testcacic.cpp
... ... @@ -237,6 +237,12 @@ void CTestCacic::testIniciarDaemon(){
237 237  
238 238 }
239 239  
  240 +void CTestCacic::testColetaSoftware()
  241 +{
  242 + OCacicSoftware.iniciaColeta();
  243 + QVERIFY(!OCacicSoftware.toJsonObject().empty());
  244 +}
  245 +
240 246 void CTestCacic::cleanupTestCase()
241 247 {
242 248 OCacic.deleteFile("configRequest.json");
... ...
cacic-teste/testcacic.h
... ... @@ -4,6 +4,7 @@
4 4 #include <cacic_comm.h>
5 5 #include <ccacic.h>
6 6 #include <cacic_computer.h>
  7 +#include <cacic_software.h>
7 8 #include <console.h>
8 9 #include <operatingsystem.h>
9 10 #include <QtTest/QtTest>
... ... @@ -28,11 +29,12 @@ private:
28 29 CacicComm OCacicComm;
29 30 CCacic OCacic;
30 31 CACIC_Computer OCacicComp;
  32 + cacic_software OCacicSoftware;
31 33 QString testPath;
32 34 QString testIniPath;
33 35 QJsonObject session;
34 36 QString cripTeste;
35   - cacicD OcacicD;
  37 +// cacicD OcacicD;
36 38  
37 39 signals:
38 40  
... ... @@ -67,6 +69,7 @@ private slots:
67 69 void testGetValueFromRegistry();
68 70 void testRemoveRegistry();
69 71 void testIniciarDaemon();
  72 + void testColetaSoftware();
70 73 void cleanupTestCase();
71 74 };
72 75  
... ...
cacicD/cacicD.pro
... ... @@ -36,3 +36,6 @@ HEADERS += \
36 36 cacicd.h
37 37  
38 38 include(../src/qtservice/src/qtservice.pri)
  39 +
  40 +INCLUDEPATH += ../src \
  41 + ../src/crypto++/include/
... ...
cacicD/main.cpp
... ... @@ -2,7 +2,7 @@
2 2 #include <QStringList>
3 3 #include <QDir>
4 4 #include <QSettings>
5   -#include "../src/qtservice/src/qtservice.h"
  5 +#include <qtservice/src/qtservice.h>
6 6  
7 7 int main(int argc, char **argv)
8 8 {
... ...
gercols/gercols.cpp
... ... @@ -22,11 +22,9 @@ Gercols::Gercols(QObject *parent)
22 22 oCacic.setJsonToFile(configTeste,"configReq.json");
23 23 /******************************************/
24 24  
25   - getConfigJson();
26 25 qDebug() << "TESTE";
27 26 oColeta = new CColeta();
28   - oColeta->setColeta(configReq);
29   -qDebug() << oColeta->getColeta();
  27 +
30 28 QObject::connect(this, SIGNAL(iniciaConfiguracao()), oColeta, SLOT(configuraColetas()));
31 29 QObject::connect(this, SIGNAL(iniciaColeta()), oColeta, SLOT(run()));
32 30  
... ... @@ -49,15 +47,9 @@ void Gercols::run()
49 47  
50 48  
51 49 //salva coleta em json
52   - qDebug() << oColeta->getColeta();
  50 + qDebug() << oColeta->toJsonObject();
53 51 //salva json em arquivo
54   - oCacic.setJsonToFile(oColeta->getColeta(), "coleta.json");
  52 + oCacic.setJsonToFile(oColeta->toJsonObject(), "coleta.json");
55 53 //emite sinal "finished" pra finalizar a aplicação
56 54 emit finished();
57 55 }
58   -
59   -bool Gercols::getConfigJson()
60   -{
61   - configReq = oCacic.getJsonFromFile("configReq.json");
62   - oCacic.deleteFile("configReq.json");
63   -}
... ...
gercols/gercols.h
... ... @@ -13,8 +13,6 @@ private:
13 13 CColeta *oColeta;
14 14 QJsonObject configReq;
15 15  
16   - bool getConfigJson();
17   -
18 16 public:
19 17 explicit Gercols(QObject *parent = 0);
20 18  
... ...
gercols/gercols.pro
... ... @@ -25,6 +25,7 @@ SOURCES += \
25 25 main.cpp \
26 26 ../src/ccacic.cpp \
27 27 ../src/cacic_computer.cpp \
  28 + ../src/cacic_software.cpp \
28 29 ../src/operatingsystem.cpp \
29 30 ../src/ccoleta.cpp \
30 31 ./gercols.cpp
... ... @@ -33,6 +34,7 @@ SOURCES += \
33 34 HEADERS += \
34 35 ../src/ccacic.h \
35 36 ../src/cacic_computer.h \
  37 + ../src/cacic_software.h \
36 38 ../src/operatingsystem.h \
37 39 ../src/console.h \
38 40 ../src/ccoleta.h \
... ...
install-cacic/install-cacic.pro.user
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE QtCreatorProject>
3   -<!-- Written by QtCreator 3.1.2, 2014-08-18T11:08:49. -->
  3 +<!-- Written by QtCreator 3.1.2, 2014-08-18T18:02:05. -->
4 4 <qtcreator>
5 5 <data>
6 6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
... ...
src/cacic_software.cpp
... ... @@ -3,3 +3,41 @@
3 3 cacic_software::cacic_software()
4 4 {
5 5 }
  6 +
  7 +void cacic_software::iniciaColeta()
  8 +{
  9 +#ifdef Q_OS_WIN
  10 + this->coletaSoftware = coletaWin();
  11 +#else
  12 + this->coletaSoftware = coletaLinux();
  13 +#endif
  14 +}
  15 +
  16 +QJsonObject cacic_software::coletaWin()
  17 +{
  18 + QJsonObject softwaresJson;
  19 + QSettings softwares("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", QSettings::NativeFormat);
  20 +// qDebug() << softwares.childGroups();
  21 + foreach (QString group, softwares.childGroups()){
  22 + QVariantMap software;
  23 + softwares.beginGroup(group);
  24 + software["DisplayName"] = softwares.value("DisplayName");
  25 + software["Publisher"] = softwares.value("Publisher");
  26 + software["InstallLocation"] = softwares.value("InstallLocation");
  27 + software["InstallDate"] = softwares.value("InstallDate");
  28 + software["URLInfoAbout"] = softwares.value("URLInfoAbout");
  29 + softwares.endGroup();
  30 + softwaresJson[group] = QJsonObject::fromVariantMap(software);
  31 + }
  32 +// qDebug() << softwaresJson;
  33 + return softwaresJson;
  34 +}
  35 +
  36 +void cacic_software::coletaLinux()
  37 +{
  38 +
  39 +}
  40 +QJsonObject cacic_software::toJsonObject()
  41 +{
  42 + return coletaSoftware;
  43 +}
... ...
src/cacic_software.h
1 1 #ifndef CACIC_SOFTWARE_H
2 2 #define CACIC_SOFTWARE_H
3   -
  3 +#include <QtCore>
  4 +#include <ccacic.h>
4 5 class cacic_software
5 6 {
6 7 public:
7 8 cacic_software();
  9 + void iniciaColeta();
  10 + QJsonObject toJsonObject();
  11 +
  12 +private:
  13 + QJsonObject coletaWin();
  14 + void coletaLinux();
  15 +
  16 + CCacic oCacic;
  17 + QJsonObject coletaSoftware;
8 18 };
9 19  
10 20 #endif // CACIC_SOFTWARE_H
... ...
src/ccacic.cpp
1 1 #include "ccacic.h"
2 2  
3   -CCacic::CCacic(QObject *parent) :
4   - QObject(parent)
  3 +CCacic::CCacic()
5 4 {
6 5 }
7 6 /* getValueFromFile
... ...
src/ccacic.h
... ... @@ -19,11 +19,10 @@
19 19 //#include <sha.h>
20 20 //#include <md5.h>
21 21  
22   -class CCacic : public QObject
  22 +class CCacic
23 23 {
24   - Q_OBJECT
25 24 public:
26   - explicit CCacic(QObject *parent = 0);
  25 + CCacic();
27 26 QString getValueFromFile(QString sectionName, QString keyName, QString filePath);
28 27 void setValueToFile(QString sectionName, QString keyName, QString value, QString filePath);
29 28 QString getValueFromTags(QString fullString, QString tag, QString tagType = "[]");
... ... @@ -69,10 +68,6 @@ private:
69 68 QString chksisInfFilePath;
70 69 QString chaveCrypt;
71 70  
72   -signals:
73   -
74   -public slots:
75   -
76 71 };
77 72  
78 73 #endif // CCACIC_H
... ...
src/ccoleta.cpp
... ... @@ -5,89 +5,49 @@ CColeta::CColeta(QObject *parent)
5 5  
6 6 }
7 7  
8   -void CColeta::coletaComputer()
9   -{
10   - qDebug() << "coletaComputer() executado";
11   - QJsonObject coletaComputer = coleta["computer"].toObject();
12   - if( coletaComputer.contains("operating_system") )
13   - emit beginOperatingSystem();
14   - if( coletaComputer.contains("user") )
15   - emit beginUser();
16   -
17   -}
18   -
19 8 void CColeta::coletaHardware()
20 9 {
21 10 qDebug() << "coletaHardware() executado";
22   - QJsonObject coletaHardware = coleta["hardware"].toObject();
23   -}
24   -
25   -void CColeta::coletaNetworkInterfaces()
26   -{
27   - qDebug() << "coletaOperatingSystem() executado";
28   -
29   -// QJsonObject coletaComputer = coleta["computer"].toObject();
30   -// coletaComputer["network_interfaces"] = QJsonValue::fromVariant(QString(oComputer.getNetworkInterface()));
31   -
32   -// coleta["computer"] = coletaComputer;
  11 +// oHardware.iniciaColeta();
33 12 }
34 13  
35   -void CColeta::coletaOperatingSystem()
36   -{
37   - qDebug() << "coletaOperatingSystem() executado";
38   -
39   - QJsonObject coletaComputer = coleta["computer"].toObject();
40   - coletaComputer["operating_system"] = QJsonValue::fromVariant(QString(oComputer.getOs().getNomeOs()));
41   -
42   - coleta["computer"] = coletaComputer;
43   -}
44 14  
45 15 void CColeta::coletaSoftware()
46 16 {
47 17 qDebug() << "coletaSoftware() executado";
48   - QJsonObject coletaSoftware = coleta["software"].toObject();
49   -}
50   -
51   -void CColeta::coletaUser()
52   -{
53   - qDebug() << "coletauser() executado";
54   -
55   - QJsonObject coletaComputer = coleta["computer"].toObject();
56   - coletaComputer["user"] = QJsonValue::fromVariant(QString::fromStdString(oComputer.getUser()));
57   -
58   - coleta["computer"] = coletaComputer;
  18 + oSoftware.iniciaColeta();
59 19 }
60 20  
61 21 void CColeta::configuraColetas(){
62   - QObject::connect(this, SIGNAL(beginComputer()), this, SLOT(coletaComputer()));
63   - QObject::connect(this, SIGNAL(beginNetworkInterfaces()), this, SLOT(coletaNetworkInterfaces()));
64   - QObject::connect(this, SIGNAL(beginOperatingSystem()), this, SLOT(coletaOperatingSystem()));
65   - QObject::connect(this, SIGNAL(beginUser()), this, SLOT(coletaUser()));
66 22 QObject::connect(this, SIGNAL(beginHardware()), this, SLOT(coletaHardware()));
67 23 QObject::connect(this, SIGNAL(beginSoftware()), this, SLOT(coletaSoftware()));
68 24 }
69 25  
70   -QJsonObject CColeta::getColeta() const
  26 +CACIC_Computer CColeta::getOComputer() const
71 27 {
72   - return coleta;
  28 + return oComputer;
73 29 }
74 30  
75   -CACIC_Computer CColeta::getOComputer() const
  31 +cacic_software CColeta::getOSoftware() const
76 32 {
77   - return oComputer;
  33 + return oSoftware;
78 34 }
79 35  
80 36 void CColeta::run()
81 37 {
82   - if( coleta.contains("computer") )
83   - emit beginComputer();
  38 + QJsonObject coleta = oCacic.getJsonFromFile("configReq.json");
  39 +
84 40 if( coleta.contains("hardware") )
85 41 emit beginHardware();
86 42 if ( coleta.contains("software") )
87 43 emit beginSoftware();
  44 +
88 45 }
89 46  
90   -void CColeta::setColeta(QJsonObject config)
  47 +QJsonObject CColeta::toJsonObject()
91 48 {
92   - this->coleta = config;
  49 + QJsonObject coletaJson;
  50 + coletaJson["computer"] = oComputer.toJsonObject();
  51 + coletaJson["software"] = oSoftware.toJsonObject();
  52 + return coletaJson;
93 53 }
... ...
src/ccoleta.h
... ... @@ -4,8 +4,9 @@
4 4 #include <QObject>
5 5 #include <QJsonObject>
6 6 #include <QDebug>
  7 +#include <ccacic.h>
7 8 #include <cacic_computer.h>
8   -#include "cacic_computer.h"
  9 +#include <cacic_software.h>
9 10  
10 11  
11 12 class CColeta : public QObject
... ... @@ -13,24 +14,21 @@ class CColeta : public QObject
13 14 Q_OBJECT
14 15  
15 16 private:
16   - QJsonObject coleta;
17   -
  17 + CCacic oCacic;
18 18 CACIC_Computer oComputer;
  19 + cacic_software oSoftware;
19 20  
20 21 public:
21 22 explicit CColeta(QObject *parent = 0);
22 23  
23   - QJsonObject getColeta() const;
24 24 CACIC_Computer getOComputer() const;
25   - void setColeta(QJsonObject config);
  25 + cacic_software getOSoftware() const;
  26 +
  27 + QJsonObject toJsonObject();
26 28  
27 29 public slots:
28   - void coletaComputer();
29 30 void coletaHardware();
30   - void coletaNetworkInterfaces();
31   - void coletaOperatingSystem();
32 31 void coletaSoftware();
33   - void coletaUser();
34 32 void configuraColetas();
35 33 void run();
36 34  
... ...