hammer_cli_foreman 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. checksums.yaml +4 -4
  2. data/doc/configuration.md +2 -2
  3. data/doc/name_id_resolution.md +26 -1
  4. data/doc/release_notes.md +24 -0
  5. data/lib/hammer_cli_foreman.rb +30 -29
  6. data/lib/hammer_cli_foreman/api/connection.rb +1 -1
  7. data/lib/hammer_cli_foreman/api/interactive_basic_auth.rb +3 -3
  8. data/lib/hammer_cli_foreman/api/session_authenticator_wrapper.rb +9 -8
  9. data/lib/hammer_cli_foreman/api/void_auth.rb +7 -0
  10. data/lib/hammer_cli_foreman/architecture.rb +3 -5
  11. data/lib/hammer_cli_foreman/associating_commands.rb +32 -32
  12. data/lib/hammer_cli_foreman/auth.rb +2 -2
  13. data/lib/hammer_cli_foreman/auth_source_ldap.rb +4 -4
  14. data/lib/hammer_cli_foreman/commands.rb +23 -55
  15. data/lib/hammer_cli_foreman/common_parameter.rb +5 -5
  16. data/lib/hammer_cli_foreman/compute_resource.rb +17 -7
  17. data/lib/hammer_cli_foreman/config_group.rb +3 -3
  18. data/lib/hammer_cli_foreman/domain.rb +6 -8
  19. data/lib/hammer_cli_foreman/environment.rb +3 -3
  20. data/lib/hammer_cli_foreman/exception_handler.rb +27 -4
  21. data/lib/hammer_cli_foreman/external_usergroup.rb +3 -4
  22. data/lib/hammer_cli_foreman/filter.rb +20 -21
  23. data/lib/hammer_cli_foreman/host.rb +43 -18
  24. data/lib/hammer_cli_foreman/hostgroup.rb +24 -19
  25. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +4 -6
  26. data/lib/hammer_cli_foreman/id_resolver.rb +86 -50
  27. data/lib/hammer_cli_foreman/image.rb +3 -4
  28. data/lib/hammer_cli_foreman/interface.rb +7 -9
  29. data/lib/hammer_cli_foreman/location.rb +6 -9
  30. data/lib/hammer_cli_foreman/media.rb +3 -6
  31. data/lib/hammer_cli_foreman/model.rb +3 -6
  32. data/lib/hammer_cli_foreman/operating_system.rb +11 -12
  33. data/lib/hammer_cli_foreman/option_sources.rb +4 -0
  34. data/lib/hammer_cli_foreman/option_sources/id_params.rb +51 -0
  35. data/lib/hammer_cli_foreman/option_sources/ids_params.rb +30 -0
  36. data/lib/hammer_cli_foreman/option_sources/self_param.rb +16 -0
  37. data/lib/hammer_cli_foreman/option_sources/user_params.rb +59 -0
  38. data/lib/hammer_cli_foreman/organization.rb +6 -9
  39. data/lib/hammer_cli_foreman/output/formatters.rb +1 -1
  40. data/lib/hammer_cli_foreman/parameter.rb +3 -5
  41. data/lib/hammer_cli_foreman/partition_table.rb +5 -6
  42. data/lib/hammer_cli_foreman/realm.rb +3 -3
  43. data/lib/hammer_cli_foreman/report.rb +1 -4
  44. data/lib/hammer_cli_foreman/role.rb +4 -7
  45. data/lib/hammer_cli_foreman/settings.rb +1 -1
  46. data/lib/hammer_cli_foreman/smart_class_parameter.rb +24 -14
  47. data/lib/hammer_cli_foreman/smart_proxy.rb +5 -7
  48. data/lib/hammer_cli_foreman/smart_variable.rb +24 -12
  49. data/lib/hammer_cli_foreman/ssh_keys.rb +56 -0
  50. data/lib/hammer_cli_foreman/subnet.rb +6 -9
  51. data/lib/hammer_cli_foreman/template.rb +16 -9
  52. data/lib/hammer_cli_foreman/user.rb +10 -52
  53. data/lib/hammer_cli_foreman/usergroup.rb +3 -3
  54. data/lib/hammer_cli_foreman/version.rb +1 -1
  55. data/test/data/1.15/foreman_api.json +1 -1
  56. data/test/data/1.16/foreman_api.json +1 -0
  57. data/test/functional/compute_resource_test.rb +117 -0
  58. data/test/functional/filter_test.rb +2 -2
  59. data/test/functional/host_test.rb +61 -10
  60. data/test/functional/location_test.rb +5 -5
  61. data/test/functional/organization_test.rb +7 -7
  62. data/test/functional/role_test.rb +3 -3
  63. data/test/functional/smart_class_parameter_test.rb +5 -5
  64. data/test/functional/smart_variable_test.rb +1 -1
  65. data/test/functional/ssh_keys_test.rb +105 -0
  66. data/test/functional/template_test.rb +30 -4
  67. data/test/functional/user_test.rb +5 -5
  68. data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand-parameters.xml +11 -0
  69. data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand.xml +7 -0
  70. data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand-parameters.xml +13 -0
  71. data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand.xml +7 -0
  72. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-output.xml +13 -0
  73. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-parameters.xml +13 -0
  74. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand.xml +7 -0
  75. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-output.xml +13 -0
  76. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-parameters.xml +17 -0
  77. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand.xml +7 -0
  78. data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand-parameters.xml +15 -0
  79. data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand.xml +7 -0
  80. data/test/reports/TEST-HammerCLIForeman-Architecture.xml +7 -0
  81. data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand-parameters.xml +11 -0
  82. data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand.xml +7 -0
  83. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-output.xml +13 -0
  84. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-parameters.xml +17 -0
  85. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand.xml +7 -0
  86. data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand-parameters.xml +13 -0
  87. data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand.xml +7 -0
  88. data/test/reports/TEST-HammerCLIForeman-CommonParameter.xml +7 -0
  89. data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand-parameters.xml +15 -0
  90. data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand.xml +7 -0
  91. data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand-parameters.xml +13 -0
  92. data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand.xml +7 -0
  93. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-output.xml +17 -0
  94. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-parameters.xml +13 -0
  95. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand.xml +7 -0
  96. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-output.xml +15 -0
  97. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-parameters.xml +17 -0
  98. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand.xml +7 -0
  99. data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand-parameters.xml +15 -0
  100. data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand.xml +7 -0
  101. data/test/reports/TEST-HammerCLIForeman-ComputeResource.xml +7 -0
  102. data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand-parameters.xml +11 -0
  103. data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand.xml +7 -0
  104. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand-parameters.xml +13 -0
  105. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand.xml +7 -0
  106. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand-parameters.xml +15 -0
  107. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand.xml +7 -0
  108. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-output.xml +21 -0
  109. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-parameters.xml +13 -0
  110. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand.xml +7 -0
  111. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-output.xml +13 -0
  112. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-parameters.xml +17 -0
  113. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand.xml +7 -0
  114. data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand-parameters.xml +17 -0
  115. data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand.xml +7 -0
  116. data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand-parameters.xml +15 -0
  117. data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand.xml +7 -0
  118. data/test/reports/TEST-HammerCLIForeman-Domain.xml +7 -0
  119. data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand-parameters.xml +11 -0
  120. data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand.xml +7 -0
  121. data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand-parameters.xml +13 -0
  122. data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand.xml +7 -0
  123. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-output.xml +17 -0
  124. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-parameters.xml +13 -0
  125. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand.xml +7 -0
  126. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-output.xml +13 -0
  127. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-parameters.xml +17 -0
  128. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand.xml +7 -0
  129. data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand-parameters.xml +15 -0
  130. data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand.xml +7 -0
  131. data/test/reports/TEST-HammerCLIForeman-Environment.xml +7 -0
  132. data/test/reports/TEST-HammerCLIForeman-ExceptionHandler.xml +13 -0
  133. data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand-parameters.xml +46 -0
  134. data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand.xml +7 -0
  135. data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand-parameters.xml +13 -0
  136. data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand.xml +7 -0
  137. data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand-parameters.xml +15 -0
  138. data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand.xml +7 -0
  139. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-output.xml +85 -0
  140. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-parameters.xml +13 -0
  141. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand.xml +7 -0
  142. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-output.xml +21 -0
  143. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-parameters.xml +17 -0
  144. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand.xml +7 -0
  145. data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand-output.xml +9 -0
  146. data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand.xml +7 -0
  147. data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand-parameters.xml +17 -0
  148. data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand.xml +7 -0
  149. data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand-output.xml +9 -0
  150. data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand.xml +7 -0
  151. data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand-parameters.xml +40 -0
  152. data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand.xml +7 -0
  153. data/test/reports/TEST-HammerCLIForeman-Host.xml +7 -0
  154. data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand-parameters.xml +11 -0
  155. data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand.xml +7 -0
  156. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand-parameters.xml +11 -0
  157. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand.xml +7 -0
  158. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand-parameters.xml +13 -0
  159. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand.xml +7 -0
  160. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-output.xml +29 -0
  161. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-parameters.xml +11 -0
  162. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand.xml +7 -0
  163. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-output.xml +27 -0
  164. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-parameters.xml +17 -0
  165. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand.xml +7 -0
  166. data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand-parameters.xml +15 -0
  167. data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand.xml +7 -0
  168. data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand-parameters.xml +13 -0
  169. data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand.xml +7 -0
  170. data/test/reports/TEST-HammerCLIForeman-Hostgroup.xml +7 -0
  171. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-parameters.xml +11 -0
  172. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-resource-disabled.xml +11 -0
  173. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand.xml +7 -0
  174. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-parameters.xml +13 -0
  175. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-resource-disabled.xml +11 -0
  176. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand.xml +7 -0
  177. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-output.xml +17 -0
  178. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-parameters.xml +13 -0
  179. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-resource-disabled.xml +11 -0
  180. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand.xml +7 -0
  181. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-output.xml +13 -0
  182. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-parameters.xml +17 -0
  183. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-resource-disabled.xml +11 -0
  184. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand.xml +7 -0
  185. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-parameters.xml +15 -0
  186. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-resource-disabled.xml +11 -0
  187. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand.xml +7 -0
  188. data/test/reports/TEST-HammerCLIForeman-Location.xml +7 -0
  189. data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand-parameters.xml +13 -0
  190. data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand.xml +7 -0
  191. data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand-parameters.xml +13 -0
  192. data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand.xml +7 -0
  193. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-output.xml +23 -0
  194. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-parameters.xml +13 -0
  195. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand.xml +7 -0
  196. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-output.xml +15 -0
  197. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-parameters.xml +17 -0
  198. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand.xml +7 -0
  199. data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand-parameters.xml +17 -0
  200. data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand.xml +7 -0
  201. data/test/reports/TEST-HammerCLIForeman-Medium.xml +7 -0
  202. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand-parameters.xml +11 -0
  203. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand.xml +7 -0
  204. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand-parameters.xml +13 -0
  205. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand.xml +7 -0
  206. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand-parameters.xml +13 -0
  207. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand.xml +7 -0
  208. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-output.xml +27 -0
  209. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-parameters.xml +13 -0
  210. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand.xml +7 -0
  211. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-output.xml +17 -0
  212. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-parameters.xml +17 -0
  213. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand.xml +7 -0
  214. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand-parameters.xml +15 -0
  215. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand.xml +7 -0
  216. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand-parameters.xml +17 -0
  217. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand.xml +7 -0
  218. data/test/reports/TEST-HammerCLIForeman-OperatingSystem.xml +7 -0
  219. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-parameters.xml +11 -0
  220. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-resource-disabled.xml +11 -0
  221. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand.xml +7 -0
  222. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-parameters.xml +13 -0
  223. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-resource-disabled.xml +11 -0
  224. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand.xml +7 -0
  225. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-output.xml +17 -0
  226. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-parameters.xml +13 -0
  227. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-resource-disabled.xml +11 -0
  228. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand.xml +7 -0
  229. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-output.xml +13 -0
  230. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-parameters.xml +17 -0
  231. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-resource-disabled.xml +11 -0
  232. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand.xml +7 -0
  233. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-parameters.xml +15 -0
  234. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-resource-disabled.xml +11 -0
  235. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand.xml +7 -0
  236. data/test/reports/TEST-HammerCLIForeman-Organization.xml +7 -0
  237. data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand-parameters.xml +13 -0
  238. data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand.xml +7 -0
  239. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand-parameters.xml +13 -0
  240. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand.xml +7 -0
  241. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand-parameters.xml +15 -0
  242. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand.xml +7 -0
  243. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-output.xml +19 -0
  244. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-parameters.xml +13 -0
  245. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand.xml +7 -0
  246. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-output.xml +15 -0
  247. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-parameters.xml +17 -0
  248. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand.xml +7 -0
  249. data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand-parameters.xml +13 -0
  250. data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand.xml +7 -0
  251. data/test/reports/TEST-HammerCLIForeman-PartitionTable.xml +7 -0
  252. data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand-parameters.xml +13 -0
  253. data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand.xml +7 -0
  254. data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand-parameters.xml +13 -0
  255. data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand.xml +7 -0
  256. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-output.xml +21 -0
  257. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-parameters.xml +13 -0
  258. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand.xml +7 -0
  259. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-output.xml +15 -0
  260. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-parameters.xml +11 -0
  261. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand.xml +7 -0
  262. data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand-parameters.xml +15 -0
  263. data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand.xml +7 -0
  264. data/test/reports/TEST-HammerCLIForeman-SmartProxy.xml +7 -0
  265. data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand-parameters.xml +15 -0
  266. data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand.xml +7 -0
  267. data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand-parameters.xml +13 -0
  268. data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand.xml +7 -0
  269. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-output.xml +43 -0
  270. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-parameters.xml +13 -0
  271. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand.xml +7 -0
  272. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-output.xml +17 -0
  273. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-parameters.xml +17 -0
  274. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand.xml +7 -0
  275. data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand-parameters.xml +15 -0
  276. data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand.xml +7 -0
  277. data/test/reports/TEST-HammerCLIForeman-Subnet.xml +7 -0
  278. data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand-parameters.xml +15 -0
  279. data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand.xml +7 -0
  280. data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand-parameters.xml +11 -0
  281. data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand.xml +7 -0
  282. data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand-parameters.xml +12 -0
  283. data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand.xml +7 -0
  284. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-output.xml +17 -0
  285. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-parameters.xml +11 -0
  286. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand.xml +7 -0
  287. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-output.xml +15 -0
  288. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-parameters.xml +17 -0
  289. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand.xml +7 -0
  290. data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand-parameters.xml +9 -0
  291. data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand.xml +7 -0
  292. data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand-parameters.xml +11 -0
  293. data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand.xml +7 -0
  294. data/test/reports/TEST-HammerCLIForeman-Template.xml +7 -0
  295. data/test/reports/TEST-HammerCLIForeman-User-CreateCommand-parameters.xml +19 -0
  296. data/test/reports/TEST-HammerCLIForeman-User-CreateCommand.xml +7 -0
  297. data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand-parameters.xml +11 -0
  298. data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand.xml +7 -0
  299. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-output.xml +23 -0
  300. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-parameters.xml +11 -0
  301. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand.xml +7 -0
  302. data/test/reports/TEST-HammerCLIForeman-User-ListCommand-output.xml +17 -0
  303. data/test/reports/TEST-HammerCLIForeman-User-ListCommand-parameters.xml +17 -0
  304. data/test/reports/TEST-HammerCLIForeman-User-ListCommand.xml +7 -0
  305. data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand-parameters.xml +11 -0
  306. data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand.xml +7 -0
  307. data/test/reports/TEST-HammerCLIForeman-User.xml +7 -0
  308. data/test/reports/TEST-MiniTest-Spec.xml +7 -0
  309. data/test/unit/api/interactive_basic_auth_test.rb +20 -1
  310. data/test/unit/api/session_authenticator_wrapper_test.rb +23 -8
  311. data/test/unit/api/void_auth_test.rb +11 -0
  312. data/test/unit/commands_test.rb +1 -1
  313. data/test/unit/exception_handler_test.rb +24 -3
  314. data/test/unit/helpers/command.rb +6 -2
  315. data/test/unit/host_test.rb +2 -2
  316. data/test/unit/hostgroup_test.rb +5 -3
  317. data/test/unit/id_resolver_test.rb +53 -5
  318. data/test/unit/media_test.rb +2 -2
  319. data/test/unit/option_sources/id_params_test.rb +30 -0
  320. data/test/unit/option_sources/ids_params_test.rb +30 -0
  321. data/test/unit/output/formatters_test.rb +4 -0
  322. data/test/unit/smart_class_parameter_test.rb +4 -4
  323. data/test/unit/smart_variable_test.rb +2 -2
  324. data/test/unit/user_test.rb +1 -2
  325. metadata +569 -69
