本文整理汇总了C++中AdminPrx::addApplication方法的典型用法代码示例。如果您正苦于以下问题:C++ AdminPrx::addApplication方法的具体用法?C++ AdminPrx::addApplication怎么用?C++ AdminPrx::addApplication使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AdminPrx
的用法示例。
在下文中一共展示了AdminPrx::addApplication方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test
//.........这里部分代码省略.........
{
copy(ex.reasons.begin(), ex.reasons.end(), ostream_iterator<string>(cerr, "\n"));
test(false);
}
test = TestIntfPrx::uncheckedCast(communicator->stringToProxy("server-dir1"));
test(test->getServerFile("rootfile") == "");
test(test->getServerFile("dir1/file1") == "");
test(test->getServerFile("dir1/file2") == "dummy-file2-updated!");
test(test->getServerFile("dir2/file3") == "");
test(test->getServerFile("dir2/file4") == "");
test(test->getApplicationFile("rootfile") == "");
test(test->getApplicationFile("dir1/file1") == "");
test(test->getApplicationFile("dir1/file2") == "");
test(test->getApplicationFile("dir2/file3") == "dummy-file3");
test(test->getApplicationFile("dir2/file4") == "dummy-file4");
admin->stopServer("Test.IcePatch2");
admin->stopServer("IcePatch2-Direct");
}
cout << "ok" << endl;
cout << "testing application distrib configuration... " << flush;
try
{
ApplicationDescriptor app = admin->getApplicationInfo("Test").descriptor;
admin->removeApplication("Test");
app.variables["icepatch.directory"] = "${test.dir}/data/original";
test(app.nodes["localnode"].servers[2]->id == "server-dir1");
app.nodes["localnode"].servers[2]->applicationDistrib = false;
admin->addApplication(app);
admin->startServer("Test.IcePatch2");
try
{
admin->patchServer("server-dir1", true);
}
catch(const PatchException& ex)
{
copy(ex.reasons.begin(), ex.reasons.end(), ostream_iterator<string>(cerr, "\n"));
test(false);
}
TestIntfPrx test = TestIntfPrx::uncheckedCast(communicator->stringToProxy("server-dir1"));
test(test->getServerFile("rootfile") == "");
test(test->getServerFile("dir1/file1") == "dummy-file1");
test(test->getServerFile("dir1/file2") == "dummy-file2");
test(test->getServerFile("dir2/file3") == "");
test(test->getApplicationFile("rootfile") == "");
test(test->getApplicationFile("dir1/file1") == "");
test(test->getApplicationFile("dir1/file2") == "");
test(test->getApplicationFile("dir2/file3") == "");
admin->removeApplication("Test");
admin->addApplication(app);
admin->startServer("Test.IcePatch2");
admin->startServer("IcePatch2-Direct");
try
{
示例2: if
//.........这里部分代码省略.........
if(!_sessions->waitForCreate())
{
//
// Create was interrupted, return true as if the service was
// correctly initiliazed to make sure it's properly stopped.
//
return true;
}
disableInterrupt();
}
//
// Deploy application if a descriptor is passed as a command-line option.
//
if(!desc.empty())
{
try
{
Ice::Identity regId;
regId.category = instanceName;
regId.name = "Registry";
RegistryPrx registry = RegistryPrx::checkedCast(communicator()->getDefaultLocator()->findObjectById(regId));
if(!registry)
{
throw "invalid registry";
}
registry = registry->ice_preferSecure(true); // Use SSL if available.
IceGrid::AdminSessionPrx session;
if(communicator()->getProperties()->getPropertyAsInt("IceGridAdmin.AuthenticateUsingSSL"))
{
session = registry->createAdminSessionFromSecureConnection();
}
else
{
string id = communicator()->getProperties()->getProperty("IceGridAdmin.Username");
string password = communicator()->getProperties()->getProperty("IceGridAdmin.Password");
while(id.empty())
{
cout << "user id: " << flush;
getline(cin, id);
id = IceUtilInternal::trim(id);
}
if(password.empty())
{
cout << "password: " << flush;
getline(cin, password);
password = IceUtilInternal::trim(password);
}
session = registry->createAdminSession(id, password);
}
assert(session);
AdminPrx admin = session->getAdmin();
map<string, string> vars;
ApplicationDescriptor app = DescriptorParser::parseDescriptor(desc, targets, vars, communicator(), admin);
try
{
admin->syncApplication(app);
}
catch(const ApplicationNotExistException&)
{
admin->addApplication(app);
}
}
catch(const DeploymentException& ex)
{
ServiceWarning warn(this);
warn << "failed to deploy application `" << desc << "':\n" << ex;
}
catch(const AccessDeniedException& ex)
{
ServiceWarning warn(this);
warn << "failed to deploy application `" << desc << "':\n"
<< "registry database is locked by `" << ex.lockUserId << "'";
}
catch(const std::exception& ex)
{
ServiceWarning warn(this);
warn << "failed to deploy application `" << desc << "':\n" << ex;
}
catch(const string& reason)
{
ServiceWarning warn(this);
warn << "failed to deploy application `" << desc << "':\n" << reason;
}
}
if(!bundleName.empty())
{
print(bundleName + " ready");
}
return true;
}
示例3: test
void
allTests(const Ice::CommunicatorPtr& communicator)
{
IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
AdminPrx admin = session->getAdmin();
test(admin);
Ice::PropertiesPtr properties = communicator->getProperties();
{
ApplicationDescriptor testApp;
testApp.name = "TestApp";
admin->addApplication(testApp);
ApplicationUpdateDescriptor empty;
empty.name = "TestApp";
NodeUpdateDescriptor node;
node.name = "localnode";
empty.nodes.push_back(node);
ApplicationUpdateDescriptor update = empty;
cout << "testing server add... " << flush;
ServerDescriptorPtr server = new ServerDescriptor();
server->id = "Server";
server->exe = properties->getProperty("TestDir") + "/server";
server->pwd = ".";
server->applicationDistrib = false;
server->allocatable = false;
addProperty(server, "Ice.Admin.Endpoints", "tcp -h 127.0.0.1");
AdapterDescriptor adapter;
adapter.name = "Server";
adapter.id = "ServerAdapter";
adapter.registerProcess = false;
adapter.serverLifetime = false;
addProperty(server, "Server.Endpoints", "default");
ObjectDescriptor object;
object.id = communicator->stringToIdentity("test");
object.type = "::Test::TestIntf";
adapter.objects.push_back(object);
server->adapters.push_back(adapter);
update.nodes[0].servers.push_back(server);
admin->updateApplication(update);
update.nodes[0].servers[0]->id = "Server2";
try
{
admin->updateApplication(update);
test(false);
}
catch(const DeploymentException&)
{
// Adapter already exists
}
catch(const Ice::Exception& ex)
{
cerr << ex << endl;
test(false);
}
update.nodes[0].servers[0]->adapters[0].id = "ServerAdapter2";
try
{
admin->updateApplication(update);
test(false);
}
catch(const DeploymentException&)
{
// Object already exists
}
catch(const Ice::Exception& ex)
{
cerr << ex << endl;
test(false);
}
update.nodes[0].servers[0]->adapters[0].objects[0].id = communicator->stringToIdentity("test2");
try
{
admin->updateApplication(update);
}
catch(const Ice::Exception& ex)
{
cerr << ex << endl;
test(false);
}
TemplateDescriptor templ;
templ.parameters.push_back("name");
templ.descriptor = new ServerDescriptor();
server = ServerDescriptorPtr::dynamicCast(templ.descriptor);
server->id = "${name}";
server->exe = "${test.dir}/server";
//.........这里部分代码省略.........
示例4: test
void
allTests(const Ice::CommunicatorPtr& communicator)
{
IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
AdminPrx admin = session->getAdmin();
test(admin);
Ice::PropertiesPtr properties = communicator->getProperties();
{
ApplicationDescriptor testApp;
testApp.name = "TestApp";
admin->addApplication(testApp);
ApplicationUpdateDescriptor empty;
empty.name = "TestApp";
NodeUpdateDescriptor node;
node.name = "localnode";
empty.nodes.push_back(node);
ApplicationUpdateDescriptor update = empty;
cout << "testing server add... " << flush;
ServerDescriptorPtr server = new ServerDescriptor();
server->id = "Server";
server->exe = properties->getProperty("ServerDir") + "/server";
server->pwd = ".";
server->applicationDistrib = false;
server->allocatable = false;
server->activation = "on-demand";
addProperty(server, "Ice.Admin.Endpoints", "tcp -h 127.0.0.1");
AdapterDescriptor adapter;
adapter.name = "Server";
adapter.id = "ServerAdapter";
adapter.registerProcess = false;
adapter.serverLifetime = true;
addProperty(server, "Server.Endpoints", "default");
ObjectDescriptor object;
object.id = communicator->stringToIdentity("${server}");
object.type = "::Test::TestIntf";
adapter.objects.push_back(object);
server->adapters.push_back(adapter);
update.nodes[0].servers.push_back(server);
admin->updateApplicationWithoutRestart(update);
admin->startServer("Server");
int serverPid = admin->getServerPid("Server");
update.nodes[0].servers[0]->id = "Server2";
update.nodes[0].servers[0]->adapters[0].id = "ServerAdapter2";
update.nodes[0].servers[0]->adapters[0].objects[0].id = communicator->stringToIdentity("test2");
try
{
admin->updateApplicationWithoutRestart(update);
}
catch(const DeploymentException& ex)
{
cerr << ex.reason << endl;
test(false);
}
catch(const Ice::Exception& ex)
{
cerr << ex << endl;
test(false);
}
admin->startServer("Server2");
int server2Pid = admin->getServerPid("Server2");
TemplateDescriptor templ;
templ.parameters.push_back("name");
templ.descriptor = new ServerDescriptor();
server = ServerDescriptorPtr::dynamicCast(templ.descriptor);
server->id = "${name}";
server->exe = "${server.dir}/server";
server->pwd = ".";
server->applicationDistrib = false;
server->allocatable = false;
server->activation = "on-demand";
addProperty(server, "Ice.Admin.Endpoints", "tcp -h 127.0.0.1");
adapter = AdapterDescriptor();
adapter.name = "Server";
adapter.id = "${server}";
adapter.registerProcess = false;
adapter.serverLifetime = true;
addProperty(server, "Server.Endpoints", "default");
object = ObjectDescriptor();
object.id = communicator->stringToIdentity("${server}");
object.type = "::Test::TestIntf";
adapter.objects.push_back(object);
server->adapters.push_back(adapter);
update = empty;
update.serverTemplates["ServerTemplate"] = templ;
try
{
//.........这里部分代码省略.........
示例5: test
//.........这里部分代码省略.........
// application descriptor...
//
// ApplicationDescriptor desc = admin->getApplicationDescriptor("test");
// test(desc.description == "APP AppVar");
// test(desc.nodes["localnode"].description == "NODE NodeVar");
// test(desc.replicaGroups[0].description == "REPLICA GROUP AppVar");
// test(desc.nodes["localnode"].servers.size() == 2);
// const int idx = desc.nodes["localnode"].servers[0]->id == "SimpleServer" ? 0 : 1;
ServerInfo info = admin->getServerInfo("SimpleServer");
test(info.descriptor->id == "SimpleServer");
test(info.descriptor->description == "SERVER NodeVar");
test(info.descriptor->adapters[0].description == "ADAPTER NodeVar");
test(info.descriptor->dbEnvs[0].description == "DBENV NodeVar");
cout << "ok" << endl;
cout << "testing property sets..." << flush;
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("AppProperty") == "AppVar");
test(obj->getProperty("AppProperty2") == "OverrideMe");
test(obj->getProperty("AppProperty21") == "Override");
test(obj->getProperty("NodeProperty") == "NodeVar");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("AppProperty") == "AppVar");
test(obj->getProperty("AppProperty2") == "OverrideMe");
test(obj->getProperty("AppProperty21") == "Override");
test(obj->getProperty("NodeProperty") == "NodeVar");
test(obj->getProperty("ServerInstanceProperty") == "Server2");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("AppProperty") == ""); // IceBox server properties aren't inherited for IceBox1
test(obj->getProperty("AppProperty2") == "");
test(obj->getProperty("AppProperty21") == "");
test(obj->getProperty("NodeProperty") == "");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("AppProperty") == "AppVar");
test(obj->getProperty("AppProperty2") == "OverrideMe");
test(obj->getProperty("AppProperty21") == "Override");
test(obj->getProperty("NodeProperty") == "NodeVar");
test(obj->getProperty("IceBoxInstanceProperty") == "IceBox2");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("AppProperty") == "AppVar");
test(obj->getProperty("AppProperty2") == "OverrideMe");
test(obj->getProperty("AppProperty21") == "Override");
test(obj->getProperty("NodeProperty") == "NodeVar");
test(obj->getProperty("IceBoxInstanceProperty") == "IceBox2");
test(obj->getProperty("ServiceInstanceProperty") == "Service2");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("AppProperty") == "AppVar");
test(obj->getProperty("AppProperty2") == "OverrideMe");
test(obj->getProperty("AppProperty21") == "Override");
test(obj->getProperty("NodeProperty") == "NodeVar");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("ServerInstanceServiceProperty") == "service1");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("ServerInstanceServiceProperty") == "service4");
obj = TestIntfPrx::checkedCast(comm->stringToProxy("[email protected]"));
test(obj->getProperty("IceBoxInstanceProperty") == "overriden");
cout << "ok" << endl;
cout << "testing validation... " << flush;
TemplateDescriptor templ;
templ.parameters.push_back("name");
templ.parameters.push_back("nam3");
templ.parameters.push_back("nam2");
templ.parameters.push_back("nam3");
templ.descriptor = new ServerDescriptor();
ServerDescriptorPtr server = ServerDescriptorPtr::dynamicCast(templ.descriptor);
server->id = "test";
server->exe = "${test.dir}/server";
server->applicationDistrib = false;
server->allocatable = false;
ApplicationDescriptor desc;
desc.name = "App";
desc.serverTemplates["ServerTemplate"] = templ;
try
{
admin->addApplication(desc);
test(false);
}
catch(const DeploymentException& ex)
{
test(ex.reason.find("duplicate parameters") != string::npos);
}
catch(const Ice::Exception& ex)
{
cerr << ex << endl;
test(false);
}
cout << "ok" << endl;
logTests(comm, session);
session->destroy();
}
示例6: test
//.........这里部分代码省略.........
};
cout << "ok" << endl;
cout << "testing replica group from different applications... " << flush;
{
map<string, string> params;
params["replicaGroup"] = "Random";
params["id"] = "Server1";
instantiateServer(admin, "Server", "localnode", params);
ApplicationUpdateDescriptor update;
update.name = "Test";
update.removeReplicaGroups.push_back("Random");
try
{
admin->updateApplication(update);
test(false);
}
catch(const DeploymentException&)
{
// The Random replica goup is used by Server1!
}
//
// Add an application Test1 without replica groups and a
// server that uses the Random replica group.
//
ApplicationInfo app = admin->getApplicationInfo("Test");
app.descriptor.name = "Test1";
app.descriptor.replicaGroups.clear();
app.descriptor.nodes.clear();
try
{
admin->addApplication(app.descriptor);
}
catch(const DeploymentException& ex)
{
cerr << ex << endl;
test(false);
}
params["id"] = "Server2";
instantiateServer(admin, "Server", "localnode", params, "Test1");
try
{
admin->removeApplication("Test");
test(false);
}
catch(const DeploymentException&)
{
// Test has a replica group referenced by the Test1 application.
}
TestIntfPrx obj = TestIntfPrx::uncheckedCast(comm->stringToProxy("Random"));
obj = TestIntfPrx::uncheckedCast(obj->ice_locatorCacheTimeout(0));
obj = TestIntfPrx::uncheckedCast(obj->ice_connectionCached(false));
set<string> replicaIds;
replicaIds.insert("Server1.ReplicatedAdapter");
replicaIds.insert("Server2.ReplicatedAdapter");
while(!replicaIds.empty())
{
try
{
replicaIds.erase(obj->getReplicaId());
}
catch(const Ice::LocalException& ex)