knife-ionoscloud 6.0.0.alpha.1 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (434) hide show
  1. checksums.yaml +4 -4
  2. data/.github/IONOS.CLOUD.BLU.svg +1 -0
  3. data/.github/workflows/publish.yml +4 -1
  4. data/README.md +9 -0
  5. data/docs/README.md +37 -0
  6. data/docs/changelog.md +10 -0
  7. data/docs/docs_generator.rb +45 -10
  8. data/docs/subcommands/{backupunit_create.md → backup/backupunit_create.md} +7 -1
  9. data/docs/subcommands/{backupunit_delete.md → backup/backupunit_delete.md} +7 -1
  10. data/docs/subcommands/backup/backupunit_get.md +38 -0
  11. data/docs/subcommands/{backupunit_list.md → backup/backupunit_list.md} +7 -1
  12. data/docs/subcommands/{backupunit_ssourl.md → backup/backupunit_ssourl.md} +7 -1
  13. data/docs/subcommands/backup/backupunit_update.md +44 -0
  14. data/docs/subcommands/{composite_server_create.md → compute-engine/composite_server_create.md} +15 -3
  15. data/docs/subcommands/compute-engine/cube_server_create.md +94 -0
  16. data/docs/subcommands/{datacenter_create.md → compute-engine/datacenter_create.md} +7 -1
  17. data/docs/subcommands/{datacenter_delete.md → compute-engine/datacenter_delete.md} +7 -1
  18. data/docs/subcommands/compute-engine/datacenter_get.md +38 -0
  19. data/docs/subcommands/{datacenter_list.md → compute-engine/datacenter_list.md} +7 -1
  20. data/docs/subcommands/compute-engine/datacenter_update.md +47 -0
  21. data/docs/subcommands/{firewall_create.md → compute-engine/firewall_create.md} +11 -2
  22. data/docs/subcommands/{firewall_delete.md → compute-engine/firewall_delete.md} +6 -0
  23. data/docs/subcommands/compute-engine/firewall_get.md +50 -0
  24. data/docs/subcommands/{firewall_list.md → compute-engine/firewall_list.md} +7 -1
  25. data/docs/subcommands/compute-engine/firewall_update.md +74 -0
  26. data/docs/subcommands/compute-engine/flowlog_create.md +66 -0
  27. data/docs/subcommands/compute-engine/flowlog_delete.md +54 -0
  28. data/docs/subcommands/compute-engine/flowlog_get.md +58 -0
  29. data/docs/subcommands/compute-engine/flowlog_list.md +54 -0
  30. data/docs/subcommands/compute-engine/flowlog_update.md +70 -0
  31. data/docs/subcommands/{image_list.md → compute-engine/image_list.md} +7 -1
  32. data/docs/subcommands/{ipblock_create.md → compute-engine/ipblock_create.md} +7 -1
  33. data/docs/subcommands/{ipblock_delete.md → compute-engine/ipblock_delete.md} +7 -1
  34. data/docs/subcommands/compute-engine/ipblock_get.md +38 -0
  35. data/docs/subcommands/{ipblock_list.md → compute-engine/ipblock_list.md} +7 -1
  36. data/docs/subcommands/compute-engine/ipblock_update.md +41 -0
  37. data/docs/subcommands/{ipfailover_add.md → compute-engine/ipfailover_add.md} +7 -1
  38. data/docs/subcommands/{ipfailover_remove.md → compute-engine/ipfailover_remove.md} +7 -1
  39. data/docs/subcommands/{label_add.md → compute-engine/label_add.md} +7 -1
  40. data/docs/subcommands/{label_list.md → compute-engine/label_list.md} +7 -1
  41. data/docs/subcommands/{label_remove.md → compute-engine/label_remove.md} +6 -0
  42. data/docs/subcommands/{lan_create.md → compute-engine/lan_create.md} +7 -1
  43. data/docs/subcommands/{lan_delete.md → compute-engine/lan_delete.md} +6 -0
  44. data/docs/subcommands/compute-engine/lan_get.md +42 -0
  45. data/docs/subcommands/{lan_list.md → compute-engine/lan_list.md} +7 -1
  46. data/docs/subcommands/compute-engine/lan_update.md +51 -0
  47. data/docs/subcommands/{loadbalancer_create.md → compute-engine/loadbalancer_create.md} +7 -1
  48. data/docs/subcommands/{loadbalancer_delete.md → compute-engine/loadbalancer_delete.md} +6 -0
  49. data/docs/subcommands/{loadbalancer_get.md → compute-engine/loadbalancer_get.md} +7 -1
  50. data/docs/subcommands/{loadbalancer_list.md → compute-engine/loadbalancer_list.md} +7 -1
  51. data/docs/subcommands/{loadbalancer_nic_add.md → compute-engine/loadbalancer_nic_add.md} +6 -0
  52. data/docs/subcommands/{loadbalancer_nic_remove.md → compute-engine/loadbalancer_nic_remove.md} +6 -0
  53. data/docs/subcommands/compute-engine/loadbalancer_update.md +51 -0
  54. data/docs/subcommands/{location_list.md → compute-engine/location_list.md} +7 -1
  55. data/docs/subcommands/compute-engine/natgateway_create.md +44 -0
  56. data/docs/subcommands/compute-engine/natgateway_delete.md +38 -0
  57. data/docs/subcommands/compute-engine/natgateway_get.md +42 -0
  58. data/docs/subcommands/compute-engine/natgateway_lan_add.md +49 -0
  59. data/docs/subcommands/compute-engine/natgateway_lan_remove.md +42 -0
  60. data/docs/subcommands/compute-engine/natgateway_list.md +38 -0
  61. data/docs/subcommands/compute-engine/natgateway_rule_add.md +69 -0
  62. data/docs/subcommands/compute-engine/natgateway_rule_list.md +41 -0
  63. data/docs/subcommands/compute-engine/natgateway_rule_remove.md +42 -0
  64. data/docs/subcommands/compute-engine/natgateway_rule_update.md +69 -0
  65. data/docs/subcommands/compute-engine/natgateway_update.md +51 -0
  66. data/docs/subcommands/compute-engine/networkloadbalancer_create.md +57 -0
  67. data/docs/subcommands/compute-engine/networkloadbalancer_delete.md +38 -0
  68. data/docs/subcommands/compute-engine/networkloadbalancer_get.md +42 -0
  69. data/docs/subcommands/compute-engine/networkloadbalancer_list.md +38 -0
  70. data/docs/subcommands/compute-engine/networkloadbalancer_rule_add.md +75 -0
  71. data/docs/subcommands/compute-engine/networkloadbalancer_rule_list.md +42 -0
  72. data/docs/subcommands/compute-engine/networkloadbalancer_rule_remove.md +42 -0
  73. data/docs/subcommands/compute-engine/networkloadbalancer_rule_target_add.md +67 -0
  74. data/docs/subcommands/compute-engine/networkloadbalancer_rule_target_list.md +46 -0
  75. data/docs/subcommands/compute-engine/networkloadbalancer_rule_target_remove.md +54 -0
  76. data/docs/subcommands/compute-engine/networkloadbalancer_rule_update.md +75 -0
  77. data/docs/subcommands/compute-engine/networkloadbalancer_update.md +57 -0
  78. data/docs/subcommands/{nic_create.md → compute-engine/nic_create.md} +9 -3
  79. data/docs/subcommands/{nic_delete.md → compute-engine/nic_delete.md} +6 -0
  80. data/docs/subcommands/compute-engine/nic_get.md +46 -0
  81. data/docs/subcommands/{nic_list.md → compute-engine/nic_list.md} +7 -1
  82. data/docs/subcommands/compute-engine/nic_update.md +61 -0
  83. data/docs/subcommands/{pcc_create.md → compute-engine/pcc_create.md} +7 -1
  84. data/docs/subcommands/{pcc_delete.md → compute-engine/pcc_delete.md} +7 -1
  85. data/docs/subcommands/compute-engine/pcc_get.md +38 -0
  86. data/docs/subcommands/{pcc_list.md → compute-engine/pcc_list.md} +7 -1
  87. data/docs/subcommands/compute-engine/pcc_update.md +44 -0
  88. data/docs/subcommands/compute-engine/request_get.md +38 -0
  89. data/docs/subcommands/{request_list.md → compute-engine/request_list.md} +7 -1
  90. data/docs/subcommands/{request_status.md → compute-engine/request_status.md} +7 -1
  91. data/docs/subcommands/{request_wait.md → compute-engine/request_wait.md} +7 -1
  92. data/docs/subcommands/compute-engine/server_console.md +42 -0
  93. data/docs/subcommands/{server_create.md → compute-engine/server_create.md} +7 -1
  94. data/docs/subcommands/{server_delete.md → compute-engine/server_delete.md} +6 -0
  95. data/docs/subcommands/compute-engine/server_get.md +42 -0
  96. data/docs/subcommands/{server_list.md → compute-engine/server_list.md} +10 -1
  97. data/docs/subcommands/{server_reboot.md → compute-engine/server_reboot.md} +6 -0
  98. data/docs/subcommands/compute-engine/server_resume.md +38 -0
  99. data/docs/subcommands/{server_start.md → compute-engine/server_start.md} +6 -0
  100. data/docs/subcommands/{server_stop.md → compute-engine/server_stop.md} +6 -0
  101. data/docs/subcommands/compute-engine/server_suspend.md +38 -0
  102. data/docs/subcommands/compute-engine/server_token.md +42 -0
  103. data/docs/subcommands/compute-engine/server_update.md +63 -0
  104. data/docs/subcommands/compute-engine/server_upgrade.md +42 -0
  105. data/docs/subcommands/{snapshot_create.md → compute-engine/snapshot_create.md} +7 -1
  106. data/docs/subcommands/{snapshot_delete.md → compute-engine/snapshot_delete.md} +7 -1
  107. data/docs/subcommands/compute-engine/snapshot_get.md +38 -0
  108. data/docs/subcommands/{snapshot_list.md → compute-engine/snapshot_list.md} +7 -1
  109. data/docs/subcommands/{snapshot_restore.md → compute-engine/snapshot_restore.md} +7 -1
  110. data/docs/subcommands/compute-engine/snapshot_update.md +80 -0
  111. data/docs/subcommands/compute-engine/template_list.md +34 -0
  112. data/docs/subcommands/{volume_attach.md → compute-engine/volume_attach.md} +6 -0
  113. data/docs/subcommands/{volume_create.md → compute-engine/volume_create.md} +14 -5
  114. data/docs/subcommands/{volume_delete.md → compute-engine/volume_delete.md} +6 -0
  115. data/docs/subcommands/{volume_detach.md → compute-engine/volume_detach.md} +6 -0
  116. data/docs/subcommands/compute-engine/volume_get.md +42 -0
  117. data/docs/subcommands/{volume_list.md → compute-engine/volume_list.md} +7 -1
  118. data/docs/subcommands/compute-engine/volume_update.md +69 -0
  119. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_get.md +38 -0
  120. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_list.md +38 -0
  121. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_create.md +100 -0
  122. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_delete.md +34 -0
  123. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_get.md +38 -0
  124. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_list.md +34 -0
  125. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_restore.md +44 -0
  126. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_update.md +65 -0
  127. data/docs/subcommands/dbaas-postgres/dbaas_postgres_logs_get.md +47 -0
  128. data/docs/subcommands/dbaas-postgres/dbaas_postgres_version_list.md +38 -0
  129. data/docs/subcommands/kubernetes/k8s_create.md +53 -0
  130. data/docs/subcommands/{k8s_delete.md → kubernetes/k8s_delete.md} +7 -1
  131. data/docs/subcommands/kubernetes/k8s_get.md +38 -0
  132. data/docs/subcommands/{k8s_list.md → kubernetes/k8s_list.md} +7 -1
  133. data/docs/subcommands/kubernetes/k8s_update.md +56 -0
  134. data/docs/subcommands/{kubeconfig_get.md → kubernetes/kubeconfig_get.md} +7 -1
  135. data/docs/subcommands/{node_delete.md → kubernetes/node_delete.md} +6 -0
  136. data/docs/subcommands/kubernetes/node_get.md +46 -0
  137. data/docs/subcommands/{node_list.md → kubernetes/node_list.md} +7 -1
  138. data/docs/subcommands/{node_replace.md → kubernetes/node_replace.md} +6 -0
  139. data/docs/subcommands/{nodepool_create.md → kubernetes/nodepool_create.md} +16 -1
  140. data/docs/subcommands/{nodepool_delete.md → kubernetes/nodepool_delete.md} +6 -0
  141. data/docs/subcommands/kubernetes/nodepool_get.md +42 -0
  142. data/docs/subcommands/kubernetes/nodepool_lan_add.md +52 -0
  143. data/docs/subcommands/kubernetes/nodepool_lan_remove.md +42 -0
  144. data/docs/subcommands/{nodepool_list.md → kubernetes/nodepool_list.md} +7 -1
  145. data/docs/subcommands/kubernetes/nodepool_update.md +72 -0
  146. data/docs/subcommands/{contract_list.md → user/contract_list.md} +7 -1
  147. data/docs/subcommands/{group_create.md → user/group_create.md} +16 -1
  148. data/docs/subcommands/{group_delete.md → user/group_delete.md} +7 -1
  149. data/docs/subcommands/{group_get.md → user/group_get.md} +7 -1
  150. data/docs/subcommands/{group_list.md → user/group_list.md} +7 -1
  151. data/docs/subcommands/user/group_update.md +77 -0
  152. data/docs/subcommands/{group_user_add.md → user/group_user_add.md} +6 -0
  153. data/docs/subcommands/{group_user_remove.md → user/group_user_remove.md} +6 -0
  154. data/docs/subcommands/{resource_list.md → user/resource_list.md} +7 -1
  155. data/docs/subcommands/{s3key_create.md → user/s3key_create.md} +7 -1
  156. data/docs/subcommands/{s3key_delete.md → user/s3key_delete.md} +6 -0
  157. data/docs/subcommands/user/s3key_get.md +42 -0
  158. data/docs/subcommands/{s3key_list.md → user/s3key_list.md} +7 -1
  159. data/docs/subcommands/{share_create.md → user/share_create.md} +7 -1
  160. data/docs/subcommands/{share_delete.md → user/share_delete.md} +6 -0
  161. data/docs/subcommands/user/share_get.md +42 -0
  162. data/docs/subcommands/{share_list.md → user/share_list.md} +7 -1
  163. data/docs/subcommands/user/share_update.md +48 -0
  164. data/docs/subcommands/{user_create.md → user/user_create.md} +7 -1
  165. data/docs/subcommands/{user_delete.md → user/user_delete.md} +7 -1
  166. data/docs/subcommands/user/user_get.md +38 -0
  167. data/docs/subcommands/{user_list.md → user/user_list.md} +7 -1
  168. data/docs/subcommands/{user_ssourl.md → user/user_ssourl.md} +7 -1
  169. data/docs/subcommands/user/user_update.md +59 -0
  170. data/docs/summary.md +167 -82
  171. data/docs/templates/summary.mustache +6 -3
  172. data/knife-ionoscloud.gemspec +2 -1
  173. data/lib/chef/knife/ionoscloud_backupunit_create.rb +12 -16
  174. data/lib/chef/knife/ionoscloud_backupunit_delete.rb +3 -6
  175. data/lib/chef/knife/ionoscloud_backupunit_get.rb +32 -0
  176. data/lib/chef/knife/ionoscloud_backupunit_list.rb +2 -2
  177. data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +2 -2
  178. data/lib/chef/knife/ionoscloud_backupunit_update.rb +61 -0
  179. data/lib/chef/knife/ionoscloud_base.rb +417 -1
  180. data/lib/chef/knife/ionoscloud_composite_server_create.rb +7 -11
  181. data/lib/chef/knife/ionoscloud_contract_list.rb +2 -2
  182. data/lib/chef/knife/ionoscloud_cube_server_create.rb +7 -11
  183. data/lib/chef/knife/ionoscloud_datacenter_create.rb +12 -15
  184. data/lib/chef/knife/ionoscloud_datacenter_delete.rb +3 -8
  185. data/lib/chef/knife/ionoscloud_datacenter_get.rb +32 -0
  186. data/lib/chef/knife/ionoscloud_datacenter_list.rb +2 -2
  187. data/lib/chef/knife/ionoscloud_datacenter_update.rb +66 -0
  188. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_get.rb +33 -0
  189. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_list.rb +59 -0
  190. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_create.rb +158 -0
  191. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_delete.rb +49 -0
  192. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_get.rb +34 -0
  193. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_list.rb +53 -0
  194. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_restore.rb +48 -0
  195. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_update.rb +102 -0
  196. data/lib/chef/knife/ionoscloud_dbaas_postgres_logs_get.rb +59 -0
  197. data/lib/chef/knife/ionoscloud_dbaas_postgres_version_list.rb +49 -0
  198. data/lib/chef/knife/ionoscloud_firewall_create.rb +10 -24
  199. data/lib/chef/knife/ionoscloud_firewall_delete.rb +4 -13
  200. data/lib/chef/knife/ionoscloud_firewall_get.rb +51 -0
  201. data/lib/chef/knife/ionoscloud_firewall_list.rb +2 -2
  202. data/lib/chef/knife/ionoscloud_firewall_update.rb +131 -0
  203. data/lib/chef/knife/ionoscloud_flowlog_create.rb +6 -14
  204. data/lib/chef/knife/ionoscloud_flowlog_delete.rb +10 -14
  205. data/lib/chef/knife/ionoscloud_flowlog_get.rb +83 -0
  206. data/lib/chef/knife/ionoscloud_flowlog_list.rb +4 -4
  207. data/lib/chef/knife/ionoscloud_flowlog_update.rb +124 -0
  208. data/lib/chef/knife/ionoscloud_group_create.rb +3 -18
  209. data/lib/chef/knife/ionoscloud_group_delete.rb +3 -20
  210. data/lib/chef/knife/ionoscloud_group_get.rb +3 -21
  211. data/lib/chef/knife/ionoscloud_group_list.rb +2 -2
  212. data/lib/chef/knife/ionoscloud_group_update.rb +130 -0
  213. data/lib/chef/knife/ionoscloud_group_user_add.rb +3 -20
  214. data/lib/chef/knife/ionoscloud_group_user_remove.rb +3 -20
  215. data/lib/chef/knife/ionoscloud_image_list.rb +2 -2
  216. data/lib/chef/knife/ionoscloud_ipblock_create.rb +12 -15
  217. data/lib/chef/knife/ionoscloud_ipblock_delete.rb +3 -6
  218. data/lib/chef/knife/ionoscloud_ipblock_get.rb +32 -0
  219. data/lib/chef/knife/ionoscloud_ipblock_list.rb +2 -2
  220. data/lib/chef/knife/ionoscloud_ipblock_update.rb +56 -0
  221. data/lib/chef/knife/ionoscloud_ipfailover_add.rb +3 -3
  222. data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +3 -3
  223. data/lib/chef/knife/ionoscloud_k8s_create.rb +28 -36
  224. data/lib/chef/knife/ionoscloud_k8s_delete.rb +3 -11
  225. data/lib/chef/knife/ionoscloud_k8s_get.rb +32 -0
  226. data/lib/chef/knife/ionoscloud_k8s_list.rb +2 -2
  227. data/lib/chef/knife/ionoscloud_k8s_update.rb +98 -0
  228. data/lib/chef/knife/ionoscloud_kubeconfig_get.rb +2 -2
  229. data/lib/chef/knife/ionoscloud_label_add.rb +2 -2
  230. data/lib/chef/knife/ionoscloud_label_list.rb +2 -2
  231. data/lib/chef/knife/ionoscloud_label_remove.rb +2 -2
  232. data/lib/chef/knife/ionoscloud_lan_create.rb +8 -17
  233. data/lib/chef/knife/ionoscloud_lan_delete.rb +5 -6
  234. data/lib/chef/knife/ionoscloud_lan_get.rb +37 -0
  235. data/lib/chef/knife/ionoscloud_lan_list.rb +4 -3
  236. data/lib/chef/knife/ionoscloud_lan_update.rb +75 -0
  237. data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +7 -16
  238. data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +3 -10
  239. data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +4 -14
  240. data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +2 -2
  241. data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +4 -16
  242. data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +4 -17
  243. data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +72 -0
  244. data/lib/chef/knife/ionoscloud_location_list.rb +2 -2
  245. data/lib/chef/knife/ionoscloud_natgateway_create.rb +7 -19
  246. data/lib/chef/knife/ionoscloud_natgateway_delete.rb +4 -20
  247. data/lib/chef/knife/ionoscloud_natgateway_get.rb +41 -0
  248. data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +4 -13
  249. data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +3 -10
  250. data/lib/chef/knife/ionoscloud_natgateway_list.rb +3 -2
  251. data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +8 -28
  252. data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +3 -2
  253. data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +5 -23
  254. data/lib/chef/knife/ionoscloud_natgateway_rule_update.rb +115 -0
  255. data/lib/chef/knife/ionoscloud_natgateway_update.rb +83 -0
  256. data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +8 -15
  257. data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +4 -24
  258. data/lib/chef/knife/ionoscloud_networkloadbalancer_get.rb +41 -0
  259. data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +2 -2
  260. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +32 -48
  261. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +3 -2
  262. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +21 -32
  263. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +7 -26
  264. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +3 -2
  265. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +6 -24
  266. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_update.rb +147 -0
  267. data/lib/chef/knife/ionoscloud_networkloadbalancer_update.rb +97 -0
  268. data/lib/chef/knife/ionoscloud_nic_create.rb +10 -24
  269. data/lib/chef/knife/ionoscloud_nic_delete.rb +4 -10
  270. data/lib/chef/knife/ionoscloud_nic_get.rb +48 -0
  271. data/lib/chef/knife/ionoscloud_nic_list.rb +2 -2
  272. data/lib/chef/knife/ionoscloud_nic_update.rb +95 -0
  273. data/lib/chef/knife/ionoscloud_node_delete.rb +2 -2
  274. data/lib/chef/knife/ionoscloud_node_get.rb +48 -0
  275. data/lib/chef/knife/ionoscloud_node_list.rb +2 -2
  276. data/lib/chef/knife/ionoscloud_node_replace.rb +2 -2
  277. data/lib/chef/knife/ionoscloud_nodepool_create.rb +27 -59
  278. data/lib/chef/knife/ionoscloud_nodepool_delete.rb +3 -34
  279. data/lib/chef/knife/ionoscloud_nodepool_get.rb +42 -0
  280. data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +4 -32
  281. data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +3 -28
  282. data/lib/chef/knife/ionoscloud_nodepool_list.rb +2 -2
  283. data/lib/chef/knife/ionoscloud_nodepool_update.rb +123 -0
  284. data/lib/chef/knife/ionoscloud_pcc_create.rb +13 -19
  285. data/lib/chef/knife/ionoscloud_pcc_delete.rb +3 -11
  286. data/lib/chef/knife/ionoscloud_pcc_get.rb +32 -0
  287. data/lib/chef/knife/ionoscloud_pcc_list.rb +2 -2
  288. data/lib/chef/knife/ionoscloud_pcc_update.rb +62 -0
  289. data/lib/chef/knife/ionoscloud_request_get.rb +39 -0
  290. data/lib/chef/knife/ionoscloud_request_list.rb +2 -2
  291. data/lib/chef/knife/ionoscloud_request_status.rb +2 -2
  292. data/lib/chef/knife/ionoscloud_request_wait.rb +2 -2
  293. data/lib/chef/knife/ionoscloud_resource_list.rb +2 -2
  294. data/lib/chef/knife/ionoscloud_s3key_create.rb +3 -7
  295. data/lib/chef/knife/ionoscloud_s3key_delete.rb +3 -6
  296. data/lib/chef/knife/ionoscloud_s3key_get.rb +37 -0
  297. data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -2
  298. data/lib/chef/knife/ionoscloud_server_console.rb +2 -2
  299. data/lib/chef/knife/ionoscloud_server_create.rb +16 -30
  300. data/lib/chef/knife/ionoscloud_server_delete.rb +4 -10
  301. data/lib/chef/knife/ionoscloud_server_get.rb +42 -0
  302. data/lib/chef/knife/ionoscloud_server_list.rb +2 -2
  303. data/lib/chef/knife/ionoscloud_server_reboot.rb +2 -2
  304. data/lib/chef/knife/ionoscloud_server_resume.rb +2 -2
  305. data/lib/chef/knife/ionoscloud_server_start.rb +2 -2
  306. data/lib/chef/knife/ionoscloud_server_stop.rb +2 -2
  307. data/lib/chef/knife/ionoscloud_server_suspend.rb +2 -2
  308. data/lib/chef/knife/ionoscloud_server_token.rb +2 -2
  309. data/lib/chef/knife/ionoscloud_server_update.rb +96 -0
  310. data/lib/chef/knife/ionoscloud_server_upgrade.rb +2 -2
  311. data/lib/chef/knife/ionoscloud_share_create.rb +9 -13
  312. data/lib/chef/knife/ionoscloud_share_delete.rb +4 -5
  313. data/lib/chef/knife/ionoscloud_share_get.rb +37 -0
  314. data/lib/chef/knife/ionoscloud_share_list.rb +2 -2
  315. data/lib/chef/knife/ionoscloud_share_update.rb +69 -0
  316. data/lib/chef/knife/ionoscloud_snapshot_create.rb +3 -11
  317. data/lib/chef/knife/ionoscloud_snapshot_delete.rb +3 -8
  318. data/lib/chef/knife/ionoscloud_snapshot_get.rb +31 -0
  319. data/lib/chef/knife/ionoscloud_snapshot_list.rb +2 -2
  320. data/lib/chef/knife/ionoscloud_snapshot_restore.rb +3 -14
  321. data/lib/chef/knife/ionoscloud_snapshot_update.rb +125 -0
  322. data/lib/chef/knife/ionoscloud_template_list.rb +2 -2
  323. data/lib/chef/knife/ionoscloud_user_create.rb +3 -10
  324. data/lib/chef/knife/ionoscloud_user_delete.rb +3 -8
  325. data/lib/chef/knife/ionoscloud_user_get.rb +31 -0
  326. data/lib/chef/knife/ionoscloud_user_list.rb +2 -2
  327. data/lib/chef/knife/ionoscloud_user_ssourl.rb +2 -2
  328. data/lib/chef/knife/ionoscloud_user_update.rb +91 -0
  329. data/lib/chef/knife/ionoscloud_volume_attach.rb +2 -2
  330. data/lib/chef/knife/ionoscloud_volume_create.rb +4 -15
  331. data/lib/chef/knife/ionoscloud_volume_delete.rb +4 -10
  332. data/lib/chef/knife/ionoscloud_volume_detach.rb +2 -2
  333. data/lib/chef/knife/ionoscloud_volume_get.rb +35 -0
  334. data/lib/chef/knife/ionoscloud_volume_list.rb +2 -2
  335. data/lib/chef/knife/ionoscloud_volume_update.rb +105 -0
  336. data/lib/knife-ionoscloud/version.rb +1 -1
  337. data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +65 -0
  338. data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +78 -0
  339. data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +3 -0
  340. data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +3 -0
  341. data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +69 -0
  342. data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +82 -0
  343. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_get_spec.rb +67 -0
  344. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_list_spec.rb +111 -0
  345. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_create_spec.rb +99 -0
  346. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_delete_spec.rb +109 -0
  347. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_get_spec.rb +73 -0
  348. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_list_spec.rb +84 -0
  349. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_restore_spec.rb +59 -0
  350. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_update_spec.rb +89 -0
  351. data/spec/chef/knife/ionoscloud_dbaas_postgres_logs_get_spec.rb +67 -0
  352. data/spec/chef/knife/ionoscloud_dbaas_postgres_version_list_spec.rb +94 -0
  353. data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +1 -1
  354. data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +1 -1
  355. data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +77 -0
  356. data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +117 -0
  357. data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +3 -3
  358. data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +10 -10
  359. data/spec/chef/knife/ionoscloud_flowlog_get_spec.rb +171 -0
  360. data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +3 -3
  361. data/spec/chef/knife/ionoscloud_flowlog_update_spec.rb +244 -0
  362. data/spec/chef/knife/ionoscloud_group_create_spec.rb +3 -0
  363. data/spec/chef/knife/ionoscloud_group_update_spec.rb +121 -0
  364. data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +6 -0
  365. data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +6 -0
  366. data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +66 -0
  367. data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +79 -0
  368. data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +4 -4
  369. data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +7 -7
  370. data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +7 -0
  371. data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +16 -11
  372. data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +72 -0
  373. data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +114 -0
  374. data/spec/chef/knife/ionoscloud_lan_create_spec.rb +4 -3
  375. data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +7 -5
  376. data/spec/chef/knife/ionoscloud_lan_get_spec.rb +68 -0
  377. data/spec/chef/knife/ionoscloud_lan_list_spec.rb +2 -2
  378. data/spec/chef/knife/ionoscloud_lan_update_spec.rb +87 -0
  379. data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +89 -0
  380. data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +15 -0
  381. data/spec/chef/knife/ionoscloud_natgateway_get_spec.rb +81 -0
  382. data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +15 -0
  383. data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +15 -0
  384. data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +1 -0
  385. data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +1 -0
  386. data/spec/chef/knife/ionoscloud_natgateway_rule_update_spec.rb +121 -0
  387. data/spec/chef/knife/ionoscloud_natgateway_update_spec.rb +121 -0
  388. data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +13 -0
  389. data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +3 -2
  390. data/spec/chef/knife/ionoscloud_networkloadbalancer_get_spec.rb +82 -0
  391. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +4 -3
  392. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +70 -44
  393. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +26 -22
  394. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +79 -61
  395. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_update_spec.rb +163 -0
  396. data/spec/chef/knife/ionoscloud_networkloadbalancer_update_spec.rb +107 -0
  397. data/spec/chef/knife/ionoscloud_nic_get_spec.rb +72 -0
  398. data/spec/chef/knife/ionoscloud_nic_update_spec.rb +97 -0
  399. data/spec/chef/knife/ionoscloud_node_get_spec.rb +70 -0
  400. data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +8 -17
  401. data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +14 -0
  402. data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +83 -0
  403. data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +29 -33
  404. data/spec/chef/knife/ionoscloud_nodepool_lan_remove.rb +14 -17
  405. data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +134 -0
  406. data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +7 -4
  407. data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +2 -2
  408. data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +71 -0
  409. data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +83 -0
  410. data/spec/chef/knife/ionoscloud_request_get_spec.rb +69 -0
  411. data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +66 -0
  412. data/spec/chef/knife/ionoscloud_server_create_spec.rb +3 -0
  413. data/spec/chef/knife/ionoscloud_server_delete_spec.rb +3 -0
  414. data/spec/chef/knife/ionoscloud_server_get_spec.rb +74 -0
  415. data/spec/chef/knife/ionoscloud_server_update_spec.rb +105 -0
  416. data/spec/chef/knife/ionoscloud_share_get_spec.rb +66 -0
  417. data/spec/chef/knife/ionoscloud_share_update_spec.rb +91 -0
  418. data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +12 -0
  419. data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +12 -0
  420. data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +79 -0
  421. data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +9 -0
  422. data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +113 -0
  423. data/spec/chef/knife/ionoscloud_user_create_spec.rb +3 -1
  424. data/spec/chef/knife/ionoscloud_user_delete_spec.rb +4 -2
  425. data/spec/chef/knife/ionoscloud_user_get_spec.rb +70 -0
  426. data/spec/chef/knife/ionoscloud_user_update_spec.rb +110 -0
  427. data/spec/chef/knife/ionoscloud_volume_create_spec.rb +15 -5
  428. data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +10 -0
  429. data/spec/chef/knife/ionoscloud_volume_get_spec.rb +81 -0
  430. data/spec/chef/knife/ionoscloud_volume_update_spec.rb +116 -0
  431. data/spec/spec_helper.rb +148 -23
  432. metadata +336 -90
  433. data/docs/subcommands/k8s_create.md +0 -47
  434. data/spec/test.sh +0 -3