@@ -3,8 +3,8 @@ require File.join(File.dirname(__FILE__), 'test_helper')
3
3
 
4
4
  describe "host create" do
5
5
  let(:cmd) { ["host", "create"] }
6
- let(:minimal_params_without_hosgroup) { ['--location-id=1', '--organization-id=1', '--name=test'] }
7
- let(:minimal_params) { ['--hostgroup-id=1'] + minimal_params_without_hosgroup }
6
+ let(:minimal_params_without_hostgroup) { ['--location-id=1', '--organization-id=1', '--name=test'] }
7
+ let(:minimal_params) { ['--hostgroup-id=1'] + minimal_params_without_hostgroup }
8
8
 
9
9
  it "accepts hostgroup title" do
10
10
  api_expects_search(:hostgroups, { :title => 'test/hg1' }).returns(index_response([{ 'id' => '83' }]))
@@ -12,9 +12,9 @@ describe "host create" do
12
12
  par['host']['hostgroup_id'] == '83'
13
13
  end.returns({})
14
14
 
15
- expected_result = success_result("Host created\n")
15
+ expected_result = success_result("Host created.\n")
16
16
 
17
- result = run_cmd(cmd + minimal_params_without_hosgroup + ['--hostgroup-title=test/hg1'])
17
+ result = run_cmd(cmd + minimal_params_without_hostgroup + ['--hostgroup-title=test/hg1'])
18
18
  assert_cmd(expected_result, result)
