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
@@ -41,20 +41,17 @@ class Chef
41
41
 
42
42
  def run
43
43
  $stdout.sync = true
44
- handle_extra_config
45
44
  validate_required_params(@required_options, config)
46
45
 
47
- lan_api = Ionoscloud::LanApi.new(api_client)
46
+ lan_api = Ionoscloud::LansApi.new(api_client)
48
47
 
49
48
  lan = lan_api.datacenters_lans_find_by_id(config[:datacenter_id], config[:lan_id])
50
49
 
51
50
  failover_ips = lan.properties.ip_failover || []
52
- failover_ips.push(
53
- Ionoscloud::IPFailover.new(
54
- ip: config[:ip],
55
- nic_uuid: config[:nic_id],
56
- ),
57
- )
51
+ failover_ips.push({
52
+ ip: config[:ip],
53
+ nicUuid: config[:nic_id],
54
+ })
58
55
 
59
56
  changes = Ionoscloud::LanProperties.new({ ip_failover: failover_ips })
60
57
 
@@ -63,7 +60,16 @@ class Chef
63
60
  dot = ui.color('.', :magenta)
64
61
  api_client.wait_for { print dot; is_done? get_request_id headers }
65
62
 
66
- print_lan(lan_api.datacenters_lans_find_by_id(config[:datacenter_id], config[:lan_id]))
63
+ lan = lan_api.datacenters_lans_find_by_id(config[:datacenter_id], config[:lan_id])
64
+
65
+ ip_failovers = lan.properties.ip_failover.map { |el| el.to_hash }
66
+
67
+ puts "\n"
68
+ puts "#{ui.color('ID', :cyan)}: #{lan.id}"
69
+ puts "#{ui.color('Name', :cyan)}: #{lan.properties.name}"
70
+ puts "#{ui.color('Public', :cyan)}: #{lan.properties.public}"
71
+ puts "#{ui.color('IP Failover', :cyan)}: #{ip_failovers}"
72
+ puts 'done'
67
73
  end
68
74
  end
69
75
  end
@@ -38,10 +38,9 @@ class Chef
38
38
 
39
39
  def run
40
40
  $stdout.sync = true
41
- handle_extra_config
42
41
  validate_required_params(@required_options, config)
43
42
 
44
- lan_api = Ionoscloud::LanApi.new(api_client)
43
+ lan_api = Ionoscloud::LansApi.new(api_client)
45
44
 
46
45
  lan = lan_api.datacenters_lans_find_by_id(config[:datacenter_id], config[:lan_id])
47
46
 
@@ -63,7 +62,14 @@ class Chef
63
62
  lan = lan_api.datacenters_lans_find_by_id(config[:datacenter_id], config[:lan_id])
64
63
  end
65
64
 
66
- print_lan(lan)
65
+ ip_failovers = lan.properties.ip_failover.map { |el| el.to_hash }
66
+
67
+ puts "\n"
68
+ puts "#{ui.color('ID', :cyan)}: #{lan.id}"
69
+ puts "#{ui.color('Name', :cyan)}: #{lan.properties.name}"
70
+ puts "#{ui.color('Public', :cyan)}: #{lan.properties.public}"
71
+ puts "#{ui.color('IP Failover', :cyan)}: #{ip_failovers}"
72
+ puts 'done'
67
73
  end
68
74
  end
69
75
  end
@@ -22,7 +22,12 @@ class Chef
22
22
  default: false,
23
23
  description: 'The indicator if the cluster is public or private. Be aware that setting it to false is currently in beta phase.'
24
24
 
25
+ option :gateway_ip,
26
+ long: '--gateway GATEWAY_IP',
27
+ description: 'The IP address of the gateway used by the cluster. This is mandatory when `public` is set to `false` and should not be provided otherwise.'
28
+
25
29
  option :maintenance_day,
30
+ short: '-d MAINTENANCE_DAY',
26
31
  long: '--maintenance-day MAINTENANCE_DAY',
27
32
  description: 'Day Of the week when to perform the maintenance.'
28
33
 
@@ -31,16 +36,6 @@ class Chef
31
36
  long: '--maintenance-time MAINTENANCE_TIME',
32
37
  description: 'Time Of the day when to perform the maintenance.'
33
38
 
