hammer_cli_foreman 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (364) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +5 -0
  3. data/README.md +1 -15
  4. data/doc/configuration.md +38 -0
  5. data/doc/developer_docs.md +4 -3
  6. data/doc/release_notes.md +18 -0
  7. data/doc/testing.md +133 -0
  8. data/lib/hammer_cli_foreman.rb +4 -2
  9. data/lib/hammer_cli_foreman/api/connection.rb +21 -7
  10. data/lib/hammer_cli_foreman/api/interactive_basic_auth.rb +1 -1
  11. data/lib/hammer_cli_foreman/api/session_authenticator_wrapper.rb +6 -1
  12. data/lib/hammer_cli_foreman/api/void_auth.rb +8 -0
  13. data/lib/hammer_cli_foreman/auth.rb +1 -1
  14. data/lib/hammer_cli_foreman/common_parameter.rb +1 -0
  15. data/lib/hammer_cli_foreman/config_group.rb +45 -0
  16. data/lib/hammer_cli_foreman/defaults.rb +6 -3
  17. data/lib/hammer_cli_foreman/exception_handler.rb +36 -7
  18. data/lib/hammer_cli_foreman/filter.rb +61 -0
  19. data/lib/hammer_cli_foreman/host.rb +7 -5
  20. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +17 -2
  21. data/lib/hammer_cli_foreman/output/fields.rb +3 -2
  22. data/lib/hammer_cli_foreman/output/formatters.rb +3 -2
  23. data/lib/hammer_cli_foreman/parameter.rb +5 -2
  24. data/lib/hammer_cli_foreman/references.rb +1 -1
  25. data/lib/hammer_cli_foreman/role.rb +18 -1
  26. data/lib/hammer_cli_foreman/template.rb +10 -10
  27. data/lib/hammer_cli_foreman/testing/api_expectations.rb +108 -8
  28. data/lib/hammer_cli_foreman/user.rb +25 -0
  29. data/lib/hammer_cli_foreman/version.rb +1 -1
  30. data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  31. data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  32. data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  33. data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  34. data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  35. data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  36. data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  37. data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  38. data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  39. data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  40. data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  41. data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  42. data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  43. data/test/data/1.14/_foreman_api.json +1 -0
  44. data/test/data/1.14/foreman_api.json +1 -0
  45. data/test/data/1.15/foreman_api.json +1 -0
  46. data/test/functional/host_test.rb +69 -1
  47. data/test/functional/role_test.rb +69 -0
  48. data/test/functional/template_test.rb +4 -4
  49. data/test/functional/test_helper.rb +0 -3
  50. data/test/functional/user_test.rb +85 -0
  51. data/test/test_helper.rb +4 -6
  52. data/test/unit/api/interactive_basic_auth_test.rb +2 -3
  53. data/test/unit/api/session_authenticator_wrapper_test.rb +24 -0
  54. data/test/unit/apipie_resource_mock.rb +180 -0
  55. data/test/unit/architecture_test.rb +3 -0
  56. data/test/unit/auth_source_ldap_test.rb +3 -0
  57. data/test/unit/commands_test.rb +2 -0
  58. data/test/unit/common_parameter_test.rb +13 -7
  59. data/test/unit/compute_resource_test.rb +6 -0
  60. data/test/unit/config_group_test.rb +72 -0
  61. data/test/unit/defaults_test.rb +28 -24
  62. data/test/unit/domain_test.rb +3 -0
  63. data/test/unit/environment_test.rb +3 -0
  64. data/test/unit/filter_test.rb +10 -2
  65. data/test/unit/host_test.rb +14 -1
  66. data/test/unit/hostgroup_test.rb +3 -0
  67. data/test/unit/image_test.rb +3 -0
  68. data/test/unit/media_test.rb +3 -0
  69. data/test/unit/model_test.rb +3 -0
  70. data/test/unit/partition_table_test.rb +3 -0
  71. data/test/unit/puppet_class_test.rb +3 -0
  72. data/test/unit/realm_test.rb +3 -0
  73. data/test/unit/report_test.rb +3 -0
  74. data/test/unit/smart_proxy_test.rb +3 -0
  75. data/test/unit/smart_variable_test.rb +0 -1
  76. data/test/unit/subnet_test.rb +3 -0
  77. data/test/unit/template_test.rb +9 -3
  78. data/test/unit/user_test.rb +6 -0
  79. data/test/unit/usergroup_test.rb +3 -0
  80. metadata +69 -577
  81. data/locale/Makefile +0 -57
  82. data/locale/README.md +0 -18
  83. data/locale/ca/hammer-cli-foreman.edit.po +0 -2910
  84. data/locale/ca/hammer-cli-foreman.po +0 -2823
  85. data/locale/ca/hammer-cli-foreman.po.time_stamp +0 -0
  86. data/locale/de/hammer-cli-foreman.edit.po +0 -2921
  87. data/locale/de/hammer-cli-foreman.po +0 -2827
  88. data/locale/de/hammer-cli-foreman.po.time_stamp +0 -0
  89. data/locale/en/hammer-cli-foreman.edit.po +0 -2865
  90. data/locale/en/hammer-cli-foreman.po +0 -2167
  91. data/locale/en/hammer-cli-foreman.po.time_stamp +0 -0
  92. data/locale/en_GB/hammer-cli-foreman.edit.po +0 -2888
  93. data/locale/en_GB/hammer-cli-foreman.po +0 -2825
  94. data/locale/en_GB/hammer-cli-foreman.po.time_stamp +0 -0
  95. data/locale/es/hammer-cli-foreman.edit.po +0 -2924
  96. data/locale/es/hammer-cli-foreman.po +0 -2829
  97. data/locale/es/hammer-cli-foreman.po.time_stamp +0 -0
  98. data/locale/fr/hammer-cli-foreman.edit.po +0 -2919
  99. data/locale/fr/hammer-cli-foreman.po +0 -2825
  100. data/locale/fr/hammer-cli-foreman.po.time_stamp +0 -0
  101. data/locale/hammer-cli-foreman.pot +0 -3080
  102. data/locale/it/hammer-cli-foreman.edit.po +0 -2909
  103. data/locale/it/hammer-cli-foreman.po +0 -2824
  104. data/locale/it/hammer-cli-foreman.po.time_stamp +0 -0
  105. data/locale/ja/hammer-cli-foreman.edit.po +0 -2919
  106. data/locale/ja/hammer-cli-foreman.po +0 -2824
  107. data/locale/ja/hammer-cli-foreman.po.time_stamp +0 -0
  108. data/locale/ko/hammer-cli-foreman.edit.po +0 -2917
  109. data/locale/ko/hammer-cli-foreman.po +0 -2823
  110. data/locale/ko/hammer-cli-foreman.po.time_stamp +0 -0
  111. data/locale/pt_BR/hammer-cli-foreman.edit.po +0 -2921
  112. data/locale/pt_BR/hammer-cli-foreman.po +0 -2826
  113. data/locale/pt_BR/hammer-cli-foreman.po.time_stamp +0 -0
  114. data/locale/ru/hammer-cli-foreman.edit.po +0 -2921
  115. data/locale/ru/hammer-cli-foreman.po +0 -2824
  116. data/locale/ru/hammer-cli-foreman.po.time_stamp +0 -0
  117. data/locale/zanata.xml +0 -28
  118. data/locale/zh_CN/hammer-cli-foreman.edit.po +0 -2917
  119. data/locale/zh_CN/hammer-cli-foreman.po +0 -2822
  120. data/locale/zh_CN/hammer-cli-foreman.po.time_stamp +0 -0
  121. data/locale/zh_TW/hammer-cli-foreman.edit.po +0 -2917
  122. data/locale/zh_TW/hammer-cli-foreman.po +0 -2822
  123. data/locale/zh_TW/hammer-cli-foreman.po.time_stamp +0 -0
  124. data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand-parameters.xml +0 -11
  125. data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand.xml +0 -7
  126. data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand-parameters.xml +0 -13
  127. data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand.xml +0 -7
  128. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-output.xml +0 -13
  129. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-parameters.xml +0 -13
  130. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand.xml +0 -7
  131. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-output.xml +0 -13
  132. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-parameters.xml +0 -17
  133. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand.xml +0 -7
  134. data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand-parameters.xml +0 -15
  135. data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand.xml +0 -7
  136. data/test/reports/TEST-HammerCLIForeman-Architecture.xml +0 -7
  137. data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand-parameters.xml +0 -11
  138. data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand.xml +0 -7
  139. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-output.xml +0 -13
  140. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-parameters.xml +0 -17
  141. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand.xml +0 -7
  142. data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand-parameters.xml +0 -13
  143. data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand.xml +0 -7
  144. data/test/reports/TEST-HammerCLIForeman-CommonParameter.xml +0 -7
  145. data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand-parameters.xml +0 -15
  146. data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand.xml +0 -7
  147. data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand-parameters.xml +0 -13
  148. data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand.xml +0 -7
  149. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-output.xml +0 -17
  150. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-parameters.xml +0 -13
  151. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand.xml +0 -7
  152. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-output.xml +0 -15
  153. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-parameters.xml +0 -17
  154. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand.xml +0 -7
  155. data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand-parameters.xml +0 -15
  156. data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand.xml +0 -7
  157. data/test/reports/TEST-HammerCLIForeman-ComputeResource.xml +0 -7
  158. data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand-parameters.xml +0 -11
  159. data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand.xml +0 -7
  160. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand-parameters.xml +0 -13
  161. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand.xml +0 -7
  162. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand-parameters.xml +0 -15
  163. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand.xml +0 -7
  164. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-output.xml +0 -21
  165. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-parameters.xml +0 -13
  166. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand.xml +0 -7
  167. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-output.xml +0 -13
  168. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-parameters.xml +0 -17
  169. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand.xml +0 -7
  170. data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand-parameters.xml +0 -17
  171. data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand.xml +0 -7
  172. data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand-parameters.xml +0 -15
  173. data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand.xml +0 -7
  174. data/test/reports/TEST-HammerCLIForeman-Domain.xml +0 -7
  175. data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand-parameters.xml +0 -11
  176. data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand.xml +0 -7
  177. data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand-parameters.xml +0 -13
  178. data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand.xml +0 -7
  179. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-output.xml +0 -17
  180. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-parameters.xml +0 -13
  181. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand.xml +0 -7
  182. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-output.xml +0 -13
  183. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-parameters.xml +0 -17
  184. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand.xml +0 -7
  185. data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand-parameters.xml +0 -15
  186. data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand.xml +0 -7
  187. data/test/reports/TEST-HammerCLIForeman-Environment.xml +0 -7
  188. data/test/reports/TEST-HammerCLIForeman-ExceptionHandler.xml +0 -13
  189. data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand-parameters.xml +0 -46
  190. data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand.xml +0 -7
  191. data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand-parameters.xml +0 -13
  192. data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand.xml +0 -7
  193. data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand-parameters.xml +0 -15
  194. data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand.xml +0 -7
  195. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-output.xml +0 -85
  196. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-parameters.xml +0 -13
  197. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand.xml +0 -7
  198. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-output.xml +0 -21
  199. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-parameters.xml +0 -17
  200. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand.xml +0 -7
  201. data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand-output.xml +0 -9
  202. data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand.xml +0 -7
  203. data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand-parameters.xml +0 -17
  204. data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand.xml +0 -7
  205. data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand-output.xml +0 -9
  206. data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand.xml +0 -7
  207. data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand-parameters.xml +0 -40
  208. data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand.xml +0 -7
  209. data/test/reports/TEST-HammerCLIForeman-Host.xml +0 -7
  210. data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand-parameters.xml +0 -11
  211. data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand.xml +0 -7
  212. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand-parameters.xml +0 -11
  213. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand.xml +0 -7
  214. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand-parameters.xml +0 -13
  215. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand.xml +0 -7
  216. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-output.xml +0 -29
  217. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-parameters.xml +0 -11
  218. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand.xml +0 -7
  219. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-output.xml +0 -27
  220. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-parameters.xml +0 -17
  221. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand.xml +0 -7
  222. data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand-parameters.xml +0 -15
  223. data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand.xml +0 -7
  224. data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand-parameters.xml +0 -13
  225. data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand.xml +0 -7
  226. data/test/reports/TEST-HammerCLIForeman-Hostgroup.xml +0 -7
  227. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-parameters.xml +0 -11
  228. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-resource-disabled.xml +0 -11
  229. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand.xml +0 -7
  230. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-parameters.xml +0 -13
  231. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-resource-disabled.xml +0 -11
  232. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand.xml +0 -7
  233. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-output.xml +0 -17
  234. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-parameters.xml +0 -13
  235. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-resource-disabled.xml +0 -11
  236. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand.xml +0 -7
  237. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-output.xml +0 -13
  238. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-parameters.xml +0 -17
  239. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-resource-disabled.xml +0 -11
  240. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand.xml +0 -7
  241. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-parameters.xml +0 -15
  242. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-resource-disabled.xml +0 -11
  243. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand.xml +0 -7
  244. data/test/reports/TEST-HammerCLIForeman-Location.xml +0 -7
  245. data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand-parameters.xml +0 -13
  246. data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand.xml +0 -7
  247. data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand-parameters.xml +0 -13
  248. data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand.xml +0 -7
  249. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-output.xml +0 -23
  250. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-parameters.xml +0 -13
  251. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand.xml +0 -7
  252. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-output.xml +0 -15
  253. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-parameters.xml +0 -17
  254. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand.xml +0 -7
  255. data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand-parameters.xml +0 -17
  256. data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand.xml +0 -7
  257. data/test/reports/TEST-HammerCLIForeman-Medium.xml +0 -7
  258. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand-parameters.xml +0 -11
  259. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand.xml +0 -7
  260. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand-parameters.xml +0 -13
  261. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand.xml +0 -7
  262. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand-parameters.xml +0 -13
  263. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand.xml +0 -7
  264. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-output.xml +0 -27
  265. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-parameters.xml +0 -13
  266. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand.xml +0 -7
  267. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-output.xml +0 -17
  268. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-parameters.xml +0 -17
  269. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand.xml +0 -7
  270. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand-parameters.xml +0 -15
  271. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand.xml +0 -7
  272. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand-parameters.xml +0 -17
  273. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand.xml +0 -7
  274. data/test/reports/TEST-HammerCLIForeman-OperatingSystem.xml +0 -7
  275. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-parameters.xml +0 -11
  276. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-resource-disabled.xml +0 -11
  277. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand.xml +0 -7
  278. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-parameters.xml +0 -13
  279. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-resource-disabled.xml +0 -11
  280. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand.xml +0 -7
  281. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-output.xml +0 -17
  282. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-parameters.xml +0 -13
  283. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-resource-disabled.xml +0 -11
  284. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand.xml +0 -7
  285. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-output.xml +0 -13
  286. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-parameters.xml +0 -17
  287. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-resource-disabled.xml +0 -11
  288. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand.xml +0 -7
  289. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-parameters.xml +0 -15
  290. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-resource-disabled.xml +0 -11
  291. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand.xml +0 -7
  292. data/test/reports/TEST-HammerCLIForeman-Organization.xml +0 -7
  293. data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand-parameters.xml +0 -13
  294. data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand.xml +0 -7
  295. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand-parameters.xml +0 -13
  296. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand.xml +0 -7
  297. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand-parameters.xml +0 -15
  298. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand.xml +0 -7
  299. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-output.xml +0 -19
  300. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-parameters.xml +0 -13
  301. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand.xml +0 -7
  302. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-output.xml +0 -15
  303. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-parameters.xml +0 -17
  304. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand.xml +0 -7
  305. data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand-parameters.xml +0 -13
  306. data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand.xml +0 -7
  307. data/test/reports/TEST-HammerCLIForeman-PartitionTable.xml +0 -7
  308. data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand-parameters.xml +0 -13
  309. data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand.xml +0 -7
  310. data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand-parameters.xml +0 -13
  311. data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand.xml +0 -7
  312. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-output.xml +0 -21
  313. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-parameters.xml +0 -13
  314. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand.xml +0 -7
  315. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-output.xml +0 -15
  316. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-parameters.xml +0 -11
  317. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand.xml +0 -7
  318. data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand-parameters.xml +0 -15
  319. data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand.xml +0 -7
  320. data/test/reports/TEST-HammerCLIForeman-SmartProxy.xml +0 -7
  321. data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand-parameters.xml +0 -15
  322. data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand.xml +0 -7
  323. data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand-parameters.xml +0 -13
  324. data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand.xml +0 -7
  325. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-output.xml +0 -43
  326. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-parameters.xml +0 -13
  327. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand.xml +0 -7
  328. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-output.xml +0 -17
  329. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-parameters.xml +0 -17
  330. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand.xml +0 -7
  331. data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand-parameters.xml +0 -15
  332. data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand.xml +0 -7
  333. data/test/reports/TEST-HammerCLIForeman-Subnet.xml +0 -7
  334. data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand-parameters.xml +0 -15
  335. data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand.xml +0 -7
  336. data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand-parameters.xml +0 -11
  337. data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand.xml +0 -7
  338. data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand-parameters.xml +0 -12
  339. data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand.xml +0 -7
  340. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-output.xml +0 -17
  341. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-parameters.xml +0 -11
  342. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand.xml +0 -7
  343. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-output.xml +0 -15
  344. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-parameters.xml +0 -17
  345. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand.xml +0 -7
  346. data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand-parameters.xml +0 -9
  347. data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand.xml +0 -7
  348. data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand-parameters.xml +0 -11
  349. data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand.xml +0 -7
  350. data/test/reports/TEST-HammerCLIForeman-Template.xml +0 -7
  351. data/test/reports/TEST-HammerCLIForeman-User-CreateCommand-parameters.xml +0 -19
  352. data/test/reports/TEST-HammerCLIForeman-User-CreateCommand.xml +0 -7
  353. data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand-parameters.xml +0 -11
  354. data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand.xml +0 -7
  355. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-output.xml +0 -23
  356. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-parameters.xml +0 -11
  357. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand.xml +0 -7
  358. data/test/reports/TEST-HammerCLIForeman-User-ListCommand-output.xml +0 -17
  359. data/test/reports/TEST-HammerCLIForeman-User-ListCommand-parameters.xml +0 -17
  360. data/test/reports/TEST-HammerCLIForeman-User-ListCommand.xml +0 -7
  361. data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand-parameters.xml +0 -11
  362. data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand.xml +0 -7
  363. data/test/reports/TEST-HammerCLIForeman-User.xml +0 -7
  364. data/test/reports/TEST-MiniTest-Spec.xml +0 -7