19
19
  end
20
20
 
@@ -29,7 +29,7 @@ describe "host create" do
29
29
  ifces[0]['identifier'] == 'eth0'
30
30
  end.returns({})
31
31
 
32
- expected_result = success_result("Host created\n")
32
+ expected_result = success_result("Host created.\n")
33
33
 
34
34
  result = run_cmd(cmd + minimal_params + params)
35
35
  assert_cmd(expected_result, result)
@@ -43,7 +43,7 @@ describe "host create" do
43
43
  par['host']['interfaces_attributes'] == []
44
44
  end.returns({})
45
45
 
46
- expected_result = success_result("Host created\n")
46
+ expected_result = success_result("Host created.\n")
47
47
 
48
48
  result = run_cmd(cmd + minimal_params)
49
49
  assert_cmd(expected_result, result)
@@ -66,7 +66,7 @@ describe "host create" do
66
66
  true
67
67
  end.returns({})
68
68
 
69
- expected_result = success_result("Host created\n")
69
+ expected_result = success_result("Host created.\n")
70
70
 
71
71
  result = run_cmd(cmd + minimal_params + params)
72
72
  assert_cmd(expected_result, result)
@@ -88,7 +88,7 @@ describe "host create" do
88
88
  ifces[0]['domain_id'] == 32
89
89
  end.returns({})
90
90
 
91
- expected_result = success_result("Host created\n")
91
+ expected_result = success_result("Host created.\n")
92
92
 
93
93
  result = run_cmd(cmd + minimal_params + params)
94
94
  assert_cmd(expected_result, result)
@@ -110,9 +110,60 @@ describe "host create" do
110
110
  api_expects_search(:ptables, { :name => 'default' }).returns(index_response([mock_item]))
111
111
  api_expects(:hosts, :create, 'Create host with interfaces params').returns({})
112
112
 
113
- expected_result = success_result("Host created\n")
113
+ expected_result = success_result("Host created.\n")
114
114
 
115
- result = run_cmd(cmd + minimal_params_without_hosgroup + params)
115
+ result = run_cmd(cmd + minimal_params_without_hostgroup + params)
116
116
  assert_cmd(expected_result, result)
117
117
  end
118
118
  end
119
+
120
+ describe 'host reports' do
121
+ let(:report15) do
122
+ {
123
+ "id" => 15,
124
+ "host_id" => 1,
125
+ "host_name" => "host.example.com",
126
+ "reported_at" => "2017-11-13 03:04:53 UTC",
127
+ }
128
+ end
129
+
130
+ it 'filters reports by --id' do
131
+ api_expects(:reports, :index, 'Filter the reports') do |params|
132
+ params['search'] == 'host_id=1'
133
+ end.returns(index_response([report15]))
134
+
135
+ result = run_cmd(['host', 'reports', '--id=1'])
136
+ result.exit_code.must_equal HammerCLI::EX_OK
137
+ end
138
+
139
+ it 'filters reports by --name' do
140
+ api_expects(:reports, :index, 'Filter the reports') do |params|
141
+ params['search'] == 'host="host.example.com"'
142
+ end.returns(index_response([report15]))
143
+
144
+ result = run_cmd(['host', 'reports', '--name=host.example.com'])
145
+ result.exit_code.must_equal HammerCLI::EX_OK
146
+ end
147
+
148
+ it 'prints error or missing --id and --name' do
149
+ expected_result = CommandExpectation.new
150
+ expected_result.expected_err =
151
+ ['Error: At least one of options --name, --id is required.', '',
152
+ "See: 'hammer host reports --help'.", ''].join("\n")
153
+ expected_result.expected_exit_code = HammerCLI::EX_USAGE
154
+
155
+ api_expects_no_call
156
+
157
+ result = run_cmd(['host', 'reports'])
158
+ assert_cmd(expected_result, result)
159
+ end
160
+
161
+ it 'filters reports by --name together with search' do
162
+ api_expects(:reports, :index, 'Filter the reports') do |params|
163
+ params['search'] == 'reported > "2 hour ago" and host="host.example.com"'
164
+ end.returns(index_response([report15]))
165
+
166
+ result = run_cmd(['host', 'reports', '--name=host.example.com', %Q(--search=reported > "2 hour ago")])
167
+ result.exit_code.must_equal HammerCLI::EX_OK
168
+ end
169
+ end
@@ -25,7 +25,7 @@ describe "parameters" do
25
25
 
