knife-ionoscloud 5.1.2 → 6.0.0.alpha.1

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 (402) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/publish.yml +1 -4
  3. data/docs/README.md +0 -19
  4. data/docs/docs_generator.rb +1 -1
  5. data/docs/subcommands/backupunit_create.md +2 -5
  6. data/docs/subcommands/backupunit_delete.md +1 -4
  7. data/docs/subcommands/backupunit_list.md +1 -4
  8. data/docs/subcommands/backupunit_ssourl.md +1 -4
  9. data/docs/subcommands/composite_server_create.md +1 -4
  10. data/docs/subcommands/contract_list.md +1 -4
  11. data/docs/subcommands/datacenter_create.md +1 -4
  12. data/docs/subcommands/datacenter_delete.md +1 -4
  13. data/docs/subcommands/datacenter_list.md +1 -4
  14. data/docs/subcommands/firewall_create.md +2 -5
  15. data/docs/subcommands/firewall_delete.md +0 -3
  16. data/docs/subcommands/firewall_list.md +1 -4
  17. data/docs/subcommands/group_create.md +1 -4
  18. data/docs/subcommands/group_delete.md +1 -4
  19. data/docs/subcommands/group_get.md +1 -4
  20. data/docs/subcommands/group_list.md +1 -4
  21. data/docs/subcommands/group_user_add.md +0 -3
  22. data/docs/subcommands/group_user_remove.md +0 -3
  23. data/docs/subcommands/image_list.md +1 -4
  24. data/docs/subcommands/ipblock_create.md +1 -4
  25. data/docs/subcommands/ipblock_delete.md +1 -4
  26. data/docs/subcommands/ipblock_list.md +1 -4
  27. data/docs/subcommands/ipfailover_add.md +1 -4
  28. data/docs/subcommands/ipfailover_remove.md +1 -4
  29. data/docs/subcommands/k8s_create.md +5 -11
  30. data/docs/subcommands/k8s_delete.md +1 -4
  31. data/docs/subcommands/k8s_list.md +1 -4
  32. data/docs/subcommands/kubeconfig_get.md +1 -4
  33. data/docs/subcommands/label_add.md +1 -4
  34. data/docs/subcommands/label_list.md +1 -4
  35. data/docs/subcommands/label_remove.md +0 -3
  36. data/docs/subcommands/lan_create.md +1 -4
  37. data/docs/subcommands/lan_delete.md +0 -3
  38. data/docs/subcommands/lan_list.md +1 -4
  39. data/docs/subcommands/loadbalancer_create.md +2 -5
  40. data/docs/subcommands/loadbalancer_delete.md +0 -3
  41. data/docs/subcommands/loadbalancer_get.md +1 -4
  42. data/docs/subcommands/loadbalancer_list.md +1 -4
  43. data/docs/subcommands/loadbalancer_nic_add.md +0 -3
  44. data/docs/subcommands/loadbalancer_nic_remove.md +0 -3
  45. data/docs/subcommands/location_list.md +1 -4
  46. data/docs/subcommands/nic_create.md +3 -6
  47. data/docs/subcommands/nic_delete.md +1 -4
  48. data/docs/subcommands/nic_list.md +1 -4
  49. data/docs/subcommands/node_delete.md +0 -3
  50. data/docs/subcommands/node_list.md +1 -4
  51. data/docs/subcommands/node_replace.md +0 -3
  52. data/docs/subcommands/nodepool_create.md +5 -17
  53. data/docs/subcommands/nodepool_delete.md +0 -3
  54. data/docs/subcommands/nodepool_list.md +1 -4
  55. data/docs/subcommands/pcc_create.md +1 -4
  56. data/docs/subcommands/pcc_delete.md +1 -4
  57. data/docs/subcommands/pcc_list.md +1 -4
  58. data/docs/subcommands/request_list.md +1 -4
  59. data/docs/subcommands/request_status.md +1 -4
  60. data/docs/subcommands/request_wait.md +1 -4
  61. data/docs/subcommands/resource_list.md +1 -4
  62. data/docs/subcommands/s3key_create.md +1 -4
  63. data/docs/subcommands/s3key_delete.md +0 -3
  64. data/docs/subcommands/s3key_list.md +1 -4
  65. data/docs/subcommands/server_create.md +1 -4
  66. data/docs/subcommands/server_delete.md +0 -3
  67. data/docs/subcommands/server_list.md +1 -4
  68. data/docs/subcommands/server_reboot.md +0 -3
  69. data/docs/subcommands/server_start.md +0 -3
  70. data/docs/subcommands/server_stop.md +0 -3
  71. data/docs/subcommands/share_create.md +2 -5
  72. data/docs/subcommands/share_delete.md +2 -5
  73. data/docs/subcommands/share_list.md +1 -4
  74. data/docs/subcommands/snapshot_create.md +1 -4
  75. data/docs/subcommands/snapshot_delete.md +1 -4
  76. data/docs/subcommands/snapshot_list.md +1 -4
  77. data/docs/subcommands/snapshot_restore.md +1 -4
  78. data/docs/subcommands/user_create.md +3 -12
  79. data/docs/subcommands/user_delete.md +1 -4
  80. data/docs/subcommands/user_list.md +1 -4
  81. data/docs/subcommands/user_ssourl.md +1 -4
  82. data/docs/subcommands/volume_attach.md +0 -3
  83. data/docs/subcommands/volume_create.md +1 -28
  84. data/docs/subcommands/volume_delete.md +0 -3
  85. data/docs/subcommands/volume_detach.md +0 -3
  86. data/docs/subcommands/volume_list.md +1 -4
  87. data/docs/summary.md +0 -33
  88. data/knife-ionoscloud.gemspec +1 -1
  89. data/lib/chef/knife/ionoscloud_backupunit_create.rb +16 -12
  90. data/lib/chef/knife/ionoscloud_backupunit_delete.rb +5 -3
  91. data/lib/chef/knife/ionoscloud_backupunit_list.rb +1 -2
  92. data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +1 -2
  93. data/lib/chef/knife/ionoscloud_base.rb +6 -259
  94. data/lib/chef/knife/ionoscloud_composite_server_create.rb +38 -9
  95. data/lib/chef/knife/ionoscloud_contract_list.rb +32 -24
  96. data/lib/chef/knife/ionoscloud_cube_server_create.rb +215 -0
  97. data/lib/chef/knife/ionoscloud_datacenter_create.rb +14 -12
  98. data/lib/chef/knife/ionoscloud_datacenter_delete.rb +8 -3
  99. data/lib/chef/knife/ionoscloud_datacenter_list.rb +3 -4
  100. data/lib/chef/knife/ionoscloud_firewall_create.rb +24 -7
  101. data/lib/chef/knife/ionoscloud_firewall_delete.rb +14 -6
  102. data/lib/chef/knife/ionoscloud_firewall_list.rb +5 -4
  103. data/lib/chef/knife/ionoscloud_flowlog_create.rb +121 -0
  104. data/lib/chef/knife/ionoscloud_flowlog_delete.rb +106 -0
  105. data/lib/chef/knife/ionoscloud_flowlog_list.rb +100 -0
  106. data/lib/chef/knife/ionoscloud_group_create.rb +46 -16
  107. data/lib/chef/knife/ionoscloud_group_delete.rb +18 -2
  108. data/lib/chef/knife/ionoscloud_group_get.rb +17 -2
  109. data/lib/chef/knife/ionoscloud_group_list.rb +7 -2
  110. data/lib/chef/knife/ionoscloud_group_user_add.rb +13 -2
  111. data/lib/chef/knife/ionoscloud_group_user_remove.rb +13 -2
  112. data/lib/chef/knife/ionoscloud_image_list.rb +1 -2
  113. data/lib/chef/knife/ionoscloud_ipblock_create.rb +13 -11
  114. data/lib/chef/knife/ionoscloud_ipblock_delete.rb +4 -3
  115. data/lib/chef/knife/ionoscloud_ipblock_list.rb +1 -2
  116. data/lib/chef/knife/ionoscloud_ipfailover_add.rb +15 -9
  117. data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +9 -3
  118. data/lib/chef/knife/ionoscloud_k8s_create.rb +30 -28
  119. data/lib/chef/knife/ionoscloud_k8s_delete.rb +9 -2
  120. data/lib/chef/knife/ionoscloud_k8s_list.rb +0 -1
  121. data/lib/chef/knife/ionoscloud_kubeconfig_get.rb +0 -1
  122. data/lib/chef/knife/ionoscloud_label_add.rb +1 -2
  123. data/lib/chef/knife/ionoscloud_label_list.rb +1 -2
  124. data/lib/chef/knife/ionoscloud_label_remove.rb +1 -2
  125. data/lib/chef/knife/ionoscloud_lan_create.rb +14 -7
  126. data/lib/chef/knife/ionoscloud_lan_delete.rb +4 -4
  127. data/lib/chef/knife/ionoscloud_lan_list.rb +2 -5
  128. data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +16 -7
  129. data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +10 -3
  130. data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +13 -4
  131. data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +1 -2
  132. data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +14 -5
  133. data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +14 -5
  134. data/lib/chef/knife/ionoscloud_location_list.rb +5 -4
  135. data/lib/chef/knife/ionoscloud_natgateway_create.rb +71 -0
  136. data/lib/chef/knife/ionoscloud_natgateway_delete.rb +69 -0
  137. data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +82 -0
  138. data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +58 -0
  139. data/lib/chef/knife/ionoscloud_natgateway_list.rb +49 -0
  140. data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +124 -0
  141. data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +63 -0
  142. data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +72 -0
  143. data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +95 -0
  144. data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +81 -0
  145. data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +56 -0
  146. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +150 -0
  147. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +63 -0
  148. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +78 -0
  149. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +141 -0
  150. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +68 -0
  151. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +105 -0
  152. data/lib/chef/knife/ionoscloud_nic_create.rb +38 -19
  153. data/lib/chef/knife/ionoscloud_nic_delete.rb +11 -5
  154. data/lib/chef/knife/ionoscloud_nic_list.rb +9 -6
  155. data/lib/chef/knife/ionoscloud_node_delete.rb +6 -2
  156. data/lib/chef/knife/ionoscloud_node_list.rb +0 -2
  157. data/lib/chef/knife/ionoscloud_node_replace.rb +0 -1
  158. data/lib/chef/knife/ionoscloud_nodepool_create.rb +60 -38
  159. data/lib/chef/knife/ionoscloud_nodepool_delete.rb +32 -2
  160. data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +130 -0
  161. data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +96 -0
  162. data/lib/chef/knife/ionoscloud_nodepool_list.rb +3 -2
  163. data/lib/chef/knife/ionoscloud_pcc_create.rb +18 -13
  164. data/lib/chef/knife/ionoscloud_pcc_delete.rb +10 -3
  165. data/lib/chef/knife/ionoscloud_pcc_list.rb +1 -2
  166. data/lib/chef/knife/ionoscloud_request_list.rb +1 -2
  167. data/lib/chef/knife/ionoscloud_request_status.rb +1 -2
  168. data/lib/chef/knife/ionoscloud_request_wait.rb +0 -1
  169. data/lib/chef/knife/ionoscloud_resource_list.rb +0 -1
  170. data/lib/chef/knife/ionoscloud_s3key_create.rb +7 -4
  171. data/lib/chef/knife/ionoscloud_s3key_delete.rb +7 -5
  172. data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -3
  173. data/lib/chef/knife/{ionoscloud_server_get.rb → ionoscloud_server_console.rb} +11 -10
  174. data/lib/chef/knife/ionoscloud_server_create.rb +26 -15
  175. data/lib/chef/knife/ionoscloud_server_delete.rb +10 -3
  176. data/lib/chef/knife/ionoscloud_server_list.rb +16 -6
  177. data/lib/chef/knife/ionoscloud_server_reboot.rb +1 -2
  178. data/lib/chef/knife/ionoscloud_server_resume.rb +43 -0
  179. data/lib/chef/knife/ionoscloud_server_start.rb +1 -2
  180. data/lib/chef/knife/ionoscloud_server_stop.rb +1 -2
  181. data/lib/chef/knife/ionoscloud_server_suspend.rb +44 -0
  182. data/lib/chef/knife/ionoscloud_server_token.rb +42 -0
  183. data/lib/chef/knife/ionoscloud_server_upgrade.rb +44 -0
  184. data/lib/chef/knife/ionoscloud_share_create.rb +12 -8
  185. data/lib/chef/knife/ionoscloud_share_delete.rb +4 -3
  186. data/lib/chef/knife/ionoscloud_share_list.rb +0 -1
  187. data/lib/chef/knife/ionoscloud_snapshot_create.rb +10 -3
  188. data/lib/chef/knife/ionoscloud_snapshot_delete.rb +7 -3
  189. data/lib/chef/knife/ionoscloud_snapshot_list.rb +1 -2
  190. data/lib/chef/knife/ionoscloud_snapshot_restore.rb +2 -3
  191. data/lib/chef/knife/ionoscloud_template_list.rb +46 -0
  192. data/lib/chef/knife/ionoscloud_user_create.rb +20 -25
  193. data/lib/chef/knife/ionoscloud_user_delete.rb +7 -2
  194. data/lib/chef/knife/ionoscloud_user_list.rb +0 -1
  195. data/lib/chef/knife/ionoscloud_user_ssourl.rb +1 -2
  196. data/lib/chef/knife/ionoscloud_volume_attach.rb +1 -2
  197. data/lib/chef/knife/ionoscloud_volume_create.rb +31 -57
  198. data/lib/chef/knife/ionoscloud_volume_delete.rb +9 -3
  199. data/lib/chef/knife/ionoscloud_volume_detach.rb +9 -3
  200. data/lib/chef/knife/ionoscloud_volume_list.rb +2 -3
  201. data/lib/knife-ionoscloud/version.rb +1 -1
  202. data/spec/chef/knife/ionoscloud_backupunit_create_spec.rb +2 -2
  203. data/spec/chef/knife/ionoscloud_backupunit_delete_spec.rb +5 -5
  204. data/spec/chef/knife/ionoscloud_backupunit_list_spec.rb +1 -1
  205. data/spec/chef/knife/ionoscloud_backupunit_ssourl_spec.rb +3 -3
  206. data/spec/chef/knife/ionoscloud_base_spec.rb +4 -4
  207. data/spec/chef/knife/ionoscloud_composite_server_create_spec.rb +11 -8
  208. data/spec/chef/knife/ionoscloud_contract_list_spec.rb +32 -27
  209. data/spec/chef/knife/ionoscloud_cube_server_create_spec.rb +249 -0
  210. data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +3 -12
  211. data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +5 -8
  212. data/spec/chef/knife/ionoscloud_datacenter_list_spec.rb +4 -4
  213. data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +5 -3
  214. data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +6 -5
  215. data/spec/chef/knife/ionoscloud_firewall_list_spec.rb +5 -3
  216. data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +254 -0
  217. data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +360 -0
  218. data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +264 -0
  219. data/spec/chef/knife/ionoscloud_group_create_spec.rb +6 -7
  220. data/spec/chef/knife/ionoscloud_group_delete_spec.rb +3 -0
  221. data/spec/chef/knife/ionoscloud_group_get_spec.rb +3 -0
  222. data/spec/chef/knife/ionoscloud_group_list_spec.rb +11 -2
  223. data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +0 -3
  224. data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +0 -3
  225. data/spec/chef/knife/ionoscloud_image_list_spec.rb +2 -2
  226. data/spec/chef/knife/ionoscloud_ipblock_delete_spec.rb +0 -2
  227. data/spec/chef/knife/ionoscloud_ipblock_list_spec.rb +1 -1
  228. data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +4 -5
  229. data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +7 -8
  230. data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +0 -8
  231. data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +1 -7
  232. data/spec/chef/knife/ionoscloud_kubeconfig_get_spec.rb +2 -2
  233. data/spec/chef/knife/ionoscloud_label_add_spec.rb +10 -10
  234. data/spec/chef/knife/ionoscloud_label_list_spec.rb +14 -14
  235. data/spec/chef/knife/ionoscloud_label_remove_spec.rb +20 -20
  236. data/spec/chef/knife/ionoscloud_lan_create_spec.rb +3 -4
  237. data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +5 -7
  238. data/spec/chef/knife/ionoscloud_lan_list_spec.rb +3 -5
  239. data/spec/chef/knife/ionoscloud_loadbalancer_create_spec.rb +3 -3
  240. data/spec/chef/knife/ionoscloud_loadbalancer_delete_spec.rb +5 -5
  241. data/spec/chef/knife/ionoscloud_loadbalancer_get_spec.rb +2 -2
  242. data/spec/chef/knife/ionoscloud_loadbalancer_list_spec.rb +2 -2
  243. data/spec/chef/knife/ionoscloud_loadbalancer_nic_add_spec.rb +6 -6
  244. data/spec/chef/knife/ionoscloud_loadbalancer_nic_remove_spec.rb +6 -6
  245. data/spec/chef/knife/ionoscloud_location_list_spec.rb +5 -3
  246. data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +77 -0
  247. data/spec/chef/knife/ionoscloud_natgateway_delete_spec.rb +118 -0
  248. data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +143 -0
  249. data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +194 -0
  250. data/spec/chef/knife/ionoscloud_natgateway_list_spec.rb +79 -0
  251. data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +98 -0
  252. data/spec/chef/knife/ionoscloud_natgateway_rule_list_spec.rb +92 -0
  253. data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +77 -0
  254. data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +80 -0
  255. data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +119 -0
  256. data/spec/chef/knife/ionoscloud_networkloadbalancer_list_spec.rb +88 -0
  257. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +104 -0
  258. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_list_spec.rb +89 -0
  259. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +124 -0
  260. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +109 -0
  261. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_list_spec.rb +85 -0
  262. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +263 -0
  263. data/spec/chef/knife/ionoscloud_nic_create_spec.rb +9 -5
  264. data/spec/chef/knife/ionoscloud_nic_delete_spec.rb +8 -6
  265. data/spec/chef/knife/ionoscloud_nic_list_spec.rb +12 -6
  266. data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +20 -13
  267. data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +13 -27
  268. data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +226 -0
  269. data/spec/chef/knife/ionoscloud_nodepool_lan_remove.rb +199 -0
  270. data/spec/chef/knife/ionoscloud_nodepool_list_spec.rb +3 -1
  271. data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +8 -11
  272. data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +6 -6
  273. data/spec/chef/knife/ionoscloud_pcc_list_spec.rb +2 -2
  274. data/spec/chef/knife/ionoscloud_request_list_spec.rb +24 -25
  275. data/spec/chef/knife/ionoscloud_request_status_spec.rb +3 -3
  276. data/spec/chef/knife/ionoscloud_s3key_create_spec.rb +2 -2
  277. data/spec/chef/knife/ionoscloud_s3key_delete_spec.rb +5 -5
  278. data/spec/chef/knife/ionoscloud_s3key_list_spec.rb +2 -2
  279. data/spec/chef/knife/ionoscloud_server_console_spec.rb +97 -0
  280. data/spec/chef/knife/ionoscloud_server_create_spec.rb +3 -3
  281. data/spec/chef/knife/ionoscloud_server_delete_spec.rb +5 -5
  282. data/spec/chef/knife/ionoscloud_server_list_spec.rb +63 -5
  283. data/spec/chef/knife/ionoscloud_server_reboot_spec.rb +3 -5
  284. data/spec/chef/knife/ionoscloud_server_resume_spec.rb +93 -0
  285. data/spec/chef/knife/ionoscloud_server_start_spec.rb +3 -5
  286. data/spec/chef/knife/ionoscloud_server_stop_spec.rb +3 -5
  287. data/spec/chef/knife/ionoscloud_server_suspend_spec.rb +93 -0
  288. data/spec/chef/knife/ionoscloud_server_token_spec.rb +97 -0
  289. data/spec/chef/knife/ionoscloud_server_upgrade_spec.rb +96 -0
  290. data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +3 -16
  291. data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +5 -17
  292. data/spec/chef/knife/ionoscloud_snapshot_list_spec.rb +2 -2
  293. data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +3 -3
  294. data/spec/chef/knife/ionoscloud_template_list_spec.rb +78 -0
  295. data/spec/chef/knife/ionoscloud_user_create_spec.rb +1 -3
  296. data/spec/chef/knife/ionoscloud_user_delete_spec.rb +2 -4
  297. data/spec/chef/knife/ionoscloud_user_ssourl_spec.rb +3 -3
  298. data/spec/chef/knife/ionoscloud_volume_attach_spec.rb +4 -4
  299. data/spec/chef/knife/ionoscloud_volume_create_spec.rb +6 -15
  300. data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +5 -14
  301. data/spec/chef/knife/ionoscloud_volume_detach_spec.rb +5 -14
  302. data/spec/chef/knife/ionoscloud_volume_list_spec.rb +4 -4
  303. data/spec/spec_helper.rb +270 -116
  304. metadata +93 -138
  305. data/docs/subcommands/backupunit_get.md +0 -35
  306. data/docs/subcommands/backupunit_update.md +0 -41
  307. data/docs/subcommands/datacenter_get.md +0 -35
  308. data/docs/subcommands/datacenter_update.md +0 -44
  309. data/docs/subcommands/firewall_get.md +0 -47
  310. data/docs/subcommands/firewall_update.md +0 -71
  311. data/docs/subcommands/group_update.md +0 -65
  312. data/docs/subcommands/ipblock_get.md +0 -35
  313. data/docs/subcommands/ipblock_update.md +0 -38
  314. data/docs/subcommands/k8s_get.md +0 -35
  315. data/docs/subcommands/k8s_update.md +0 -53
  316. data/docs/subcommands/lan_get.md +0 -39
  317. data/docs/subcommands/lan_update.md +0 -51
  318. data/docs/subcommands/loadbalancer_update.md +0 -48
  319. data/docs/subcommands/nic_get.md +0 -43
  320. data/docs/subcommands/nic_update.md +0 -58
  321. data/docs/subcommands/node_get.md +0 -43
  322. data/docs/subcommands/nodepool_get.md +0 -39
  323. data/docs/subcommands/nodepool_update.md +0 -69
  324. data/docs/subcommands/pcc_get.md +0 -35
  325. data/docs/subcommands/pcc_update.md +0 -41
  326. data/docs/subcommands/request_get.md +0 -35
  327. data/docs/subcommands/s3key_get.md +0 -39
  328. data/docs/subcommands/server_get.md +0 -39
  329. data/docs/subcommands/server_update.md +0 -60
  330. data/docs/subcommands/share_get.md +0 -39
  331. data/docs/subcommands/share_update.md +0 -45
  332. data/docs/subcommands/snapshot_get.md +0 -35
  333. data/docs/subcommands/snapshot_update.md +0 -77
  334. data/docs/subcommands/user_get.md +0 -35
  335. data/docs/subcommands/user_update.md +0 -56
  336. data/docs/subcommands/volume_get.md +0 -39
  337. data/docs/subcommands/volume_update.md +0 -66
  338. data/lib/chef/knife/ionoscloud_backupunit_get.rb +0 -33
  339. data/lib/chef/knife/ionoscloud_backupunit_update.rb +0 -62
  340. data/lib/chef/knife/ionoscloud_datacenter_get.rb +0 -33
  341. data/lib/chef/knife/ionoscloud_datacenter_update.rb +0 -67
  342. data/lib/chef/knife/ionoscloud_firewall_get.rb +0 -50
  343. data/lib/chef/knife/ionoscloud_firewall_update.rb +0 -131
  344. data/lib/chef/knife/ionoscloud_group_update.rb +0 -114
  345. data/lib/chef/knife/ionoscloud_ipblock_get.rb +0 -33
  346. data/lib/chef/knife/ionoscloud_ipblock_update.rb +0 -57
  347. data/lib/chef/knife/ionoscloud_k8s_get.rb +0 -33
  348. data/lib/chef/knife/ionoscloud_k8s_update.rb +0 -99
  349. data/lib/chef/knife/ionoscloud_lan_get.rb +0 -38
  350. data/lib/chef/knife/ionoscloud_lan_update.rb +0 -87
  351. data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +0 -73
  352. data/lib/chef/knife/ionoscloud_nic_get.rb +0 -47
  353. data/lib/chef/knife/ionoscloud_nic_update.rb +0 -93
  354. data/lib/chef/knife/ionoscloud_node_get.rb +0 -47
  355. data/lib/chef/knife/ionoscloud_nodepool_get.rb +0 -41
  356. data/lib/chef/knife/ionoscloud_nodepool_update.rb +0 -124
  357. data/lib/chef/knife/ionoscloud_pcc_get.rb +0 -33
  358. data/lib/chef/knife/ionoscloud_pcc_update.rb +0 -63
  359. data/lib/chef/knife/ionoscloud_request_get.rb +0 -40
  360. data/lib/chef/knife/ionoscloud_s3key_get.rb +0 -38
  361. data/lib/chef/knife/ionoscloud_server_update.rb +0 -97
  362. data/lib/chef/knife/ionoscloud_share_get.rb +0 -38
  363. data/lib/chef/knife/ionoscloud_share_update.rb +0 -70
  364. data/lib/chef/knife/ionoscloud_snapshot_get.rb +0 -32
  365. data/lib/chef/knife/ionoscloud_snapshot_update.rb +0 -126
  366. data/lib/chef/knife/ionoscloud_user_get.rb +0 -32
  367. data/lib/chef/knife/ionoscloud_user_update.rb +0 -92
  368. data/lib/chef/knife/ionoscloud_volume_get.rb +0 -36
  369. data/lib/chef/knife/ionoscloud_volume_update.rb +0 -106
  370. data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +0 -65
  371. data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +0 -78
  372. data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +0 -69
  373. data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +0 -82
  374. data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +0 -76
  375. data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +0 -116
  376. data/spec/chef/knife/ionoscloud_group_update_spec.rb +0 -109
  377. data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +0 -66
  378. data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +0 -79
  379. data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +0 -73
  380. data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +0 -115
  381. data/spec/chef/knife/ionoscloud_lan_get_spec.rb +0 -68
  382. data/spec/chef/knife/ionoscloud_lan_update_spec.rb +0 -91
  383. data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +0 -89
  384. data/spec/chef/knife/ionoscloud_nic_get_spec.rb +0 -70
  385. data/spec/chef/knife/ionoscloud_nic_update_spec.rb +0 -92
  386. data/spec/chef/knife/ionoscloud_node_get_spec.rb +0 -70
  387. data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +0 -83
  388. data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +0 -130
  389. data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +0 -71
  390. data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +0 -83
  391. data/spec/chef/knife/ionoscloud_request_get_spec.rb +0 -69
  392. data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +0 -66
  393. data/spec/chef/knife/ionoscloud_server_get_spec.rb +0 -71
  394. data/spec/chef/knife/ionoscloud_server_update_spec.rb +0 -102
  395. data/spec/chef/knife/ionoscloud_share_get_spec.rb +0 -66
  396. data/spec/chef/knife/ionoscloud_share_update_spec.rb +0 -91
  397. data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +0 -79
  398. data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +0 -113
  399. data/spec/chef/knife/ionoscloud_user_get_spec.rb +0 -70
  400. data/spec/chef/knife/ionoscloud_user_update_spec.rb +0 -110
  401. data/spec/chef/knife/ionoscloud_volume_get_spec.rb +0 -80
  402. data/spec/chef/knife/ionoscloud_volume_update_spec.rb +0 -115