@@ -83,13 +83,42 @@ module HammerCLIForeman
83
83
  log_full_error e
84
84
  end
85
85
 
86
- def handle_apipie_docloading_error(e)
87
- rake_command = 'foreman-rake apipie:cache'
88
- print_error _("Could not load the API description from the server") + "\n - " +
89
- _("is the server down?") + "\n - " +
90
- _("was '%s' run on the server when using apipie cache? (typical production settings)") % rake_command
91
- log_full_error e
92
- HammerCLI::EX_CONFIG
86
+ def ssl_cert_instructions
87
+ host_url = HammerCLI::Settings.get(:_params, :host) || HammerCLI::Settings.get(:foreman, :host)
88
+ uri = URI.parse(host_url)
89
+ if uri.host.nil?
90
+ host = '<FOREMAN_HOST>'
91
+ cert_name = "#{host}.crt"
92
+ else
93
+ host = uri.to_s
94
+ cert_name = "#{uri.host}.crt"
95
+ end
96
+
97
+ cmd = "hammer --fetch-ca-cert #{host}"
98
+
99
+ rh_install_cmd = "install #{cert_name} /etc/pki/ca-trust/source/anchors/"
100
+ rh_update_cmd = "update-ca-trust"
101
+ deb_install_cmd = "install #{cert_name} /usr/local/share/ca-certificates/"
102
+ deb_update_cmd = "update-ca-certificates"
103
+
104
+ _("Make sure you configured the correct URL and have the server's CA certificate installed on your system.") + "\n\n" +
105
+ _("You can use hammer to fetch the CA certificate from the server. Be aware that hammer cannot verify whether the certificate is correct and you should verify its authenticity after downloading it.") +
106
+ "\n\n" +
107
+ _("Download the certificate and save it as a CRT file as follows:") +
108
+ "\n\n $ #{cmd} > #{cert_name}\n\n" +
109
+ _("As root install the certificate and update the list of trusted CA certificates as follows:") + "\n\n" +
110
+ " " + _("on Redhat systems") + ":\n" +
111
+ " $ #{rh_install_cmd}\n" +
112
+ " $ #{rh_update_cmd}\n\n" +
113
+ " " + _("on Debian systems") + ":\n" +
114
+ " $ #{deb_install_cmd}\n" +
115
+ " $ #{deb_update_cmd}\n\n" +
116
+ _("Alternatively you can save the CA certificate into a custom location and use option --ssl-ca-file or corresponding setting in your configuration file.") +
117
+ "\n"
118
+ end
119
+
120
+ def rake_command
121
+ "foreman-rake apipie:cache"
93
122
  end