26
26
  expected_result = usage_error_result(
27
27
  @cmd,
28
- "option '--name' is required",
28
+ "Option '--name' is required.",
29
29
  "Could not set location parameter"
30
30
  )
31
31
 
@@ -39,7 +39,7 @@ describe "parameters" do
39
39
 
40
40
  expected_result = usage_error_result(
41
41
  @cmd,
42
- "option '--value' is required",
42
+ "Option '--value' is required.",
43
43
  "Could not set location parameter"
44
44
  )
45
45
 
@@ -93,7 +93,7 @@ describe "parameters" do
93
93
 
94
94
  expected_result = usage_error_result(
95
95
  @cmd,
96
- "option '--name' is required",
96
+ "Option '--name' is required.",
97
97
  "Could not delete location parameter"
98
98
  )
99
99
 
@@ -111,7 +111,7 @@ describe "parameters" do
111
111
 
112
112
  expected_result = common_error_result(
113
113
  @cmd,
114
- "parameter not found",
114
+ "parameter not found.",
115
115
  "Could not delete location parameter"
116
116
  )
117
117
 
@@ -130,7 +130,7 @@ describe "parameters" do
130
130
  end.returns({:name => 'A', :value => '1'})
131
131
 
132
132
  expected_result = success_result(
133
- "Parameter [A] deleted\n"
133
+ "Parameter [A] deleted.\n"
134
134
  )