34
- option :api_subnet_allow_list,
35
- long: '--subnets SUBNET[,SUBNET,...]',
36
- description: 'Access to the K8s API server is restricted to these CIDRs. Cluster-internal traffic is not affected by this '\
37
- 'restriction. If no allowlist is specified, access is not restricted. If an IP without subnet mask is provided, the default '\
38
- 'value will be used: 32 for IPv4 and 128 for IPv6.'
39
-
40
- option :s3_buckets,
41
- long: '--s3-buckets BUCKET[,BUCKET,...]',
42
- description: 'List of S3 bucket configured for K8s usage. For now it contains only one S3 bucket used to store K8s API audit logs.'
43
-
44
39
  attr_reader :description, :required_options
45
40
 
46
41
  def initialize(args = [])
@@ -52,43 +47,50 @@ class Chef
52
47
 
53
48
  def run
54
49
  $stdout.sync = true
55
- handle_extra_config
56
50
  validate_required_params(@required_options, config)
57
51
 
58
52
  print "#{ui.color('Creating K8s Cluster...', :magenta)}"
59
53
 
60
54
  kubernetes_api = Ionoscloud::KubernetesApi.new(api_client)
61
55
 
62
- if config[:api_subnet_allow_list] && config[:api_subnet_allow_list].instance_of?(String)
63
- config[:api_subnet_allow_list] = config[:api_subnet_allow_list].split(',')
64
- end
65
- config[:s3_buckets] = config[:s3_buckets].split(',') if config[:s3_buckets] && config[:s3_buckets].instance_of?(String)
66
-
67
56
  cluster_properties = {
68
57
  name: config[:name],
69
- k8s_version: config[:version],
58
+ k8sVersion: config[:version],
70
59
  public: !config[:private],
71
- api_subnet_allow_list: config[:api_subnet_allow_list],
72
- s3_buckets: (config[:s3_buckets].nil? ? config[:s3_buckets] : config[:s3_buckets].map { |el| Ionoscloud::S3Bucket.new(name: el) }),
73
60
  }.compact
74
61
 
62
+ if config[:private]
63
+ if !config[:gateway_ip]
64
+ ui.error("Gateway IP must be specified for private K8s Clusters")
65
+ exit(1)
66
+ end
67
+ cluster_properties[:gatewayIp] = config[:gateway_ip]
68
+ end
69
+
75
70
  if config[:maintenance_day] && config[:maintenance_time]
76
- cluster_properties[:maintenance_window] = Ionoscloud::KubernetesMaintenanceWindow.new(
77
- day_of_the_week: config[:maintenance_day],
71
+ cluster_properties[:maintenanceWindow] = {
72
+ dayOfTheWeek: config[:maintenance_day],
78
73
  time: config[:maintenance_time],
79
- )
74
+ }
80
75
  end
81
76
 
82
- cluster = Ionoscloud::KubernetesCluster.new(
83
- properties: Ionoscloud::KubernetesClusterPropertiesForPost.new(**cluster_properties),
84
- )
85
-
86
- cluster, _, headers = kubernetes_api.k8s_post_with_http_info(cluster)
77
+ cluster, _, headers = kubernetes_api.k8s_post_with_http_info({ properties: cluster_properties })
87
78
 
88
79
  dot = ui.color('.', :magenta)
89
80
  api_client.wait_for { print dot; is_done? get_request_id headers }
90
81
 
91
- print_k8s_cluster(kubernetes_api.k8s_find_by_cluster_id(cluster.id))
82
+ cluster = kubernetes_api.k8s_find_by_cluster_id(cluster.id)
83
+
84
+ maintenance_window = "#{cluster.properties.maintenance_window.day_of_the_week}, #{cluster.properties.maintenance_window.time}"
85
+
86
+ puts "\n"
87
+ puts "#{ui.color('ID', :cyan)}: #{cluster.id}"
88
+ puts "#{ui.color('Name', :cyan)}: #{cluster.properties.name}"
89
+ puts "#{ui.color('k8s Version', :cyan)}: #{cluster.properties.k8s_version}"
90
+ puts "#{ui.color('Maintenance Window', :cyan)}: #{maintenance_window}"
91
+ puts "#{ui.color('State', :cyan)}: #{cluster.metadata.state}"
92
+
93
+ puts 'done'
92
94
  end
93
95
  end
94
96
  end
@@ -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
  kubernetes_api = Ionoscloud::KubernetesApi.new(api_client)
@@ -45,7 +44,15 @@ class Chef
45
44
  next
46
45
  end