94
123
 
95
124
  private
@@ -41,18 +41,79 @@ module HammerCLIForeman
41
41
  build_options
42
42
  end
43
43
 
44
+
45
+ module TaxonomyCheck
46
+ def taxonomy_options?
47
+ option_location_names || option_location_ids || option_organization_names || option_organization_ids
48
+ end
49
+
50
+ def signal_override_usage_error
51
+ signal_usage_error _('Organizations and locations can be set only for overriding filters')
52
+ end
53
+
54
+ def self.included(base)
55
+ base.extend_help do |h|
56
+ h.section('Overriding organizations and locations') do
57
+ override_condition = "--override=true"
58
+ org_opts = '--organization[s|-ids]'
59
+ loc_opts = '--location[s|-ids]'
60
+
61
+ h.text(_("Filters inherit organizations and locations from its role by default. This behavior can be changed by setting %{condition}\n"+
62
+ "Therefore options %{org_opts} and %{loc_opts} are applicable only when the override flag is set.") % {
63
+ :org_opts => org_opts,
64
+ :loc_opts => loc_opts,
65
+ :condition => override_condition
66
+ })
67
+ end
68
+ end
69
+ end
70
+ end
71
+
72
+
44
73
  class CreateCommand < HammerCLIForeman::CreateCommand
