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
@@ -17,17 +17,17 @@ class Chef
17
17
  long: '--server-id SERVER_ID',
18
18
  description: 'The ID of the Server.'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Returns the server json web token to be used for login operations (ex: accessing the server console).'
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
  begin
@@ -0,0 +1,96 @@
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
+ def initialize(args = [])
54
+ super(args)
55
+ @description =
56
+ 'Updates information about a Ionoscloud Server.'
57
+ @directory = 'compute-engine'
58
+ @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
59
+ @updatable_fields = [:name, :cores, :cpu_family, :ram, :availability_zone, :boot_volume, :boot_cdrom]
60
+ end
61
+
62
+ def run
63
+ $stdout.sync = true
64
+ handle_extra_config
65
+ validate_required_params(@required_options, config)
66
+
67
+ server_api = Ionoscloud::ServersApi.new(api_client)
68
+
69
+ if @updatable_fields.map { |el| config[el] }.any?
70
+ print "#{ui.color('Updating Server...', :magenta)}"
71
+
72
+ _, _, headers = server_api.datacenters_servers_patch_with_http_info(
73
+ config[:datacenter_id],
74
+ config[:server_id],
75
+ Ionoscloud::ServerProperties.new(
76
+ name: config[:name],
77
+ cores: config[:cores],
78
+ cpu_family: config[:cpu_family],
79
+ ram: config[:ram],
80
+ availability_zone: config[:availability_zone],
81
+ boot_cdrom: config.key?(:boot_cdrom) ? { id: config[:boot_cdrom] } : nil,
82
+ boot_volume: config.key?(:boot_volume) ? { id: config[:boot_volume] } : nil,
83
+ ),
84
+ )
85
+
86
+ dot = ui.color('.', :magenta)
87
+ api_client.wait_for { print dot; is_done? get_request_id headers }
88
+ else
89
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
90
+ end
91
+
92
+ print_server(server_api.datacenters_servers_find_by_id(config[:datacenter_id], config[:server_id]))
93
+ end
94
+ end
95
+ end
96
+ end
@@ -17,18 +17,18 @@ class Chef
17
17
  long: '--server-id SERVER_ID',
18
18
  description: 'The ID of the Server.'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  "This will upgrade the version of the server, if needed. To verify if there is an upgrade available for a server, "\
26
24
  "call '/datacenters/{datacenterId}/servers?upgradeNeeded=true'."