@@ -0,0 +1,44 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudServerSuspend < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud server suspend SERVER_ID [SERVER_ID] (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_ID',
12
+ long: '--datacenter-id DATACENTER_ID',
13
+ description: 'ID of the data center'
14
+
15
+ attr_reader :description, :required_options
16
+
17
+ def initialize(args = [])
18
+ super(args)
19
+ @description =
20
+ 'This will suspend a server. The operation can only be applied to Cube servers. '\
21
+ 'Note: The virtual machine will not be deleted, and the consumed resources will continue to be billed.'
22
+ @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
23
+ end
24
+
25
+ def run
26
+ $stdout.sync = true
27
+ validate_required_params(@required_options, config)
28
+
29
+ server_api = Ionoscloud::ServersApi.new(api_client)
30
+
31
+ @name_args.each do |server_id|
32
+ begin
33
+ _, _, headers = server_api.datacenters_servers_suspend_post_with_http_info(config[:datacenter_id], server_id)
34
+ rescue Ionoscloud::ApiError => err
35
+ raise err unless err.code == 404
36
+ ui.error("Server ID #{server_id} not found. Skipping.")
37
+ next
38
+ end
39
+ ui.warn("Server #{server_id} is being suspended. Request ID: #{get_request_id headers}")
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,42 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudServerToken < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud server token (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_ID',
12
+ long: '--datacenter-id DATACENTER_ID',
13
+ description: 'The ID of the Datacenter.'
14
+
15
+ option :server_id,
16
+ short: '-S SERVER_ID',
17
+ long: '--server-id SERVER_ID',
18
+ description: 'The ID of the Server.'
19
+
20
+ attr_reader :description, :required_options
21
+
22
+ def initialize(args = [])
23
+ super(args)
24
+ @description =
25
+ 'Returns the server json web token to be used for login operations (ex: accessing the server console).'
26
+ @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
27
+ end
28
+
29
+ def run
30
+ $stdout.sync = true
31
+ validate_required_params(@required_options, config)
32
+
33
+ begin
34
+ puts Ionoscloud::ServersApi.new(api_client).datacenters_servers_token_get(config[:datacenter_id], config[:server_id]).token
35
+ rescue Ionoscloud::ApiError => err
36
+ raise err unless err.code == 404
37
+ ui.error("Server ID #{config[:server_id]} not found.")
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,44 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudServerUpgrade < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud server upgrade (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_ID',
12
+ long: '--datacenter-id DATACENTER_ID',
13
+ description: 'The ID of the Datacenter.'
14
+
15
+ option :server_id,
16
+ short: '-S SERVER_ID',
17
+ long: '--server-id SERVER_ID',
18
+ description: 'The ID of the Server.'
19
+
20
+ attr_reader :description, :required_options
21
+
22
+ def initialize(args = [])
23
+ super(args)
24
+ @description =
25
+ "This will upgrade the version of the server, if needed. To verify if there is an upgrade available for a server, "\
26
+ "call '/datacenters/{datacenterId}/servers?upgradeNeeded=true'."
27
+ @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
28
+ end
29
+
30
+ def run
31
+ $stdout.sync = true
32
+ validate_required_params(@required_options, config)
33
+
34
+ begin
35
+ _, _, headers = Ionoscloud::ServersApi.new(api_client).datacenters_servers_upgrade_post(config[:datacenter_id], config[:server_id])
36
+ ui.info("Server #{config[:server_id]} is being upgraded. Request ID: #{get_request_id headers}")
37
+ rescue Ionoscloud::ApiError => err
38
+ raise err unless err.code == 404
39
+ ui.error("Server ID #{config[:server_id]} not found.")
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -18,6 +18,7 @@ class Chef
18
18
  description: 'The ID of the resource.'
19
19
 
20
20
  option :edit_privilege,
21
+ short: '-e',
21
22
  long: '--edit',
22
23
  description: 'The group has permission to edit privileges on this resource.'
23
24
 
@@ -39,7 +40,6 @@ class Chef
39
40
 
40
41
  def run
41
42
  $stdout.sync = true
42
- handle_extra_config
43
43
  validate_required_params(@required_options, config)
44
44
 
45
45
  print "#{ui.color('Sharing Resource...', :magenta)}"
@@ -49,18 +49,22 @@ class Chef
49
49
  share, _, headers = user_management_api.um_groups_shares_post_with_http_info(
50
50
  config[:group_id],
51
51
  config[:resource_id],
52
- Ionoscloud::GroupShare.new(
53
- properties: Ionoscloud::GroupShareProperties.new(
54
- edit_privilege: config[:edit_privilege],
55
- share_privilege: config[:share_privilege],
56
- ),
57
- ),
52
+ {
53
+ properties: {
54
+ editPrivilege: config[:edit_privilege],
55
+ sharePrivilege: config[:share_privilege],
56
+ }.compact,
57
+ },
58
58
  )
59
59
 
60
60
  dot = ui.color('.', :magenta)
61
61
  api_client.wait_for { print dot; is_done? get_request_id headers }
62
62
 
63
- print_share(share)
63
+ puts "\n"
64
+ puts "#{ui.color('ID', :cyan)}: #{share.id}"
65
+ puts "#{ui.color('Edit Privilege', :cyan)}: #{share.properties.edit_privilege.to_s}"
66
+ puts "#{ui.color('Share Privilege', :cyan)}: #{share.properties.share_privilege.to_s}"
67
+ puts 'done'
64
68
  end
65
69
  end
66
70
  end
@@ -5,7 +5,7 @@ class Chef
5
5
  class IonoscloudShareDelete < Knife
6
6
  include Knife::IonoscloudBase
7
7
 
8
- banner 'knife ionoscloud server delete RESOURCE_ID [RESOURCE_ID] (options)'
8
+ banner 'knife ionoscloud server delete SHARE_ID [SHARE_ID] (options)'
9
9
 
10
10
  option :group_id,
11
11
  short: '-G GROUP_ID',
@@ -23,7 +23,6 @@ class Chef
23
23
 
24
24
  def run
25
25
  $stdout.sync = true
26
- handle_extra_config
27
26
  validate_required_params(@required_options, config)
28
27
 
29
28
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -37,7 +36,9 @@ class Chef
37
36
  next
38
37
  end
39
38
 
40
- print_share(share)
39
+ msg_pair('ID', share.id)
40
+ msg_pair('Edit Privilege', share.properties.edit_privilege.to_s)
41
+ msg_pair('Share Privilege', share.properties.share_privilege.to_s)
41
42
 
42
43
  begin
43
44
  confirm('Do you really want to delete this Resource Share')
@@ -24,7 +24,6 @@ class Chef
24
24
 
25
25
  def run
26
26
  $stdout.sync = true
27
- handle_extra_config
28
27
  validate_required_params(@required_options, config)
29
28
 
30
29
  share_list = [
@@ -47,12 +47,11 @@ class Chef
47
47
 
48
48
  def run
49
49
  $stdout.sync = true
50
- handle_extra_config
51
50
  validate_required_params(@required_options, config)
52
51
 
53
52
  print "#{ui.color('Creating Snapshot...', :magenta)}"
54
53
 
55
- volume_api = Ionoscloud::VolumeApi.new(api_client)
54
+ volume_api = Ionoscloud::VolumesApi.new(api_client)
56
55
 
57
56
  snapshot, _, headers = volume_api.datacenters_volumes_create_snapshot_post_with_http_info(
58
57
  config[:datacenter_id],
@@ -68,7 +67,15 @@ class Chef
68
67
  dot = ui.color('.', :magenta)
69
68
  api_client.wait_for { print dot; is_done? get_request_id headers }
70
69
 
71
- print_snapshot(Ionoscloud::SnapshotApi.new(api_client).snapshots_find_by_id(snapshot.id))
70
+ snapshot = Ionoscloud::SnapshotsApi.new(api_client).snapshots_find_by_id(snapshot.id)
71
+
72
+ puts "\n"
73
+ puts "#{ui.color('ID', :cyan)}: #{snapshot.id}"
74
+ puts "#{ui.color('Name', :cyan)}: #{snapshot.properties.name}"
75
+ puts "#{ui.color('Description', :cyan)}: #{snapshot.properties.description}"
76
+ puts "#{ui.color('Location', :cyan)}: #{snapshot.properties.location}"
77
+ puts "#{ui.color('Size', :cyan)}: #{snapshot.properties.size.to_s}"
78
+ puts 'done'
72
79
  end
73
80
  end
74
81
  end
@@ -18,10 +18,9 @@ class Chef
18
18
 
19
19
  def run
20
20
  $stdout.sync = true
21
- handle_extra_config
22
21
  validate_required_params(@required_options, config)
23
22
 
24
- snapshot_api = Ionoscloud::SnapshotApi.new(api_client)
23
+ snapshot_api = Ionoscloud::SnapshotsApi.new(api_client)
25
24
 
26
25
  @name_args.each do |snapshot_id|
27
26
  begin
@@ -32,7 +31,12 @@ class Chef
32
31
  next
33
32
  end
34
33
 
35
- print_snapshot(snapshot)
34
+ msg_pair('ID', snapshot.id)
35
+ msg_pair('Name', snapshot.properties.name)
36
+ msg_pair('Description', snapshot.properties.description)
37
+ msg_pair('Location', snapshot.properties.location)
38
+ msg_pair('Size', snapshot.properties.size.to_s)
39
+
36
40
  puts "\n"
37
41
 
38
42
  begin
@@ -18,7 +18,6 @@ class Chef
18
18
 
19
19
  def run
20
20
  $stdout.sync = true
21
- handle_extra_config
22
21
  validate_required_params(@required_options, config)
23
22
 
24
23
  snapshot_list = [
@@ -29,7 +28,7 @@ class Chef
29
28
  ui.color('Size', :bold)
30
29
  ]
31
30
 
32
- snapshot_api = Ionoscloud::SnapshotApi.new(api_client)
31
+ snapshot_api = Ionoscloud::SnapshotsApi.new(api_client)
33
32
 
34
33
  snapshot_api.snapshots_get({ depth: 1 }).items.each do |snapshot|
35
34
  snapshot_list << snapshot.id
@@ -34,12 +34,11 @@ class Chef
34
34
 
35
35
  def run
36
36
  $stdout.sync = true
37
- handle_extra_config
38
37
  validate_required_params(@required_options, config)
39
38
 
40
39
  print "#{ui.color('Restoring Snapshot...', :magenta)}"
41
40
 
42
- volume_api = Ionoscloud::VolumeApi.new(api_client)
41
+ volume_api = Ionoscloud::VolumesApi.new(api_client)
43
42
 
44
43
  _, _, headers = volume_api.datacenters_volumes_restore_snapshot_post_with_http_info(
45
44
  config[:datacenter_id],
@@ -50,7 +49,7 @@ class Chef
50
49
  dot = ui.color('.', :magenta)
51
50
  api_client.wait_for { print dot; is_done? get_request_id headers }
52
51
 
53
- volume_api = Ionoscloud::VolumeApi.new(api_client)
52
+ volume_api = Ionoscloud::VolumesApi.new(api_client)
54
53
 
55
54
  volume = volume_api.datacenters_volumes_find_by_id(config[:datacenter_id], config[:volume_id])
56
55
 
@@ -0,0 +1,46 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudTemplateList < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud template list'
9
+
10
+ attr_reader :description, :required_options
11
+
12
+ def initialize(args = [])
13
+ super(args)
14
+ @description =
15
+ 'Retrieve a list of available templates. Templates can be used on specific server types only (CUBE at the moment)'
16
+ @required_options = [:ionoscloud_username, :ionoscloud_password]
17
+ end
18
+
19
+ def run
20
+ $stdout.sync = true
21
+ validate_required_params(@required_options, config)
22
+
23
+ template_list = [
24
+ ui.color('ID', :bold),
25
+ ui.color('Name', :bold),
26
+ ui.color('Cores', :bold),
27
+ ui.color('RAM', :bold),
28
+ ui.color('Storage Size', :bold),
29
+ ]
30
+ templates_api = Ionoscloud::TemplatesApi.new(api_client)
31
+
32
+ templates_api.templates_get({ depth: 1 }).items.sort do |a, b|
33
+ a.properties.cores != b.properties.cores ? a.properties.cores <=> b.properties.cores : a.properties.ram <=> b.properties.ram
34
+ end.each do |template|
35
+ template_list << template.id
36
+ template_list << template.properties.name
37
+ template_list << Integer(template.properties.cores)
38
+ template_list << Integer(template.properties.ram)
39
+ template_list << Integer(template.properties.storage_size)
40
+ end
41
+
42
+ puts ui.list(template_list, :uneven_columns_across, 5)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -18,6 +18,7 @@ class Chef
18
18
  description: 'Lastname of the user.'
19
19
 
20
20
  option :email,
21
+ short: '-e EMAIL',
21
22
  long: '--email EMAIL',
22
23
  description: 'An e-mail address for the user.'
23
24
 
@@ -32,16 +33,8 @@ class Chef
32
33
  description: 'Assigns the user have administrative rights.'
33
34
 
34
35
  option :force_sec_auth,
35
- long: '--force-sec-auth',
36
- description: 'Indicates if secure (two-factor) authentication should be forced for the user.'
37
-
38
- option :sec_auth_active,
39
36
  long: '--sec-auth',
40
- description: 'Indicates if secure authentication is active for the user or not.'
41
-
42
- option :active,
43
- long: '--active',
44
- description: 'Indicates if the user is active.'
37
+ description: 'Indicates if secure (two-factor) authentication should be forced for the user.'
45
38
 
46
39
  attr_reader :description, :required_options
47
40
 
@@ -56,32 +49,34 @@ class Chef
56
49
 
57
50
  def run
58
51
  $stdout.sync = true
59
- handle_extra_config
60
52
  validate_required_params(@required_options, config)
61
53
 
62
54
  print "#{ui.color('Creating user...', :magenta)}"
63
55
 
64
56
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
65
57
 
66
- user, _, headers = user_management_api.um_users_post_with_http_info(
67
- Ionoscloud::UserPost.new(
68
- properties: Ionoscloud::UserPropertiesPost.new(
69
- firstname: config[:firstname],
70
- lastname: config[:lastname],
71
- email: config[:email],
72
- password: config[:password],
73
- administrator: config[:administrator],
74
- force_sec_auth: config[:force_sec_auth],
75
- sec_auth_active: config[:sec_auth_active],
76
- active: config[:active],
77
- ),
78
- ),
79
- )
58
+ user, _, headers = user_management_api.um_users_post_with_http_info({
59
+ properties: {
60
+ firstname: config[:firstname],
61
+ lastname: config[:lastname],
62
+ email: config[:email],
63
+ password: config[:password],
64
+ administrator: config[:administrator],
65
+ forceSecAuth: config[:force_sec_auth],
66
+ }.compact,
67
+ })
80
68
 
81
69
  dot = ui.color('.', :magenta)
82
70
  api_client.wait_for { print dot; is_done? get_request_id headers }
83
71
 
84
- print_user(user)
72
+ puts "\n"
73
+ puts "#{ui.color('ID', :cyan)}: #{user.id}"
74
+ puts "#{ui.color('Firstname', :cyan)}: #{user.properties.firstname}"
75
+ puts "#{ui.color('Lastname', :cyan)}: #{user.properties.lastname}"
76
+ puts "#{ui.color('Email', :cyan)}: #{user.properties.email}"
77
+ puts "#{ui.color('Administrator', :cyan)}: #{user.properties.administrator.to_s}"
78
+ puts "#{ui.color('2-Factor Auth', :cyan)}: #{user.properties.force_sec_auth.to_s}"
79
+ puts 'done'
85
80
  end
86
81
  end
87
82
  end
@@ -20,7 +20,6 @@ class Chef
20
20
 
21
21
  def run
22
22
  $stdout.sync = true
23
- handle_extra_config
24
23
  validate_required_params(@required_options, config)
25
24
 
26
25
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -34,7 +33,13 @@ class Chef
34
33
  next
35
34
  end
36
35
 
37
- print_user(user)
36
+ msg_pair('ID', user.id)
37
+ msg_pair('Firstname', user.properties.firstname)
38
+ msg_pair('Lastname', user.properties.lastname)
39
+ msg_pair('Email', user.properties.email)
40
+ msg_pair('Administrator', user.properties.administrator.to_s)
41
+ msg_pair('2-Factor Auth', user.properties.force_sec_auth.to_s)
42
+ puts "\n"
38
43
 
39
44
  begin
40
45
  confirm('Do you really want to delete this User')
@@ -25,7 +25,6 @@ class Chef
25
25
 
26
26
  def run
27
27
  $stdout.sync = true
28
- handle_extra_config
29
28
  validate_required_params(@required_options, config)
30
29
 
31
30
  user_list = [
@@ -23,11 +23,10 @@ class Chef
23
23
 
24
24
  def run
25
25
  $stdout.sync = true
26
- handle_extra_config
27
26
  validate_required_params(@required_options, config)
28
27
 
29
28
  begin
30
- puts Ionoscloud::UserManagementApi.new(api_client).um_users_s3ssourl_get(config[:user_id]).sso_url
29
+ puts Ionoscloud::UserS3KeysApi.new(api_client).um_users_s3ssourl_get(config[:user_id]).sso_url
31
30
  rescue Ionoscloud::ApiError => err
32
31
  raise err unless err.code == 404
33
32
  ui.error("User ID #{config[:user_id]} not found.")
@@ -28,10 +28,9 @@ class Chef
28
28
 
29
29
  def run
30
30
  $stdout.sync = true
31
- handle_extra_config
32
31
  validate_required_params(@required_options, config)
33
32
 
34
- server_api = Ionoscloud::ServerApi.new(api_client)
33
+ server_api = Ionoscloud::ServersApi.new(api_client)
35
34
 
36
35
  @name_args.each do |volume_id|
37
36
  begin
@@ -25,18 +25,13 @@ class Chef
25
25
  option :bus,
26
26
  short: '-b BUS',
27
27
  long: '--bus BUS',
28
- description: 'The bus type of the volume (VIRTIO or IDE)',
29
- default: 'VIRTIO'
28
+ description: 'The bus type of the volume (VIRTIO or IDE)'
30
29
 
31
30
  option :image,
32
31
  short: '-N ID',
33
32
  long: '--image ID',
34
33
  description: 'The image or snapshot ID'
35
34
 
36
- option :image_alias,
37
- long: '--image-alias IMAGE_ALIAS',
38
- description: '(required) The image alias'
39
-
40
35
  option :image_password,
41
36
  short: '-P PASSWORD',
42
37
  long: '--image-password PASSWORD',
@@ -45,7 +40,7 @@ class Chef
45
40
  option :type,
46
41
  short: '-t TYPE',
47
42
  long: '--type TYPE',
48
- description: 'The disk type (HDD OR SSD)'
43
+ description: 'The disk type (HDD, SSD, SSD Standard, SSD Premium, DAS)'
49
44
 
50
45
  option :licence_type,
51
46
  short: '-l LICENCE',
@@ -76,30 +71,6 @@ class Chef
76
71
  'immutable and is only allowed to be set on a new volume creation. It is mandatory to provide either \'public image\' '\
77
72
  'or \'imageAlias\' that has cloud-init compatibility in conjunction with this property.'
78
73
 
79
- option :cpu_hot_plug,
80
- long: '--cpu-hot-plug CPU_HOT_PLUG',
81
- description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
82
-
83
- option :ram_hot_plug,
84
- long: '--ram-hot-plug RAM_HOT_PLUG',
85
- description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
86
-
87
- option :nic_hot_plug,
88
- long: '--nic-hot-plug NIC_HOT_PLUG',
89
- description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
90
-
91
- option :nic_hot_unplug,
92
- long: '--nic-hot-unplug NIC_HOT_UNPLUG',
93
- description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
94
-
95
- option :disc_virtio_hot_plug,
96
- long: '--disc-virtio-hot_plug DISC_VIRTIO_HOT_PLUG',
97
- description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
98
-
99
- option :disc_virtio_hot_unplug,
100
- long: '--disc-virtio-hot_unplug DISC_VIRTIO_HOT_UNPLUG',
101
- description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
102
-
103
74
  attr_reader :description, :required_options
104
75
 
105
76
  def initialize(args = [])
@@ -112,45 +83,48 @@ class Chef
112
83
 
113
84
  def run
114
85
  $stdout.sync = true
115
- handle_extra_config
116
86
  validate_required_params(@required_options, config)
117
87
 
118
- config[:ssh_keys] = config[:ssh_keys].split(',') if config[:ssh_keys] && config[:ssh_keys].instance_of?(String)
88
+ config[:ssh_keys] = config[:ssh_keys].split(',') if config[:ssh_keys]
119
89
 
120
90
  print "#{ui.color('Creating volume...', :magenta)}"
121
91
 
122
- volume_api = Ionoscloud::VolumeApi.new(api_client)
92
+ volume_api = Ionoscloud::VolumesApi.new(api_client)
93
+
94
+ volume_properties = {
95
+ name: config[:name],
96
+ size: config[:size],
97
+ bus: config[:bus] || 'VIRTIO',
98
+ type: config[:type],
99
+ licence_type: config[:licence_type],
100
+ image: config[:image],
101
+ ssh_keys: config[:ssh_keys],
102
+ image_password: config[:image_password],
103
+ availability_zone: config[:availability_zone],
104
+ backupunit_id: config[:backupunit_id],
105
+ user_data: config[:user_data],
106
+ }.compact
123
107
 
124
108
  volume, _, headers = volume_api.datacenters_volumes_post_with_http_info(
125
109
  config[:datacenter_id],
126
- Ionoscloud::Volume.new(
127
- properties: Ionoscloud::VolumeProperties.new(
128
- name: config[:name],
129
- size: config[:size],
130
- bus: config[:bus],
131
- type: config[:type],
132
- licence_type: config[:licence_type],
133
- image: config[:image],
134
- image_alias: config[:image_alias],
135
- ssh_keys: config[:ssh_keys],
136
- image_password: config[:image_password],
137
- availability_zone: config[:availability_zone],
138
- backupunit_id: config[:backupunit_id],
139
- user_data: config[:user_data],
140
- cpu_hot_plug: (config.key?(:cpu_hot_plug) ? config[:cpu_hot_plug].to_s.downcase == 'true' : nil),
141
- ram_hot_plug: (config.key?(:ram_hot_plug) ? config[:ram_hot_plug].to_s.downcase == 'true' : nil),
142
- nic_hot_plug: (config.key?(:nic_hot_plug) ? config[:nic_hot_plug].to_s.downcase == 'true' : nil),
143
- nic_hot_unplug: (config.key?(:nic_hot_unplug) ? config[:nic_hot_unplug].to_s.downcase == 'true' : nil),
144
- disc_virtio_hot_plug: (config.key?(:disc_virtio_hot_plug) ? config[:disc_virtio_hot_plug].to_s.downcase == 'true' : nil),
145
- disc_virtio_hot_unplug: (config.key?(:disc_virtio_hot_unplug) ? config[:disc_virtio_hot_unplug].to_s.downcase == 'true' : nil),
146
- ),
147
- ),
110
+ Ionoscloud::Volume.new(properties: Ionoscloud::VolumeProperties.new(**volume_properties)),
148
111
  )
149
112
 
150
113
  dot = ui.color('.', :magenta)
151
114
  api_client.wait_for(300) { print dot; is_done? get_request_id headers }
152
115
 
153
- print_volume(volume_api.datacenters_volumes_find_by_id(config[:datacenter_id], volume.id))
116
+ volume = volume_api.datacenters_volumes_find_by_id(config[:datacenter_id], volume.id)
117
+
118
+ puts "\n"
119
+ puts "#{ui.color('ID', :cyan)}: #{volume.id}"
120
+ puts "#{ui.color('Name', :cyan)}: #{volume.properties.name}"
121
+ puts "#{ui.color('Size', :cyan)}: #{volume.properties.size}"
122
+ puts "#{ui.color('Bus', :cyan)}: #{volume.properties.bus}"
123
+ puts "#{ui.color('Image', :cyan)}: #{volume.properties.image}"
124
+ puts "#{ui.color('Type', :cyan)}: #{volume.properties.type}"
125
+ puts "#{ui.color('Licence Type', :cyan)}: #{volume.properties.licence_type}"
126
+ puts "#{ui.color('Zone', :cyan)}: #{volume.properties.availability_zone}"
127
+ puts 'done'
154
128
  end
155
129
  end
156
130
  end
@@ -24,10 +24,9 @@ class Chef
24
24
 
25
25
  def run
26
26
  $stdout.sync = true
27
- handle_extra_config
28
27
  validate_required_params(@required_options, config)
29
28
 
30
- volume_api = Ionoscloud::VolumeApi.new(api_client)
29
+ volume_api = Ionoscloud::VolumesApi.new(api_client)
31
30
 
32
31
  @name_args.each do |volume_id|
33
32
  begin
@@ -41,7 +40,14 @@ class Chef
41
40
  next
42
41
  end
43
42
 
44
- print_volume(volume)
43
+ msg_pair('ID', volume.id)
44
+ msg_pair('Name', volume.properties.name)
45
+ msg_pair('Size', volume.properties.size)
46
+ msg_pair('Bus', volume.properties.bus)
47
+ msg_pair('Image', volume.properties.image)
48
+ msg_pair('Type', volume.properties.type)
49
+ msg_pair('Licence Type', volume.properties.licence_type)
50
+ msg_pair('Zone', volume.properties.availability_zone)
45
51
 
46
52
  begin
47
53
  confirm('Do you really want to delete this volume')