74
+ include TaxonomyCheck
75
+
45
76
  success_message _("Permission filter for [%<resource_type>s] created")
46
77
  failure_message _("Could not create the permission filter")
47
78
 
79
+ def execute
80
+ signal_override_usage_error if !option_override && taxonomy_options?
81
+ super
82
+ end
83
+
48
84
  build_options
49
85
  end
50
86
 
51
87
 
52
88
  class UpdateCommand < HammerCLIForeman::UpdateCommand
89
+ include TaxonomyCheck
90
+
53
91
  success_message _("Permission filter for [%<resource_type>s] updated")
54
92
  failure_message _("Could not update the permission filter")
55
93
 
94
+ def request_params
95
+ params = super
96
+ if override?
97
+ # Clear taxonomies in case the filter is switching override from true to false
98
+ params['filter']['location_ids'] = []
99
+ params['filter']['organization_ids'] = []
100
+ end
101
+ params
102
+ end
103
+
104
+ def execute
105
+ signal_override_usage_error if !override? && taxonomy_options?
106
+ super
107
+ end
108
+
109
+ def override?
110
+ option_override || filter['override?']
111
+ end
112
+
113
+ def filter
114
+ @filter ||= HammerCLIForeman.foreman_resource!(:filters).action(:show).call({ :id => option_id }, request_headers, request_options)
115
+ end
116
+
56
117
  build_options