25
+ @directory = 'compute-engine'
27
26
  @required_options = [:datacenter_id, :server_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
  begin
@@ -27,19 +27,19 @@ class Chef
27
27
  long: '--share',
28
28
  description: 'The group has permission to share this resource.'
29
29
 
30
- attr_reader :description, :required_options
31
-
32
30
  def initialize(args = [])
33
31
  super(args)
34
32
  @description =
35
33
  'Adds a specific resource share to a group and optionally allows the setting of permissions '\
36
34
  'for that resource. As an example, you might use this to grant permissions to use an image '\
37
35
  'or snapshot to a specific group.'
36
+ @directory = 'user'
38
37
  @required_options = [:group_id, :resource_id, :ionoscloud_username, :ionoscloud_password]
39
38
  end
40
39
 
41
40
  def run
42
41
  $stdout.sync = true
42
+ handle_extra_config
43
43
  validate_required_params(@required_options, config)
44
44
 
45
45
  print "#{ui.color('Sharing Resource...', :magenta)}"
@@ -49,22 +49,18 @@ class Chef
49
49
  share, _, headers = user_management_api.um_groups_shares_post_with_http_info(
50
50
  config[:group_id],
51
51
  config[:resource_id],
52
- {
53
- properties: {
54
- editPrivilege: config[:edit_privilege],
55
- sharePrivilege: config[:share_privilege],
56
- }.compact,
57
- },
52
+ Ionoscloud::GroupShare.new(
53
+ properties: Ionoscloud::GroupShareProperties.new(
54
+ edit_privilege: config[:edit_privilege],
55
+ share_privilege: config[:share_privilege],
56
+ ),
57
+ ),
58
58
  )
59
59
 
60
60
  dot = ui.color('.', :magenta)
61
61
  api_client.wait_for { print dot; is_done? get_request_id headers }
62
62
 
63
- puts "\n"
64
- puts "#{ui.color('ID', :cyan)}: #{share.id}"
65
- puts "#{ui.color('Edit Privilege', :cyan)}: #{share.properties.edit_privilege.to_s}"
66
- puts "#{ui.color('Share Privilege', :cyan)}: #{share.properties.share_privilege.to_s}"
67
- puts 'done'
63
+ print_share(share)
68
64
  end
69
65
  end
70
66
  end
@@ -12,17 +12,17 @@ class Chef
12
12
  long: '--group-id GROUP_ID',
13
13
  description: 'ID of the group.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Removes a resource share from a specified group.'
19
+ @directory = 'user'
21
20
  @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
24
23
  def run
25
24
  $stdout.sync = true
25
+ handle_extra_config
26
26
  validate_required_params(@required_options, config)
27
27
 
28
28
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -36,9 +36,8 @@ class Chef
36
36
  next
37
37
  end
38
38
 
39
- msg_pair('ID', share.id)
40
- msg_pair('Edit Privilege', share.properties.edit_privilege.to_s)
41
- msg_pair('Share Privilege', share.properties.share_privilege.to_s)
39
+ print_share(share)
40
+ puts "\n"
42
41
 
43
42
  begin
44
43
  confirm('Do you really want to delete this Resource Share')
@@ -0,0 +1,37 @@
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
+ def initialize(args = [])
21
+ super(args)
22
+ @description =
23
+ 'Retrieves the attributes of a given Group Share.'
24
+ @directory = 'user'
25
+ @required_options = [:group_id, :resource_id, :ionoscloud_username, :ionoscloud_password]
26
+ end
27
+
28
+ def run
29
+ $stdout.sync = true
30
+ handle_extra_config
31
+ validate_required_params(@required_options, config)
32
+
33
+ print_share(Ionoscloud::UserManagementApi.new(api_client).um_groups_shares_find_by_resource_id(config[:group_id], config[:resource_id]))
34
+ end
35
+ end
36
+ end
37
+ end
@@ -12,18 +12,18 @@ class Chef
12
12
  long: '--group-id GROUP_ID',
13
13
  description: 'ID of the group.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Retrieves a full list of all the resources that are shared through this '\
21
19
  'group and lists the permissions granted to the group members for each shared resource.'
20
+ @directory = 'user'
22
21
  @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
23
22
  end
24
23
 
25
24
  def run
26
25
  $stdout.sync = true
26
+ handle_extra_config
27
27
  validate_required_params(@required_options, config)
28
28
 
29
29
  share_list = [
@@ -0,0 +1,69 @@
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
+ def initialize(args = [])
30
+ super(args)
31
+ @description =
32
+ 'Updates information about a Ionoscloud Group Share.'
33
+ @directory = 'user'
34
+ @required_options = [:group_id, :resource_id, :ionoscloud_username, :ionoscloud_password]
35
+ @updatable_fields = [:edit_privilege, :share_privilege]
36
+ end
37
+
38
+ def run
39
+ $stdout.sync = true
40
+ handle_extra_config
41
+ validate_required_params(@required_options, config)
42
+
43
+ user_management_api = Ionoscloud::UserManagementApi.new(api_client)
44
+
45
+ if @updatable_fields.map { |el| config[el] }.any?
46
+ print "#{ui.color('Updating Group Share...', :magenta)}"
47
+
48
+ share = user_management_api.um_groups_shares_find_by_resource_id(config[:group_id], config[:resource_id])
49
+
50
+ new_share = Ionoscloud::GroupShare.new(
51
+ properties: Ionoscloud::GroupShareProperties.new(
52
+ edit_privilege: (config.key?(:edit_privilege) ? config[:edit_privilege].to_s.downcase == 'true' : share.properties.edit_privilege),
53
+ share_privilege: (config.key?(:share_privilege) ? config[:share_privilege].to_s.downcase == 'true' : share.properties.share_privilege),
54
+ ),
55
+ )
56
+
57
+ _, _, headers = user_management_api.um_groups_shares_put_with_http_info(config[:group_id], config[:resource_id], new_share)
58
+
59
+ dot = ui.color('.', :magenta)
60
+ api_client.wait_for { print dot; is_done? get_request_id headers }
61
+ else
62
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
63
+ end
64
+
65
+ print_share(user_management_api.um_groups_shares_find_by_resource_id(config[:group_id], config[:resource_id]))
66
+ end
67
+ end
68
+ end
69
+ end
@@ -35,18 +35,18 @@ class Chef
35
35
  long: '--licence LICENCE_TYPE',
36
36
  description: 'The OS type of this Snapshot'
37
37
 
38
- attr_reader :description, :required_options
39
-
40
38
  def initialize(args = [])
41
39
  super(args)
42
40
  @description =
43
41
  'Creates a snapshot of a volume within the virtual data center. '\
44
42
  'You can use a snapshot to create a new storage volume or to restore a storage volume.'
43
+ @directory = 'compute-engine'
45
44
  @required_options = [:datacenter_id, :volume_id, :ionoscloud_username, :ionoscloud_password]
46
45
  end
47
46
 
48
47
  def run
49
48
  $stdout.sync = true
49
+ handle_extra_config
50
50
  validate_required_params(@required_options, config)
51
51
 
52
52
  print "#{ui.color('Creating Snapshot...', :magenta)}"
@@ -67,15 +67,7 @@ class Chef
67
67
  dot = ui.color('.', :magenta)
68
68
  api_client.wait_for { print dot; is_done? get_request_id headers }
69
69
 
70
- snapshot = Ionoscloud::SnapshotsApi.new(api_client).snapshots_find_by_id(snapshot.id)
71
-
72
- puts "\n"
73
- puts "#{ui.color('ID', :cyan)}: #{snapshot.id}"
74
- puts "#{ui.color('Name', :cyan)}: #{snapshot.properties.name}"
75
- puts "#{ui.color('Description', :cyan)}: #{snapshot.properties.description}"
76
- puts "#{ui.color('Location', :cyan)}: #{snapshot.properties.location}"
77
- puts "#{ui.color('Size', :cyan)}: #{snapshot.properties.size.to_s}"
78
- puts 'done'
70
+ print_snapshot(Ionoscloud::SnapshotsApi.new(api_client).snapshots_find_by_id(snapshot.id))
79
71
  end
80
72
  end
81
73
  end
@@ -7,17 +7,17 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud snapshot delete SNAPSHOT_ID [SNAPSHOT_ID]'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'Deletes the specified snapshot.'
14
+ @directory = 'compute-engine'
16
15
  @required_options = [:ionoscloud_username, :ionoscloud_password]
17
16
  end
18
17
 
19
18
  def run
20
19
  $stdout.sync = true
20
+ handle_extra_config
21
21
  validate_required_params(@required_options, config)
22
22
 
23
23
  snapshot_api = Ionoscloud::SnapshotsApi.new(api_client)
@@ -31,12 +31,7 @@ class Chef
31
31
  next
32
32
  end
33
33
 
34
- msg_pair('ID', snapshot.id)
35
- msg_pair('Name', snapshot.properties.name)
36
- msg_pair('Description', snapshot.properties.description)
37
- msg_pair('Location', snapshot.properties.location)
38
- msg_pair('Size', snapshot.properties.size.to_s)
39
-
34
+ print_snapshot(snapshot)
40
35
  puts "\n"
41
36
 
42
37
  begin
@@ -0,0 +1,31 @@
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
+ def initialize(args = [])
16
+ super(args)
17
+ @description =
18
+ 'Retrieves the attributes of a given Snapshot.'
19
+ @directory = 'compute-engine'
20
+ @required_options = [:snapshot_id, :ionoscloud_username, :ionoscloud_password]
21
+ end
22
+
23
+ def run
24
+ $stdout.sync = true
25
+ handle_extra_config
26
+ validate_required_params(@required_options, config)
27
+ print_snapshot(Ionoscloud::SnapshotsApi.new(api_client).snapshots_find_by_id(config[:snapshot_id]))
28
+ end
29
+ end
30
+ end
31
+ end
@@ -7,17 +7,17 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud snapshot list'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'Retrieve a list of snapshots.'
14
+ @directory = 'compute-engine'
16
15
  @required_options = [:ionoscloud_username, :ionoscloud_password]
17
16
  end
18
17
 
19
18
  def run
20
19
  $stdout.sync = true
20
+ handle_extra_config
21
21
  validate_required_params(@required_options, config)
22
22
 
23
23
  snapshot_list = [
@@ -22,18 +22,18 @@ class Chef
22
22
  long: '--snapshot SNAPSHOT_ID',
23
23
  description: 'ID of the Snapshot'
24
24
 
25
- attr_reader :description, :required_options
26
-
27
25
  def initialize(args = [])
28
26
  super(args)
29
27
  @description =
30
28
  'This will restore a snapshot onto a volume. A snapshot is created as just another image that '\
31
29
  'can be used to create new volumes or to restore an existing volume.'
30
+ @directory = 'compute-engine'
32
31
  @required_options = [:datacenter_id, :volume_id, :snapshot_id, :ionoscloud_username, :ionoscloud_password]
33
32
  end
34
33
 
35
34
  def run
36
35
  $stdout.sync = true
36
+ handle_extra_config
37
37
  validate_required_params(@required_options, config)
38
38
 
39
39
  print "#{ui.color('Restoring Snapshot...', :magenta)}"
@@ -51,18 +51,7 @@ class Chef
51
51
 
52
52
  volume_api = Ionoscloud::VolumesApi.new(api_client)
53
53
 
54
- volume = volume_api.datacenters_volumes_find_by_id(config[:datacenter_id], config[:volume_id])
55
-
56
- puts "\n"
57
- puts "#{ui.color('ID', :cyan)}: #{volume.id}"
58
- puts "#{ui.color('Name', :cyan)}: #{volume.properties.name}"
59
- puts "#{ui.color('Size', :cyan)}: #{volume.properties.size}"
60
- puts "#{ui.color('Bus', :cyan)}: #{volume.properties.bus}"
61
- puts "#{ui.color('Image', :cyan)}: #{volume.properties.image}"
62
- puts "#{ui.color('Type', :cyan)}: #{volume.properties.type}"
63
- puts "#{ui.color('Licence Type', :cyan)}: #{volume.properties.licence_type}"
64
- puts "#{ui.color('Zone', :cyan)}: #{volume.properties.availability_zone}"
65
- puts 'done'
54
+ print_volume(volume_api.datacenters_volumes_find_by_id(config[:datacenter_id], config[:volume_id]))
66
55
  end
67
56
  end
68
57
  end
@@ -0,0 +1,125 @@
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
+ def initialize(args = [])
74
+ super(args)
75
+ @description =
76
+ 'Updates information about a Ionoscloud Snapshot.'
77
+ @directory = 'compute-engine'
78
+ @required_options = [:snapshot_id, :ionoscloud_username, :ionoscloud_password]
79
+ @updatable_fields = [
80
+ :name, :description, :sec_auth_protection, :licence_type, :cpu_hot_plug, :cpu_hot_unplug, :ram_hot_plug, :ram_hot_unplug,
81
+ :nic_hot_plug, :nic_hot_unplug, :disc_virtio_hot_plug, :disc_virtio_hot_unplug, :disc_scsi_hot_plug, :disc_scsi_hot_unplug,
82
+ ]
83
+ end
84
+
85
+ def run
86
+ $stdout.sync = true
87
+ handle_extra_config
88
+ validate_required_params(@required_options, config)
89
+
90
+ server_api = Ionoscloud::SnapshotsApi.new(api_client)
91
+
92
+ if @updatable_fields.map { |el| config[el] }.any?
93
+ print "#{ui.color('Updating Snapshot...', :magenta)}"
94
+
95
+ _, _, headers = server_api.snapshots_patch_with_http_info(
96
+ config[:snapshot_id],
97
+ Ionoscloud::SnapshotProperties.new(
98
+ name: config[:name],
99
+ description: config[:description],
100
+ sec_auth_protection: (config.key?(:sec_auth_protection) ? config[:sec_auth_protection].to_s.downcase == 'true' : nil),
101
+ licence_type: config[:licence_type],
102
+ cpu_hot_plug: (config.key?(:cpu_hot_plug) ? config[:cpu_hot_plug].to_s.downcase == 'true' : nil),
103
+ cpu_hot_unplug: (config.key?(:cpu_hot_unplug) ? config[:cpu_hot_unplug].to_s.downcase == 'true' : nil),
104
+ ram_hot_plug: (config.key?(:ram_hot_plug) ? config[:ram_hot_plug].to_s.downcase == 'true' : nil),
105
+ ram_hot_unplug: (config.key?(:ram_hot_unplug) ? config[:ram_hot_unplug].to_s.downcase == 'true' : nil),
106
+ nic_hot_plug: (config.key?(:nic_hot_plug) ? config[:nic_hot_plug].to_s.downcase == 'true' : nil),
107
+ nic_hot_unplug: (config.key?(:nic_hot_unplug) ? config[:nic_hot_unplug].to_s.downcase == 'true' : nil),
108
+ disc_virtio_hot_plug: (config.key?(:disc_virtio_hot_plug) ? config[:disc_virtio_hot_plug].to_s.downcase == 'true' : nil),
109
+ disc_virtio_hot_unplug: (config.key?(:disc_virtio_hot_unplug) ? config[:disc_virtio_hot_unplug].to_s.downcase == 'true' : nil),
110
+ disc_scsi_hot_plug: (config.key?(:disc_scsi_hot_plug) ? config[:disc_scsi_hot_plug].to_s.downcase == 'true' : nil),
111
+ disc_scsi_hot_unplug: (config.key?(:disc_scsi_hot_unplug) ? config[:disc_scsi_hot_unplug].to_s.downcase == 'true' : nil),
112
+ ),
113
+ )
114
+
115
+ dot = ui.color('.', :magenta)
116
+ api_client.wait_for { print dot; is_done? get_request_id headers }
117
+ else
118
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
119
+ end
120
+
121
+ print_snapshot(server_api.snapshots_find_by_id(config[:snapshot_id]))
122
+ end
123
+ end
124
+ end
125
+ end
@@ -7,17 +7,17 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud template list'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'Retrieve a list of available templates. Templates can be used on specific server types only (CUBE at the moment)'
14
+ @directory = 'compute-engine'
16
15
  @required_options = [:ionoscloud_username, :ionoscloud_password]
17
16
  end
18
17
 
19
18
  def run
20
19
  $stdout.sync = true
20
+ handle_extra_config
21
21
  validate_required_params(@required_options, config)
22
22
 
23
23
  template_list = [