summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdminI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-09-06 15:39:41 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-09-06 15:39:41 +0000
commit6f46bb760b30ef883b386dfa8e695c8d5004f05f (patch)
treec3dabd2d404b72a8e4ad16996a913ceee963815e /cpp/src/IceGrid/AdminI.cpp
parentFixed bug 1209 (diff)
downloadice-6f46bb760b30ef883b386dfa8e695c8d5004f05f.tar.bz2
ice-6f46bb760b30ef883b386dfa8e695c8d5004f05f.tar.xz
ice-6f46bb760b30ef883b386dfa8e695c8d5004f05f.zip
The master now waits for the replicas to be updated before to return.
Added support for dynamic registration of adapters in the replicas.
Diffstat (limited to 'cpp/src/IceGrid/AdminI.cpp')
-rw-r--r--cpp/src/IceGrid/AdminI.cpp26
1 files changed, 21 insertions, 5 deletions
diff --git a/cpp/src/IceGrid/AdminI.cpp b/cpp/src/IceGrid/AdminI.cpp
index fcb014c39b5..1294bf18bb2 100644
--- a/cpp/src/IceGrid/AdminI.cpp
+++ b/cpp/src/IceGrid/AdminI.cpp
@@ -7,6 +7,8 @@
//
// **********************************************************************
+#include <IceUtil/UUID.h>
+
#include <Ice/Ice.h>
#include <Ice/LoggerUtil.h>
#include <Ice/TraceUtil.h>
@@ -296,35 +298,49 @@ void
AdminI::addApplication(const ApplicationDescriptor& descriptor, const Current&)
{
checkIsMaster();
- _database->addApplicationDescriptor(_session.get(), descriptor);
+
+ ApplicationInfo info;
+ info.createTime = info.updateTime = IceUtil::Time::now().toMilliSeconds();
+ info.createUser = info.updateUser = _session->getId();
+ info.descriptor = descriptor;
+ info.revision = 1;
+ info.uuid = IceUtil::generateUUID();
+
+ _database->addApplication(info, _session.get());
}
void
AdminI::syncApplication(const ApplicationDescriptor& descriptor, const Current&)
{
checkIsMaster();
- _database->syncApplicationDescriptor(_session.get(), descriptor);
+ _database->syncApplicationDescriptor(descriptor, _session.get());
}
void
AdminI::updateApplication(const ApplicationUpdateDescriptor& descriptor, const Current&)
{
checkIsMaster();
- _database->updateApplicationDescriptor(_session.get(), descriptor);
+
+ ApplicationUpdateInfo update;
+ update.updateTime = IceUtil::Time::now().toMilliSeconds();
+ update.updateUser = _session->getId();
+ update.descriptor = descriptor;
+ update.revision = -1; // The database will set it.
+ _database->updateApplication(update, _session.get());
}
void
AdminI::removeApplication(const string& name, const Current&)
{
checkIsMaster();
- _database->removeApplicationDescriptor(_session.get(), name);
+ _database->removeApplication(name, _session.get());
}
void
AdminI::instantiateServer(const string& app, const string& node, const ServerInstanceDescriptor& desc, const Current&)
{
checkIsMaster();
- _database->instantiateServer(_session.get(), app, node, desc);
+ _database->instantiateServer(app, node, desc, _session.get());
}
void