57
118
  end
58
119
 
@@ -30,7 +30,7 @@ module HammerCLIForeman
30
30
  field :id, _("Id")
31
31
  field :name, _("Name")
32
32
  field nil, _("Operating System"), Fields::SingleReference, :key => :operatingsystem
33
- field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup
33
+ field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup, :display_field => 'title'
34
34
  field :ip, _("IP")
35
35
  field :mac, _("MAC")
36
36
  end
@@ -64,7 +64,7 @@ module HammerCLIForeman
64
64
  field :name, _("Name")
65
65
  field nil, _("Organization"), Fields::SingleReference, :key => :organization, :hide_blank => true
66
66
  field nil, _("Location"), Fields::SingleReference, :key => :location, :hide_blank => true
67
- field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup
67
+ field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup, :display_field => 'title'
68
68
  field nil, _("Compute Resource"), Fields::SingleReference, :key => :compute_resource
69
69
  field nil, _("Compute Profile"), Fields::SingleReference, :key => :compute_profile, :hide_blank => true
70
70
  field nil, _("Environment"), Fields::SingleReference, :key => :environment
@@ -235,8 +235,10 @@ module HammerCLIForeman
235
235
  super
236
236
  unless validator.any(:option_hostgroup_id, :option_hostgroup_name).exist?
237
237
  if option_managed
