Commit bba24a8b authored by Andrea Bignamini's avatar Andrea Bignamini
Browse files

Merge branch 'release/v1.1.0'

parents 0d8d7fd3 3ecc4879
......@@ -3,6 +3,8 @@ EXEC_NAME=dataImporter-srv
INST_NAME=test
DEBUG_LEV=-v3
INSTALL_DIR=/usr/local/bin
VERSION := `git describe --tags`
TAR_NAME := `basename $(PWD)`
#================================================================================
INC_DIR=/usr/local/omniORB/include \
/usr/local/zeromq/include/zmq \
......@@ -29,7 +31,7 @@ LDFLAGS=-Wall -lomniORB4 -lomniDynamic4 -lCOS4 -lomnithread -ltango -llog4tango
-lboost_filesystem -lboost_date_time -lprotobuf -lssl -lcrypto -lpthread
INC_PARM=$(foreach d, $(INC_DIR), -I$d)
LIB_PARM=$(foreach d, $(LIB_DIR), -L$d)
PROTOC :=/usr/local/protobuf-2.5.0/bin/protoc
PROTOC :=/usr/local/protobuf/bin/protoc
#================================================================================
SRC_DIR=./src
OBJ_DIR=./obj
......@@ -91,6 +93,10 @@ deepclean:
install:
-cp $(EXECUTABLE) $(INSTALL_DIR)
.PHONY: tar
tar:
-tar -czvf $(TAR_NAME)_$(VERSION).tar.gz --transform="s|^.|$(TAR_NAME)_$(VERSION)/|" $(PROTO_DIR) $(SRC_DIR) ./Makefile
.PHONY: echo
echo:
@echo EXECUTABLE:
......
......@@ -21,6 +21,7 @@ private:
Configuration(std::string certificateFile, std::string storagePath,
std::string remoteHost, unsigned int remotePort,
std::string remoteUsername, std::string remotePassword,
std::string remoteSchema, std::string remoteTable,
std::string databaseHost, unsigned int databasePort,
std::string databaseUsername, std::string databasePassword,
std::string databaseSchema, std::string databaseTable,
......@@ -32,6 +33,7 @@ private:
m_certificateFile (certificateFile), m_storagePath(storagePath),
m_remoteHost(remoteHost), m_remotePort(remotePort),
m_remoteUsername(remoteUsername), m_remotePassword(remotePassword),
m_remoteSchema(remoteSchema), m_remoteTable(remoteTable),
m_databaseHost(databaseHost), m_databasePort(databasePort),
m_databaseUsername(databaseUsername),
m_databasePassword(databasePassword), m_databaseSchema(databaseSchema),
......@@ -62,6 +64,7 @@ public:
static Configuration::SP create(std::string certificateFile,
std::string storagePath, std::string remoteHost, unsigned int remotePort,
std::string remoteUsername, std::string remotePassword,
std::string remoteSchema, std::string remoteTable,
std::string databaseHost, unsigned int databasePort,
std::string databaseUsername, std::string databasePassword,
std::string databaseSchema, std::string databaseTable,
......@@ -72,7 +75,7 @@ public:
std::string auxDatabaseFailedTable, std::string whereCondition)
{
Configuration::SP c_sp(new Configuration(certificateFile, storagePath,
remoteHost, remotePort, remoteUsername, remotePassword, databaseHost,
remoteHost, remotePort, remoteUsername, remotePassword, remoteSchema, remoteTable, databaseHost,
databasePort, databaseUsername, databasePassword, databaseSchema,
databaseTable, refreshTime, timeout, recoveryTime, auxDatabaseHost,
auxDatabasePort, auxDatabaseUsername, auxDatabasePassword,
......@@ -91,6 +94,8 @@ public:
unsigned int getRemotePort() const { return m_remotePort; }
std::string getRemoteUsername() const { return m_remoteUsername; }
std::string getRemotePassword() const { return m_remotePassword; }
std::string getRemoteSchema() const { return m_remoteSchema; }
std::string getRemoteTable() const { return m_remoteTable; }
std::string getDatabaseHost() const { return m_databaseHost; }
unsigned int getDatabasePort() const { return m_databasePort; }
std::string getDatabaseUsername() const { return m_databaseUsername; }
......@@ -131,6 +136,12 @@ private:
//Metadata exporter remote password
const std::string m_remotePassword;
//Metadata remote database schema
const std::string m_remoteSchema;
//Metadata remote database table
const std::string m_remoteTable;
//Metadata local database host
const std::string m_databaseHost;
......
......@@ -220,6 +220,8 @@ void DataImporter::get_device_property()
dev_prop.push_back(Tango::DbDatum("RemotePort"));
dev_prop.push_back(Tango::DbDatum("RemoteUsername"));
dev_prop.push_back(Tango::DbDatum("RemotePassword"));
dev_prop.push_back(Tango::DbDatum("RemoteSchema"));
dev_prop.push_back(Tango::DbDatum("RemoteTable"));
dev_prop.push_back(Tango::DbDatum("EnableSSL"));
dev_prop.push_back(Tango::DbDatum("DatabaseHost"));
dev_prop.push_back(Tango::DbDatum("DatabasePort"));
......@@ -319,6 +321,28 @@ void DataImporter::get_device_property()
// And try to extract RemotePassword value from database
if (dev_prop[i].is_empty()==false) dev_prop[i] >> remotePassword;
// Try to initialize RemoteSchema from class property
cl_prop = ds_class->get_class_property(dev_prop[++i].name);
if (cl_prop.is_empty()==false) cl_prop >> remoteSchema;
else {
// Try to initialize RemoteSchema from default device value
def_prop = ds_class->get_default_device_property(dev_prop[i].name);
if (def_prop.is_empty()==false) def_prop >> remoteSchema;
}
// And try to extract RemoteSchema value from database
if (dev_prop[i].is_empty()==false) dev_prop[i] >> remoteSchema;
// Try to initialize RemoteTable from class property
cl_prop = ds_class->get_class_property(dev_prop[++i].name);
if (cl_prop.is_empty()==false) cl_prop >> remoteTable;
else {
// Try to initialize RemoteTable from default device value
def_prop = ds_class->get_default_device_property(dev_prop[i].name);
if (def_prop.is_empty()==false) def_prop >> remoteTable;
}
// And try to extract RemoteTable value from database
if (dev_prop[i].is_empty()==false) dev_prop[i] >> remoteTable;
// Try to initialize EnableSSL from class property
cl_prop = ds_class->get_class_property(dev_prop[++i].name);
if (cl_prop.is_empty()==false) cl_prop >> enableSSL;
......@@ -559,6 +583,14 @@ void DataImporter::get_device_property()
if(remotePassword.empty())
throw(invalid_argument("RemotePassword property is empty or not defined"));
// If remoteSchema is not set, use databaseSchema
if(remoteSchema.empty())
remoteSchema=databaseSchema;
// If remoteTable is not set, use databaseTable
if(remoteTable.empty())
remoteTable=databaseTable;
if(databaseHost.empty())
throw(invalid_argument("DatabaseHost property is empty or not defined"));
......@@ -608,7 +640,7 @@ void DataImporter::get_device_property()
throw(invalid_argument("AuxDatabaseFailedTable property is empty or not defined"));
m_configuration_sp = Configuration::create(certificateFile, storagePath,
remoteHost, remotePort, remoteUsername, remotePassword, databaseHost,
remoteHost, remotePort, remoteUsername, remotePassword, remoteSchema, remoteTable, databaseHost,
databasePort, databaseUsername, databasePassword, databaseSchema,
databaseTable, refreshTime, timeout, recoveryTime, auxDatabaseHost,
auxDatabasePort, auxDatabaseUsername, auxDatabasePassword,
......
......@@ -107,6 +107,10 @@ public:
string remoteUsername;
// RemotePassword: Metadata exporter remote password
string remotePassword;
// RemoteSchema: Metadata remote database schema
string remoteSchema;
// RemoteTable: Metadata remote database table
string remoteTable;
// EnableSSL: Enable or disable SSL connections
Tango::DevBoolean enableSSL;
// DatabaseHost: Metadata local database host
......
......@@ -65,6 +65,14 @@
<type xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</deviceProperties>
<deviceProperties name="RemoteSchema" description="Metadata remote database schema">
<type xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</deviceProperties>
<deviceProperties name="RemoteTable" description="Metadata remote database table">
<type xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</deviceProperties>
<deviceProperties name="EnableSSL" description="Enable or disable SSL connections">
<type xsi:type="pogoDsl:BooleanType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
......
......@@ -684,6 +684,19 @@ void DataImporterClass::set_default_property()
dev_def_prop.push_back(data);
add_wiz_dev_prop(prop_name, prop_desc, prop_def);
}
else
add_wiz_dev_prop(prop_name, prop_desc);
prop_name = "RemoteSchema";
prop_desc = "Metadata remote database schema";
prop_def = "";
vect_data.clear();
if (prop_def.length()>0)
{
Tango::DbDatum data(prop_name);
data << vect_data ;
dev_def_prop.push_back(data);
add_wiz_dev_prop(prop_name, prop_desc, prop_def);
}
else
add_wiz_dev_prop(prop_name, prop_desc);
prop_name = "DatabaseSchema";
......@@ -697,6 +710,19 @@ void DataImporterClass::set_default_property()
dev_def_prop.push_back(data);
add_wiz_dev_prop(prop_name, prop_desc, prop_def);
}
else
add_wiz_dev_prop(prop_name, prop_desc);
prop_name = "RemoteTable";
prop_desc = "Metadata remote database table";
prop_def = "";
vect_data.clear();
if (prop_def.length()>0)
{
Tango::DbDatum data(prop_name);
data << vect_data ;
dev_def_prop.push_back(data);
add_wiz_dev_prop(prop_name, prop_desc, prop_def);
}
else
add_wiz_dev_prop(prop_name, prop_desc);
prop_name = "DatabaseTable";
......
......@@ -382,8 +382,8 @@ RequestSP ProtocolManager::fillRequest(DBManager::FileRowset::const_iterator it)
request_sp->set_username(m_configuration_sp->getDatabaseUsername());
request_sp->set_password(m_configuration_sp->getDatabasePassword());
request_sp->set_schema(m_configuration_sp->getDatabaseSchema());
request_sp->set_table(m_configuration_sp->getDatabaseTable());
request_sp->set_schema(m_configuration_sp->getRemoteSchema());
request_sp->set_table(m_configuration_sp->getRemoteTable());
if(!it->get<2>())
throw std::runtime_error("Empty file version found");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment