hammer_cli_foreman 0.18.2 → 0.19.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 (307) hide show
  1. checksums.yaml +4 -4
  2. data/config/foreman.yml +20 -0
  3. data/doc/host_create.md +19 -10
  4. data/doc/release_notes.md +12 -4
  5. data/lib/hammer_cli_foreman/api/authenticator.rb +81 -0
  6. data/lib/hammer_cli_foreman/api/connection.rb +48 -33
  7. data/lib/hammer_cli_foreman/api/interactive_basic_auth.rb +2 -2
  8. data/lib/hammer_cli_foreman/api/oauth/authentication_code_grant.rb +100 -0
  9. data/lib/hammer_cli_foreman/api/oauth/password_grant.rb +81 -0
  10. data/lib/hammer_cli_foreman/api/session_authenticator_wrapper.rb +34 -80
  11. data/lib/hammer_cli_foreman/auth.rb +54 -20
  12. data/lib/hammer_cli_foreman/authenticate/login.rb +21 -0
  13. data/lib/hammer_cli_foreman/command_extensions/hosts/help/compute_resources.rb +1 -0
  14. data/lib/hammer_cli_foreman/command_extensions/ping.rb +14 -0
  15. data/lib/hammer_cli_foreman/command_extensions/status.rb +44 -0
  16. data/lib/hammer_cli_foreman/command_extensions.rb +2 -0
  17. data/lib/hammer_cli_foreman/commands.rb +1 -1
  18. data/lib/hammer_cli_foreman/compute_attribute.rb +22 -5
  19. data/lib/hammer_cli_foreman/compute_resource/base.rb +1 -1
  20. data/lib/hammer_cli_foreman/compute_resource/ec2.rb +1 -1
  21. data/lib/hammer_cli_foreman/compute_resource/gce.rb +1 -1
  22. data/lib/hammer_cli_foreman/compute_resource/libvirt.rb +11 -8
  23. data/lib/hammer_cli_foreman/compute_resource/openstack.rb +1 -1
  24. data/lib/hammer_cli_foreman/compute_resource/ovirt.rb +7 -4
  25. data/lib/hammer_cli_foreman/compute_resource/rackspace.rb +1 -1
  26. data/lib/hammer_cli_foreman/compute_resource/vmware.rb +6 -6
  27. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +1 -1
  28. data/lib/hammer_cli_foreman/location.rb +1 -1
  29. data/lib/hammer_cli_foreman/openid_connect.rb +68 -0
  30. data/lib/hammer_cli_foreman/organization.rb +1 -1
  31. data/lib/hammer_cli_foreman/output/formatters.rb +4 -5
  32. data/lib/hammer_cli_foreman/partition_table.rb +1 -0
  33. data/lib/hammer_cli_foreman/ping.rb +24 -0
  34. data/lib/hammer_cli_foreman/report_template.rb +3 -2
  35. data/lib/hammer_cli_foreman/sessions.rb +92 -0
  36. data/lib/hammer_cli_foreman/status.rb +53 -0
  37. data/lib/hammer_cli_foreman/subnet.rb +1 -0
  38. data/lib/hammer_cli_foreman/template.rb +1 -0
  39. data/lib/hammer_cli_foreman/version.rb +1 -1
  40. data/lib/hammer_cli_foreman.rb +8 -0
  41. data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  42. data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  43. data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  44. data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  45. data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  46. data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  47. data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  48. data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  49. data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  50. data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  51. data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  52. data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  53. data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  54. data/test/data/1.24/foreman_api.json +1 -0
  55. data/test/data/README.md +2 -2
  56. data/test/functional/commands/list_test.rb +2 -2
  57. data/test/functional/host_test.rb +0 -20
  58. data/test/functional/ping_test.rb +34 -0
  59. data/test/functional/status_test.rb +46 -0
  60. data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand-parameters.xml +11 -0
  61. data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand.xml +7 -0
  62. data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand-parameters.xml +13 -0
  63. data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand.xml +7 -0
  64. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-output.xml +13 -0
  65. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-parameters.xml +13 -0
  66. data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand.xml +7 -0
  67. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-output.xml +13 -0
  68. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-parameters.xml +17 -0
  69. data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand.xml +7 -0
  70. data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand-parameters.xml +15 -0
  71. data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand.xml +7 -0
  72. data/test/reports/TEST-HammerCLIForeman-Architecture.xml +7 -0
  73. data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand-parameters.xml +11 -0
  74. data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand.xml +7 -0
  75. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-output.xml +13 -0
  76. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-parameters.xml +17 -0
  77. data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand.xml +7 -0
  78. data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand-parameters.xml +13 -0
  79. data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand.xml +7 -0
  80. data/test/reports/TEST-HammerCLIForeman-CommonParameter.xml +7 -0
  81. data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand-parameters.xml +15 -0
  82. data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand.xml +7 -0
  83. data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand-parameters.xml +13 -0
  84. data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand.xml +7 -0
  85. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-output.xml +17 -0
  86. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-parameters.xml +13 -0
  87. data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand.xml +7 -0
  88. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-output.xml +15 -0
  89. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-parameters.xml +17 -0
  90. data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand.xml +7 -0
  91. data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand-parameters.xml +15 -0
  92. data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand.xml +7 -0
  93. data/test/reports/TEST-HammerCLIForeman-ComputeResource.xml +7 -0
  94. data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand-parameters.xml +11 -0
  95. data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand.xml +7 -0
  96. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand-parameters.xml +13 -0
  97. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand.xml +7 -0
  98. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand-parameters.xml +15 -0
  99. data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand.xml +7 -0
  100. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-output.xml +21 -0
  101. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-parameters.xml +13 -0
  102. data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand.xml +7 -0
  103. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-output.xml +13 -0
  104. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-parameters.xml +17 -0
  105. data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand.xml +7 -0
  106. data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand-parameters.xml +17 -0
  107. data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand.xml +7 -0
  108. data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand-parameters.xml +15 -0
  109. data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand.xml +7 -0
  110. data/test/reports/TEST-HammerCLIForeman-Domain.xml +7 -0
  111. data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand-parameters.xml +11 -0
  112. data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand.xml +7 -0
  113. data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand-parameters.xml +13 -0
  114. data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand.xml +7 -0
  115. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-output.xml +17 -0
  116. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-parameters.xml +13 -0
  117. data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand.xml +7 -0
  118. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-output.xml +13 -0
  119. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-parameters.xml +17 -0
  120. data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand.xml +7 -0
  121. data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand-parameters.xml +15 -0
  122. data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand.xml +7 -0
  123. data/test/reports/TEST-HammerCLIForeman-Environment.xml +7 -0
  124. data/test/reports/TEST-HammerCLIForeman-ExceptionHandler.xml +13 -0
  125. data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand-parameters.xml +46 -0
  126. data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand.xml +7 -0
  127. data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand-parameters.xml +13 -0
  128. data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand.xml +7 -0
  129. data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand-parameters.xml +15 -0
  130. data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand.xml +7 -0
  131. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-output.xml +85 -0
  132. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-parameters.xml +13 -0
  133. data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand.xml +7 -0
  134. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-output.xml +21 -0
  135. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-parameters.xml +17 -0
  136. data/test/reports/TEST-HammerCLIForeman-Host-ListCommand.xml +7 -0
  137. data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand-output.xml +9 -0
  138. data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand.xml +7 -0
  139. data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand-parameters.xml +17 -0
  140. data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand.xml +7 -0
  141. data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand-output.xml +9 -0
  142. data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand.xml +7 -0
  143. data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand-parameters.xml +40 -0
  144. data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand.xml +7 -0
  145. data/test/reports/TEST-HammerCLIForeman-Host.xml +7 -0
  146. data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand-parameters.xml +11 -0
  147. data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand.xml +7 -0
  148. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand-parameters.xml +11 -0
  149. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand.xml +7 -0
  150. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand-parameters.xml +13 -0
  151. data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand.xml +7 -0
  152. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-output.xml +29 -0
  153. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-parameters.xml +11 -0
  154. data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand.xml +7 -0
  155. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-output.xml +27 -0
  156. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-parameters.xml +17 -0
  157. data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand.xml +7 -0
  158. data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand-parameters.xml +15 -0
  159. data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand.xml +7 -0
  160. data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand-parameters.xml +13 -0
  161. data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand.xml +7 -0
  162. data/test/reports/TEST-HammerCLIForeman-Hostgroup.xml +7 -0
  163. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-parameters.xml +11 -0
  164. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-resource-disabled.xml +11 -0
  165. data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand.xml +7 -0
  166. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-parameters.xml +13 -0
  167. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-resource-disabled.xml +11 -0
  168. data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand.xml +7 -0
  169. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-output.xml +17 -0
  170. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-parameters.xml +13 -0
  171. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-resource-disabled.xml +11 -0
  172. data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand.xml +7 -0
  173. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-output.xml +13 -0
  174. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-parameters.xml +17 -0
  175. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-resource-disabled.xml +11 -0
  176. data/test/reports/TEST-HammerCLIForeman-Location-ListCommand.xml +7 -0
  177. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-parameters.xml +15 -0
  178. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-resource-disabled.xml +11 -0
  179. data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand.xml +7 -0
  180. data/test/reports/TEST-HammerCLIForeman-Location.xml +7 -0
  181. data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand-parameters.xml +13 -0
  182. data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand.xml +7 -0
  183. data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand-parameters.xml +13 -0
  184. data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand.xml +7 -0
  185. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-output.xml +23 -0
  186. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-parameters.xml +13 -0
  187. data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand.xml +7 -0
  188. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-output.xml +15 -0
  189. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-parameters.xml +17 -0
  190. data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand.xml +7 -0
  191. data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand-parameters.xml +17 -0
  192. data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand.xml +7 -0
  193. data/test/reports/TEST-HammerCLIForeman-Medium.xml +7 -0
  194. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand-parameters.xml +11 -0
  195. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand.xml +7 -0
  196. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand-parameters.xml +13 -0
  197. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand.xml +7 -0
  198. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand-parameters.xml +13 -0
  199. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand.xml +7 -0
  200. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-output.xml +27 -0
  201. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-parameters.xml +13 -0
  202. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand.xml +7 -0
  203. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-output.xml +17 -0
  204. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-parameters.xml +17 -0
  205. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand.xml +7 -0
  206. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand-parameters.xml +15 -0
  207. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand.xml +7 -0
  208. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand-parameters.xml +17 -0
  209. data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand.xml +7 -0
  210. data/test/reports/TEST-HammerCLIForeman-OperatingSystem.xml +7 -0
  211. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-parameters.xml +11 -0
  212. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-resource-disabled.xml +11 -0
  213. data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand.xml +7 -0
  214. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-parameters.xml +13 -0
  215. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-resource-disabled.xml +11 -0
  216. data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand.xml +7 -0
  217. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-output.xml +17 -0
  218. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-parameters.xml +13 -0
  219. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-resource-disabled.xml +11 -0
  220. data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand.xml +7 -0
  221. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-output.xml +13 -0
  222. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-parameters.xml +17 -0
  223. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-resource-disabled.xml +11 -0
  224. data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand.xml +7 -0
  225. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-parameters.xml +15 -0
  226. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-resource-disabled.xml +11 -0
  227. data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand.xml +7 -0
  228. data/test/reports/TEST-HammerCLIForeman-Organization.xml +7 -0
  229. data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand-parameters.xml +13 -0
  230. data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand.xml +7 -0
  231. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand-parameters.xml +13 -0
  232. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand.xml +7 -0
  233. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand-parameters.xml +15 -0
  234. data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand.xml +7 -0
  235. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-output.xml +19 -0
  236. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-parameters.xml +13 -0
  237. data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand.xml +7 -0
  238. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-output.xml +15 -0
  239. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-parameters.xml +17 -0
  240. data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand.xml +7 -0
  241. data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand-parameters.xml +13 -0
  242. data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand.xml +7 -0
  243. data/test/reports/TEST-HammerCLIForeman-PartitionTable.xml +7 -0
  244. data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand-parameters.xml +13 -0
  245. data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand.xml +7 -0
  246. data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand-parameters.xml +13 -0
  247. data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand.xml +7 -0
  248. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-output.xml +21 -0
  249. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-parameters.xml +13 -0
  250. data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand.xml +7 -0
  251. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-output.xml +15 -0
  252. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-parameters.xml +11 -0
  253. data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand.xml +7 -0
  254. data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand-parameters.xml +15 -0
  255. data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand.xml +7 -0
  256. data/test/reports/TEST-HammerCLIForeman-SmartProxy.xml +7 -0
  257. data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand-parameters.xml +15 -0
  258. data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand.xml +7 -0
  259. data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand-parameters.xml +13 -0
  260. data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand.xml +7 -0
  261. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-output.xml +43 -0
  262. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-parameters.xml +13 -0
  263. data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand.xml +7 -0
  264. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-output.xml +17 -0
  265. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-parameters.xml +17 -0
  266. data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand.xml +7 -0
  267. data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand-parameters.xml +15 -0
  268. data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand.xml +7 -0
  269. data/test/reports/TEST-HammerCLIForeman-Subnet.xml +7 -0
  270. data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand-parameters.xml +15 -0
  271. data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand.xml +7 -0
  272. data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand-parameters.xml +11 -0
  273. data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand.xml +7 -0
  274. data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand-parameters.xml +12 -0
  275. data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand.xml +7 -0
  276. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-output.xml +17 -0
  277. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-parameters.xml +11 -0
  278. data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand.xml +7 -0
  279. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-output.xml +15 -0
  280. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-parameters.xml +17 -0
  281. data/test/reports/TEST-HammerCLIForeman-Template-ListCommand.xml +7 -0
  282. data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand-parameters.xml +9 -0
  283. data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand.xml +7 -0
  284. data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand-parameters.xml +11 -0
  285. data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand.xml +7 -0
  286. data/test/reports/TEST-HammerCLIForeman-Template.xml +7 -0
  287. data/test/reports/TEST-HammerCLIForeman-User-CreateCommand-parameters.xml +19 -0
  288. data/test/reports/TEST-HammerCLIForeman-User-CreateCommand.xml +7 -0
  289. data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand-parameters.xml +11 -0
  290. data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand.xml +7 -0
  291. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-output.xml +23 -0
  292. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-parameters.xml +11 -0
  293. data/test/reports/TEST-HammerCLIForeman-User-InfoCommand.xml +7 -0
  294. data/test/reports/TEST-HammerCLIForeman-User-ListCommand-output.xml +17 -0
  295. data/test/reports/TEST-HammerCLIForeman-User-ListCommand-parameters.xml +17 -0
  296. data/test/reports/TEST-HammerCLIForeman-User-ListCommand.xml +7 -0
  297. data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand-parameters.xml +11 -0
  298. data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand.xml +7 -0
  299. data/test/reports/TEST-HammerCLIForeman-User.xml +7 -0
  300. data/test/reports/TEST-MiniTest-Spec.xml +7 -0
  301. data/test/test_helper.rb +1 -1
  302. data/test/unit/api/interactive_basic_auth_test.rb +1 -1
  303. data/test/unit/api/oauth/oauth_authentication_code_grant_test.rb +88 -0
  304. data/test/unit/api/oauth/oauth_password_grant_test.rb +92 -0
  305. data/test/unit/api/session_authenticator_wrapper_test.rb +85 -70
  306. data/test/unit/sessions_test.rb +199 -0
  307. metadata +600 -81