238
- validator.all(:option_architecture_id, :option_domain_id,
239
- :option_operatingsystem_id, :option_ptable_id).required
238
+ validator.any(:option_architecture_name, :option_architecture_id).required
239
+ validator.any(:option_domain_name, :option_domain_id).required
240
+ validator.any(:option_operatingsystem_title, :option_operatingsystem_id).required
241
+ validator.any(:option_ptable_name, :option_ptable_id).required
240
242
  end
241
243
  end
242
244
  end
@@ -321,7 +323,7 @@ module HammerCLIForeman
321
323
 
322
324
  def option_power_action
323
325
  if option_force?
324
- :cycle
326
+ :poweroff
325
327
  else
326
328
  :stop
327
329
  end
@@ -8,7 +8,10 @@ module HammerCLIForeman
8
8
  base.option "--owner-id", "OWNER_ID", _("ID of the owner"),
9
9
  :attribute_name => :option_user_id
10
10
 
11
- base.option "--root-password", "ROOT_PW", " "
11
+ base.option ["--root-password", "--root-pass"], "ROOT_PW",
12
+ _("Required if host is managed and value is not inherited from host group or default password in settings"),
13
+ :deprecated => { '--root-pass' => _("Use --root-password instead") }
14
+
12
15
  base.option "--ask-root-password", "ASK_ROOT_PW", " ",
13
16
  :format => HammerCLI::Options::Normalizers::Bool.new
14
17
 
@@ -48,7 +51,7 @@ module HammerCLIForeman
48
51
  :provision_method, :capabilities, :flavour_ref, :image_ref, :start,
49
52
  :network, :cpus, :memory, :provider, :type, :tenant_id, :image_id,
50
53
  # ----------------------------------------------------------------------------------
51
- :puppet_class_ids, :host_parameters_attributes, :interfaces_attributes]
54
+ :puppet_class_ids, :host_parameters_attributes, :interfaces_attributes, :root_pass]
52
55
  end
53
56
 
54
57
  def self.ask_password
@@ -100,6 +103,14 @@ module HammerCLIForeman
100
103
  resolver.puppetclass_ids('option_names' => names) if names
101
104
  end
102
105
 
106
+ def subnet_id(name)
107
+ resolver.subnet_id('option_name' => name) if name
108
+ end
109
+
110
+ def domain_id(name)
111
+ resolver.domain_id('option_name' => name) if name
112
+ end
113
+
103
114
  def parameter_attributes
104
115
  return {} unless option_parameters
105
116
  option_parameters.collect do |key, value|
@@ -132,6 +143,10 @@ module HammerCLIForeman
132
143
  compute_attributes[key.gsub('compute_', '')] = nic.delete(key)
133
144
  end
134
145
  end
146
+ subnet_name = nic.delete('subnet')
147
+ nic['subnet_id'] ||= subnet_id(subnet_name) if subnet_name
148
+ domain_name = nic.delete('domain')
149
+ nic['domain_id'] ||= domain_id(domain_name) if domain_name
135
150
  nic['compute_attributes'] = compute_attributes unless compute_attributes.empty?
136
151
  nic
137
152
  end
@@ -6,9 +6,10 @@ module Fields
6
6
 
7
7
  def display?(value)
8
8
  id_key = "#{parameters[:key]}_id"
9
- name_key = "#{parameters[:key]}_name"
9
+ display_field = parameters[:display_field] || 'name'
10
+ display_key = "#{parameters[:key]}_#{display_field}"
10
11
 
11
- (value[name_key.to_sym] || value[name_key]) && (value[id_key.to_sym] || value[id_key])
12
+ (value[display_key.to_sym] || value[display_key]) && (value[id_key.to_sym] || value[id_key])
12
13
  end
13
14
  end
14
15
 
@@ -11,11 +11,12 @@ module HammerCLIForeman::Output
11
11
  return "" if resource.nil?
12
12
 
13
13
  key = field_params[:key]
14
+ display_field = field_params[:display_field] || 'name'
14
15
 
15
16
  id_key = "#{key}_id"
16
- name_key = "#{key}_name"
17
+ display_key = "#{key}_#{display_field}"
17
18
 
18
- name = resource[name_key.to_sym] || resource[name_key]
19
+ name = resource[display_key.to_sym] || resource[display_key]
19
20
  id = resource[id_key.to_sym] || resource[id_key]
20
21
 
21
22
  context = field_params[:context] || {}
@@ -48,6 +48,7 @@ module HammerCLIForeman
48
48
  class SetCommand < AbstractParameterCommand
49
49
  option "--name", "NAME", _("parameter name"), :required => true
50
50
  option "--value", "VALUE", _("parameter value"), :required => true
51
+ option "--hidden-value", "HIDDEN_VALUE", _("should the value be hidden"), :format => HammerCLI::Options::Normalizers::Bool.new
51
52
 
52
53
  def self.command_name(name=nil)
53
54
  (super(name) || "set-parameter").gsub('_', '-')
@@ -72,7 +73,8 @@ module HammerCLIForeman
72
73
  params = {
73
74
  "id" => get_parameter_identifier,
74
75
  "parameter" => {
75
- "value" => option_value
76
+ "value" => option_value,
77
+ "hidden_value" => option_hidden_value
76
78
  }
77
79
  }.merge(base_action_params)
78
80
  HammerCLIForeman.record_to_common_format(parameter_resource.call(:update, params))
