3 commits - fbdaemon/fbaggregatorjob.cpp fbdaemon/fbcoordinator.cpp fbdaemon/fbcoordinator.h fbdaemon/getuserlistjob.cpp fbdaemon/getuserlistjob.h fbdaemon/main.cpp fbdaemon/settings.cpp fbdaemon/settings.h

Christian Mollekopf mollekopf at kolabsys.com
Wed Jul 25 11:55:28 CEST 2012


 fbdaemon/fbaggregatorjob.cpp |    3 ---
 fbdaemon/fbcoordinator.cpp   |    9 +++++----
 fbdaemon/fbcoordinator.h     |    2 +-
 fbdaemon/getuserlistjob.cpp  |    9 +++++++++
 fbdaemon/getuserlistjob.h    |    2 ++
 fbdaemon/main.cpp            |   22 ++++++++++++----------
 fbdaemon/settings.cpp        |   19 +++++++++++++------
 fbdaemon/settings.h          |    2 +-
 8 files changed, 43 insertions(+), 25 deletions(-)

New commits:
commit d2bad0e7a03f35d659ec96c9eace6d31544a75fc
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Wed Jul 25 11:55:22 2012 +0200

    cleanup

diff --git a/fbdaemon/fbaggregatorjob.cpp b/fbdaemon/fbaggregatorjob.cpp
index ad81c7c..4b453eb 100644
--- a/fbdaemon/fbaggregatorjob.cpp
+++ b/fbdaemon/fbaggregatorjob.cpp
@@ -34,7 +34,6 @@ FBAggregatorJob::FBAggregatorJob(const QString& hostName, qint16 port, const QSt
 
 void FBAggregatorJob::startWork(ProbeKolabServerJob* capabilitiesJob)
 {
-    //TODO freebusy default folder
     if (capabilitiesJob->kolabFolders().values(KOLAB_FOLDER_TYPE_FREEBUSY).isEmpty()) {
         kWarning() << "no freebusy folder found";
         setError(KJob::UserDefinedError);
@@ -42,8 +41,6 @@ void FBAggregatorJob::startWork(ProbeKolabServerJob* capabilitiesJob)
         return;
     }
     mFreebusyFolder = capabilitiesJob->kolabFolders().values(KOLAB_FOLDER_TYPE_FREEBUSY).first();
-    //TODO create freebusy folder if not existing? (setupkolabfolders job?)
-//     mEventFolders = capabilitiesJob->kolabFolders().values(KOLAB_FOLDER_TYPE_EVENT);
 
     FetchMessagesJob *fetchJob = new FetchMessagesJob(mFreebusyFolder, mSession, this);
     connect( fetchJob, SIGNAL(result(KJob*)), this, SLOT(onFetchFBDone(KJob*)) );


commit c0f3c607ea05dcd47d4e9e734aa2035a6a305148
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Wed Jul 25 11:52:25 2012 +0200

    Filter users by domain during generateall.

diff --git a/fbdaemon/fbcoordinator.cpp b/fbdaemon/fbcoordinator.cpp
index 6f27691..3bf4ecf 100644
--- a/fbdaemon/fbcoordinator.cpp
+++ b/fbdaemon/fbcoordinator.cpp
@@ -30,13 +30,14 @@ FBCoordinator::FBCoordinator(QObject* parent)
     //TODO get user from job (trigger)
 }
 
-void FBCoordinator::generateForAllUsers()
+void FBCoordinator::generateForAllUsers(const QString &domain)
 {
     if (!mUserQueue.isEmpty()) {
         kWarning() << "there is an existing processing queue, aborting";
         return;
     }
     GetUserListJob *getUsersJob = new GetUserListJob(Settings::instance().getServerUri(), Settings::instance().getServerPort(), this);
+    getUsersJob->setFilterDomain(domain);
     connect(getUsersJob, SIGNAL(result(KJob*)), this, SLOT(onGotUserList(KJob*)));
     getUsersJob->start();
 }
diff --git a/fbdaemon/fbcoordinator.h b/fbdaemon/fbcoordinator.h
index 9d7afea..9e06c7b 100644
--- a/fbdaemon/fbcoordinator.h
+++ b/fbdaemon/fbcoordinator.h
@@ -34,7 +34,7 @@ public:
     /**
      * Gets a list of all available users and triggers a generate job
      */
-    void generateForAllUsers();
+    void generateForAllUsers(const QString &domain);
     
     /**
      * Generates a partial f/b list for the @param user
diff --git a/fbdaemon/getuserlistjob.cpp b/fbdaemon/getuserlistjob.cpp
index 6a01f8d..d1a4b50 100644
--- a/fbdaemon/getuserlistjob.cpp
+++ b/fbdaemon/getuserlistjob.cpp
@@ -41,6 +41,12 @@ GetUserListJob::GetUserListJob(const QString& hostName, qint16 port, QObject* pa
                       this, SLOT(onSessionStateChanged(KIMAP::Session::State,KIMAP::Session::State)) );
 }
 
+void GetUserListJob::setFilterDomain(const QString &domain)
+{
+    mFilterDomain = domain;
+}
+
+
 void GetUserListJob::onSessionStateChanged(KIMAP::Session::State newState, KIMAP::Session::State oldState)
 {
     kDebug() << newState;
@@ -127,6 +133,9 @@ void GetUserListJob::mailBoxesReceived(const QList<KIMAP::MailBoxDescriptor> &de
     // For now we simply extract the name from: user/christian.mollekopf at klab.cc
     foreach (const KIMAP::MailBoxDescriptor &descriptor, descriptors) {
         //FIXME this contains to many assumptions about the server, maybe we can use the namespace result instead?
+        if (!mFilterDomain.isEmpty() && !descriptor.name.contains(mFilterDomain)) {
+            continue;
+        }
 //         int firstSep = descriptor.name.indexOf(QLatin1Char('/'));
         int secondSep = descriptor.name.indexOf(QLatin1Char('/'), 6);
         int index = descriptor.name.indexOf(QLatin1Char('@'), 6);
diff --git a/fbdaemon/getuserlistjob.h b/fbdaemon/getuserlistjob.h
index fd7e339..2d3fb4e 100644
--- a/fbdaemon/getuserlistjob.h
+++ b/fbdaemon/getuserlistjob.h
@@ -29,6 +29,7 @@ public:
     explicit GetUserListJob(const QString &hostName, qint16 port, QObject* parent = 0);
     virtual void start();
     QStringList getUserList() const;
+    void setFilterDomain(const QString &);
 private Q_SLOTS:
     void onSessionStateChanged(KIMAP::Session::State newState, KIMAP::Session::State oldState);
     void onAuthDone(KJob*);
@@ -36,6 +37,7 @@ private Q_SLOTS:
 private:
     QString mHostName;
     qint16 mPort;
+    QString mFilterDomain;
 
     KIMAP::Session *mSession;
     QStringList mNames;
diff --git a/fbdaemon/main.cpp b/fbdaemon/main.cpp
index 6796668..f07f3ed 100644
--- a/fbdaemon/main.cpp
+++ b/fbdaemon/main.cpp
@@ -32,7 +32,8 @@ int main(int argc, char *argv[])
     options.add("g").add("generate", ki18n("Generate partial f/b lists for <user>"));
     options.add("a").add("aggregate", ki18n("Aggregate partial f/b lists for <user>"));
     options.add("d").add("daemon", ki18n("Run daemon (todo)"));
-    options.add("+[user]", ki18n("User for generation/aggregation"));
+    options.add("generateall", ki18n("Generate and aggregate for all users within domain"));
+    options.add("+[user/domain]", ki18n("User for generation/aggregation | Domain for which freebusy is generated"));
 
     KCmdLineArgs::addCmdLineOptions( options );
     
@@ -53,17 +54,18 @@ int main(int argc, char *argv[])
     FBCoordinator coordinator(&app);
     QObject::connect(&coordinator, SIGNAL(quit()), &app, SLOT(quit()));
     bool nothingTodo = true;
-    if (args->isSet("generate")) {
-        if (args->arg(0) == QLatin1String("all")) {
-            coordinator.generateForAllUsers();
-        } else {
+    if (args->isSet("generateall")) {
+        coordinator.generateForAllUsers(args->arg(0));
+        nothingTodo = false;
+    } else {
+        if (args->isSet("generate")) {
             coordinator.generateForUser(args->arg(0));
+            nothingTodo = false;
+        }
+        if (args->isSet("aggregate")) {
+            coordinator.aggregateForUser(args->arg(0));
+            nothingTodo = false;
         }
-        nothingTodo = false;
-    }
-    if (args->isSet("aggregate")) {
-        coordinator.aggregateForUser(args->arg(0));
-        nothingTodo = false;
     }
     if (args->isSet("daemon")) {
 


commit e31e3594b5f78124f05c3b394832740c126c3702
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Wed Jul 25 11:17:20 2012 +0200

    Enable mass fb-generating, read more settings from file.

diff --git a/fbdaemon/fbcoordinator.cpp b/fbdaemon/fbcoordinator.cpp
index 4568bcb..6f27691 100644
--- a/fbdaemon/fbcoordinator.cpp
+++ b/fbdaemon/fbcoordinator.cpp
@@ -60,8 +60,8 @@ bool FBCoordinator::processQueue()
     const QString user = mUserQueue.dequeue();
     kDebug() << user;
     SequentialCompositeJob *userJob = new SequentialCompositeJob(this);
-//    userJob->addSubjob(new FBGeneratorJob(server, port, user, userJob));
-//    userJob->addSubjob(new FBAggregatorJob(server, port, user, userJob));
+    userJob->addSubjob(new FBGeneratorJob(server, port, user, userJob));
+    userJob->addSubjob(new FBAggregatorJob(server, port, user, userJob));
     connect(userJob, SIGNAL(result(KJob*)), this, SLOT(onGeneratorDone(KJob*)));
     userJob->start();
     return true;
@@ -82,7 +82,7 @@ void FBCoordinator::aggregateForUser(const QString& user)
 }
 
 
-void FBCoordinator::onGeneratorDone(KJob *job)
+void FBCoordinator::onGeneratorDone(KJob */*job*/)
 {
     if (processQueue()) {
         return;
diff --git a/fbdaemon/settings.cpp b/fbdaemon/settings.cpp
index 8c41fdd..d5f0ace 100644
--- a/fbdaemon/settings.cpp
+++ b/fbdaemon/settings.cpp
@@ -41,7 +41,7 @@
     QString adminpw = settings.value("admin_password", "VerySecret");
     settings.endGroup();
     */
-QVariant Settings::getValue(const QString &key, const QString &defaultValue) const
+QVariant Settings::getValue(const QString &key, const QVariant &defaultValue) const
 {
     QSettings settings(mFile, QSettings::IniFormat);
     settings.beginGroup("kolab");
@@ -59,7 +59,7 @@ QString Settings::getServerUri() const
 
 qint16 Settings::getServerPort() const
 {
-    return getValue("port", "993").value<qint16>();
+    return getValue("port", 993).value<qint16>();
 }
 
 QString Settings::getAuthorizationUser() const
@@ -69,21 +69,28 @@ QString Settings::getAuthorizationUser() const
 
 QString Settings::getPassword() const
 {
-    return getValue("admin_password", "VerySecret-admin").toString();
+    return getValue("admin_password", "NoAdminPassword").toString();
 }
 
 int Settings::getTimeframe() const
 {
-    return 90;
+    QSettings settings(mFile, QSettings::IniFormat);
+    settings.beginGroup("kolab");
+    return settings.value("timeframe", 90).toInt();
 }
 
 int Settings::getThreshold() const
 {
-    return 0;
+    QSettings settings(mFile, QSettings::IniFormat);
+    settings.beginGroup("kolab");
+    return settings.value("threshold", 0).toInt();
 }
 
 QString Settings::getAggregatedICalOutputDirectory() const
 {
-    return QString("/tmp");
+    
+    QSettings settings(mFile, QSettings::IniFormat);
+    settings.beginGroup("kolab");
+    return settings.value("icalOutputDir", "/tmp").toString();
 }
 
diff --git a/fbdaemon/settings.h b/fbdaemon/settings.h
index 6b1cb3b..81585cd 100644
--- a/fbdaemon/settings.h
+++ b/fbdaemon/settings.h
@@ -45,7 +45,7 @@ public:
     QString getAggregatedICalOutputDirectory() const;
     
 private:
-    QVariant getValue(const QString &, const QString &) const;
+    QVariant getValue(const QString &, const QVariant &) const;
     Settings() {};
     Settings(const Settings &);
     Settings & operator= (const Settings &);





More information about the commits mailing list