135
135
 
136
136
  result = run_cmd(@cmd + params)
@@ -25,7 +25,7 @@ describe "parameters" do
25
25
 
26
26
  expected_result = usage_error_result(
27
27
  @cmd,
28
- "option '--name' is required",
28
+ "Option '--name' is required.",
29
29
  "Could not set organization parameter"
30
30
  )
31
31
 
@@ -39,7 +39,7 @@ describe "parameters" do
39
39
 
40
40
  expected_result = usage_error_result(
41
41
  @cmd,
42
- "option '--value' is required",
42
+ "Option '--value' is required.",
43
43
  "Could not set organization parameter"
44
44
  )
45
45
 
@@ -93,7 +93,7 @@ describe "parameters" do
93
93
 
94
94
  expected_result = usage_error_result(
95
95
  @cmd,
96
- "option '--name' is required",
96
+ "Option '--name' is required.",
97
97
  "Could not delete organization parameter"
98
98
  )
99
99
 
@@ -111,7 +111,7 @@ describe "parameters" do
111
111
 
112
112
  expected_result = common_error_result(
113
113
  @cmd,
114
- "parameter not found",
114
+ "parameter not found.",
115
115
  "Could not delete organization parameter"
116
116
  )
117
117
 
@@ -130,7 +130,7 @@ describe "parameters" do
130
130
  end.returns({:name => 'A', :value => '1'})
131
131
 
132
132
  expected_result = success_result(
133
- "Parameter [A] deleted\n"
133
+ "Parameter [A] deleted.\n"
134
134
  )
135
135
 
136
136
  result = run_cmd(@cmd + params)
@@ -167,7 +167,7 @@ describe 'associating commands' do
167
167
  par['organization']['domain_ids'] == ['1', '5']
168
168
  end
169
169
  result = run_cmd(@cmd + @params)
170
- expected = success_result("The domain has been associated\n")
170
+ expected = success_result("The domain has been associated.\n")
171
171
  assert_cmd(expected, result)
172
172
  end
173
173
 
@@ -196,7 +196,7 @@ describe 'associating commands' do
196
196
  par['organization']['domain_ids'] == ['1']
197
197
  end
198
198
  result = run_cmd(@cmd + @params)
199
- expected = success_result("The domain has been disassociated\n")
199
+ expected = success_result("The domain has been disassociated.\n")
200
200
  assert_cmd(expected, result)
201
201
  end
202
202
 
@@ -27,7 +27,7 @@ describe 'role' do
27
27
 
28
28
  expected_result = usage_error_result(
29
29
  @cmd,
30
- 'Option --new-name is required',
30
+ 'Option --new-name is required.',
31
31
  'Could not clone the user role')
32
32
 
33
33
  api_expects_no_call
@@ -45,7 +45,7 @@ describe 'role' do
45
45
  })
46
46
 
47
47
  result = run_cmd(@cmd + params)