@@ -82,7 +84,8 @@ module HammerCLIForeman
82
84
  params = {
83
85
  "parameter" => {
84
86
  "name" => option_name,
85
- "value" => option_value
87
+ "value" => option_value,
88
+ "hidden_value" => option_hidden_value
86
89
  }
87
90
  }.merge(base_action_params)
88
91
 
@@ -99,7 +99,7 @@ module HammerCLIForeman
99
99
  def self.hostgroups(dsl)
100
100
  dsl.build do
101
101
  collection :hostgroups, _("Hostgroups"), :numbered => false do
102
- custom_field Fields::Reference
102
+ custom_field Fields::Reference, :name_key => :title
103
103
  end
104
104
  end
105
105
  end
@@ -35,7 +35,7 @@ module HammerCLIForeman
35
35
 
36
36
  def request_params
37
37
  role_id = get_resource_id(HammerCLIForeman.foreman_resource(:roles))
38
- { :search => "role_id = \"#{role_id}\"" }
38
+ super.merge({ :search => "role_id = \"#{role_id}\"" })
39
39
  end
40
40
 
41
41
  def extend_data(filter)
@@ -71,6 +71,23 @@ module HammerCLIForeman
71
71
  build_options
72
72
  end
73
73
 
74
+ class CloneCommand < HammerCLIForeman::UpdateCommand
75
+ action :clone
76
+
77
+ def self.command_name(name = "clone")
78
+ super(name)
79
+ end
80
+
81
+ validate_options do
82
+ option(:option_new_name).required
83
+ end
84
+
85
+ success_message _("User role cloned")
86
+ failure_message _("Could not clone the user role")
87
+
88
+ build_options
89
+ end
90
+
74
91
 
75
92
  class DeleteCommand < HammerCLIForeman::DeleteCommand
76
93
  success_message _("User role [%<name>s] deleted")
@@ -69,7 +69,7 @@ module HammerCLIForeman
69
69
  class ListKindsCommand < HammerCLIForeman::ListCommand
70
70
 
71
71
  command_name "kinds"
72
- desc _("List available config template kinds.")
72
+ desc _("List available provisioning template kinds.")
73
73
 
74
74
  output do
75
75
  field :name, _("Name")
@@ -88,7 +88,7 @@ module HammerCLIForeman
88
88
  class DumpCommand < HammerCLIForeman::InfoCommand
89
89
 
90
90
  command_name "dump"
91
- desc _("View config template content.")
91
+ desc _("View provisioning template content.")
92
92
 
93
93
  def print_data(template)
94
94
  puts template["template"]
@@ -104,8 +104,8 @@ module HammerCLIForeman
104
104
  :format => HammerCLI::Options::Normalizers::File.new
105
105
  option "--type", "TYPE", _("Template type. Eg. snippet, script, provision"), :required => true
106
106
 
107
- success_message _("Config template created")
108
- failure_message _("Could not create the config template")
107
+ success_message _("Provisioning template created")
108
+ failure_message _("Could not create the provisioning template")
109
109
 
110
110
  include TemplateCreateUpdateCommons
111
111
 
@@ -122,8 +122,8 @@ module HammerCLIForeman
122
122
  :format => HammerCLI::Options::Normalizers::File.new
123
123
  option "--type", "TYPE", _("Template type. Eg. snippet, script, provision")
124
124
 
125
- success_message _("Config template updated")
126
- failure_message _("Could not update the config template")
125
+ success_message _("Provisioning template updated")
126
+ failure_message _("Could not update the provisioning template")
127
127
 
128
128
  include TemplateCreateUpdateCommons
129
129
 
@@ -136,8 +136,8 @@ module HammerCLIForeman
136
136
 
137
137
  class DeleteCommand < HammerCLIForeman::DeleteCommand
138
138
 
139
- success_message _("Config template deleted")
140
- failure_message _("Could not delete the config template")
139
+ success_message _("Provisioning template deleted")
140
+ failure_message _("Could not delete the provisioning template")
141
141
 
142
142
  build_options
143
143
  end
@@ -161,8 +161,8 @@ module HammerCLIForeman
161
161
  action :clone
162
162
  command_name 'clone'
163
163
 
164
- success_message _('Config template cloned')
165
- failure_message _('Could not clone the config template')
164
+ success_message _('Provisioning template cloned')
165
+ failure_message _('Could not clone the provisioning template')
166
166
 
167
167
  validate_options do
168
168
  option(:option_new_name).required
@@ -1,11 +1,14 @@
1
1
  module HammerCLIForeman
2
2
  module Testing
3
3
  module APIExpectations
4
- class BlockMatcher < Mocha::ParameterMatchers::Base
4
+ class APICallMatcher < Mocha::ParameterMatchers::Base
5
+ attr_accessor :expected_params, :expected_resource, :expected_action, :block
6
+
5
7
  def initialize(resource=nil, action=nil, &block)
6
8
  @expected_resource = resource
7
9
  @expected_action = action
8
10
  @block = block if block_given?
11
+ @expected_params = {}
9
12
  end
10
13
 
11
14
  def matches?(actual_parameters)