47
46
 
48
- print_k8s_cluster(cluster)
47
+ msg_pair('ID', cluster.id)
48
+ msg_pair('Name', cluster.properties.name)
49
+ msg_pair('Version', cluster.properties.k8s_version)
50
+ msg_pair(
51
+ 'Maintenance Window',
52
+ "#{cluster.properties.maintenance_window.day_of_the_week}, #{cluster.properties.maintenance_window.time}",
53
+ )
54
+ msg_pair('State', cluster.metadata.state)
55
+
49
56
  puts "\n"
50
57
 
51
58
  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
  cluster_list = [
@@ -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
  begin
@@ -42,10 +42,9 @@ class Chef
42
42
 
43
43
  def run
44
44
  $stdout.sync = true
45
- handle_extra_config
46
45
  validate_required_params(@required_options, config)
47
46
 
48
- label_api = Ionoscloud::LabelApi.new(api_client)
47
+ label_api = Ionoscloud::LabelsApi.new(api_client)
49
48
 
50
49
  label_properties = {
51
50
  properties: {
@@ -34,10 +34,9 @@ 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
- label_api = Ionoscloud::LabelApi.new(api_client)
39
+ label_api = Ionoscloud::LabelsApi.new(api_client)
41
40
  opts = { depth: 1 }
42
41
 
43
42
  case config[:type]
@@ -33,10 +33,9 @@ class Chef
33
33
 
34
34
  def run
35
35
  $stdout.sync = true
36
- handle_extra_config
37
36
  validate_required_params(@required_options, config)
38
37
 
39
- label_api = Ionoscloud::LabelApi.new(api_client)
38
+ label_api = Ionoscloud::LabelsApi.new(api_client)
40
39
 
41
40
  args = [config[:resource_id]]
42
41
 
@@ -40,28 +40,35 @@ class Chef
40
40
 
41
41
  def run
42
42
  $stdout.sync = true
43
- handle_extra_config
44
43
  validate_required_params(@required_options, config)
45
44
 
46
45
  print "#{ui.color('Creating LAN...', :magenta)}"
47
46
 
48
- lan_api = Ionoscloud::LanApi.new(api_client)
47
+ lan_api = Ionoscloud::LansApi.new(api_client)
49
48
 
50
49
  lan, _, headers = lan_api.datacenters_lans_post_with_http_info(
51
50
  config[:datacenter_id],
52
- Ionoscloud::Lan.new(
53
- properties: Ionoscloud::LanProperties.new(
51
+ {
52
+ properties: {
54
53
  name: config[:name],
55
54
  public: config[:public],
56
55
  pcc: config[:pcc],
57
- ),
58
- ),
56
+ }
57
+ },
59
58
  )
60
59
 
61
60
  dot = ui.color('.', :magenta)
62
61
  api_client.wait_for { print dot; is_done? get_request_id headers }
63
62
 
64
- print_lan(lan_api.datacenters_lans_find_by_id(config[:datacenter_id], lan.id))
63
+ lan = lan_api.datacenters_lans_find_by_id(config[:datacenter_id], lan.id)
64
+
65
+ puts "\n"
66
+ puts "#{ui.color('ID', :cyan)}: #{lan.id}"
67
+ puts "#{ui.color('Name', :cyan)}: #{lan.properties.name}"
68
+ puts "#{ui.color('Public', :cyan)}: #{lan.properties.public}"
69
+ puts "#{ui.color('PCC', :cyan)}: #{lan.properties.pcc}"
70
+
71
+ puts 'done'
65
72
  end
66
73
  end
67
74
  end
@@ -23,10 +23,9 @@ 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
- lan_api = Ionoscloud::LanApi.new(api_client)
28
+ lan_api = Ionoscloud::LansApi.new(api_client)
30
29
  @name_args.each do |lan_id|
31
30
  begin
32
31
  lan = lan_api.datacenters_lans_find_by_id(config[:datacenter_id], lan_id)
@@ -36,8 +35,9 @@ class Chef
36
35
  next
37
36
  end
38
37
 
39
- print_lan(lan)
40
- puts "\n"
38
+ msg_pair('ID', lan.id)
39
+ msg_pair('Name', lan.properties.name)
40
+ msg_pair('Public', lan.properties.public.to_s)
41
41
 
42
42
  begin
43
43
  confirm('Do you really want to delete this LAN')
@@ -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
  $stdout.sync = true
@@ -32,19 +31,17 @@ class Chef
32
31
  ui.color('Name', :bold),
33
32
  ui.color('Public', :bold),
34
33
  ui.color('PCC', :bold),
35
- ui.color('IP Failover Count', :bold),
36
34
  ]
37
- lan_api = Ionoscloud::LanApi.new(api_client)
35
+ lan_api = Ionoscloud::LansApi.new(api_client)
38
36
 
39
37
  lan_api.datacenters_lans_get(config[:datacenter_id], { depth: 1 }).items.each do |lan|
40
38
  lan_list << lan.id
41
39
  lan_list << lan.properties.name
42
40
  lan_list << lan.properties.public.to_s
43
41
  lan_list << lan.properties.pcc
44
- lan_list << (lan.properties.ip_failover.nil? ? 0 : lan.properties.ip_failover.length)
45
42
  end
46
43
 
47
- puts ui.list(lan_list, :uneven_columns_across, 5)
44
+ puts ui.list(lan_list, :uneven_columns_across, 4)
48
45
  end
49
46
  end
50
47
  end
@@ -22,6 +22,7 @@ class Chef
22
22
  description: 'IPv4 address of the load balancer. All attached NICs will inherit this IP.'
23
23
 
24
24
  option :dhcp,
25
+ short: '-d DHCP',
25
26
  long: '--dhcp DHCP',
26
27
  description: 'Indicates if the load balancer will reserve an IP using DHCP.'
27
28
 
@@ -40,17 +41,15 @@ class Chef
40
41
 
41
42
  def run
42
43
  $stdout.sync = true
43
- handle_extra_config
44
44
  validate_required_params(@required_options, config)
45
45
 
46
46
  print "#{ui.color('Creating Load Balancer...', :magenta)}"
47
47
 
48
48
  if config[:nics]
49
- config[:nics] = config[:nics].split(',') if config[:nics].instance_of?(String)
50
- config[:nics].map! { |nic| { id: nic } }
49
+ config[:nics] = config[:nics].split(',').map! { |nic| { id: nic } }
51
50
  end
52
51
 
53
- load_balancer_api = Ionoscloud::LoadBalancerApi.new(api_client)
52
+ load_balancer_api = Ionoscloud::LoadBalancersApi.new(api_client)
54
53
 
55
54
  load_balancer, _, headers = load_balancer_api.datacenters_loadbalancers_post_with_http_info(
56
55
  config[:datacenter_id],
@@ -63,15 +62,25 @@ class Chef
63
62
  entities: Ionoscloud::LoadbalancerEntities.new(
64
63
  balancednics: Ionoscloud::Nics.new(
65
64
  items: config[:nics],
66
- ),
67
- ),
65
+ )
66
+ )
68
67
  ),