@@ -0,0 +1,68 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ module HammerCLIForeman
4
+ class OpenidConnect
5
+ def initialize(url, oidc_client_id)
6
+ @url = url
7
+ @oidc_client_id = oidc_client_id
8
+ end
9
+
10
+ def get_token(username, password)
11
+ uri = URI.parse(@url)
12
+ request = Net::HTTP::Post.new(uri)
13
+ request.content_type = 'application/x-www-form-urlencoded'
14
+ request.set_form_data(
15
+ 'username' => username,
16
+ 'password' => password,
17
+ 'grant_type' => 'password',
18
+ 'client_id' => @oidc_client_id
19
+ )
20
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |https|
21
+ https.request(request)
22
+ end
23
+ json_response = JSON.parse(response.body)
24
+ if json_response.is_a?(Hash)
25
+ json_response['access_token']
26
+ else
27
+ raise _("Invalid access token response.")
28
+ nil
29
+ end
30
+ rescue JSON::ParserError => e
31
+ raise _('Invalid access token')
32
+ nil
33
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
34
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
35
+ raise _("Failed to recieve acess token, please check your connectivity with OpenID provider: %s") % e
36
+ nil
37
+ end
38
+
39
+ def get_token_via_2fa(code, oidc_redirect_uri)
40
+ uri = URI.parse(@url)
41
+ request = Net::HTTP::Post.new(uri)
42
+ request.content_type = 'application/x-www-form-urlencoded'
43
+ request.set_form_data(
44
+ 'client_id' => @oidc_client_id,
45
+ 'code' => code,
46
+ 'grant_type' => 'authorization_code',
47
+ 'redirect_uri' => oidc_redirect_uri
48
+ )
49
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |https|
50
+ https.request(request)
51
+ end
52
+ json_response = JSON.parse(response.body)
53
+ if json_response.is_a?(Hash)
54
+ json_response['access_token']
55
+ else
56
+ raise _("Invalid access token response.")
57
+ nil
58
+ end
59
+ rescue JSON::ParserError => e
60
+ raise _('Invalid access token')
61
+ nil
62
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
63
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
64
+ raise _("Failed to recieve acess token, please check your connectivity with OpenID provider: %s") % e
65
+ nil
66
+ end
67
+ end
68
+ end
@@ -13,7 +13,7 @@ module HammerCLIForeman
13
13
  field :id, _("Id")
