AmbariConfig.py 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. #!/usr/bin/env python2.6
  2. '''
  3. Licensed to the Apache Software Foundation (ASF) under one
  4. or more contributor license agreements. See the NOTICE file
  5. distributed with this work for additional information
  6. regarding copyright ownership. The ASF licenses this file
  7. to you under the Apache License, Version 2.0 (the
  8. "License"); you may not use this file except in compliance
  9. with the License. You may obtain a copy of the License at
  10. http://www.apache.org/licenses/LICENSE-2.0
  11. Unless required by applicable law or agreed to in writing, software
  12. distributed under the License is distributed on an "AS IS" BASIS,
  13. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. See the License for the specific language governing permissions and
  15. limitations under the License.
  16. '''
  17. import logging
  18. import logging.handlers
  19. import ConfigParser
  20. import StringIO
  21. config = ConfigParser.RawConfigParser()
  22. content = """
  23. [server]
  24. hostname=localhost
  25. url_port=8440
  26. secured_url_port=8441
  27. [agent]
  28. prefix=/tmp/ambari-agent
  29. [services]
  30. [stack]
  31. installprefix=/tmp
  32. upgradeScriptsDir=/var/lib/ambari-agent/upgrade_stack
  33. [puppet]
  34. puppetmodules=/var/lib/ambari-agent/puppet/
  35. puppet_home=/root/workspace/puppet-install/puppet-2.7.9
  36. facter_home=/root/workspace/puppet-install/facter-1.6.10
  37. [command]
  38. maxretries=2
  39. sleepBetweenRetries=1
  40. [security]
  41. keysdir=/tmp/ambari-agent
  42. server_crt=ca.crt
  43. passphrase_env_var_name=AMBARI_PASSPHRASE
  44. [heartbeat]
  45. state_interval = 6
  46. dirs=/etc/hadoop,/etc/hadoop/conf,/var/run/hadoop,/var/log/hadoop
  47. rpms=hadoop,openssl,wget,net-snmp,ntpd,ruby,ganglia,nagios
  48. """
  49. s = StringIO.StringIO(content)
  50. config.readfp(s)
  51. imports = [
  52. "hdp/manifests/*.pp",
  53. "hdp-hadoop/manifests/*.pp",
  54. "hdp-hbase/manifests/*.pp",
  55. "hdp-zookeeper/manifests/*.pp",
  56. "hdp-oozie/manifests/*.pp",
  57. "hdp-pig/manifests/*.pp",
  58. "hdp-sqoop/manifests/*.pp",
  59. "hdp-templeton/manifests/*.pp",
  60. "hdp-hive/manifests/*.pp",
  61. "hdp-hcat/manifests/*.pp",
  62. "hdp-mysql/manifests/*.pp",
  63. "hdp-monitor-webserver/manifests/*.pp",
  64. "hdp-repos/manifests/*.pp"
  65. ]
  66. rolesToClass = {
  67. 'NAMENODE': 'hdp-hadoop::namenode',
  68. 'DATANODE': 'hdp-hadoop::datanode',
  69. 'SECONDARY_NAMENODE': 'hdp-hadoop::snamenode',
  70. 'JOBTRACKER': 'hdp-hadoop::jobtracker',
  71. 'TASKTRACKER': 'hdp-hadoop::tasktracker',
  72. 'HDFS_CLIENT': 'hdp-hadoop::client',
  73. 'MAPREDUCE_CLIENT': 'hdp-hadoop::client',
  74. 'ZOOKEEPER_SERVER': 'hdp-zookeeper',
  75. 'ZOOKEEPER_CLIENT': 'hdp-zookeeper::client',
  76. 'HBASE_MASTER': 'hdp-hbase::master',
  77. 'HBASE_REGIONSERVER': 'hdp-hbase::regionserver',
  78. 'HBASE_CLIENT': 'hdp-hbase::client',
  79. 'PIG': 'hdp-pig',
  80. 'SQOOP': 'hdp-sqoop',
  81. 'OOZIE_SERVER': 'hdp-oozie::server',
  82. 'OOZIE_CLIENT': 'hdp-oozie::client',
  83. 'HIVE_CLIENT': 'hdp-hive::client',
  84. 'HCAT': 'hdp-hcat',
  85. 'HIVE_SERVER': 'hdp-hive::server',
  86. 'HIVE_METASTORE': 'hdp-hive::metastore',
  87. 'MYSQL_SERVER': 'hdp-mysql::server',
  88. 'WEBHCAT_SERVER': 'hdp-templeton::server',
  89. 'DASHBOARD': 'hdp-dashboard',
  90. 'NAGIOS_SERVER': 'hdp-nagios::server',
  91. 'GANGLIA_SERVER': 'hdp-ganglia::server',
  92. 'GANGLIA_MONITOR': 'hdp-ganglia::monitor',
  93. 'HTTPD': 'hdp-monitor-webserver',
  94. 'HUE_SERVER': 'hdp-hue::server',
  95. 'HDFS_SERVICE_CHECK': 'hdp-hadoop::hdfs::service_check',
  96. 'MAPREDUCE_SERVICE_CHECK': 'hdp-hadoop::mapred::service_check',
  97. 'ZOOKEEPER_SERVICE_CHECK': 'hdp-zookeeper::zookeeper::service_check',
  98. 'ZOOKEEPER_QUORUM_SERVICE_CHECK': 'hdp-zookeeper::quorum::service_check',
  99. 'HBASE_SERVICE_CHECK': 'hdp-hbase::hbase::service_check',
  100. 'HIVE_SERVICE_CHECK': 'hdp-hive::hive::service_check',
  101. 'HCAT_SERVICE_CHECK': 'hdp-hcat::hcat::service_check',
  102. 'OOZIE_SERVICE_CHECK': 'hdp-oozie::oozie::service_check',
  103. 'PIG_SERVICE_CHECK': 'hdp-pig::pig::service_check',
  104. 'SQOOP_SERVICE_CHECK': 'hdp-sqoop::sqoop::service_check',
  105. 'WEBHCAT_SERVICE_CHECK': 'hdp-templeton::templeton::service_check',
  106. 'DASHBOARD_SERVICE_CHECK': 'hdp-dashboard::dashboard::service_check',
  107. 'DECOMMISSION_DATANODE': 'hdp-hadoop::hdfs::decommission',
  108. 'HUE_SERVICE_CHECK': 'hdp-hue::service_check'
  109. }
  110. serviceStates = {
  111. 'START': 'running',
  112. 'INSTALL': 'installed_and_configured',
  113. 'STOP': 'stopped'
  114. }
  115. servicesToPidNames = {
  116. 'NAMENODE': 'hadoop-[A-Za-z0-9_]+-namenode.pid$',
  117. 'SECONDARY_NAMENODE': 'hadoop-[A-Za-z0-9_]+-secondarynamenode.pid$',
  118. 'DATANODE': 'hadoop-[A-Za-z0-9_]+-datanode.pid$',
  119. 'JOBTRACKER': 'hadoop-[A-Za-z0-9_]+-jobtracker.pid$',
  120. 'TASKTRACKER': 'hadoop-[A-Za-z0-9_]+-tasktracker.pid$',
  121. 'OOZIE_SERVER': 'oozie.pid',
  122. 'ZOOKEEPER_SERVER': 'zookeeper_server.pid',
  123. 'TEMPLETON_SERVER': 'templeton.pid',
  124. 'NAGIOS_SERVER': 'nagios.pid',
  125. 'GANGLIA_SERVER': 'gmetad.pid',
  126. 'GANGLIA_MONITOR': 'gmond.pid',
  127. 'HBASE_MASTER': 'hbase-[A-Za-z0-9_]+-master.pid',
  128. 'HBASE_REGIONSERVER': 'hbase-[A-Za-z0-9_]+-regionserver.pid',
  129. 'HCATALOG_SERVER': 'webhcat.pid',
  130. 'KERBEROS_SERVER': 'kadmind.pid',
  131. 'HIVE_SERVER': 'hive-server.pid',
  132. 'HIVE_METASTORE': 'hive.pid',
  133. 'MYSQL_SERVER': 'mysqld.pid'
  134. }
  135. pidPathesVars = [
  136. {'var' : 'hadoop_pid_dir_prefix',
  137. 'defaultValue' : '/var/run/hadoop'},
  138. {'var' : 'hadoop_pid_dir_prefix',
  139. 'defaultValue' : '/var/run/hadoop'},
  140. {'var' : 'ganglia_runtime_dir',
  141. 'defaultValue' : '/var/run/ganglia/hdp'},
  142. {'var' : 'hbase_pid_dir',
  143. 'defaultValue' : '/var/run/hbase'},
  144. {'var' : '',
  145. 'defaultValue' : '/var/run/nagios'},
  146. {'var' : 'zk_pid_dir',
  147. 'defaultValue' : '/var/run/zookeeper'},
  148. {'var' : 'oozie_pid_dir',
  149. 'defaultValue' : '/var/run/oozie'},
  150. {'var' : 'hcat_pid_dir',
  151. 'defaultValue' : '/var/run/webhcat'},
  152. {'var' : 'hive_pid_dir',
  153. 'defaultValue' : '/var/run/hive'},
  154. {'var' : 'mysqld_pid_dir',
  155. 'defaultValue' : '/var/run/mysqld'}
  156. ]
  157. class AmbariConfig:
  158. def getConfig(self):
  159. global config
  160. return config
  161. def getImports(self):
  162. global imports
  163. return imports
  164. def getRolesToClass(self):
  165. global rolesToClass
  166. return rolesToClass
  167. def getServiceStates(self):
  168. global serviceStates
  169. return serviceStates
  170. def getServicesToPidNames(self):
  171. global servicesToPidNames
  172. return servicesToPidNames
  173. def getPidPathesVars(self):
  174. global pidPathesVars
  175. return pidPathesVars
  176. def setConfig(customConfig):
  177. global config
  178. config = customConfig
  179. def main():
  180. print config
  181. if __name__ == "__main__":
  182. main()