69
68
  )
70
69
 
71
70
  dot = ui.color('.', :magenta)
72
71
  api_client.wait_for { print dot; is_done? get_request_id headers }
73
72
 
74
- print_load_balancer(load_balancer_api.datacenters_loadbalancers_find_by_id(config[:datacenter_id], load_balancer.id, { depth: 1 }))
73
+ load_balancer = load_balancer_api.datacenters_loadbalancers_find_by_id(config[:datacenter_id], load_balancer.id, { depth: 1 })
74
+
75
+ nics = load_balancer.entities.balancednics.items.map { |nic| nic.id }
76
+
77
+ puts "\n"
78
+ puts "#{ui.color('ID', :cyan)}: #{load_balancer.id}"
79
+ puts "#{ui.color('Name', :cyan)}: #{load_balancer.properties.name}"
80
+ puts "#{ui.color('IP address', :cyan)}: #{load_balancer.properties.ip}"
81
+ puts "#{ui.color('DHCP', :cyan)}: #{load_balancer.properties.dhcp}"
82
+ puts "#{ui.color('Balanced Nics', :cyan)}: #{nics.to_s}"
83
+ puts 'done'
75
84
  end
76
85
  end
77
86
  end
@@ -23,10 +23,9 @@ 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
- load_balancer_api = Ionoscloud::LoadBalancerApi.new(api_client)
28
+ load_balancer_api = Ionoscloud::LoadBalancersApi.new(api_client)
30
29
 
31
30
  @name_args.each do |load_balancer_id|
32
31
  begin
@@ -40,7 +39,15 @@ class Chef
40
39
  ui.error("Load balancer ID #{load_balancer_id} not found. Skipping.")
