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,124 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudNodepoolUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud nodepool update (options)'
9
-
10
- option :cluster_id,
11
- short: '-C CLUSTER_ID',
12
- long: '--cluster-id CLUSTER_ID',
13
- description: 'ID of the Kubernetes cluster'
14
-
15
- option :nodepool_id,
16
- short: '-P NODEPOOL_ID',
17
- long: '--nodepool-id NODEPOOL_ID',
18
- description: 'ID of the Kubernetes nodepool'
19
-
20
- option :k8s_version,
21
- short: '-v VERSION',
22
- long: '--version VERSION',
23
- description: 'The version for the Kubernetes cluster.'
24
-
25
- option :maintenance_day,
26
- long: '--maintenance-day MAINTENANCE_DAY',
27
- description: 'Day Of the week when to perform the maintenance.'
28
-
29
- option :maintenance_time,
30
- short: '-t MAINTENANCE_TIME',
31
- long: '--maintenance-time MAINTENANCE_TIME',
32
- description: 'Time Of the day when to perform the maintenance.'
33
-
34
- option :node_count,
35
- short: '-c NODE_COUNT',
36
- long: '--node-count NODE_COUNT',
37
- description: 'The number of worker nodes that the node pool should contain. Min 2, Max: Determined by the resource availability.'
38
-
39
- option :min_node_count,
40
- long: '--min-node-count MIN_NODE_COUNT',
41
- description: 'The minimum number of worker nodes that the managed node group can scale in'
42
-
43
- option :max_node_count,
44
- long: '--max-node-count MAX_NODE_COUNT',
45
- description: 'The maximum number of worker nodes that the managed node pool can scale-out.'
46
-
47
- option :lans,
48
- long: '--lans LAN_ID [LAN_ID]',
49
- description: 'An array of additional private LANs attached to worker nodes'
50
-
51
- option :public_ips,
52
- long: '--ips PUBLIC_IP [PUBLIC_IP]',
53
- description: 'Optional array of reserved public IP addresses to be used by the nodes. '\
54
- 'IPs must be from same location as the data center used for the node pool. The array '\
55
- 'must contain one extra IP than maximum number of nodes could be. (nodeCount+1 if fixed '\
56
- 'node amount or maxNodeCount+1 if auto scaling is used) The extra provided IP Will be used during rebuilding of nodes.'
57
-
58
- option :labels,
59
- long: '--labels LABEL [LABEL]',
60
- description: 'map of labels attached to node pool'
61
-
62
- option :annotations,
63
- long: '--annotations ANNOTATION [ANNOTATION]',
64
- description: 'map of annotations attached to node pool'
65
-
66
- attr_reader :description, :required_options
67
-
68
- def initialize(args = [])
69
- super(args)
70
- @description =
71
- 'Updates information about a Ionoscloud K8s Nodepool.'
72
- @required_options = [:cluster_id, :nodepool_id, :ionoscloud_username, :ionoscloud_password]
73
- @updatable_fields = [
74
- :k8s_version, :node_count, :public_ips, :lans, :maintenance_day, :maintenance_time,
75
- :min_node_count, :max_node_count, :labels, :annotations,
76
- ]
77
- end
78
-
79
- def run
80
- $stdout.sync = true
81
- handle_extra_config
82
- validate_required_params(@required_options, config)
83
-
84
- config[:public_ips] = config[:public_ips].split(',') if config[:public_ips] && config[:public_ips].instance_of?(String)
85
- config[:lans] = config[:lans].split(',') if config[:lans] && config[:lans].instance_of?(String)
86
- config[:labels] = JSON[config[:labels]] if config[:labels] && config[:labels].instance_of?(String)
87
- config[:annotations] = JSON[config[:annotations]] if config[:annotations] && config[:annotations].instance_of?(String)
88
-
89
- kubernetes_api = Ionoscloud::KubernetesApi.new(api_client)
90
-
91
- if @updatable_fields.map { |el| config[el] }.any?
92
- print "#{ui.color('Updating K8s Nodepool...', :magenta)}"
93
-
94
- nodepool = kubernetes_api.k8s_nodepools_find_by_id(config[:cluster_id], config[:nodepool_id])
95
-
96
- new_nodepool = Ionoscloud::KubernetesNodePoolForPut.new(
97
- properties: Ionoscloud::KubernetesNodePoolPropertiesForPut.new(
98
- k8s_version: config.key?(:k8s_version) ? config[:k8s_version] : nodepool.properties.k8s_version,
99
- node_count: config.key?(:node_count) ? config[:node_count] : nodepool.properties.node_count,
100
- public_ips: config.key?(:public_ips) ? config[:public_ips] : nodepool.properties.public_ips,
101
- labels: config.key?(:labels) ? config[:labels] : nodepool.properties.labels,
102
- annotations: config.key?(:annotations) ? config[:annotations] : nodepool.properties.annotations,
103
- lans: config.key?(:lans) ? config[:lans].map! { |lan| { id: Integer(lan) } } : nodepool.properties.lans,
104
- maintenance_window: Ionoscloud::KubernetesMaintenanceWindow.new(
105
- day_of_the_week: config.key?(:maintenance_day) ? config[:maintenance_day] : nodepool.properties.maintenance_window.day_of_the_week,
106
- time: config.key?(:maintenance_time) ? config[:maintenance_time] : nodepool.properties.maintenance_window.time,
107
- ),
108
- auto_scaling: Ionoscloud::KubernetesAutoScaling.new(
109
- min_node_count: config.key?(:min_node_count) ? config[:min_node_count] : nodepool.properties.auto_scaling.min_node_count,
110
- max_node_count: config.key?(:max_node_count) ? config[:max_node_count] : nodepool.properties.auto_scaling.max_node_count,
111
- ),
112
- ),
113
- )
114
-
115
- kubernetes_api.k8s_nodepools_put(config[:cluster_id], config[:nodepool_id], new_nodepool)
116
- else
117
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
118
- end
119
-
120
- print_k8s_nodepool(kubernetes_api.k8s_nodepools_find_by_id(config[:cluster_id], config[:nodepool_id]))
121
- end
122
- end
123
- end
124
- end
@@ -1,33 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudPccGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud pcc get (options)'
9
-
10
- option :pcc_id,
11
- short: '-P PRIVATE_CROSS_CONNECT_ID',
12
- long: '--pcc-id PRIVATE_CROSS_CONNECT_ID',
13
- description: 'ID of the Private Cross Connect'
14
-
15
- attr_reader :description, :required_options
16
-
17
- def initialize(args = [])
18
- super(args)
19
- @description =
20
- 'Retrieves information about a Ionoscloud Private Cross Connect.'
21
- @required_options = [:pcc_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_pcc(Ionoscloud::PrivateCrossConnectApi.new(api_client).pccs_find_by_id(config[:pcc_id]))
30
- end
31
- end
32
- end
33
- end
@@ -1,63 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudPccUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud pcc update (options)'
9
-
10
- option :pcc_id,
11
- short: '-P PRIVATE_CROSS_CONNECT_ID',
12
- long: '--pcc-id PRIVATE_CROSS_CONNECT_ID',
13
- description: 'ID of the Private Cross Connect'
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
- attr_reader :description, :required_options
25
-
26
- def initialize(args = [])
27
- super(args)
28
- @description =
29
- 'Updates information about a Ionoscloud Private Cross Connect. In order to add LANs to the Private Cross Connect one should'\
30
- 'update the LAN and change the pcc property using the ```text\knife ionscloud lan update\n``` command.'
31
- @required_options = [:pcc_id, :ionoscloud_username, :ionoscloud_password]
32
- @updatable_fields = [:name, :description]
33
- end
34
-
35
- def run
36
- $stdout.sync = true
37
- handle_extra_config
38
- validate_required_params(@required_options, config)
39
-
40
- pcc_api = Ionoscloud::PrivateCrossConnectApi.new(api_client)
41
-
42
- if @updatable_fields.map { |el| config[el] }.any?
43
- print "#{ui.color('Updating Private Cross Connect...', :magenta)}"
44
-
45
- _, _, headers = pcc_api.pccs_patch_with_http_info(
46
- config[:pcc_id],
47
- Ionoscloud::PrivateCrossConnectProperties.new(
48
- name: config[:name],
49
- description: config[:description],
50
- )
51
- )
52
-
53
- dot = ui.color('.', :magenta)
54
- api_client.wait_for { print dot; is_done? get_request_id headers }
55
- else
56
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
57
- end
58
-
59
- print_pcc(pcc_api.pccs_find_by_id(config[:pcc_id]))
60
- end
61
- end
62
- end
63
- end
@@ -1,40 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudRequestGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud request get (options)'
9
-
10
- option :request_id,
11
- short: '-R REQUEST_ID',
12
- long: '--request-id REQUEST_ID',
13
- description: 'The ID of the Request.'
14
-
15
- attr_reader :description, :required_options
16
-
17
- def initialize(args = [])
18
- super(args)
19
- @description =
20
- 'Retrieves the properties of a specific request based on the supplied request id.'
21
- @required_options = [:request_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
- request = Ionoscloud::RequestApi.new(api_client).requests_find_by_id(config[:request_id], depth: 1)
30
- puts "#{ui.color('ID', :cyan)}: #{request.id}"
31
- puts "#{ui.color('Status', :cyan)}: #{request.metadata.request_status.metadata.status}"
32
- puts "#{ui.color('Method', :cyan)}: #{request.properties.method}"
33
- puts "#{ui.color('URL', :cyan)}: #{request.properties.url}"
34
- puts "#{ui.color('Targets', :cyan)}: #{request.metadata.request_status.metadata.targets.map { |target| [target.target.id, target.target.type] }.to_s}"
35
- puts "#{ui.color('Body', :cyan)}: #{request.properties.body}"
36
- puts "#{ui.color('Headers', :cyan)}: #{request.properties.headers}"
37
- end
38
- end
39
- end
40
- end
@@ -1,38 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudS3keyGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud s3key get (options)'
9
-
10
- option :user_id,
11
- short: '-u USER_ID',
12
- long: '--user USER_ID',
13
- description: 'The ID of the user'
14
-
15
- option :s3_key_id,
16
- short: '-S S3KEY_ID',
17
- long: '--s3-key S3KEY_ID',
18
- description: 'The ID of the S3 Key.'
19
-
20
- attr_reader :description, :required_options
21
-
22
- def initialize(args = [])
23
- super(args)
24
- @description =
25
- 'Retrieves the properties of an S3 Key.'
26
- @required_options = [:user_id, :s3_key_id, :ionoscloud_username, :ionoscloud_password]
27
- end
28
-
29
- def run
30
- $stdout.sync = true
31
- handle_extra_config
32
- validate_required_params(@required_options, config)
33
-
34
- print_s3key(Ionoscloud::UserManagementApi.new(api_client).um_users_s3keys_find_by_key_id(config[:user_id], config[:s3_key_id]))
35
- end
36
- end
37
- end
38
- end
@@ -1,97 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudServerUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud server 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 :name,
21
- short: '-n NAME',
22
- long: '--name NAME',
23
- description: 'Name of the server'
24
-
25
- option :cores,
26
- short: '-C CORES',
27
- long: '--cores CORES',
28
- description: 'The number of processor cores'
29
-
30
- option :cpu_family,
31
- short: '-f CPU_FAMILY',
32
- long: '--cpu-family CPU_FAMILY',
33
- description: 'The family of the CPU (INTEL_XEON or AMD_OPTERON)'
34
-
35
- option :ram,
36
- short: '-r RAM',
37
- long: '--ram RAM',
38
- description: 'The amount of RAM in MB'
39
-
40
- option :availability_zone,
41
- short: '-a AVAILABILITY_ZONE',
42
- long: '--availability-zone AVAILABILITY_ZONE',
43
- description: 'The availability zone of the server'
44
-
45
- option :boot_volume,
46
- long: '--boot-volume VOLUME_ID',
47
- description: 'Reference to a volume used for booting'
48
-
49
- option :boot_cdrom,
50
- long: '--boot-cdrom CDROM_ID',
51
- description: 'Reference to a CD-ROM used for booting'
52
-
53
- attr_reader :description, :required_options
54
-
55
- def initialize(args = [])
56
- super(args)
57
- @description =
58
- 'Updates information about a Ionoscloud Server.'
59
- @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
60
- @updatable_fields = [:name, :cores, :cpu_family, :ram, :availability_zone, :boot_volume, :boot_cdrom]
61
- end
62
-
63
- def run
64
- $stdout.sync = true
65
- handle_extra_config
66
- validate_required_params(@required_options, config)
67
-
68
- server_api = Ionoscloud::ServerApi.new(api_client)
69
-
70
- if @updatable_fields.map { |el| config[el] }.any?
71
- print "#{ui.color('Updating Server...', :magenta)}"
72
-
73
- _, _, headers = server_api.datacenters_servers_patch_with_http_info(
74
- config[:datacenter_id],
75
- config[:server_id],
76
- Ionoscloud::ServerProperties.new(
77
- name: config[:name],
78
- cores: config[:cores],
79
- cpu_family: config[:cpu_family],
80
- ram: config[:ram],
81
- availability_zone: config[:availability_zone],
82
- boot_cdrom: config.key?(:boot_cdrom) ? { id: config[:boot_cdrom] } : nil,
83
- boot_volume: config.key?(:boot_volume) ? { id: config[:boot_volume] } : nil,
84
- ),
85
- )
86
-
87
- dot = ui.color('.', :magenta)
88
- api_client.wait_for { print dot; is_done? get_request_id headers }
89
- else
90
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
91
- end
92
-
93
- print_server(server_api.datacenters_servers_find_by_id(config[:datacenter_id], config[:server_id]))
94
- end
95
- end
96
- end
97
- end
@@ -1,38 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudShareGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud share get (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 :resource_id,
16
- short: '-R RESOURCE_ID',
17
- long: '--resource-id RESOURCE_ID',
18
- description: 'The ID of the resource.'
19
-
20
- attr_reader :description, :required_options
21
-
22
- def initialize(args = [])
23
- super(args)
24
- @description =
25
- 'Retrieves the attributes of a given Group Share.'
26
- @required_options = [:group_id, :resource_id, :ionoscloud_username, :ionoscloud_password]
27
- end
28
-
29
- def run
30
- $stdout.sync = true
31
- handle_extra_config
32
- validate_required_params(@required_options, config)
33
-
34
- print_share(Ionoscloud::UserManagementApi.new(api_client).um_groups_shares_find_by_resource_id(config[:group_id], config[:resource_id]))
35
- end
36
- end
37
- end
38
- end
@@ -1,70 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudShareUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud share 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 :resource_id,
16
- short: '-R RESOURCE_ID',
17
- long: '--resource-id RESOURCE_ID',
18
- description: 'The ID of the resource.'
19
-
20
- option :edit_privilege,
21
- long: '--edit EDIT_PRIVILEGE',
22
- description: 'The group has permission to edit privileges on this resource.'
23
-
24
- option :share_privilege,
25
- short: '-s SHARE_PRIVILEGE',
26
- long: '--share SHARE_PRIVILEGE',
27
- description: 'The group has permission to share this resource.'
28
-
29
- attr_reader :description, :required_options
30
-
31
- def initialize(args = [])
32
- super(args)
33
- @description =
34
- 'Updates information about a Ionoscloud Group Share.'
35
- @required_options = [:group_id, :resource_id, :ionoscloud_username, :ionoscloud_password]
36
- @updatable_fields = [:edit_privilege, :share_privilege]
37
- end
38
-
39
- def run
40
- $stdout.sync = true
41
- handle_extra_config
42
- validate_required_params(@required_options, config)
43
-
44
- user_management_api = Ionoscloud::UserManagementApi.new(api_client)
45
-
46
- if @updatable_fields.map { |el| config[el] }.any?
47
- print "#{ui.color('Updating Group Share...', :magenta)}"
48
-
49
- share = user_management_api.um_groups_shares_find_by_resource_id(config[:group_id], config[:resource_id])
50
-
51
- new_share = Ionoscloud::GroupShare.new(
52
- properties: Ionoscloud::GroupShareProperties.new(
53
- edit_privilege: (config.key?(:edit_privilege) ? config[:edit_privilege].to_s.downcase == 'true' : share.properties.edit_privilege),
54
- share_privilege: (config.key?(:share_privilege) ? config[:share_privilege].to_s.downcase == 'true' : share.properties.share_privilege),
55
- ),
56
- )
57
-
58
- _, _, headers = user_management_api.um_groups_shares_put_with_http_info(config[:group_id], config[:resource_id], new_share)
59
-
60
- dot = ui.color('.', :magenta)
61
- api_client.wait_for { print dot; is_done? get_request_id headers }
62
- else
63
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
64
- end
65
-
66
- print_share(user_management_api.um_groups_shares_find_by_resource_id(config[:group_id], config[:resource_id]))
67
- end
68
- end
69
- end
70
- end
@@ -1,32 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudSnapshotGet < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud snapshot get (options)'
9
-
10
- option :snapshot_id,
11
- short: '-S SNAPSHOT_ID',
12
- long: '--snapshot-id SNAPSHOT_ID',
13
- description: 'ID of the group.'
14
-
15
- attr_reader :description, :required_options
16
-
17
- def initialize(args = [])
18
- super(args)
19
- @description =
20
- 'Retrieves the attributes of a given Snapshot.'
21
- @required_options = [:snapshot_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
- print_snapshot(Ionoscloud::SnapshotApi.new(api_client).snapshots_find_by_id(config[:snapshot_id]))
29
- end
30
- end
31
- end
32
- end
@@ -1,126 +0,0 @@
1
- require_relative 'ionoscloud_base'
2
-
3
- class Chef
4
- class Knife
5
- class IonoscloudSnapshotUpdate < Knife
6
- include Knife::IonoscloudBase
7
-
8
- banner 'knife ionoscloud snapshot update (options)'
9
-
10
- option :snapshot_id,
11
- short: '-S SNAPSHOT_ID',
12
- long: '--snapshot-id SNAPSHOT_ID',
13
- description: 'ID of the Snapshot.'
14
-
15
- option :name,
16
- short: '-n NAME',
17
- long: '--name NAME',
18
- description: 'Name of the server'
19
-
20
- option :description,
21
- long: '--description DESCRIPTION',
22
- description: 'The number of processor cores'
23
-
24
- option :sec_auth_protection,
25
- long: '--sec-auth-protection SEC_AUTH_PROTECTION',
26
- description: 'Boolean value representing if the snapshot requires extra protection e.g. two factor protection'
27
-
28
- option :licence_type,
29
- short: '-l LICENCE',
30
- long: '--licence-type LICENCE',
31
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
32
-
33
- option :cpu_hot_plug,
34
- long: '--cpu-hot-plug CPU_HOT_PLUG',
35
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
36
-
37
- option :cpu_hot_unplug,
38
- long: '--cpu-hot-unplug CPU_HOT_UNPLUG',
39
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
40
-
41
- option :ram_hot_plug,
42
- long: '--ram-hot-plug RAM_HOT_PLUG',
43
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
44
-
45
- option :ram_hot_unplug,
46
- long: '--ram-hot-unplug RAM_HOT_UNPLUG',
47
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
48
-
49
- option :nic_hot_plug,
50
- long: '--nic-hot-plug NIC_HOT_PLUG',
51
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
52
-
53
- option :nic_hot_unplug,
54
- long: '--nic-hot-unplug NIC_HOT_UNPLUG',
55
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
56
-
57
- option :disc_virtio_hot_plug,
58
- long: '--disc-virtio-hot_plug DISC_VIRTIO_HOT_PLUG',
59
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
60
-
61
- option :disc_virtio_hot_unplug,
62
- long: '--disc-virtio-hot_unplug DISC_VIRTIO_HOT_UNPLUG',
63
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
64
-
65
- option :disc_scsi_hot_plug,
66
- long: '--disc-scsi-hot-plug DISC_SCSI_HOT_PLUG',
67
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
68
-
69
- option :disc_scsi_hot_unplug,
70
- long: '--disc-scsi-hot-unplug DISC_SCSI_HOT_UNPLUG',
71
- description: 'The licence type of the snapshot (LINUX, WINDOWS, UNKNOWN, OTHER)'
72
-
73
- attr_reader :description, :required_options
74
-
75
- def initialize(args = [])
76
- super(args)
77
- @description =
78
- 'Updates information about a Ionoscloud Snapshot.'
79
- @required_options = [:snapshot_id, :ionoscloud_username, :ionoscloud_password]
80
- @updatable_fields = [
81
- :name, :description, :sec_auth_protection, :licence_type, :cpu_hot_plug, :cpu_hot_unplug, :ram_hot_plug, :ram_hot_unplug,
82
- :nic_hot_plug, :nic_hot_unplug, :disc_virtio_hot_plug, :disc_virtio_hot_unplug, :disc_scsi_hot_plug, :disc_scsi_hot_unplug,
83
- ]
84
- end
85
-
86
- def run
87
- $stdout.sync = true
88
- handle_extra_config
89
- validate_required_params(@required_options, config)
90
-
91
- server_api = Ionoscloud::SnapshotApi.new(api_client)
92
-
93
- if @updatable_fields.map { |el| config[el] }.any?
94
- print "#{ui.color('Updating Snapshot...', :magenta)}"
95
-
96
- _, _, headers = server_api.snapshots_patch_with_http_info(
97
- config[:snapshot_id],
98
- Ionoscloud::SnapshotProperties.new(
99
- name: config[:name],
100
- description: config[:description],
101
- sec_auth_protection: (config.key?(:sec_auth_protection) ? config[:sec_auth_protection].to_s.downcase == 'true' : nil),
102
- licence_type: config[:licence_type],
103
- cpu_hot_plug: (config.key?(:cpu_hot_plug) ? config[:cpu_hot_plug].to_s.downcase == 'true' : nil),
104
- cpu_hot_unplug: (config.key?(:cpu_hot_unplug) ? config[:cpu_hot_unplug].to_s.downcase == 'true' : nil),
105
- ram_hot_plug: (config.key?(:ram_hot_plug) ? config[:ram_hot_plug].to_s.downcase == 'true' : nil),
106
- ram_hot_unplug: (config.key?(:ram_hot_unplug) ? config[:ram_hot_unplug].to_s.downcase == 'true' : nil),
107
- nic_hot_plug: (config.key?(:nic_hot_plug) ? config[:nic_hot_plug].to_s.downcase == 'true' : nil),
108
- nic_hot_unplug: (config.key?(:nic_hot_unplug) ? config[:nic_hot_unplug].to_s.downcase == 'true' : nil),
109
- disc_virtio_hot_plug: (config.key?(:disc_virtio_hot_plug) ? config[:disc_virtio_hot_plug].to_s.downcase == 'true' : nil),
110
- disc_virtio_hot_unplug: (config.key?(:disc_virtio_hot_unplug) ? config[:disc_virtio_hot_unplug].to_s.downcase == 'true' : nil),
111
- disc_scsi_hot_plug: (config.key?(:disc_scsi_hot_plug) ? config[:disc_scsi_hot_plug].to_s.downcase == 'true' : nil),
112
- disc_scsi_hot_unplug: (config.key?(:disc_scsi_hot_unplug) ? config[:disc_scsi_hot_unplug].to_s.downcase == 'true' : nil),
113
- ),
114
- )
115
-
116
- dot = ui.color('.', :magenta)
117
- api_client.wait_for { print dot; is_done? get_request_id headers }
118
- else
119
- ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
120
- end
121
-
122
- print_snapshot(server_api.snapshots_find_by_id(config[:snapshot_id]))
123
- end
124
- end
125
- end
126
- end