14
14
  field :title, _("Title")
15
15
  field :name, _("Name")
16
- field :description, _("Description")
16
+ field :description, _("Description"), Fields::Text
17
17
  end
18
18
 
19
19
  build_options
@@ -1,8 +1,8 @@
1
1
  module HammerCLIForeman::Output
2
2
  module Formatters
3
3
  class ReferenceFormatter < HammerCLI::Output::Formatters::FieldFormatter
4
- def tags
5
- [:flat]
4
+ def required_features
5
+ %i[serialized]
6
6
  end
7
7
 
8
8
  # Parameters:
@@ -51,8 +51,8 @@ module HammerCLIForeman::Output
51
51
  end
52
52
 
53
53
  class StructuredReferenceFormatter < HammerCLI::Output::Formatters::FieldFormatter
54
- def tags
55
- [:data]
54
+ def required_features
55
+ %i[structured]
56
56
  end
57
57
 
58
58
  # Parameters:
@@ -103,4 +103,3 @@ module HammerCLIForeman::Output
103
103
  HammerCLI::Output::Output.register_formatter(StructuredReferenceFormatter.new, :Template)
104
104
  end
105
105
  end
106
-
@@ -18,6 +18,7 @@ module HammerCLIForeman
18
18
 
19
19
  class InfoCommand < HammerCLIForeman::InfoCommand