@@ -17,6 +20,7 @@ module HammerCLIForeman
17
20
  result &&= (resource_name == @expected_resource.to_s) unless @expected_resource.nil?
18
21
  result &&= (action_name == @expected_action.to_s) unless @expected_action.nil?
19
22
  result &&= @block.call(params) if @block
23
+ result &&= assert_params(params)
20
24
  result
21
25
  end
22
26
 
@@ -26,28 +30,124 @@ module HammerCLIForeman
26
30
  blk = @block ? '&block' : '*any_argument'
27
31
  "#{res}, #{act}, #{blk}"
28
32
  end
33
+
34
+ protected
35
+ def assert_params(params)
36
+ params == deep_merge_hash(params, @expected_params)
37
+ end
38
+
39
+ def deep_merge_hash(h, other_h)
40
+ h = h.clone
41
+ h.merge!(other_h) do |key, old_val, new_val|
42
+ if old_val.is_a?(Hash) && new_val.is_a?(Hash)
43
+ deep_merge_hash(old_val, new_val)
44
+ else
45
+ new_val
46
+ end
47
+ end
48
+ end
29
49
  end
30
50
 
31
51
  module ExpectationExtensions
32
52
  def method_signature
33
- "#{@note}\n #{super}"
53
+ signature = "#{@note}\n #{super}"
54
+ if @api_call_matcher && !@api_call_matcher.expected_params.empty?
55
+ signature += "\n expected params to include: " + params_signature(@api_call_matcher.expected_params)
56
+ end
57
+ signature
58
+ end
59
+
60
+ def params_signature(hash)
61
+ JSON.pretty_generate(hash).split("\n").join("\n ")
34
62
  end
35
63
 
36
64
  def set_note(note)
37
65
  @note = note
38
66
  end
67
+
68
+ def with_params(expected_params = {}, &block)
69
+ api_call_matcher.expected_params = expected_params
70
+ api_call_matcher.block = block if block_given?
71
+ self.with(api_call_matcher)
72
+ self
73
+ end
74
+
75
+ def with_action(resource, action)
76
+ api_call_matcher.expected_resource = resource
77
+ api_call_matcher.expected_action = action
78
+ self.with(api_call_matcher)
79
+ self
80
+ end
81
+
82
+ def api_call_matcher
83
+ @api_call_matcher ||= APICallMatcher.new
84
+ end
85
+ end
86
+
87
+ class APIExpectationsDecorator < SimpleDelegator
88
+ def initialize(api_instance = ApipieBindings::API.any_instance)
89
+ @api_instance = api_instance
90
+ super
91
+ end
92
+
93
+ def expects_call(resource=nil, action=nil, note=nil, &block)
94
+ ex = @api_instance.expects(:call_action)
95
+ ex.extend(ExpectationExtensions)
96
+ ex.with_action(resource, action).with_params(&block)
97
+ ex.set_note(note)
98
+ ex
99
+ end
100
+
101
+ def expects_no_call
102
+ @api_instance.expects(:call_action).never
103
+ end
104
+
105
+ def expects_search(resource=nil, search_options={}, note=nil)
106
+ note ||= "Find #{resource}"
107
+
108
+ if search_options.is_a?(Hash)
109
+ search_query = search_options.map{|k, v| "#{k} = \"#{v}\"" }.join(" or ")
110
+ else
111
+ search_query = search_options
112
+ end
113
+
114
+ expects_call(resource, :index, note).with_params(:search => search_query)
115
+ end
116
+ end
117
+
118
+ class TestAuthenticator < ApipieBindings::Authenticators::BasicAuth
119
+ attr_reader :user
120
+ end
121
+
122
+ class FakeApiConnection < HammerCLI::Apipie::ApiConnection
123
+ attr_reader :authenticator
124
+
125
+ def initialize(params, options = {})
126
+ @authenticator = params[:authenticator]
127
+ super
128
+ end
129
+ end
130
+
131
+ def api_connection(options={}, version = '1.15')
132
+ FakeApiConnection.new({
133
+ :uri => 'https://test.org',
134
+ :apidoc_cache_dir => "test/data/#{version}",
135
+ :apidoc_cache_name => 'foreman_api',
136
+ :authenticator => TestAuthenticator.new('admin', 'changeme'),
137
+ :dry_run => true
138
+ }.merge(options))
39
139
  end
40
140
 
41
141
  def api_expects(resource=nil, action=nil, note=nil, &block)
42
- ex = ApipieBindings::API.any_instance.expects(:call_action)
43
- ex.extend(ExpectationExtensions)
44
- ex.with(BlockMatcher.new(resource, action, &block))
45
- ex.set_note(note)
46
- ex
142
+ APIExpectationsDecorator.new.expects_call(resource, action, note, &block)
47
143
  end
48
144
 
49
145
  def api_expects_no_call
50
- ApipieBindings::API.any_instance.expects(:call_action).never
146
+ APIExpectationsDecorator.new.expects_no_call
147
+ end
148
+
149
+ def api_expects_search(resource=nil, search_options={}, note=nil)
150
+ APIExpectationsDecorator.new.expects_search(resource, search_options, note)
51
151
  end
52
152
 
53
153
  def index_response(items, options={})