@@ -0,0 +1,147 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudNetworkloadbalancerRuleUpdate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud networkloadbalancer rule 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 :network_loadbalancer_id,
16
+ short: '-L NETWORK_LOADBALANCER_ID',
17
+ long: '--network-loadbalancer NETWORK_LOADBALANCER_ID',
18
+ description: 'ID of the Network Loadbalancer'
19
+
20
+ option :forwarding_rule_id,
21
+ short: '-R FORWARDING_RULE_ID',
22
+ long: '--forwarding-rule FORWARDING_RULE_ID',
23
+ description: 'ID of the Network Loadbalancer Forwarding Rule'
24
+
25
+ option :name,
26
+ short: '-n NAME',
27
+ long: '--name NAME',
28
+ description: 'A name of that Network Load Balancer forwarding rule'
29
+
30
+ option :algorithm,
31
+ short: '-a ALGORITHM',
32
+ long: '--algorithm ALGORITHM',
33
+ description: 'Algorithm for the balancing'
34
+
35
+ option :protocol,
36
+ long: '--protocol PROTOCOL',
37
+ description: 'Protocol of the balancing'
38
+
39
+ option :listener_ip,
40
+ short: '-i LISTENER_IP',
41
+ long: '--ip LISTENER_IP',
42
+ description: 'Listening IP. (inbound)'
43
+
44
+ option :listener_port,
45
+ short: '-p LISTENER_PORT',
46
+ long: '--port LISTENER_PORT',
47
+ description: 'Listening port number. (inbound) (range: 1 to 65535)'
48
+
49
+ option :client_timeout,
50
+ long: '--client-timeout CLIENT_TIMEOUT',
51
+ description: 'ClientTimeout is expressed in milliseconds. This inactivity timeout applies when '\
52
+ 'the client is expected to acknowledge or send data. If unset the default of 50 seconds will be used.'
53
+
54
+ option :connect_timeout,
55
+ long: '--connect-timeout CONNECT_TIMEOUT',
56
+ description: 'It specifies the maximum time (in milliseconds) to wait for a connection attempt to a '\
57
+ 'target VM to succeed. If unset, the default of 5 seconds will be used.'
58
+
59
+ option :target_timeout,
60
+ long: '--terget-timeout TARGET_TIMEOUT',
61
+ description: 'TargetTimeout specifies the maximum inactivity time (in milliseconds) on the target VM side. '\
62
+ 'If unset, the default of 50 seconds will be used.'
63
+
64
+ option :retries,
65
+ short: '-r RETRIES',
66
+ long: '--retries RETRIES',
67
+ description: 'Retries specifies the number of retries to perform on a target VM after a connection failure. '\
68
+ 'If unset, the default value of 3 will be used. (valid range: [0, 65535])'
69
+
70
+ option :targets,
71
+ long: '--targets TARGETS',
72
+ description: 'Array of targets'
73
+
74
+ def initialize(args = [])
75
+ super(args)
76
+ @description =
77
+ 'Updates information about a Ionoscloud Network Load Balancer.'
78
+ @directory = 'compute-engine'
79
+ @required_options = [:datacenter_id, :network_loadbalancer_id, :ionoscloud_username, :ionoscloud_password]
80
+ @updatable_fields = [
81
+ :name, :algorithm, :protocol, :listener_ip, :listener_port, :targets,
82
+ :client_timeout, :connect_timeout, :target_timeout, :retries,
83
+ ]
84
+ end
85
+
86
+ def run
87
+ $stdout.sync = true
88
+ handle_extra_config
89
+ validate_required_params(@required_options, config)
90
+
91
+ network_load_balancer_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
92
+
93
+ config[:gateway_ips] = config[:gateway_ips].split(',') if config[:gateway_ips] && config[:gateway_ips].instance_of?(String)
94
+ config[:targets] = JSON[config[:targets]] if config[:targets] && config[:targets].instance_of?(String)
95
+
96
+ config[:targets] = config[:targets].map do
97
+ |target|
98
+ Ionoscloud::NetworkLoadBalancerForwardingRuleTarget.new(
99
+ ip: target['ip'],
100
+ port: target['port'],
101
+ weight: target['weight'],
102
+ health_check: Ionoscloud::NetworkLoadBalancerForwardingRuleTargetHealthCheck.new(
103
+ check: target['health_check']['check'],
104
+ check_interval: target['health_check']['check_interval'],
105
+ maintenance: target['health_check']['maintenance'],
106
+ ),
107
+ )
108
+ end if config[:targets]
109
+
110
+ if @updatable_fields.map { |el| config[el] }.any?
111
+ print "#{ui.color('Updating Network Load Balancer...', :magenta)}"
112
+
113
+ _, _, headers = network_load_balancer_api.datacenters_networkloadbalancers_forwardingrules_patch_with_http_info(
114
+ config[:datacenter_id],
115
+ config[:network_loadbalancer_id],
116
+ config[:forwarding_rule_id],
117
+ Ionoscloud::NetworkLoadBalancerForwardingRuleProperties.new(
118
+ name: config[:name],
119
+ algorithm: config[:algorithm],
120
+ protocol: config[:protocol],
121
+ listener_ip: config[:listener_ip],
122
+ listener_port: config[:listener_port],
123
+ targets: config[:targets],
124
+ health_check: Ionoscloud::NetworkLoadBalancerForwardingRuleHealthCheck.new(
125
+ client_timeout: config[:client_timeout],
126
+ connect_timeout: config[:connect_timeout],
127
+ target_timeout: config[:target_timeout],
128
+ retries: config[:retries],
129
+ ),
130
+ ),
131
+ )
132
+
133
+ dot = ui.color('.', :magenta)
134
+ api_client.wait_for { print dot; is_done? get_request_id headers }
135
+ else
136
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
137
+ end
138
+
139
+ print_network_load_balancer(
140
+ network_load_balancer_api.datacenters_networkloadbalancers_find_by_network_load_balancer_id(
141
+ config[:datacenter_id], config[:network_loadbalancer_id], depth: 2,
142
+ ),
143
+ )
144
+ end
145
+ end
146
+ end
147
+ end
@@ -0,0 +1,97 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudNetworkloadbalancerUpdate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud networkloadbalancer 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 :network_loadbalancer_id,
16
+ short: '-L NETWORK_LOADBALANCER_ID',
17
+ long: '--network-loadbalancer NETWORK_LOADBALANCER_ID',
18
+ description: 'ID of the Network Loadbalancer'
19
+
20
+ option :name,
21
+ short: '-n NAME',
22
+ long: '--name NAME',
23
+ description: 'Name of the load balancer'
24
+
25
+ option :listener_lan,
26
+ short: '-l LISTENER_LAN_ID',
27
+ long: '--listener-lan LISTENER_LAN_ID',
28
+ description: 'Id of the listening LAN. (inbound)'
29
+
30
+ option :target_lan,
31
+ short: '-t TARGET_LAN_ID',
32
+ long: '--target-lan TARGET_LAN_ID',
33
+ description: 'Id of the balanced private target LAN. (outbound)'
34
+
35
+ option :ips,
36
+ short: '-i IP[,IP,...]',
37
+ long: '--ips IP[,IP,...]',
38
+ description: 'Collection of IP addresses of the Network Load Balancer. (inbound and outbound) '\
39
+ 'IP of the listenerLan must be a customer reserved IP for the public load balancer '\
40
+ 'and private IP for the private load balancer.'
41
+
42
+ option :lb_private_ips,
43
+ long: '--private-ips IP[,IP,...]',
44
+ description: 'Collection of private IP addresses with subnet mask of the Network Load Balancer. '\
45
+ 'IPs must contain valid subnet mask. If user will not provide any IP then the system '\
46
+ 'will generate one IP with /24 subnet.'
47
+
48
+
49
+ def initialize(args = [])
50
+ super(args)
51
+ @description =
52
+ 'Updates information about a Ionoscloud Network Load Balancer.'
53
+ @directory = 'compute-engine'
54
+ @required_options = [:datacenter_id, :network_loadbalancer_id, :ionoscloud_username, :ionoscloud_password]
55
+ @updatable_fields = [:name, :listener_lan, :target_lan, :ips, :lb_private_ips]
56
+ end
57
+
58
+ def run
59
+ $stdout.sync = true
60
+ handle_extra_config
61
+ validate_required_params(@required_options, config)
62
+
63
+ config[:ips] = config[:ips].split(',') if config[:ips] && config[:ips].instance_of?(String)
64
+ config[:lb_private_ips] = config[:lb_private_ips].split(',') if config[:lb_private_ips] && config[:lb_private_ips].instance_of?(String)
65
+
66
+ network_load_balancer_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
67
+
68
+ if @updatable_fields.map { |el| config[el] }.any?
69
+ print "#{ui.color('Updating Network Load Balancer...', :magenta)}"
70
+
71
+ _, _, headers = network_load_balancer_api.datacenters_networkloadbalancers_patch_with_http_info(
72
+ config[:datacenter_id],
73
+ config[:network_loadbalancer_id],
74
+ Ionoscloud::NetworkLoadBalancerProperties.new({
75
+ name: config[:name],
76
+ ips: config[:ips],
77
+ listener_lan: config[:listener_lan],
78
+ target_lan: config[:target_lan],
79
+ lb_private_ips: config[:lb_private_ips],
80
+ }.compact),
81
+ )
82
+
83
+ dot = ui.color('.', :magenta)
84
+ api_client.wait_for { print dot; is_done? get_request_id headers }
85
+ else
86
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
87
+ end
88
+
89
+ print_network_load_balancer(
90
+ network_load_balancer_api.datacenters_networkloadbalancers_find_by_network_load_balancer_id(
91
+ config[:datacenter_id], config[:network_loadbalancer_id], depth: 2,
92
+ ),
93
+ )
94
+ end
95
+ end
96
+ end
97
+ end
@@ -31,7 +31,6 @@ class Chef
31
31
  short: '-d',