20
20
  output ListCommand.output_definition do
21
+ field :description, _('Description'), Fields::Text
21
22
  field :locked, _("Locked"), Fields::Boolean
22
23
  HammerCLIForeman::References.operating_systems(self)
23
24
  HammerCLIForeman::References.timestamps(self)
@@ -0,0 +1,24 @@
1
+ module HammerCLIForeman
2
+ class PingCommand < HammerCLIForeman::Command
3
+ resource :ping
4
+
5
+ class ForemanCommand < HammerCLIForeman::Command
6
+ action :ping
7
+ command_name 'foreman'
8
+
9
+ output do
10
+ from 'foreman' do
11
+ field :database, _('database'), Fields::Label do
12
+ field :active, _('Status')
13
+ field :duration_ms, _('Server Response')
14
+ end
15
+ end
16
+ end
17
+
18
+ extend_with(HammerCLIForeman::CommandExtensions::Ping.new)
19
+ end
20
+
21
+ self.default_subcommand = 'foreman'
22
+ autoload_subcommands
23
+ end
24
+ end
@@ -14,6 +14,7 @@ module HammerCLIForeman
14
14
 
15
15
  class InfoCommand < HammerCLIForeman::InfoCommand
16
16
  output ListCommand.output_definition do
17
+ field :description, _('Description'), Fields::Text
17
18
  field :locked, _("Locked"), Fields::Boolean