41
40
  next
42
41
  end
43
- print_load_balancer(load_balancer)
42
+
43
+ nics = load_balancer.entities.balancednics.items.map { |nic| nic.id }
44
+
45
+ msg_pair('ID', load_balancer.id)
46
+ msg_pair('Name', load_balancer.properties.name)
47
+ msg_pair('IP address', load_balancer.properties.ip)
48
+ msg_pair('DHCP', load_balancer.properties.dhcp)
49
+ msg_pair('Balanced Nics', nics.to_s)
50
+
44
51
  puts "\n"
45
52
 
46
53
  begin
@@ -28,14 +28,23 @@ 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
- print_load_balancer(Ionoscloud::LoadBalancerApi.new(api_client).datacenters_loadbalancers_find_by_id(
35
- config[:datacenter_id],
33
+ load_balancer_api = Ionoscloud::LoadBalancersApi.new(api_client)
34
+
35
+ load_balancer = load_balancer_api.datacenters_loadbalancers_find_by_id(
36
+ config[:datacenter_id],
36
37
  config[:loadbalancer_id],
37
38
  { depth: 1 },
38
- ))
39
+ )
40
+
41
+ nics = load_balancer.entities.balancednics.items.map! { |el| el.id }
42
+
43
+ puts "#{ui.color('ID', :cyan)}: #{load_balancer.id}"
44
+ puts "#{ui.color('Name', :cyan)}: #{load_balancer.properties.name}"
45
+ puts "#{ui.color('IP address', :cyan)}: #{load_balancer.properties.ip}"
46
+ puts "#{ui.color('DHCP', :cyan)}: #{load_balancer.properties.dhcp}"
47
+ puts "#{ui.color('Balanced Nics', :cyan)}: #{nics.to_s}"
39
48
  end
40
49
  end
41
50
  end
@@ -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
  load_balancers_list = [
@@ -34,7 +33,7 @@ class Chef
34
33
  ui.color('NICs count', :bold),
35
34
  ]
36
35
 
37
- load_balancer_api = Ionoscloud::LoadBalancerApi.new(api_client)
36
+ load_balancer_api = Ionoscloud::LoadBalancersApi.new(api_client)
38
37
 
39
38
  load_balancer_api.datacenters_loadbalancers_get(config[:datacenter_id], { depth: 2 }).items.each do |load_balancer|
40
39
  load_balancers_list << load_balancer.id
@@ -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
- load_balancer_api = Ionoscloud::LoadBalancerApi.new(api_client)
33
+ load_balancer_api = Ionoscloud::LoadBalancersApi.new(api_client)
35
34
 
36
35
  request_ids_to_wait = []
37
36
 
@@ -55,11 +54,21 @@ class Chef
55
54
 
56
55
  request_ids_to_wait.each { |request_id| api_client.wait_for { is_done? request_id } }
57
56
 
58
- print_load_balancer(load_balancer_api.datacenters_loadbalancers_find_by_id(
59
- config[:datacenter_id],
57
+ load_balancer = load_balancer_api.datacenters_loadbalancers_find_by_id(
58
+ config[:datacenter_id],
60
59
  config[:loadbalancer_id],
61
60
  { depth: 1 },
62
- ))
61
+ )
62
+
63
+ nics = load_balancer.entities.balancednics.items.map! { |el| el.id }
64
+
65
+ puts "\n"
66
+ puts "#{ui.color('ID', :cyan)}: #{load_balancer.id}"
67
+ puts "#{ui.color('Name', :cyan)}: #{load_balancer.properties.name}"
68
+ puts "#{ui.color('IP address', :cyan)}: #{load_balancer.properties.ip}"
69
+ puts "#{ui.color('DHCP', :cyan)}: #{load_balancer.properties.dhcp}"
70
+ puts "#{ui.color('Balanced Nics', :cyan)}: #{nics.to_s}"
71
+ puts 'done'
63
72
  end
64
73
  end
65
74
  end
@@ -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
- load_balancer_api = Ionoscloud::LoadBalancerApi.new(api_client)
33
+ load_balancer_api = Ionoscloud::LoadBalancersApi.new(api_client)
35
34
 
36
35
  request_ids_to_wait = []
37
36
 
@@ -56,11 +55,21 @@ class Chef
56
55
 
57
56
  request_ids_to_wait.each { |request_id| api_client.wait_for { is_done? request_id } }
