114 lines
3.8 KiB
C++
114 lines
3.8 KiB
C++
|
|
#include <QApplication>
|
|
#include <QCommandLineParser>
|
|
#include <QDesktopServices>
|
|
#include <QUrl>
|
|
|
|
#include "common/QtAppGlobalSet.h"
|
|
#include "pub_sysinfo_api/SysInfoApi.h"
|
|
#include "pub_sysinfo_api/SysInfoBase.h"
|
|
|
|
using namespace iot_public;
|
|
|
|
std::string m_ServerNode[2];
|
|
std::string m_ServerAddr[2];
|
|
bool m_changeAddr = false;
|
|
int m_addrNum = 0;
|
|
QString m_ip;
|
|
enum CommandLineParseResult
|
|
{
|
|
CommandLineOk,
|
|
CommandLineError,
|
|
CommandLineVersionRequested,
|
|
CommandLineHelpRequested
|
|
};
|
|
|
|
CommandLineParseResult parseCommandline(QApplication& app)
|
|
{
|
|
QCommandLineParser parser;
|
|
parser.addHelpOption();
|
|
|
|
//是否升级数据库
|
|
m_ip = "";
|
|
QCommandLineOption _ip(QStringList() << "ip","ip","ip");
|
|
parser.addOption(_ip);
|
|
|
|
parser.process(app);
|
|
m_ip = parser.value(_ip);
|
|
return CommandLineOk;
|
|
}
|
|
|
|
void initIp()
|
|
{
|
|
CSysInfoInterfacePtr sysInfoPtr;
|
|
if (createSysInfoInstance(sysInfoPtr))
|
|
{
|
|
SNodeInfo LocalNode,ServerNode1,ServerNode2;
|
|
sysInfoPtr->getLocalNodeInfo(LocalNode); //获取当前节点信息
|
|
int DomainId=LocalNode.nDomainId; //获取当前节点所属域ID
|
|
SAppInfo AppInfo;
|
|
sysInfoPtr->getAppInfoByName("COMAPP", AppInfo);
|
|
int AppId = AppInfo.nId;
|
|
SAppDeploy AppDeploy;
|
|
sysInfoPtr->getAppDeployById(DomainId,AppId,AppDeploy); //获取当前域公共应用部署信息
|
|
std::string ServerNodeName1 = AppDeploy.strNode1; //获取当前域公共应用部署的第一个节点名
|
|
sysInfoPtr->getNodeInfoByName(ServerNodeName1,ServerNode1); //获取公共应用部署的节点信息
|
|
m_ServerAddr[0] = ServerNode1.strNic1Addr; //获取公共应用部署的节点IP地址
|
|
m_ServerNode[0] = ServerNodeName1;
|
|
if(AppDeploy.strNode2 != "")
|
|
{
|
|
std::string ServerNodeName2 = AppDeploy.strNode2;
|
|
sysInfoPtr->getNodeInfoByName(ServerNodeName2,ServerNode2);
|
|
m_ServerAddr[1] = ServerNode2.strNic1Addr;
|
|
m_ServerNode[1] = ServerNodeName2;
|
|
m_changeAddr = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
iot_common::doQtAppGlobalSet();
|
|
|
|
QApplication a(argc, argv);
|
|
initIp();
|
|
switch (parseCommandline(a)) {
|
|
case CommandLineError:
|
|
qApp->quit();
|
|
exit(1);
|
|
break;
|
|
case CommandLineOk:
|
|
if(m_ip.isEmpty())
|
|
{
|
|
if(m_changeAddr && m_ServerAddr[1] !="")
|
|
{
|
|
QString addr = QString("http://%1:1120/page/design.html").arg(QString::fromStdString(m_ServerAddr[1]));
|
|
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
|
|
}else if(m_changeAddr && m_ServerAddr[1] =="")
|
|
{
|
|
QString addr = QString("http://127.0.0.1:1120/page/design.html");
|
|
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
|
|
}else if(!m_changeAddr && m_ServerAddr[0] !="")
|
|
{
|
|
QString addr = QString("http://%1:1120/page/design.html").arg(QString::fromStdString(m_ServerAddr[0]));
|
|
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
|
|
}else if(!m_changeAddr && m_ServerAddr[0] =="")
|
|
{
|
|
QString addr = QString("http://127.0.0.1:1120/page/design.html");
|
|
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
|
|
}
|
|
}else
|
|
{
|
|
QString addr = QString("http://%1:1120/page/design.html").arg(m_ip);
|
|
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
|
|
}
|
|
qApp->quit();
|
|
exit(0);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return a.exec();
|
|
}
|