18
19
  field :default, _("Default"), Fields::Boolean
19
20
  HammerCLIForeman::References.timestamps(self)
@@ -162,7 +163,7 @@ module HammerCLIForeman
162
163
  end
163
164
 
164
165
  class CreateCommand < HammerCLIForeman::CreateCommand
165
- option ['--interactive', '-i'], :flag, _('Open empty template in an $EDITOR. Upload the result')
166
+ option ['-i', '--interactive'], :flag, _('Open empty template in an $EDITOR. Upload the result')
166
167
  option "--file", "LAYOUT", _("Path to a file that contains the report template content"),
167
168
  :attribute_name => :option_template, :format => HammerCLI::Options::Normalizers::File.new
168
169
 
@@ -187,7 +188,7 @@ module HammerCLIForeman
187
188
 
188
189
 
189
190
  class UpdateCommand < HammerCLIForeman::UpdateCommand
190
- option ['--interactive', '-i'], :flag, _('Dump existing template and open it in an $EDITOR. Update with the result')
191
+ option ['-i', '--interactive'], :flag, _('Dump existing template and open it in an $EDITOR. Update with the result')
191
192
  option '--file', 'REPORT', _("Path to a file that contains the report template content"), :attribute_name => :option_template,
192
193
  :format => HammerCLI::Options::Normalizers::File.new
