deployutils.hpp 7.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*##############################################################################
  2. HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®.
  3. Licensed under the Apache License, Version 2.0 (the "License");
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. ############################################################################## */
  13. #ifndef DEPLOYUTILS_HPP_INCL
  14. #define DEPLOYUTILS_HPP_INCL
  15. #ifdef DEPLOYUTILS_EXPORTS
  16. #define DEPLOYUTILS_API DECL_EXPORT
  17. #else
  18. #define DEPLOYUTILS_API DECL_IMPORT
  19. #endif
  20. //disable the harmless warning about very long symbol names > 255 chars in debug mode
  21. //this is typical with STL
  22. #pragma warning( disable : 4786 )
  23. #include "jiface.hpp"
  24. #include "jthread.hpp"
  25. #include "environment.hpp"
  26. interface IPropertyTree;
  27. interface IProperties;
  28. interface IXslProcessor;
  29. interface IXslTransform;
  30. interface IConstEnvironment;
  31. interface IEnvDeploymentEngine;
  32. interface IDeploymentCallback;
  33. class StringAttr;
  34. class CWizardInputs;
  35. //---------------------------------------------------------------------------
  36. // Factory functions
  37. //---------------------------------------------------------------------------
  38. extern DEPLOYUTILS_API bool generateHeadersFromXsd(const IPropertyTree* pEnv, const char* xsdName, const char* jsName);
  39. extern DEPLOYUTILS_API bool generateHeaders(const IPropertyTree* pEnv, IConstEnvironment* pConstEnv);
  40. extern DEPLOYUTILS_API bool generateHeadersFromEnv(const IPropertyTree* pEnv, StringBuffer& sbDefn, bool writeOut = false);
  41. extern DEPLOYUTILS_API bool generateHardwareHeaders(const IPropertyTree* pEnv, StringBuffer& sbDefn, bool writeOut = false, IPropertyTree* pCompTree = NULL, bool bIncludeNAS = false);
  42. extern DEPLOYUTILS_API bool generateBuildHeaders(const IPropertyTree* pEnv, bool isPrograms, StringBuffer& sbDefn, bool writeOut = false);
  43. extern DEPLOYUTILS_API bool generateHeaderForTopology(const IPropertyTree* pEnv, StringBuffer& sbDefn, bool writeOut = false);
  44. extern DEPLOYUTILS_API bool generateHeadersForEnvSettings(const IPropertyTree* pEnv, StringBuffer& sbDefn, bool writeOut = false);
  45. extern DEPLOYUTILS_API bool generateHeadersForEnvXmlView(const IPropertyTree* pEnv, StringBuffer& sbDefn, bool writeOut = false);
  46. extern DEPLOYUTILS_API bool getComputersListWithUsage(const IPropertyTree* pEnv, StringBuffer& sbComputers, StringBuffer& sbFilter);
  47. extern DEPLOYUTILS_API IPropertyTree* generateTreeFromXsd(const IPropertyTree* pEnv, IPropertyTree* pSchema, const char* compName,
  48. const char* buildSetName, const IPropertyTree* pCfg, const char* servicename,
  49. bool allSubTypes = true, bool cloudFlag = false, CWizardInputs* pWInputs = NULL,
  50. bool forceOptional=false);
  51. extern DEPLOYUTILS_API bool checkComponentReferences(const IPropertyTree* pEnv, IPropertyTree* pCompNode, const char* compName, StringBuffer& sMsg, const char* szNewName=NULL);
  52. extern DEPLOYUTILS_API bool generateHeaderForComponent(const IPropertyTree* pEnv, IPropertyTree* pSchema, const char* compName);
  53. extern DEPLOYUTILS_API const char* getUniqueName(const IPropertyTree* pEnv, StringBuffer& sName, const char* xpath, const char* category);
  54. extern DEPLOYUTILS_API const char* getUniqueName2(const IPropertyTree* pEnv, StringBuffer& sName, const char* processName, const char* keyAttrib);
  55. extern DEPLOYUTILS_API void getTabNameArray(const IPropertyTree* pEnv, IPropertyTree* pSchema, const char* compName, StringArray& strArray);
  56. extern DEPLOYUTILS_API void getDefnPropTree(const IPropertyTree* pEnv, IPropertyTree* pSchema, const char* compName, IPropertyTree* pDefTree, StringBuffer xpath);
  57. extern DEPLOYUTILS_API void getDefnString(const IPropertyTree* pEnv, IPropertyTree* pSchema, const char* compName, StringBuffer& compDefn, StringBuffer& viewChildNodes, StringBuffer& multiRowNodes);
  58. extern DEPLOYUTILS_API IPropertyTree* getNewRange(const IPropertyTree* pEnvRoot, const char* prefix, const char* domain, const char* cType, const char* startIP, const char* endIP);
  59. extern DEPLOYUTILS_API void getCommonDir(const IPropertyTree* pEnv, const char* catType, const char* buildSetName, const char* compName, StringBuffer& sbVal);
  60. extern DEPLOYUTILS_API void deleteRecursive(const char* path);
  61. extern DEPLOYUTILS_API bool handleRoxieOperation(IPropertyTree* pEnv, const char* cmd, const char* xmlStr);
  62. extern DEPLOYUTILS_API bool handleThorTopologyOp(IPropertyTree* pEnv, const char* cmd, const char* xmlStr, StringBuffer& sMsg);
  63. extern DEPLOYUTILS_API void addComponentToEnv(IPropertyTree* pEnv, const char* buildSet, StringBuffer& sbNewName, IPropertyTree* pCompTree);
  64. extern DEPLOYUTILS_API bool onChangeAttribute(const IPropertyTree* pEnv, IConstEnvironment* pConstEnv, const char* attrName, IPropertyTree* pOnChange, IPropertyTree*& pNode, IPropertyTree* pParentNode,
  65. int position, const char* szNewValue, const char* prevValue, const char* buildset);
  66. extern DEPLOYUTILS_API bool xsltTransform(const StringBuffer& xml, const char* sheet, IProperties *params, StringBuffer& ret);
  67. extern DEPLOYUTILS_API void UpdateRefAttributes(IPropertyTree* pEnv, const char* szPath, const char* szAttr, const char* szOldVal, const char* szNewVal);
  68. extern DEPLOYUTILS_API bool ensureUniqueName(const IPropertyTree* pEnv, IPropertyTree* pParentNode, const char* szText);
  69. extern DEPLOYUTILS_API void addInstanceToCompTree(const IPropertyTree* pEnvRoot,const IPropertyTree* pInstance,StringBuffer& dups,StringBuffer& resp, IConstEnvironment* pConstEnv);
  70. extern DEPLOYUTILS_API void formIPList(const char* ip, StringArray& formattedIpList);
  71. extern DEPLOYUTILS_API void buildEnvFromWizard(const char * xml, const char* service,IPropertyTree* cfg, StringBuffer& envXml, StringArray& arrBuildSetWithAssignedIPs, StringArray& arrAssignedIPs, MapStringTo<StringBuffer>* dirMap=NULL);
  72. extern DEPLOYUTILS_API void runScript(StringBuffer& output, StringBuffer& errMsg, const char* pathToScript);
  73. extern DEPLOYUTILS_API bool validateIPS(const char* ipAddressList);
  74. extern DEPLOYUTILS_API void getSummary(const IPropertyTree* pEnvRoot, StringBuffer& respXmlStr , bool prepareLink);
  75. extern DEPLOYUTILS_API void mergeAttributes(IPropertyTree* pTo, IPropertyTree* pFrom);
  76. extern DEPLOYUTILS_API void addEspBindingInformation(const char* xmlArg, IPropertyTree* pEnvRoot, StringBuffer& sbNewName, IConstEnvironment* pConstEnvconst,
  77. const IPropertyTree* pCfg, const char* serviceName);
  78. extern DEPLOYUTILS_API bool updateDirsWithConfSettings(IPropertyTree* pEnvRoot, IProperties* pParams, bool ovrLog = true, bool ovrRun = true);
  79. extern DEPLOYUTILS_API bool validateEnv(IConstEnvironment* pConstEnv, bool abortOnException = true);
  80. #endif