mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2026-01-12 07:35:55 +01:00
2017-09-30 Fred Gleason <fredg@paravelsystems.com>
* Added static 'RDSvc::create()' and 'RDSvc::remove()' methods. * Implemented 'CreateService=' and 'NewServiceTemplate=' parameters in the [Provisioning] section of rd.conf(5).
This commit is contained in:
27
cae/cae.cpp
27
cae/cae.cpp
@@ -46,6 +46,7 @@
|
||||
#include <rdescape_string.h>
|
||||
#include <rddebug.h>
|
||||
#include <rdcmd_switch.h>
|
||||
#include <rdsvc.h>
|
||||
#include <rdsystem.h>
|
||||
|
||||
#include <cae_socket.h>
|
||||
@@ -581,6 +582,9 @@ void MainObject::InitProvisioning() const
|
||||
RDSqlQuery *q;
|
||||
QString err_msg;
|
||||
|
||||
//
|
||||
// Provision a Host
|
||||
//
|
||||
if(rd_config->provisioningCreateHost()) {
|
||||
if(!rd_config->provisioningHostTemplate().isEmpty()) {
|
||||
sql=QString("select NAME from STATIONS where ")+
|
||||
@@ -600,6 +604,29 @@ void MainObject::InitProvisioning() const
|
||||
delete q;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Provision a Service
|
||||
//
|
||||
if(rd_config->provisioningCreateService()) {
|
||||
if(!rd_config->provisioningServiceTemplate().isEmpty()) {
|
||||
sql=QString("select NAME from SERVICES where ")+
|
||||
"NAME=\""+RDEscapeString(rd_config->stationName())+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
if(!q->first()) {
|
||||
if(RDSvc::create(rd_config->stationName(),&err_msg,rd_config->provisioningServiceTemplate())) {
|
||||
syslog(LOG_INFO,"created new service entry \"%s\"",
|
||||
(const char *)rd_config->stationName());
|
||||
}
|
||||
else {
|
||||
fprintf(stderr,"caed: unable to provision service [%s]\n",
|
||||
(const char *)err_msg);
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user