48
- assert_cmd(success_result("User role cloned\n"), result)
48
+ assert_cmd(success_result("User role cloned.\n"), result)
49
49
  end
50
50
 
51
51
  it 'should clone a role by name' do
@@ -63,7 +63,7 @@ describe 'role' do
63
63
  })
64
64
 
65
65
  result = run_cmd(@cmd + params)
66
- assert_cmd(success_result("User role cloned\n"), result)
66
+ assert_cmd(success_result("User role cloned.\n"), result)
67
67
  end
68
68
  end
69
69
  end
@@ -9,7 +9,7 @@ describe 'sc-params update' do
9
9
 
10
10
  expected_result = usage_error_result(
11
11
  cmd,
12
- "Unrecognised option '--new-name'",
12
+ "Unrecognised option '--new-name'.",
13
13
  "Could not update the parameter"
14
14
  )
15
15
 
@@ -20,8 +20,8 @@ describe 'sc-params update' do
20
20
 
21
21
  end
22
22
 
23
- describe 'sc-params add-override-value' do
24
- let(:cmd) { %w(sc-param add-override-value) }
23
+ describe 'sc-params add-matcher' do
24
+ let(:cmd) { %w(sc-param add-matcher) }
25
25
  let(:override_value) { 'something' }
26
26
  let(:match) { 'domain = example.com' }
27
27
  let(:puppet_class) { { 'name' => 'motd', 'id' => '1' } }
@@ -34,7 +34,7 @@ describe 'sc-params add-override-value' do
34
34
 
35
35
  it 'allows to set value' do
36
36
  params = ['--value', override_value]
37
- expected_result = success_result("Override value created\n")
37
+ expected_result = success_result("Override value created.\n")
38
38
 
39
39
  prepare_api_expectations = proc do
40
40
  expectations = []
@@ -71,7 +71,7 @@ describe 'sc-params add-override-value' do
71
71
 
72
72
  expected_result = usage_error_result(
73
73
  cmd,
74
- "Cannot use --value when --use-puppet-default is true",
74
+ "Cannot use --value when --use-puppet-default is true.",
75
75
  'Could not create the override value'
76
76
  )
77
77
 
@@ -6,7 +6,7 @@ describe 'smart-variable update' do
6
6
  it 'allows to save new name and override value order' do
7
7
  params = ['--id=1', '--new-variable=name2', '--override-value-order=\'fqdn\',\'hostgroup\',\'domain\',\'os\'']
8
8
 
9
- expected_result = success_result("Smart variable [name2] updated\n")
9
+ expected_result = success_result("Smart variable [name2] updated.\n")
10
10
 
11
11
  api_expects(:smart_variables, :update, 'Update the variable') do |par|
12
12
  (par['smart_variable']['variable'] == 'name2') && (par['smart_variable']['override_value_order'] == "fqdn\nhostgroup\ndomain\nos")