32
32
  long: '--dhcp',
33
33
  boolean: true | false,
34
- default: true,
35
34
  description: 'Set to false if you wish to disable DHCP'
36
35
 
37
36
  option :lan,
@@ -43,28 +42,25 @@ class Chef
43
42
  short: '-t FIREWALL_TYPE',
44
43
  long: '--firewall-type FIREWALL_TYPE',
45
44
  description: 'The type of firewall rules that will be allowed on the NIC. If it is not specified it will take the '\
46
- 'default value INGRESS',
47
- default: 'INGRESS'
48
-
49
- attr_reader :description, :required_options
45
+ 'default value INGRESS'
50
46
 
51
47
  def initialize(args = [])
52
48
  super(args)
53
49
  @description =
54
50
  "Creates a NIC on the specified server. The Ionoscloud platform supports adding multiple NICs to a server. These NICs "\
55
51
  "can be used to create different, segmented networks on the platform."
52
+ @directory = 'compute-engine'
56
53
  @required_options = [:datacenter_id, :server_id, :lan, :ionoscloud_username, :ionoscloud_password]
57
54
  end
58
55
 
59
56
  def run
60
57
  $stdout.sync = true
58
+ handle_extra_config
61
59
  validate_required_params(@required_options, config)
62
60
 
63
61
  print "#{ui.color('Creating nic...', :magenta)}"
