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