193
194
 
@@ -0,0 +1,92 @@
1
+ require 'uri'
2
+ module HammerCLIForeman
3
+ class Sessions
4
+
5
+ STORAGE_DIR = File.expand_path('~/.hammer/sessions/')
6
+
7
+ def self.get(url)
8
+ raise _('Sessions are not enabled, please check your Hammer settings.') unless enabled?
9
+
10
+ unless File.exist?(storage)
11
+ FileUtils.mkdir_p(storage, mode: 0700)
12
+ end
13
+ unless configured?(url)
14
+ warn _('Using session auth with invalid permissions on session files is not recommended.')
15
+ end
16
+ HammerCLIForeman::Session.new(session_file(url))
17
+ end
18
+
19
+ def self.storage
20
+ STORAGE_DIR
21
+ end
22
+
23
+ def self.enabled?
24
+ HammerCLI::Settings.get(:foreman, :use_sessions)
25
+ end
26
+
27
+ def self.session_file(url)
28
+ raise _('The url is empty. Session can not be created.') if url.nil? || url.empty?
29
+
30
+ uri = URI.parse(url)
31
+ File.join(storage, "#{uri.scheme}_#{uri.host}")
32
+ rescue URI::InvalidURIError
33
+ raise _('The url (%s) is not a valid URL. Session can not be created.') % url
34
+ end
35
+
36
+ def self.configured?(url)
37
+ ensure_mode(storage, '40700') && ensure_mode(session_file(url), '100600')
38
+ end
39
+
40
+ def self.ensure_mode(file, expected_mode)
41
+ return true unless File.exist?(file)
42
+
43
+ mode = File.stat(file).mode.to_s(8)
44
+ if mode != expected_mode
45
+ warn _("Invalid permissions for %{file}: %{mode}, expected %{expected_mode}.") % {
46
+ :mode => mode,
47
+ :expected_mode => expected_mode,
48
+ :file => file
49
+ }
50
+ false
51
+ else
52
+ true
53
+ end
54
+ end
55
+ end
56
+
57
+ class Session
58
+ attr_accessor :id, :user_name, :auth_type
59
+
60
+ def initialize(session_path)
61
+ @session_path = File.expand_path(session_path)
62
+ if File.exist?(@session_path) && !File.zero?(@session_path)
63
+ session_data = JSON.parse(File.read(@session_path))
64
+ @id = session_data['id']
65
+ @user_name = session_data['user_name']
66
+ @auth_type = session_data['auth_type']
67
+ end
68
+ rescue JSON::ParserError
69
+ warn _('Invalid session data. Resetting the session.')
70
+ end
71
+
72
+ def store
73
+ File.open(@session_path,"w") do |f|
74
+ f.write({
75
+ id: id,
76
+ auth_type: auth_type,
77
+ user_name: user_name
78
+ }.to_json)
79
+ end
80
+ File.chmod(0600, @session_path)
81
+ end
82
+
83
+ def destroy
84
+ @id = nil
85
+ store
86
+ end
87
+
88
+ def valid?
89
+ !id.nil? && !id.empty?
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,53 @@
1
+ module HammerCLIForeman
2
+ class StatusCommand < HammerCLIForeman::Command
3
+ resource :ping
4
+
5
+ class ForemanCommand < HammerCLIForeman::Command
6
+ action :statuses
7
+ command_name 'foreman'
8
+
9
+ output do
10
+ from 'foreman' do
11
+ field :version, _('Version')
12
+ from 'api' do
13
+ field :version, _('API Version')
14
+ end
15
+ field :database, _('Database'), Fields::Label do
16
+ field :active, _('Status')
17
+ field :duration_ms, _('Server Response')
18
+ end
19
+ collection :plugins, _('Plugins') do
20
+ field :name, _('Name')
21
+ field :version, _('Version')
22
+ end
23
+ collection :smart_proxies, _('Smart Proxies') do
24
+ field :name, _('Name')
25
+ field :version, _('Version')
26
+ field :status, _('Status')
27
+ collection :features, _('Features'), hide_blank: true do
28
+ field :name, _('Name')
29
+ field :version, _('Version')
30
+ end
31
+ collection :failed_features, _('Failed features'), hide_blank: true do
32
+ field :name, _('Name')
33
+ field :error, _('Error')
34
+ end
35
+ end
36
+ collection :compute_resources, _('Compute Resources') do
37
+ field :name, _('Name')
38
+ field :status, _('Status')
39
+ collection :errors, _('Errors'), hide_blank: true do
40
+ field nil, nil
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ extend_with(HammerCLIForeman::CommandExtensions::Ping.new(only: :data))
47
+ extend_with(HammerCLIForeman::CommandExtensions::Status.new(only: :data))
48
+ end
49
+
50
+ self.default_subcommand = 'foreman'
51
+ autoload_subcommands
52
+ end
53
+ end
@@ -37,6 +37,7 @@ module HammerCLIForeman
37
37
  field :mask, _("Network Mask")
