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
@@ -1,35 +0,0 @@
1
- # UserGet
2
-
3
- Retrieves the attributes of a given Ionoscloud User.
4
-
5
- ```text
6
- knife ionoscloud user get (options)
7
- ```
8
-
9
- ## Available options:
10
-
11
- ### Required options:
12
-
13
- * user\_id
14
- * ionoscloud\_username
15
- * ionoscloud\_password
16
-
17
- ```text
18
- user_id: --user-id USER_ID, -U USER_ID
19
- iD of the group. (required)
20
-
21
- ionoscloud_username: --username USERNAME, -u USERNAME
22
- your Ionoscloud username (required)
23
-
24
- ionoscloud_password: --password PASSWORD, -p PASSWORD
25
- your Ionoscloud password (required)
26
-
27
- extra_config_file: --extra-config EXTRA_CONFIG_FILE_PATH, -e EXTRA_CONFIG_FILE_PATH
28
- path to the additional config file
29
-
30
- ```
31
- ## Example
32
-
33
- ```text
34
- knife ionoscloud user get --user-id USER_ID --username USERNAME --password PASSWORD --extra-config EXTRA_CONFIG_FILE_PATH
35
- ```
@@ -1,56 +0,0 @@
1
- # UserUpdate
2
-
3
- Updates information about a Ionoscloud User.
4
-
5
- ```text
6
- knife ionoscloud user update (options)
7
- ```
8
-
9
- ## Available options:
10
-
11
- ### Required options:
12
-
13
- * user\_id
14
- * ionoscloud\_username
15
- * ionoscloud\_password
16
-
17
- ```text
18
- user_id: --user-id USER_ID, -U USER_ID
19
- iD of the User. (required)
20
-
21
- firstname: --firstname FIRSTNAME, -f FIRSTNAME
22
- firstname of the user.
23
-
24
- lastname: --lastname LASTNAME, -l LASTNAME
25
- lastname of the user.
26
-
27
- email: --email EMAIL
28
- an e-mail address for the user.
29
-
30
- administrator: --admin ADMIN, -a ADMIN
31
- assigns the user have administrative rights.
32
-
33
- force_sec_auth: --sec-auth FORCE_SEC_AUTH
34
- indicates if secure (two-factor) authentication should be forced for the user.
35
-
36
- sec_auth_active: --sec-auth SEC_AUTH_ACTIVE
37
- indicates if secure authentication is active for the user or not.
38
-
39
- active: --active ACTIVE
40
- indicates if the user is active.
41
-
42
- ionoscloud_username: --username USERNAME, -u USERNAME
43
- your Ionoscloud username (required)
44
-
45
- ionoscloud_password: --password PASSWORD, -p PASSWORD
46
- your Ionoscloud password (required)
47
-
48
- extra_config_file: --extra-config EXTRA_CONFIG_FILE_PATH, -e EXTRA_CONFIG_FILE_PATH
49
- path to the additional config file
50
-
51
- ```
52
- ## Example
53
-
54
- ```text
55
- knife ionoscloud user update --user-id USER_ID --firstname FIRSTNAME --lastname LASTNAME --email EMAIL --admin ADMIN --sec-auth FORCE_SEC_AUTH --sec-auth SEC_AUTH_ACTIVE --active ACTIVE --username USERNAME --password PASSWORD --extra-config EXTRA_CONFIG_FILE_PATH
56
- ```
@@ -1,39 +0,0 @@
1
- # VolumeGet
2
-
3
- Retrieves the attributes of a given Volume.
4
-
5
- ```text
6
- knife ionoscloud volume get (options)
7
- ```
8
-
9
- ## Available options:
10
-
11
- ### Required options:
12
-
13
- * datacenter\_id
14
- * volume\_id
15
- * ionoscloud\_username
16
- * ionoscloud\_password
17
-
18
- ```text
19
- datacenter_id: --datacenter-id DATACENTER_ID, -D DATACENTER_ID
20
- iD of the data center (required)
21
-
22
- volume_id: --volume VOLUME_ID
23
- iD of the volume. (required)
24
-
25
- ionoscloud_username: --username USERNAME, -u USERNAME
26
- your Ionoscloud username (required)
27
-
28
- ionoscloud_password: --password PASSWORD, -p PASSWORD
29
- your Ionoscloud password (required)
30
-
31
- extra_config_file: --extra-config EXTRA_CONFIG_FILE_PATH, -e EXTRA_CONFIG_FILE_PATH
32
- path to the additional config file
33
-
34
- ```
35
- ## Example
36
-
37
- ```text
38
- knife ionoscloud volume get --datacenter-id DATACENTER_ID --volume VOLUME_ID --username USERNAME --password PASSWORD --extra-config EXTRA_CONFIG_FILE_PATH
39
- ```
@@ -1,66 +0,0 @@
1
- # VolumeUpdate
2
-
3
- Updates information about a Ionoscloud Volume.
4
-
5
- ```text
6
- knife ionoscloud volume update (options)
7
- ```
8
-
9
- ## Available options:
10
-
11
- ### Required options:
12
-
13
- * datacenter\_id
14
- * volume\_id
15
- * ionoscloud\_username
16
- * ionoscloud\_password
17
-
18
- ```text
19
- datacenter_id: --datacenter-id DATACENTER_ID, -D DATACENTER_ID
20
- name of the data center (required)
21
-
22
- volume_id: --volume VOLUME_ID
23
- iD of the Volume. (required)
24
-
25
- name: --name NAME, -n NAME
26
- name of the volume
27
-
28
- size: --size SIZE, -S SIZE
29
- the size of the volume in GB
30
-
31
- bus: --bus BUS, -b BUS
32
- the bus type of the volume (VIRTIO or IDE)
33
-
34
- cpu_hot_plug: --cpu-hot-plug CPU_HOT_PLUG
35
- the licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)
36
-
37
- ram_hot_plug: --ram-hot-plug RAM_HOT_PLUG
38
- the licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)
39
-
40
- nic_hot_plug: --nic-hot-plug NIC_HOT_PLUG
41
- the licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)
42
-
43
- nic_hot_unplug: --nic-hot-unplug NIC_HOT_UNPLUG
44
- the licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)
45
-
46
- disc_virtio_hot_plug: --disc-virtio-hot_plug DISC_VIRTIO_HOT_PLUG
47
- the licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)
48
-
49
- disc_virtio_hot_unplug: --disc-virtio-hot_unplug DISC_VIRTIO_HOT_UNPLUG
50
- the licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)
51
-
52
- ionoscloud_username: --username USERNAME, -u USERNAME
53
- your Ionoscloud username (required)
54
-
55
- ionoscloud_password: --password PASSWORD, -p PASSWORD
56
- your Ionoscloud password (required)
57
-
58
- extra_config_file: --extra-config EXTRA_CONFIG_FILE_PATH, -e EXTRA_CONFIG_FILE_PATH
59
- path to the additional config file
60
-
61
- ```
62
- ## Example
63
-
64
- ```text
65
- knife ionoscloud volume update --datacenter-id DATACENTER_ID --volume VOLUME_ID --name NAME --size SIZE --bus BUS --cpu-hot-plug CPU_HOT_PLUG --ram-hot-plug RAM_HOT_PLUG --nic-hot-plug NIC_HOT_PLUG --nic-hot-unplug NIC_HOT_UNPLUG --disc-virtio-hot_plug DISC_VIRTIO_HOT_PLUG --disc-virtio-hot_unplug DISC_VIRTIO_HOT_UNPLUG --username USERNAME --password PASSWORD --extra-config EXTRA_CONFIG_FILE_PATH
66
- ```
@@ -1,33 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudBackupunitGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud backupunit get (options)'
9
-
10
- option :backupunit_id,
11
- short: '-B BACKUPUNIT_ID',
12
- long: '--backupunit-id BACKUPUNIT_ID',
13
- description: 'The ID of the Backup unit.'
14
-
15
- attr_reader :description, :required_options
16
-
17
- def initialize(args = [])
18
- super(args)
19
- @description =
20
- 'Retrieves information about a backup unit.'
21
- @required_options = [:backupunit_id, :ionoscloud_username, :ionoscloud_password]
22
- end
23
-
24
- def run
25
- $stdout.sync = true
26
- handle_extra_config
27
- validate_required_params(@required_options, config)
28
-
29
- print_backupunit(Ionoscloud::BackupUnitApi.new(api_client).backupunits_find_by_id(config[:backupunit_id]))
30
- end
31
- end
32
- end
33
- end
@@ -1,62 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudBackupunitUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud backupunit update (options)'
9
-
10
- option :backupunit_id,
11
- short: '-B BACKUPUNIT_ID',
12
- long: '--backupunit-id BACKUPUNIT_ID',
13
- description: 'The ID of the Backup unit.'
14
-
15
- option :password,
16
- short: '-p PASSWORD',
17
- long: '--password PASSWORD',
18
- description: 'Alphanumeric password you want assigned to the backup unit'
19
-
20
- option :email,
21
- long: '--email EMAIL',
22
- description: 'The e-mail address you want assigned to the backup unit.'
23
-
24
- attr_reader :description, :required_options
25
-
26
- def initialize(args = [])
27
- super(args)
28
- @description =
29
- 'Retrieves information about a backup unit.'
30
- @required_options = [:backupunit_id, :ionoscloud_username, :ionoscloud_password]
31
- @updatable_fields = [:email, :password]
32
- end
33
-
34
- def run
35
- $stdout.sync = true
36
- handle_extra_config
37
- validate_required_params(@required_options, config)
38
-
39
- backupunit_api = Ionoscloud::BackupUnitApi.new(api_client)
40
-
41
- if @updatable_fields.map { |el| config[el] }.any?
42
- print "#{ui.color('Updating Backup unit...', :magenta)}"
43
-
44
- backupunit, _, headers = backupunit_api.backupunits_patch_with_http_info(
45
- config[:backupunit_id],
46
- Ionoscloud::BackupUnitProperties.new(
47
- password: config[:password],
48
- email: config[:email],
49
- ),
50
- )
51
-
52
- dot = ui.color('.', :magenta)
53
- api_client.wait_for { print dot; is_done? get_request_id headers }
54
- else
55
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
56
- end
57
-
58
- print_backupunit(Ionoscloud::BackupUnitApi.new(api_client).backupunits_find_by_id(config[:backupunit_id]))
59
- end
60
- end
61
- end
62
- end
@@ -1,33 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudDatacenterGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud datacenter get (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
- 'Retrieves information about a Ionoscloud Datacenter.'
21
- @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
22
- end
23
-
24
- def run
25
- $stdout.sync = true
26
- handle_extra_config
27
- validate_required_params(@required_options, config)
28
-
29
- print_datacenter(Ionoscloud::DataCenterApi.new(api_client).datacenters_find_by_id(config[:datacenter_id]))
30
- end
31
- end
32
- end
33
- end
@@ -1,67 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudDatacenterUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud datacenter update (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
- option :name,
16
- short: '-n NAME',
17
- long: '--name NAME',
18
- description: 'Name of the data center'
19
-
20
- option :description,
21
- long: '--description DESCRIPTION',
22
- description: 'Description of the data center'
23
-
24
- option :sec_auth_protection,
25
- long: '--sec-auth-protection SEC_AUTH_PROTECTION',
26
- description: 'Boolean value representing if the data center requires extra protection e.g. two factor protection'
27
-
28
- attr_reader :description, :required_options
29
-
30
- def initialize(args = [])
31
- super(args)
32
- @description =
33
- 'Updates information about a Ionoscloud Datacenter.'
34
- @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
35
- @updatable_fields = [:name, :description, :sec_auth_protection]
36
- end
37
-
38
- def run
39
- $stdout.sync = true
40
- handle_extra_config
41
- validate_required_params(@required_options, config)
42
-
43
- datacenter_api = Ionoscloud::DataCenterApi.new(api_client)
44
-
45
- if @updatable_fields.map { |el| config[el] }.any?
46
- print "#{ui.color('Updating data center...', :magenta)}"
47
-
48
- datacenter, _, headers = datacenter_api.datacenters_patch_with_http_info(
49
- config[:datacenter_id],
50
- Ionoscloud::DatacenterProperties.new(
51
- name: config[:name],
52
- description: config[:description],
53
- sec_auth_protection: (config.key?(:sec_auth_protection) ? config[:sec_auth_protection].to_s.downcase == 'true' : nil),
54
- )
55
- )
56
-
57
- dot = ui.color('.', :magenta)
58
- api_client.wait_for { print dot; is_done? get_request_id headers }
59
- else
60
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
61
- end
62
-
63
- print_datacenter(datacenter_api.datacenters_find_by_id(config[:datacenter_id]))
64
- end
65
- end
66
- end
67
- end
@@ -1,50 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudFirewallGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud firewall get (options)'
9
-
10
- option :datacenter_id,
11
- short: '-D DATACENTER_ID',
12
- long: '--datacenter-id DATACENTER_ID',
13
- description: 'The ID of the data center'
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
- option :nic_id,
21
- short: '-N NIC_ID',
22
- long: '--nic-id NIC_ID',
23
- description: 'ID of the NIC'
24
-
25
- option :firewall_id,
26
- short: '-F FIREWALL_ID',
27
- long: '--firewall-id FIREWALL_ID',
28
- description: 'ID of the Firewall Rule'
29
-
30
- attr_reader :description, :required_options
31
-
32
- def initialize(args = [])
33
- super(args)
34
- @description =
35
- 'Retrieves information about a Ionoscloud Firewall Rule.'
36
- @required_options = [:firewall_id, :datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
37
- end
38
-
39
- def run
40
- $stdout.sync = true
41
- handle_extra_config
42
- validate_required_params(@required_options, config)
43
-
44
- print_firewall_rule(Ionoscloud::NicApi.new(api_client).datacenters_servers_nics_firewallrules_find_by_id(
45
- config[:datacenter_id], config[:server_id], config[:nic_id], config[:firewall_id],
46
- ))
47
- end
48
- end
49
- end
50
- end
@@ -1,131 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudFirewallUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud firewall update (options)'
9
-
10
- option :datacenter_id,
11
- short: '-D DATACENTER_ID',
12
- long: '--datacenter-id DATACENTER_ID',
13
- description: 'The ID of the data center'
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
- option :nic_id,
21
- short: '-N NIC_ID',
22
- long: '--nic-id NIC_ID',
23
- description: 'ID of the NIC'
24
-
25
- option :firewall_id,
26
- short: '-F FIREWALL_ID',
27
- long: '--firewall-id FIREWALL_ID',
28
- description: 'ID of the Firewall Rule'
29
-
30
- option :name,
31
- short: '-n NAME',
32
- long: '--name NAME',
33
- description: 'Name of the Firewall Rule'
34
-
35
- option :protocol,
36
- short: '-P PROTOCOL',
37
- long: '--protocol PROTOCOL',
38
- default: 'TCP',
39
- description: 'The protocol of the firewall rule (TCP, UDP, ICMP, ANY)'
40
-
41
- option :source_mac,
42
- short: '-m MAC',
43
- long: '--source-mac MAC',
44
- description: 'Only traffic originating from the respective MAC address is allowed'
45
-
46
- option :source_ip,
47
- short: '-I IP',
48
- long: '--source-ip IP',
49
- description: 'Only traffic originating from the respective IPv4' \
50
- ' address is allowed; null allows all source IPs'
51
-
52
- option :target_ip,
53
- long: '--target-ip IP',
54
- description: 'In case the target NIC has multiple IP addresses,' \
55
- ' only traffic directed to the respective IP' \
56
- ' address of the NIC is allowed; null value allows' \
57
- ' all target IPs'
58
-
59
- option :port_range_start,
60
- short: '-p PORT',
61
- long: '--port-range-start PORT',
62
- description: 'Defines the start range of the allowed port(s)'
63
-
64
- option :port_range_end,
65
- short: '-t PORT',
66
- long: '--port-range-end PORT',
67
- description: 'Defines the end range of the allowed port(s)'
68
-
69
- option :icmp_type,
70
- long: '--icmp-type INT',
71
- description: 'Defines the allowed type (from 0 to 254) if the' \
72
- ' protocol ICMP is chosen; null allows all types'
73
-
74
- option :icmp_code,
75
- long: '--icmp-code INT',
76
- description: 'Defines the allowed code (from 0 to 254) if the' \
77
- ' protocol ICMP is chosen; null allows all codes'
78
-
79
- attr_reader :description, :required_options
80
-
81
- def initialize(args = [])
82
- super(args)
83
- @description =
84
- 'Updates information about a Ionoscloud Firewall Rule.'
85
- @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
86
- @updatable_fields = [
87
- :name, :protocol, :source_mac, :source_ip, :target_ip,
88
- :port_range_start, :port_range_end, :icmp_type, :icmp_code,
89
- ]
90
- end
91
-
92
- def run
93
- $stdout.sync = true
94
- handle_extra_config
95
- validate_required_params(@required_options, config)
96
-
97
- nic_api = Ionoscloud::NicApi.new(api_client)
98
-
99
- if @updatable_fields.map { |el| config[el] }.any?
100
- print "#{ui.color('Updating Firewall Rule...', :magenta)}"
101
-
102
- params = {
103
- name: config[:name],
104
- protocol: config[:protocol],
105
- source_mac: config[:source_mac],
106
- source_ip: config[:source_ip],
107
- target_ip: config[:target_ip],
108
- port_range_start: config[:port_range_start],
109
- port_range_end: config[:port_range_end],
110
- icmp_type: config[:icmp_type],
111
- icmp_code: config[:icmp_code],
112
- }
113
-
114
- _, _, headers = nic_api.datacenters_servers_nics_firewallrules_patch_with_http_info(
115
- config[:datacenter_id], config[:server_id], config[:nic_id], config[:firewall_id],
116
- Ionoscloud::FirewallruleProperties.new(params.compact),
117
- )
118
-
119
- dot = ui.color('.', :magenta)
120
- api_client.wait_for { print dot; is_done? get_request_id headers }
121
- else
122
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
123
- end
124
-
125
- print_firewall_rule(Ionoscloud::NicApi.new(api_client).datacenters_servers_nics_firewallrules_find_by_id(
126
- config[:datacenter_id], config[:server_id], config[:nic_id], config[:firewall_id],
127
- ))
128
- end
129
- end
130
- end
131
- end
@@ -1,114 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudGroupUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud group update (options)'
9
-
10
- option :group_id,
11
- short: '-G GROUP_ID',
12
- long: '--group-id GROUP_ID',
13
- description: 'ID of the group.'
14
-
15
- option :name,
16
- short: '-N NAME',
17
- long: '--name NAME',
18
- description: 'Mame of the group.'
19
-
20
- option :create_data_center,
21
- short: '-D CREATE_DATACENTER',
22
- long: '--create-datacenter CREATE_DATACENTER',
23
- description: 'The group will be allowed to create virtual data centers.'
24
-
25
- option :create_snapshot,
26
- short: '-s CREATE_SNAPSHOT',
27
- long: '--create-snapshot CREATE_SNAPSHOT',
28
- description: 'The group will be allowed to create snapshots.'
29
-
30
- option :reserve_ip,
31
- short: '-i RESERVE_IP',
32
- long: '--reserve-ip RESERVE_IP',
33
- description: 'The group will be allowed to reserve IP addresses.'
34
-
35
- option :access_activity_log,
36
- short: '-a ACCESS_ACTIVITY_LOG',
37
- long: '--access-log ACCESS_ACTIVITY_LOG',
38
- description: 'The group will be allowed to access the activity log.'
39
-
40
- option :s3_privilege,
41
- long: '--s3 S3_PRIVILEGE',
42
- description: 'The group will be allowed to manage S3'
43
-
44
- option :create_backup_unit,
45
- short: '-b CREATE_BACKUPUNIT',
46
- long: '--create-backupunit CREATE_BACKUPUNIT',
47
- description: 'The group will be able to manage backup units.'
48
-
49
- option :create_k8s_cluster,
50
- long: '--create-k8s-cluster CREATE_K8S_CLUSTER',
51
- description: 'The group will be able to create kubernetes clusters.'
52
-
53
- option :create_pcc,
54
- long: '--create-pcc CREATE_PCC',
55
- description: 'The group will be able to manage pccs.'
56
-
57
- option :create_internet_access,
58
- long: '--create-internet-access CREATE_INTERNET_ACCESS',
59
- description: 'The group will be have internet access privilege.'
60
-
61
- attr_reader :description, :required_options
62
-
63
- def initialize(args = [])
64
- super(args)
65
- @description =
66
- 'Updates information about a Ionoscloud Group.'
67
- @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
68
- @updatable_fields = [
69
- :name, :create_data_center, :create_snapshot, :reserve_ip, :access_activity_log, :s3_privilege,
70
- :create_backup_unit, :create_k8s_cluster, :create_pcc, :create_internet_access,
71
- ]
72
- end
73
-
74
- def run
75
- $stdout.sync = true
76
- handle_extra_config
77
- validate_required_params(@required_options, config)
78
-
79
- user_management_api = Ionoscloud::UserManagementApi.new(api_client)
80
-
81
- if @updatable_fields.map { |el| config[el] }.any?
82
- print "#{ui.color('Updating Group...', :magenta)}"
83
-
84
- existing_group = user_management_api.um_groups_find_by_id(config[:group_id], depth: 1)
85
-
86
- group, _, headers = user_management_api.um_groups_put_with_http_info(
87
- config[:group_id],
88
- Ionoscloud::Group.new(
89
- properties: Ionoscloud::GroupProperties.new(
90
- name: config[:name] || existing_group.properties.name,
91
- create_data_center: config.key?(:create_data_center) ? config[:create_data_center].to_s != 'false' : existing_group.properties.create_data_center,
92
- create_snapshot: config.key?(:create_snapshot) ? config[:create_snapshot].to_s != 'false' : existing_group.properties.create_snapshot,
93
- reserve_ip: config.key?(:reserve_ip) ? config[:reserve_ip].to_s != 'false' : existing_group.properties.reserve_ip,
94
- access_activity_log: config.key?(:access_activity_log) ? config[:access_activity_log].to_s != 'false' : existing_group.properties.access_activity_log,
95
- s3_privilege: config.key?(:s3_privilege) ? config[:s3_privilege].to_s != 'false' : existing_group.properties.s3_privilege,
96
- create_backup_unit: config.key?(:create_backup_unit) ? config[:create_backup_unit].to_s != 'false' : existing_group.properties.create_backup_unit,
97
- create_k8s_cluster: config.key?(:create_k8s_cluster) ? config[:create_k8s_cluster].to_s != 'false' : existing_group.properties.create_k8s_cluster,
98
- create_pcc: config.key?(:create_pcc) ? config[:create_pcc].to_s != 'false' : existing_group.properties.create_pcc,
99
- create_internet_access: config.key?(:create_internet_access) ? config[:create_internet_access].to_s != 'false' : existing_group.properties.create_internet_access,
100
- ),
101
- ),
102
- )
103
-
104
- dot = ui.color('.', :magenta)
105
- api_client.wait_for { print dot; is_done? get_request_id headers }
106
- else
107
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
108
- end
109
-
110
- print_group(user_management_api.um_groups_find_by_id(config[:group_id], depth: 1))
111
- end
112
- end
113
- end
114
- end