58
57
 
59
- print_load_balancer(load_balancer_api.datacenters_loadbalancers_find_by_id(
60
- config[:datacenter_id],
58
+ load_balancer = load_balancer_api.datacenters_loadbalancers_find_by_id(
59
+ config[:datacenter_id],
61
60
  config[:loadbalancer_id],
62
61
  { depth: 1 },
63
- ))
62
+ )
63
+
64
+ nics = load_balancer.entities.balancednics.items.map! { |el| el.id }
65
+
66
+ puts "\n\n"
67
+ puts "#{ui.color('ID', :cyan)}: #{load_balancer.id}"
68
+ puts "#{ui.color('Name', :cyan)}: #{load_balancer.properties.name}"
69
+ puts "#{ui.color('IP address', :cyan)}: #{load_balancer.properties.ip}"
70
+ puts "#{ui.color('DHCP', :cyan)}: #{load_balancer.properties.dhcp}"
71
+ puts "#{ui.color('Balanced Nics', :cyan)}: #{nics.to_s}"
72
+ puts 'done'
64
73
  end
65
74
  end
66
75
  end
@@ -18,21 +18,22 @@ 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
  location_list = [
25
24
  ui.color('ID', :bold),
26
- ui.color('Name', :bold)
25
+ ui.color('Name', :bold),
26
+ ui.color('CPU Architectures', :bold),
27
27
  ]
28
- location_api = Ionoscloud::LocationApi.new(api_client)
28
+ location_api = Ionoscloud::LocationsApi.new(api_client)
29
29
 
30
30
  location_api.locations_get({ depth: 1 }).items.each do |location|
31
31
  location_list << location.id
32
32
  location_list << location.properties.name
33
+ location_list << location.properties.cpu_architecture.map { |arch| arch.cpu_family }
33
34
  end
34
35
 
35
- puts ui.list(location_list, :uneven_columns_across, 2)
36
+ puts ui.list(location_list, :uneven_columns_across, 3)
36
37
  end
37
38
  end
38
39
  end
@@ -0,0 +1,71 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudNatgatewayCreate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud natgateway create (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_ID',
12
+ long: '--datacenter-id DATACENTER_ID',
13
+ description: 'Name of the data center'
14
+
15
+ option :name,
16
+ short: '-n NAME',
17
+ long: '--name NAME',
18
+ description: 'Name of the server'
19
+
20
+ option :ips,
21
+ short: '-i IP[,IP,...]',
22
+ long: '--ips IP[,IP,...]',
23
+ description: 'IPs assigned to the NIC'
24
+
25
+ attr_reader :description, :required_options
26
+
27
+ def initialize(args = [])
28
+ super(args)
29
+ @description =
30
+ 'Creates a new Nat Gateway under a data center.'
31
+ @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
32
+ end
33
+
34
+ def run
35
+ $stdout.sync = true
36
+ validate_required_params(@required_options, config)
37
+
38
+ natgateways_api = Ionoscloud::NATGatewaysApi.new(api_client)
39
+
40
+ if config[:ips]
41
+ config[:ips] = config[:ips].split(',')
42
+ end
43
+
44
+ natgateway = Ionoscloud::NatGateway.new(
45
+ properties: Ionoscloud::NatGatewayProperties.new(
46
+ name: config[:name],
47
+ public_ips: config[:ips],
48
+ )
49
+ )
50
+
51
+ natgateway, _, headers = natgateways_api.datacenters_natgateways_post_with_http_info(
52
+ config[:datacenter_id],
53
+ natgateway,
54
+ )
55
+
56
+ print "#{ui.color('Creating Nat Gateway...', :magenta)}"
57
+ dot = ui.color('.', :magenta)
58
+ api_client.wait_for { print dot; is_done? get_request_id headers }
59
+
60
+ natgateway = natgateways_api.datacenters_natgateways_find_by_nat_gateway_id(config[:datacenter_id], natgateway.id)
61
+
62
+ puts "\n"
63
+ puts "#{ui.color('ID', :cyan)}: #{natgateway.id}"
64
+ puts "#{ui.color('Name', :cyan)}: #{natgateway.properties.name}"
65
+ puts "#{ui.color('IPS', :cyan)}: #{natgateway.properties.public_ips}"
66
+
67
+ puts 'done'
68
+ end
69
+ end
70
+ end
71
+ end