38
38
  field :vlanid, _("VLAN ID")
39
39
  field :boot_mode, _("Boot Mode")
40
+ field :gateway, _("Gateway Address")
40
41
  end
41
42
 
42
43
  build_options
@@ -52,6 +52,7 @@ module HammerCLIForeman
52
52
  class InfoCommand < HammerCLIForeman::InfoCommand
53
53
 
54
54
  output ListCommand.output_definition do
55
+ field :description, _('Description'), Fields::Text
55
56
  field :locked, _("Locked"), Fields::Boolean
56
57
  HammerCLIForeman::References.operating_systems(self)
57
58
  HammerCLIForeman::References.taxonomies(self)
@@ -1,5 +1,5 @@
1
1
  module HammerCLIForeman
2
2
  def self.version
3
- @version ||= Gem::Version.new "0.18.2"
3
+ @version ||= Gem::Version.new "0.19.0"
4
4
  end
5
5
  end
@@ -20,6 +20,7 @@ module HammerCLIForeman
20
20
  require 'hammer_cli_foreman/dependency_resolver'
21
21
  require 'hammer_cli_foreman/option_sources'
22
22
  require 'hammer_cli_foreman/logger'
23
+ require 'hammer_cli_foreman/sessions'
23
24
 
24
25
  begin
25
26
  require 'hammer_cli_foreman/command_extensions'
@@ -168,6 +169,13 @@ module HammerCLIForeman
168
169
  'HammerCLIForeman::ConfigGroup', 'hammer_cli_foreman/config_group'
169
170
  )
170
171
 
172
+ HammerCLI::MainCommand.lazy_subcommand('ping', _("Get the status of the server and/or it's subcomponents"),
173
+ 'HammerCLIForeman::PingCommand', 'hammer_cli_foreman/ping'
174
+ )
175
+
176
+ HammerCLI::MainCommand.lazy_subcommand('status', _("Get the complete status of the server and/or it's subcomponents"),
177
+ 'HammerCLIForeman::StatusCommand', 'hammer_cli_foreman/status'
178
+ )
171
179
  rescue => e
172
180
  handler = HammerCLIForeman::ExceptionHandler.new(:context => {}, :adapter => :base)
173
181
  handler.handle_exception(e)