@@ -0,0 +1,105 @@
1
+ require File.join(File.dirname(__FILE__), 'test_helper')
2
+
3
+ describe 'ssh_keys' do
4
+ let(:base_cmd) { ['user', 'ssh-keys'] }
5
+ let(:user) do
6
+ {
7
+ :id => 1,
8
+ :name => 'admin'
9
+ }
10
+ end
11
+ let(:ssh_key) do
12
+ {
13
+ :id => 1,
14
+ :user_id => user[:id],
15
+ :name => 'SSH Key',
16
+ :fingerprint => 'FINGERPRINT',
17
+ :key => 'KEY',
18
+ :lenght => 256
19
+ }
20
+ end
21
+
22
+ describe 'list' do
23
+ let(:cmd) { base_cmd << 'list' }
24
+
25
+ it 'lists all ssh-keys for a given user' do
26
+ params = ['--user-id', user[:id]]
27
+ api_expects(:ssh_keys, :index, :user_id => user[:id])
28
+ .returns(index_response([ssh_key]))
29
+
30
+ expected_result = success_result(/#{ssh_key[:name]}/)
31
+
32
+ result = run_cmd(cmd + params)
33
+ assert_cmd(expected_result, result)
34
+ end
35
+ end
36
+
37
+ describe 'add' do
38
+ let(:cmd) { base_cmd << 'add' }
39
+
40
+ it 'adds an ssh-key to a given user' do
41
+ params = ['--user-id', user[:id],
42
+ '--key', ssh_key[:key],
43
+ '--name', ssh_key[:name]]
44
+ api_expects(:ssh_keys, :create, params)
45
+ .returns(ssh_key)
46
+
47
+ expected_result = success_result("SSH Key #{ssh_key[:name]} added.\n")
48
+
49
+ result = run_cmd(cmd + params)
50
+ assert_cmd(expected_result, result)
51
+ end
52
+
53
+ it 'adds an ssh-key to a given user with a key-file' do
54
+ params = ['--user-id', user[:id],
55
+ '--key-file', '~/.ssh/id_rsa.pub',
56
+ '--name', ssh_key[:name]]
57
+ File.stubs(:read).returns(ssh_key[:key])
58
+ api_expects(:ssh_keys, :create, {
59
+ :user_id => user[:id],
60
+ :ssh_key => {
61
+ :user_id => user[:id],
62
+ :key => ssh_key[:key],
63
+ :name => ssh_key[:name]
64
+ }
65
+ }).returns(ssh_key)
66
+
67
+ expected_result = success_result("SSH Key #{ssh_key[:name]} added.\n")
68
+
69
+ result = run_cmd(cmd + params)
70
+ assert_cmd(expected_result, result)
71
+ end
72
+ end
73
+
74
+ describe 'info' do
75
+ let(:cmd) { base_cmd << 'info' }
76
+
77
+ it 'shows the public key' do
78
+ params = ['--id', ssh_key[:id],
79
+ '--user-id', user[:id]]
80
+ api_expects(:ssh_keys, :show, :id => ssh_key[:id])
81
+ .returns(ssh_key)
82
+
83
+ expected_result = success_result(/#{ssh_key[:key]}/)
84
+
85
+ result = run_cmd(cmd + params)
86
+ assert_cmd(expected_result, result)
87
+ end
88
+ end
89
+
90
+ describe 'delete' do
91
+ let(:cmd) { base_cmd << 'delete' }
92
+
93
+ it 'deletes an ssh-key to a given user' do
94
+ params = ['--id', ssh_key[:id],
95
+ '--user-id', user[:id]]
96
+ api_expects(:ssh_keys, :destroy, :id => ssh_key[:id])
97
+ .returns({})
98
+
99
+ expected_result = success_result("SSH Key deleted.\n")
100
+
101
+ result = run_cmd(cmd + params)
102
+ assert_cmd(expected_result, result)
103
+ end
104
+ end
105
+ end
@@ -28,7 +28,7 @@ describe 'template' do
28
28
 
29
29
  expected_result = usage_error_result(
30
30
  @cmd,
31
- 'Option --new-name is required',
31
+ 'Option --new-name is required.',
32
32
  'Could not clone the provisioning template')
33
33
 
34
34
  api_expects_no_call
@@ -47,7 +47,7 @@ describe 'template' do
47
47
 
48
48
  result = run_cmd(@cmd + params)
49
49
 
50
- assert_cmd(success_result("Provisioning template cloned\n"), result)
50
+ assert_cmd(success_result("Provisioning template cloned.\n"), result)
51
51
  end
52
52
 
53
53
  it 'should clone a template by name' do
@@ -74,7 +74,7 @@ describe 'template' do
74
74
 
75
75
  result = run_cmd(@cmd + params)
76
76
 
77
- assert_cmd(success_result("Provisioning template cloned\n"), result)
77
+ assert_cmd(success_result("Provisioning template cloned.\n"), result)
78
78
  end
79
79
  end
80
80
 
@@ -94,7 +94,33 @@ describe 'template' do
94
94
 
95
95
  result = run_cmd(@cmd + params)
96
96
 
97
- assert_cmd(success_result("Provisioning template updated\n"), result)
97
+ assert_cmd(success_result("Provisioning template updated.\n"), result)
98
+ end
99
+ end
100
+
101
+ describe 'create' do
102
+ before do
103
+ @cmd = %w(template create)
104
+ end
105
+
106
+ it 'should print correct error on providing unknown template kind' do
107
+ params = ['--name=tpl', '--file=Gemfile', '--type=unknown']
108
+
109
+ expected_result = CommandExpectation.new
110
+ expected_result.expected_err =
111
+ ['Could not create the provisioning template:',
112
+ " Error: unknown template kind",
113
+ ' ',
114
+ " See: 'hammer template create --help'.",
115
+ ''].join("\n")
116
+ expected_result.expected_exit_code = HammerCLI::EX_USAGE
117
+
118
+ HammerCLIForeman::Template::CreateCommand.any_instance.stubs(:kinds).returns(["PXELinux"])
119
+
120
+ api_expects_no_call
121
+
122
+ result = run_cmd(@cmd + params)
123
+ assert_cmd(expected_result, result)
98
124
  end
99
125
  end
100
126
  end