test_mapreduce2_client.py 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. #!/usr/bin/env python
  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. from mock.mock import MagicMock, call, patch
  18. from stacks.utils.RMFTestCase import *
  19. class TestMapReduce2Client(RMFTestCase):
  20. def test_configure_default(self):
  21. self.executeScript("2.0.6/services/YARN/package/scripts/mapreduce2_client.py",
  22. classname = "MapReduce2Client",
  23. command = "configure",
  24. config_file="default.json"
  25. )
  26. self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
  27. owner = 'yarn',
  28. group = 'hadoop',
  29. recursive = True,
  30. )
  31. self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
  32. owner = 'yarn',
  33. group = 'hadoop',
  34. recursive = True,
  35. )
  36. self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
  37. owner = 'mapred',
  38. group = 'hadoop',
  39. recursive = True,
  40. )
  41. self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
  42. owner = 'mapred',
  43. group = 'hadoop',
  44. recursive = True,
  45. )
  46. self.assertResourceCalled('Directory', '/hadoop/yarn/local',
  47. owner = 'yarn',
  48. recursive = True,
  49. ignore_failures = True,
  50. )
  51. self.assertResourceCalled('Directory', '/hadoop/yarn/local1',
  52. owner = 'yarn',
  53. recursive = True,
  54. ignore_failures = True,
  55. )
  56. self.assertResourceCalled('Directory', '/hadoop/yarn/log',
  57. owner = 'yarn',
  58. recursive = True,
  59. ignore_failures = True,
  60. )
  61. self.assertResourceCalled('Directory', '/hadoop/yarn/log1',
  62. owner = 'yarn',
  63. recursive = True,
  64. ignore_failures = True,
  65. )
  66. self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
  67. owner = 'yarn',
  68. recursive = True,
  69. ignore_failures = True,
  70. )
  71. self.assertResourceCalled('XmlConfig', 'core-site.xml',
  72. owner = 'hdfs',
  73. group = 'hadoop',
  74. mode = 0644,
  75. conf_dir = '/etc/hadoop/conf',
  76. configurations = self.getConfig()['configurations']['core-site'],
  77. )
  78. self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
  79. owner = 'yarn',
  80. group = 'hadoop',
  81. mode = 0644,
  82. conf_dir = '/etc/hadoop/conf',
  83. configurations = self.getConfig()['configurations']['mapred-site'],
  84. )
  85. self.assertResourceCalled('XmlConfig', 'yarn-site.xml',
  86. owner = 'yarn',
  87. group = 'hadoop',
  88. mode = 0644,
  89. conf_dir = '/etc/hadoop/conf',
  90. configurations = self.getConfig()['configurations']['yarn-site'],
  91. )
  92. self.assertResourceCalled('XmlConfig', 'capacity-scheduler.xml',
  93. owner = 'yarn',
  94. group = 'hadoop',
  95. mode = 0644,
  96. conf_dir = '/etc/hadoop/conf',
  97. configurations = self.getConfig()['configurations']['capacity-scheduler'],
  98. )
  99. self.assertResourceCalled('File', '/etc/hadoop/conf/yarn.exclude',
  100. owner = 'yarn',
  101. group = 'hadoop',
  102. )
  103. self.assertResourceCalled('File', '/etc/security/limits.d/yarn.conf',
  104. content = Template('yarn.conf.j2'),
  105. mode = 0644,
  106. )
  107. self.assertResourceCalled('File', '/etc/security/limits.d/mapreduce.conf',
  108. content = Template('mapreduce.conf.j2'),
  109. mode = 0644,
  110. )
  111. self.assertResourceCalled('File', '/etc/hadoop/conf/yarn-env.sh',
  112. content = Template('yarn-env.sh.j2'),
  113. owner = 'yarn',
  114. group = 'hadoop',
  115. mode = 0755,
  116. )
  117. self.assertResourceCalled('File', '/etc/hadoop/conf/taskcontroller.cfg',
  118. content = Template('taskcontroller.cfg.j2'),
  119. owner = 'hdfs',
  120. )
  121. self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
  122. owner = 'mapred',
  123. group = 'hadoop',
  124. conf_dir = '/etc/hadoop/conf',
  125. configurations = self.getConfig()['configurations']['mapred-site'],
  126. )
  127. self.assertResourceCalled('XmlConfig', 'capacity-scheduler.xml',
  128. owner = 'hdfs',
  129. group = 'hadoop',
  130. conf_dir = '/etc/hadoop/conf',
  131. configurations = self.getConfig()['configurations']['capacity-scheduler'],
  132. )
  133. self.assertNoMoreResources()
  134. def test_configure_secured(self):
  135. self.executeScript("2.0.6/services/YARN/package/scripts/mapreduce2_client.py",
  136. classname = "MapReduce2Client",
  137. command = "configure",
  138. config_file="secured.json"
  139. )
  140. self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
  141. owner = 'yarn',
  142. group = 'hadoop',
  143. recursive = True,
  144. )
  145. self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
  146. owner = 'yarn',
  147. group = 'hadoop',
  148. recursive = True,
  149. )
  150. self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
  151. owner = 'mapred',
  152. group = 'hadoop',
  153. recursive = True,
  154. )
  155. self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
  156. owner = 'mapred',
  157. group = 'hadoop',
  158. recursive = True,
  159. )
  160. self.assertResourceCalled('Directory', '/hadoop/yarn/local',
  161. owner = 'yarn',
  162. recursive = True,
  163. ignore_failures = True,
  164. )
  165. self.assertResourceCalled('Directory', '/hadoop/yarn/log',
  166. owner = 'yarn',
  167. recursive = True,
  168. ignore_failures = True,
  169. )
  170. self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
  171. owner = 'yarn',
  172. recursive = True,
  173. ignore_failures = True,
  174. )
  175. self.assertResourceCalled('XmlConfig', 'core-site.xml',
  176. owner = 'hdfs',
  177. group = 'hadoop',
  178. mode = 0644,
  179. conf_dir = '/etc/hadoop/conf',
  180. configurations = self.getConfig()['configurations']['core-site'],
  181. )
  182. self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
  183. owner = 'yarn',
  184. group = 'hadoop',
  185. mode = 0644,
  186. conf_dir = '/etc/hadoop/conf',
  187. configurations = self.getConfig()['configurations']['mapred-site'],
  188. )
  189. self.assertResourceCalled('XmlConfig', 'yarn-site.xml',
  190. owner = 'yarn',
  191. group = 'hadoop',
  192. mode = 0644,
  193. conf_dir = '/etc/hadoop/conf',
  194. configurations = self.getConfig()['configurations']['yarn-site'],
  195. )
  196. self.assertResourceCalled('XmlConfig', 'capacity-scheduler.xml',
  197. owner = 'yarn',
  198. group = 'hadoop',
  199. mode = 0644,
  200. conf_dir = '/etc/hadoop/conf',
  201. configurations = self.getConfig()['configurations']['capacity-scheduler'],
  202. )
  203. self.assertResourceCalled('File', '/etc/hadoop/conf/yarn.exclude',
  204. owner = 'yarn',
  205. group = 'hadoop',
  206. )
  207. self.assertResourceCalled('File', '/etc/security/limits.d/yarn.conf',
  208. content = Template('yarn.conf.j2'),
  209. mode = 0644,
  210. )
  211. self.assertResourceCalled('File', '/etc/security/limits.d/mapreduce.conf',
  212. content = Template('mapreduce.conf.j2'),
  213. mode = 0644,
  214. )
  215. self.assertResourceCalled('File', '/etc/hadoop/conf/yarn-env.sh',
  216. content = Template('yarn-env.sh.j2'),
  217. owner = 'yarn',
  218. group = 'hadoop',
  219. mode = 0755,
  220. )
  221. self.assertResourceCalled('File', '/usr/lib/hadoop-yarn/bin/container-executor',
  222. group = 'hadoop',
  223. mode = 06050,
  224. )
  225. self.assertResourceCalled('File', '/etc/hadoop/conf/container-executor.cfg',
  226. content = Template('container-executor.cfg.j2'),
  227. group = 'hadoop',
  228. mode = 0644,
  229. )
  230. self.assertResourceCalled('File', '/usr/lib/hadoop/sbin/task-controller',
  231. owner = 'root',
  232. group = 'hadoop',
  233. mode = 06050,
  234. )
  235. self.assertResourceCalled('File', '/etc/hadoop/conf/taskcontroller.cfg',
  236. content = Template('taskcontroller.cfg.j2'),
  237. owner = 'root',
  238. group = 'hadoop',
  239. mode = 0644,
  240. )
  241. self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
  242. owner = 'mapred',
  243. group = 'hadoop',
  244. conf_dir = '/etc/hadoop/conf',
  245. configurations = self.getConfig()['configurations']['mapred-site'],
  246. )
  247. self.assertResourceCalled('XmlConfig', 'capacity-scheduler.xml',
  248. owner = 'hdfs',
  249. group = 'hadoop',
  250. conf_dir = '/etc/hadoop/conf',
  251. configurations = self.getConfig()['configurations']['capacity-scheduler'],
  252. )
  253. self.assertNoMoreResources()