test_mapreduce2_client.py 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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.assertNoMoreResources()
  118. def test_configure_secured(self):
  119. self.executeScript("2.0.6/services/YARN/package/scripts/mapreduce2_client.py",
  120. classname = "MapReduce2Client",
  121. command = "configure",
  122. config_file="secured.json"
  123. )
  124. self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
  125. owner = 'yarn',
  126. group = 'hadoop',
  127. recursive = True,
  128. )
  129. self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
  130. owner = 'yarn',
  131. group = 'hadoop',
  132. recursive = True,
  133. )
  134. self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
  135. owner = 'mapred',
  136. group = 'hadoop',
  137. recursive = True,
  138. )
  139. self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
  140. owner = 'mapred',
  141. group = 'hadoop',
  142. recursive = True,
  143. )
  144. self.assertResourceCalled('Directory', '/hadoop/yarn/local',
  145. owner = 'yarn',
  146. recursive = True,
  147. ignore_failures = True,
  148. )
  149. self.assertResourceCalled('Directory', '/hadoop/yarn/log',
  150. owner = 'yarn',
  151. recursive = True,
  152. ignore_failures = True,
  153. )
  154. self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
  155. owner = 'yarn',
  156. recursive = True,
  157. ignore_failures = True,
  158. )
  159. self.assertResourceCalled('XmlConfig', 'core-site.xml',
  160. owner = 'hdfs',
  161. group = 'hadoop',
  162. mode = 0644,
  163. conf_dir = '/etc/hadoop/conf',
  164. configurations = self.getConfig()['configurations']['core-site'],
  165. )
  166. self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
  167. owner = 'yarn',
  168. group = 'hadoop',
  169. mode = 0644,
  170. conf_dir = '/etc/hadoop/conf',
  171. configurations = self.getConfig()['configurations']['mapred-site'],
  172. )
  173. self.assertResourceCalled('XmlConfig', 'yarn-site.xml',
  174. owner = 'yarn',
  175. group = 'hadoop',
  176. mode = 0644,
  177. conf_dir = '/etc/hadoop/conf',
  178. configurations = self.getConfig()['configurations']['yarn-site'],
  179. )
  180. self.assertResourceCalled('XmlConfig', 'capacity-scheduler.xml',
  181. owner = 'yarn',
  182. group = 'hadoop',
  183. mode = 0644,
  184. conf_dir = '/etc/hadoop/conf',
  185. configurations = self.getConfig()['configurations']['capacity-scheduler'],
  186. )
  187. self.assertResourceCalled('File', '/etc/hadoop/conf/yarn.exclude',
  188. owner = 'yarn',
  189. group = 'hadoop',
  190. )
  191. self.assertResourceCalled('File', '/etc/security/limits.d/yarn.conf',
  192. content = Template('yarn.conf.j2'),
  193. mode = 0644,
  194. )
  195. self.assertResourceCalled('File', '/etc/security/limits.d/mapreduce.conf',
  196. content = Template('mapreduce.conf.j2'),
  197. mode = 0644,
  198. )
  199. self.assertResourceCalled('File', '/etc/hadoop/conf/yarn-env.sh',
  200. content = Template('yarn-env.sh.j2'),
  201. owner = 'yarn',
  202. group = 'hadoop',
  203. mode = 0755,
  204. )
  205. self.assertResourceCalled('File', '/usr/lib/hadoop-yarn/bin/container-executor',
  206. group = 'hadoop',
  207. mode = 06050,
  208. )
  209. self.assertResourceCalled('File', '/etc/hadoop/conf/container-executor.cfg',
  210. content = Template('container-executor.cfg.j2'),
  211. group = 'hadoop',
  212. mode = 0644,
  213. )
  214. self.assertNoMoreResources()