64
62
 
65
- if config[:ips]
66
- config[:ips] = config[:ips].split(',')
67
- end
63
+ config[:ips] = config[:ips].split(',') if config[:ips] && config[:ips].instance_of?(String)
68
64
 
69
65
  nic_properties = {
70
66
  name: config[:name],
@@ -85,23 +81,13 @@ class Chef
85
81
  dot = ui.color('.', :magenta)
86
82
  api_client.wait_for { print dot; is_done? get_request_id headers }
87
83
 
88
- nic = nic_api.datacenters_servers_nics_find_by_id(
89
- config[:datacenter_id],
90
- config[:server_id],
91
- nic.id,
84
+ print_nic(
85
+ nic_api.datacenters_servers_nics_find_by_id(
86
+ config[:datacenter_id],
87
+ config[:server_id],
88
+ nic.id,
89
+ ),
92
90
  )
93
-
94
- puts "\n"
95
- puts "#{ui.color('ID', :cyan)}: #{nic.id}"
96
- puts "#{ui.color('Name', :cyan)}: #{nic.properties.name}"
97
- puts "#{ui.color('IPs', :cyan)}: #{nic.properties.ips.to_s}"
98
- puts "#{ui.color('DHCP', :cyan)}: #{nic.properties.dhcp}"
99
- puts "#{ui.color('LAN', :cyan)}: #{nic.properties.lan}"
100
- puts "#{ui.color('Firewall Type', :cyan)}: #{nic.properties.firewall_type}"
101
- puts "#{ui.color('Device Number', :cyan)}: #{nic.properties.device_number}"
102
- puts "#{ui.color('PCI Slot', :cyan)}: #{nic.properties.pci_slot}"
103
-
104
- puts 'done'
105
91
  end
106
92
  end
107
93
  end
@@ -17,17 +17,17 @@ class Chef
17
17
  long: '--server-id SERVER_ID',
18
18
  description: 'The ID of the server assigned the NIC'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Deletes an existing NIC from a server.'
24
+ @directory = 'compute-engine'
26
25
  @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
29
28
  def run
30
29
  $stdout.sync = true
30
+ handle_extra_config
31
31
  validate_required_params(@required_options, config)
32
32
 
33
33
  nic_api = Ionoscloud::NetworkInterfacesApi.new(api_client)
@@ -40,14 +40,8 @@ class Chef
40
40
  next
41
41
  end
42
42
 
43
- msg_pair('ID', nic.id)
44
- msg_pair('Name', nic.properties.name)
45
- msg_pair('IPs', nic.properties.ips)
46
- msg_pair('DHCP', nic.properties.dhcp)
47
- msg_pair('LAN', nic.properties.lan)
48
- msg_pair('Firewall Type', nic.properties.firewall_type)
49
- msg_pair('Device Number', nic.properties.device_number)
50
- msg_pair('PCI Slot', nic.properties.pci_slot)
43
+ print_nic(nic)
44
+ puts "\n"
51
45
 
52
46
  begin
53
47
  confirm('Do you really want to delete this Nic')
@@ -0,0 +1,48 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudNicGet < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud nic 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
+ option :server_id,
16
+ short: '-S SERVER_ID',
17
+ long: '--server-id SERVER_ID',
18
+ description: 'The ID of the server to which the NIC is assigned'
19
+
20
+ option :nic_id,
21
+ short: '-N NIC_ID',
22
+ long: '--nic-id NIC_ID',
23
+ description: 'ID of the load balancer'
24
+
25
+ def initialize(args = [])
26
+ super(args)
27
+ @description =
28
+ 'Retrieves the attributes of a given NIC.'
29
+ @directory = 'compute-engine'
30
+ @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
31
+ end
32
+
33
+ def run
34
+ $stdout.sync = true
35
+ handle_extra_config
36
+ validate_required_params(@required_options, config)
37
+
38
+ print_nic(
39
+ Ionoscloud::NetworkInterfacesApi.new(api_client).datacenters_servers_nics_find_by_id(
40
+ config[:datacenter_id],
41
+ config[:server_id],
42
+ config[:nic_id],
43
+ ),
44
+ )
45
+ end
46
+ end
47
+ end
48
+ end
@@ -17,17 +17,17 @@ class Chef
17
17
  long: '--server-id SERVER_ID',
18
18
  description: 'The ID of the server assigned the NIC'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'List all available NICs connected to a server.'
24
+ @directory = 'compute-engine'
26
25
  @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
29
28
  def run
30
29
  $stdout.sync = true
30
+ handle_extra_config
31
31
  validate_required_params(@required_options, config)
32
32
 
33
33
  nic_list = [
@@ -0,0 +1,95 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudNicUpdate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud nic 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 :server_id,
16
+ short: '-S SERVER_ID',
17
+ long: '--server-id SERVER_ID',
18
+ description: 'The ID of the server to which the NIC is assigned'
19
+
20
+ option :nic_id,
21
+ short: '-N NIC_ID',
22
+ long: '--nic-id NIC_ID',
23
+ description: 'ID of the load balancer'
24
+
25
+ option :name,
26
+ short: '-n NAME',
27
+ long: '--name NAME',
28
+ description: 'Name of the NIC'
29
+
30
+ option :ips,
31
+ short: '-i IP[,IP,...]',
32
+ long: '--ips IP[,IP,...]',
33
+ description: 'IPs assigned to the NIC'
34
+
35
+ option :dhcp,
36
+ long: '--dhcp DHCP',
37
+ description: 'Set to false if you wish to disable DHCP'
38
+
39
+ option :lan,
40
+ short: '-l ID',
41
+ long: '--lan ID',
42
+ description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created'
43
+
44
+
45
+ option :firewall_type,
46
+ short: '-t FIREWALL_TYPE',
47
+ long: '--firewall-type FIREWALL_TYPE',
48
+ description: 'The type of firewall rules that will be allowed on the NIC. If it is not specified it will take the '\
49
+ 'default value INGRESS'
50
+
51
+ def initialize(args = [])
52
+ super(args)
53
+ @description =
54
+ 'Updates information about a Ionoscloud NIC.'
55
+ @directory = 'compute-engine'
56
+ @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
57
+ @updatable_fields = [:name, :ips, :dhcp, :lan, :nat]
58
+ end
59
+
60
+ def run
61
+ $stdout.sync = true
62
+ handle_extra_config
63
+ validate_required_params(@required_options, config)
64
+
65
+ config[:ips] = config[:ips].split(',') if config[:ips] && config[:ips].instance_of?(String)
66
+
67
+ nic_api = Ionoscloud::NetworkInterfacesApi.new(api_client)
68
+
69
+ if @updatable_fields.map { |el| config[el] }.any?
70
+ print "#{ui.color('Updating NIC...', :magenta)}"
71
+
72
+ _, _, headers = nic_api.datacenters_servers_nics_patch_with_http_info(
73
+ config[:datacenter_id],
74
+ config[:server_id],
75
+ config[:nic_id],
76
+ Ionoscloud::NicProperties.new(
77
+ name: config[:name],
78
+ ips: config[:ips],
79
+ dhcp: (config.key?(:dhcp) ? config[:dhcp].to_s.downcase == 'true' : nil),
80
+ lan: config[:lan],
81
+ firewall_type: config[:firewall_type],
82
+ ),
83
+ )
84
+
85
+ dot = ui.color('.', :magenta)
86
+ api_client.wait_for { print dot; is_done? get_request_id headers }
87
+ else
88
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
89
+ end
90
+
91
+ print_nic(nic_api.datacenters_servers_nics_find_by_id(config[:datacenter_id], config[:server_id], config[:nic_id]))
92
+ end
93
+ end
94
+ end
95
+ end
@@ -18,17 +18,17 @@ class Chef
18
18
  long: '--nodepool-id NODEPOOL_ID',
19
19
  description: 'The ID of the K8s Nodepool'
20
20
 
21
- attr_reader :description, :required_options
22
-
23
21
  def initialize(args = [])
24
22
  super(args)
25
23
  @description =
26
24
  'Delete a single Kubernetes Node.'
25
+ @directory = 'kubernetes'
27
26
  @required_options = [:cluster_id, :nodepool_id, :ionoscloud_username, :ionoscloud_password]
28
27
  end
29
28
 
30
29
  def run
31
30
  $stdout.sync = true
31
+ handle_extra_config
32
32
  validate_required_params(@required_options, config)
33
33
 
34
34
  kubernetes_api = Ionoscloud::KubernetesApi.new(api_client)
@@ -0,0 +1,48 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudNodeGet < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud node get (options)'
9
+
10
+ option :cluster_id,
11
+ short: '-C CLUSTER_ID',
12
+ long: '--cluster-id CLUSTER_ID',
13
+ description: 'The ID of the K8s Cluster'
14
+
15
+ option :nodepool_id,
16
+ short: '-P NODEPOOL_ID',
17
+ long: '--nodepool-id NODEPOOL_ID',
18
+ description: 'The ID of the K8s Nodepool'
19
+
20
+ option :node_id,
21
+ short: '-N NODE_ID',
22
+ long: '--node-id NODE_ID',
23
+ description: 'ID of the load balancer'
24
+
25
+ def initialize(args = [])
26
+ super(args)
27
+ @description =
28
+ 'Retrieves the attributes of a given K8S Node.'
29
+ @directory = 'kubernetes'
30
+ @required_options = [:cluster_id, :nodepool_id, :node_id, :ionoscloud_username, :ionoscloud_password]
31
+ end
32
+
33
+ def run
34
+ $stdout.sync = true
35
+ handle_extra_config
36
+ validate_required_params(@required_options, config)
37
+
38
+ print_k8s_node(
39
+ Ionoscloud::KubernetesApi.new(api_client).k8s_nodepools_nodes_find_by_id(
40
+ config[:cluster_id],
41
+ config[:nodepool_id],
42
+ config[:node_id],
43
+ ),
44
+ )
45
+ end
46
+ end
47
+ end
48
+ end
@@ -17,17 +17,17 @@ class Chef
17
17
  long: '--nodepool-id NODEPOOL_ID',
18
18
  description: 'The ID of the K8s Nodepool'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Retrieve a list of Kubernetes Nodes in a Nodepool.'
24
+ @directory = 'kubernetes'
26
25
  @required_options = [:cluster_id, :nodepool_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
29
28
  def run
30
29
  $stdout.sync = true
30
+ handle_extra_config
31
31
  validate_required_params(@required_options, config)
32
32
 
33
33
  node_list = [
@@ -18,8 +18,6 @@ class Chef
18
18
  long: '--nodepool-id NODEPOOL_ID',
19
19
  description: 'The ID of the K8s Nodepool'
20
20
 
21
- attr_reader :description, :required_options
22
-
23
21
  def initialize(args = [])
24
22
  super(args)
25
23
  @description =
@@ -28,11 +26,13 @@ class Chef
28
26
  "template creates & configures a new node, waits for status \"ACTIVE\", "\
29
27
  "and migrates all the pods from the faulty node, deleting it once empty. "\
30
28
  "While this operation occurs, the nodepool will have an extra billable \"ACTIVE\" node."
29
+ @directory = 'kubernetes'
31
30
  @required_options = [:cluster_id, :nodepool_id, :ionoscloud_username, :ionoscloud_password]
32
31
  end
33
32
 
34
33
  def run
35
34
  $stdout.sync = true
35
+ handle_extra_config
36
36
  validate_required_params(@required_options, config)
37
37
 
38
38
  kubernetes_api = Ionoscloud::KubernetesApi.new(api_client)