knife-ionoscloud 5.1.1 → 6.0.0.beta.2

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 (326) hide show
  1. checksums.yaml +4 -4
  2. data/docs/README.md +1 -1
  3. data/docs/subcommands/composite_server_create.md +9 -3
  4. data/docs/subcommands/cube_server_create.md +91 -0
  5. data/docs/subcommands/firewall_create.md +5 -2
  6. data/docs/subcommands/flowlog_create.md +63 -0
  7. data/docs/subcommands/flowlog_delete.md +51 -0
  8. data/docs/subcommands/flowlog_list.md +51 -0
  9. data/docs/subcommands/group_create.md +10 -1
  10. data/docs/subcommands/natgateway_create.md +41 -0
  11. data/docs/subcommands/natgateway_delete.md +35 -0
  12. data/docs/subcommands/natgateway_lan_add.md +46 -0
  13. data/docs/subcommands/natgateway_lan_remove.md +39 -0
  14. data/docs/subcommands/natgateway_list.md +35 -0
  15. data/docs/subcommands/natgateway_rule_add.md +66 -0
  16. data/docs/subcommands/natgateway_rule_list.md +38 -0
  17. data/docs/subcommands/natgateway_rule_remove.md +39 -0
  18. data/docs/subcommands/networkloadbalancer_create.md +54 -0
  19. data/docs/subcommands/networkloadbalancer_delete.md +35 -0
  20. data/docs/subcommands/networkloadbalancer_list.md +35 -0
  21. data/docs/subcommands/networkloadbalancer_rule_add.md +72 -0
  22. data/docs/subcommands/networkloadbalancer_rule_list.md +39 -0
  23. data/docs/subcommands/networkloadbalancer_rule_remove.md +39 -0
  24. data/docs/subcommands/networkloadbalancer_rule_target_add.md +64 -0
  25. data/docs/subcommands/networkloadbalancer_rule_target_list.md +43 -0
  26. data/docs/subcommands/networkloadbalancer_rule_target_remove.md +51 -0
  27. data/docs/subcommands/nic_create.md +3 -3
  28. data/docs/subcommands/nodepool_lan_add.md +49 -0
  29. data/docs/subcommands/nodepool_lan_remove.md +39 -0
  30. data/docs/subcommands/server_console.md +39 -0
  31. data/docs/subcommands/server_list.md +4 -1
  32. data/docs/subcommands/server_resume.md +35 -0
  33. data/docs/subcommands/server_suspend.md +35 -0
  34. data/docs/subcommands/server_token.md +39 -0
  35. data/docs/subcommands/server_upgrade.md +39 -0
  36. data/docs/subcommands/template_list.md +31 -0
  37. data/docs/subcommands/volume_create.md +2 -5
  38. data/docs/summary.md +29 -0
  39. data/knife-ionoscloud.gemspec +1 -1
  40. data/lib/chef/knife/ionoscloud_backupunit_create.rb +12 -16
  41. data/lib/chef/knife/ionoscloud_backupunit_delete.rb +2 -5
  42. data/lib/chef/knife/ionoscloud_backupunit_get.rb +33 -0
  43. data/lib/chef/knife/ionoscloud_backupunit_list.rb +1 -1
  44. data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +1 -1
  45. data/lib/chef/knife/ionoscloud_backupunit_update.rb +62 -0
  46. data/lib/chef/knife/ionoscloud_base.rb +309 -1
  47. data/lib/chef/knife/ionoscloud_composite_server_create.rb +23 -5
  48. data/lib/chef/knife/ionoscloud_contract_list.rb +32 -23
  49. data/lib/chef/knife/ionoscloud_cube_server_create.rb +212 -0
  50. data/lib/chef/knife/ionoscloud_datacenter_create.rb +11 -14
  51. data/lib/chef/knife/ionoscloud_datacenter_delete.rb +2 -7
  52. data/lib/chef/knife/ionoscloud_datacenter_get.rb +33 -0
  53. data/lib/chef/knife/ionoscloud_datacenter_list.rb +4 -2
  54. data/lib/chef/knife/ionoscloud_datacenter_update.rb +67 -0
  55. data/lib/chef/knife/ionoscloud_firewall_create.rb +16 -21
  56. data/lib/chef/knife/ionoscloud_firewall_delete.rb +5 -13
  57. data/lib/chef/knife/ionoscloud_firewall_get.rb +52 -0
  58. data/lib/chef/knife/ionoscloud_firewall_list.rb +5 -3
  59. data/lib/chef/knife/ionoscloud_firewall_update.rb +133 -0
  60. data/lib/chef/knife/ionoscloud_flowlog_create.rb +116 -0
  61. data/lib/chef/knife/ionoscloud_flowlog_delete.rb +103 -0
  62. data/lib/chef/knife/ionoscloud_flowlog_get.rb +84 -0
  63. data/lib/chef/knife/ionoscloud_flowlog_list.rb +101 -0
  64. data/lib/chef/knife/ionoscloud_flowlog_update.rb +127 -0
  65. data/lib/chef/knife/ionoscloud_group_create.rb +33 -27
  66. data/lib/chef/knife/ionoscloud_group_delete.rb +1 -11
  67. data/lib/chef/knife/ionoscloud_group_get.rb +1 -13
  68. data/lib/chef/knife/ionoscloud_group_list.rb +19 -7
  69. data/lib/chef/knife/ionoscloud_group_update.rb +131 -0
  70. data/lib/chef/knife/ionoscloud_group_user_add.rb +1 -18
  71. data/lib/chef/knife/ionoscloud_group_user_remove.rb +1 -18
  72. data/lib/chef/knife/ionoscloud_image_list.rb +1 -1
  73. data/lib/chef/knife/ionoscloud_ipblock_create.rb +10 -13
  74. data/lib/chef/knife/ionoscloud_ipblock_delete.rb +1 -4
  75. data/lib/chef/knife/ionoscloud_ipblock_get.rb +33 -0
  76. data/lib/chef/knife/ionoscloud_ipblock_update.rb +57 -0
  77. data/lib/chef/knife/ionoscloud_ipfailover_add.rb +1 -1
  78. data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +1 -1
  79. data/lib/chef/knife/ionoscloud_k8s_create.rb +27 -35
  80. data/lib/chef/knife/ionoscloud_k8s_delete.rb +1 -9
  81. data/lib/chef/knife/ionoscloud_k8s_get.rb +33 -0
  82. data/lib/chef/knife/ionoscloud_k8s_update.rb +99 -0
  83. data/lib/chef/knife/ionoscloud_label_add.rb +1 -1
  84. data/lib/chef/knife/ionoscloud_label_list.rb +1 -1
  85. data/lib/chef/knife/ionoscloud_label_remove.rb +1 -1
  86. data/lib/chef/knife/ionoscloud_lan_create.rb +6 -14
  87. data/lib/chef/knife/ionoscloud_lan_delete.rb +3 -4
  88. data/lib/chef/knife/ionoscloud_lan_get.rb +38 -0
  89. data/lib/chef/knife/ionoscloud_lan_list.rb +2 -1
  90. data/lib/chef/knife/ionoscloud_lan_update.rb +76 -0
  91. data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +4 -14
  92. data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +2 -9
  93. data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +3 -13
  94. data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +1 -1
  95. data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +3 -15
  96. data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +3 -16
  97. data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +73 -0
  98. data/lib/chef/knife/ionoscloud_location_list.rb +5 -3
  99. data/lib/chef/knife/ionoscloud_natgateway_create.rb +60 -0
  100. data/lib/chef/knife/ionoscloud_natgateway_delete.rb +54 -0
  101. data/lib/chef/knife/ionoscloud_natgateway_get.rb +42 -0
  102. data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +74 -0
  103. data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +52 -0
  104. data/lib/chef/knife/ionoscloud_natgateway_list.rb +51 -0
  105. data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +107 -0
  106. data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +65 -0
  107. data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +55 -0
  108. data/lib/chef/knife/ionoscloud_natgateway_rule_update.rb +116 -0
  109. data/lib/chef/knife/ionoscloud_natgateway_update.rb +84 -0
  110. data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +89 -0
  111. data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +62 -0
  112. data/lib/chef/knife/ionoscloud_networkloadbalancer_get.rb +42 -0
  113. data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +57 -0
  114. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +141 -0
  115. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +65 -0
  116. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +68 -0
  117. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +124 -0
  118. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +70 -0
  119. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +88 -0
  120. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_update.rb +148 -0
  121. data/lib/chef/knife/ionoscloud_networkloadbalancer_update.rb +98 -0
  122. data/lib/chef/knife/ionoscloud_nic_create.rb +17 -22
  123. data/lib/chef/knife/ionoscloud_nic_delete.rb +3 -7
  124. data/lib/chef/knife/ionoscloud_nic_get.rb +49 -0
  125. data/lib/chef/knife/ionoscloud_nic_list.rb +9 -5
  126. data/lib/chef/knife/ionoscloud_nic_update.rb +96 -0
  127. data/lib/chef/knife/ionoscloud_node_get.rb +49 -0
  128. data/lib/chef/knife/ionoscloud_node_list.rb +0 -1
  129. data/lib/chef/knife/ionoscloud_nodepool_create.rb +35 -48
  130. data/lib/chef/knife/ionoscloud_nodepool_delete.rb +1 -7
  131. data/lib/chef/knife/ionoscloud_nodepool_get.rb +43 -0
  132. data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +104 -0
  133. data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +72 -0
  134. data/lib/chef/knife/ionoscloud_nodepool_list.rb +3 -1
  135. data/lib/chef/knife/ionoscloud_nodepool_update.rb +124 -0
  136. data/lib/chef/knife/ionoscloud_pcc_create.rb +12 -18
  137. data/lib/chef/knife/ionoscloud_pcc_delete.rb +2 -10
  138. data/lib/chef/knife/ionoscloud_pcc_get.rb +33 -0
  139. data/lib/chef/knife/ionoscloud_pcc_list.rb +1 -1
  140. data/lib/chef/knife/ionoscloud_pcc_update.rb +63 -0
  141. data/lib/chef/knife/ionoscloud_request_get.rb +40 -0
  142. data/lib/chef/knife/ionoscloud_request_list.rb +1 -1
  143. data/lib/chef/knife/ionoscloud_request_status.rb +1 -1
  144. data/lib/chef/knife/ionoscloud_s3key_create.rb +3 -7
  145. data/lib/chef/knife/ionoscloud_s3key_delete.rb +4 -7
  146. data/lib/chef/knife/ionoscloud_s3key_get.rb +38 -0
  147. data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -2
  148. data/lib/chef/knife/ionoscloud_server_console.rb +43 -0
  149. data/lib/chef/knife/ionoscloud_server_create.rb +14 -26
  150. data/lib/chef/knife/ionoscloud_server_delete.rb +3 -9
  151. data/lib/chef/knife/ionoscloud_server_get.rb +43 -0
  152. data/lib/chef/knife/ionoscloud_server_list.rb +16 -5
  153. data/lib/chef/knife/ionoscloud_server_reboot.rb +1 -1
  154. data/lib/chef/knife/ionoscloud_server_resume.rb +44 -0
  155. data/lib/chef/knife/ionoscloud_server_start.rb +1 -1
  156. data/lib/chef/knife/ionoscloud_server_stop.rb +1 -1
  157. data/lib/chef/knife/ionoscloud_server_suspend.rb +45 -0
  158. data/lib/chef/knife/ionoscloud_server_token.rb +43 -0
  159. data/lib/chef/knife/ionoscloud_server_update.rb +97 -0
  160. data/lib/chef/knife/ionoscloud_server_upgrade.rb +45 -0
  161. data/lib/chef/knife/ionoscloud_share_create.rb +7 -11
  162. data/lib/chef/knife/ionoscloud_share_delete.rb +2 -3
  163. data/lib/chef/knife/ionoscloud_share_get.rb +38 -0
  164. data/lib/chef/knife/ionoscloud_share_update.rb +70 -0
  165. data/lib/chef/knife/ionoscloud_snapshot_create.rb +2 -10
  166. data/lib/chef/knife/ionoscloud_snapshot_delete.rb +2 -7
  167. data/lib/chef/knife/ionoscloud_snapshot_get.rb +32 -0
  168. data/lib/chef/knife/ionoscloud_snapshot_list.rb +1 -1
  169. data/lib/chef/knife/ionoscloud_snapshot_restore.rb +3 -14
  170. data/lib/chef/knife/ionoscloud_snapshot_update.rb +126 -0
  171. data/lib/chef/knife/ionoscloud_template_list.rb +47 -0
  172. data/lib/chef/knife/ionoscloud_user_create.rb +1 -8
  173. data/lib/chef/knife/ionoscloud_user_delete.rb +1 -6
  174. data/lib/chef/knife/ionoscloud_user_get.rb +32 -0
  175. data/lib/chef/knife/ionoscloud_user_ssourl.rb +1 -1
  176. data/lib/chef/knife/ionoscloud_user_update.rb +92 -0
  177. data/lib/chef/knife/ionoscloud_volume_attach.rb +1 -1
  178. data/lib/chef/knife/ionoscloud_volume_create.rb +18 -34
  179. data/lib/chef/knife/ionoscloud_volume_delete.rb +3 -9
  180. data/lib/chef/knife/ionoscloud_volume_detach.rb +1 -1
  181. data/lib/chef/knife/ionoscloud_volume_get.rb +36 -0
  182. data/lib/chef/knife/ionoscloud_volume_list.rb +2 -2
  183. data/lib/chef/knife/ionoscloud_volume_update.rb +106 -0
  184. data/lib/knife-ionoscloud/version.rb +1 -1
  185. data/spec/chef/knife/ionoscloud_backupunit_create_spec.rb +2 -2
  186. data/spec/chef/knife/ionoscloud_backupunit_delete_spec.rb +5 -5
  187. data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +65 -0
  188. data/spec/chef/knife/ionoscloud_backupunit_list_spec.rb +1 -1
  189. data/spec/chef/knife/ionoscloud_backupunit_ssourl_spec.rb +3 -3
  190. data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +78 -0
  191. data/spec/chef/knife/ionoscloud_base_spec.rb +4 -4
  192. data/spec/chef/knife/ionoscloud_composite_server_create_spec.rb +11 -8
  193. data/spec/chef/knife/ionoscloud_contract_list_spec.rb +32 -27
  194. data/spec/chef/knife/ionoscloud_cube_server_create_spec.rb +249 -0
  195. data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +6 -2
  196. data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +8 -5
  197. data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +69 -0
  198. data/spec/chef/knife/ionoscloud_datacenter_list_spec.rb +5 -3
  199. data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +82 -0
  200. data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +5 -3
  201. data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +6 -5
  202. data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +77 -0
  203. data/spec/chef/knife/ionoscloud_firewall_list_spec.rb +5 -3
  204. data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +117 -0
  205. data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +254 -0
  206. data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +360 -0
  207. data/spec/chef/knife/ionoscloud_flowlog_get_spec.rb +171 -0
  208. data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +264 -0
  209. data/spec/chef/knife/ionoscloud_flowlog_update_spec.rb +244 -0
  210. data/spec/chef/knife/ionoscloud_group_create_spec.rb +9 -0
  211. data/spec/chef/knife/ionoscloud_group_delete_spec.rb +6 -0
  212. data/spec/chef/knife/ionoscloud_group_get_spec.rb +6 -0
  213. data/spec/chef/knife/ionoscloud_group_list_spec.rb +26 -8
  214. data/spec/chef/knife/ionoscloud_group_update_spec.rb +121 -0
  215. data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +6 -0
  216. data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +6 -0
  217. data/spec/chef/knife/ionoscloud_image_list_spec.rb +2 -2
  218. data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +66 -0
  219. data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +79 -0
  220. data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +4 -4
  221. data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +7 -7
  222. data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +7 -0
  223. data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +16 -11
  224. data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +72 -0
  225. data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +114 -0
  226. data/spec/chef/knife/ionoscloud_kubeconfig_get_spec.rb +2 -2
  227. data/spec/chef/knife/ionoscloud_label_add_spec.rb +10 -10
  228. data/spec/chef/knife/ionoscloud_label_list_spec.rb +14 -14
  229. data/spec/chef/knife/ionoscloud_label_remove_spec.rb +20 -20
  230. data/spec/chef/knife/ionoscloud_lan_create_spec.rb +4 -3
  231. data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +7 -5
  232. data/spec/chef/knife/ionoscloud_lan_get_spec.rb +68 -0
  233. data/spec/chef/knife/ionoscloud_lan_list_spec.rb +2 -2
  234. data/spec/chef/knife/ionoscloud_lan_update_spec.rb +87 -0
  235. data/spec/chef/knife/ionoscloud_loadbalancer_create_spec.rb +3 -3
  236. data/spec/chef/knife/ionoscloud_loadbalancer_delete_spec.rb +5 -5
  237. data/spec/chef/knife/ionoscloud_loadbalancer_get_spec.rb +2 -2
  238. data/spec/chef/knife/ionoscloud_loadbalancer_list_spec.rb +2 -2
  239. data/spec/chef/knife/ionoscloud_loadbalancer_nic_add_spec.rb +6 -6
  240. data/spec/chef/knife/ionoscloud_loadbalancer_nic_remove_spec.rb +6 -6
  241. data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +89 -0
  242. data/spec/chef/knife/ionoscloud_location_list_spec.rb +5 -3
  243. data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +92 -0
  244. data/spec/chef/knife/ionoscloud_natgateway_delete_spec.rb +118 -0
  245. data/spec/chef/knife/ionoscloud_natgateway_get_spec.rb +81 -0
  246. data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +158 -0
  247. data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +209 -0
  248. data/spec/chef/knife/ionoscloud_natgateway_list_spec.rb +79 -0
  249. data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +99 -0
  250. data/spec/chef/knife/ionoscloud_natgateway_rule_list_spec.rb +92 -0
  251. data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +78 -0
  252. data/spec/chef/knife/ionoscloud_natgateway_rule_update_spec.rb +121 -0
  253. data/spec/chef/knife/ionoscloud_natgateway_update_spec.rb +121 -0
  254. data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +93 -0
  255. data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +120 -0
  256. data/spec/chef/knife/ionoscloud_networkloadbalancer_get_spec.rb +82 -0
  257. data/spec/chef/knife/ionoscloud_networkloadbalancer_list_spec.rb +88 -0
  258. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +105 -0
  259. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_list_spec.rb +89 -0
  260. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +150 -0
  261. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +113 -0
  262. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_list_spec.rb +85 -0
  263. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +281 -0
  264. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_update_spec.rb +163 -0
  265. data/spec/chef/knife/ionoscloud_networkloadbalancer_update_spec.rb +107 -0
  266. data/spec/chef/knife/ionoscloud_nic_create_spec.rb +9 -5
  267. data/spec/chef/knife/ionoscloud_nic_delete_spec.rb +8 -6
  268. data/spec/chef/knife/ionoscloud_nic_get_spec.rb +72 -0
  269. data/spec/chef/knife/ionoscloud_nic_list_spec.rb +12 -6
  270. data/spec/chef/knife/ionoscloud_nic_update_spec.rb +97 -0
  271. data/spec/chef/knife/ionoscloud_node_get_spec.rb +70 -0
  272. data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +10 -5
  273. data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +14 -0
  274. data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +83 -0
  275. data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +222 -0
  276. data/spec/chef/knife/ionoscloud_nodepool_lan_remove.rb +196 -0
  277. data/spec/chef/knife/ionoscloud_nodepool_list_spec.rb +3 -1
  278. data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +134 -0
  279. data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +11 -8
  280. data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +7 -7
  281. data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +71 -0
  282. data/spec/chef/knife/ionoscloud_pcc_list_spec.rb +2 -2
  283. data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +83 -0
  284. data/spec/chef/knife/ionoscloud_request_get_spec.rb +69 -0
  285. data/spec/chef/knife/ionoscloud_request_list_spec.rb +16 -16
  286. data/spec/chef/knife/ionoscloud_request_status_spec.rb +3 -3
  287. data/spec/chef/knife/ionoscloud_s3key_create_spec.rb +2 -2
  288. data/spec/chef/knife/ionoscloud_s3key_delete_spec.rb +5 -5
  289. data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +66 -0
  290. data/spec/chef/knife/ionoscloud_s3key_list_spec.rb +2 -2
  291. data/spec/chef/knife/ionoscloud_server_console_spec.rb +97 -0
  292. data/spec/chef/knife/ionoscloud_server_create_spec.rb +6 -3
  293. data/spec/chef/knife/ionoscloud_server_delete_spec.rb +8 -5
  294. data/spec/chef/knife/ionoscloud_server_get_spec.rb +74 -0
  295. data/spec/chef/knife/ionoscloud_server_list_spec.rb +63 -5
  296. data/spec/chef/knife/ionoscloud_server_reboot_spec.rb +3 -5
  297. data/spec/chef/knife/ionoscloud_server_resume_spec.rb +93 -0
  298. data/spec/chef/knife/ionoscloud_server_start_spec.rb +3 -5
  299. data/spec/chef/knife/ionoscloud_server_stop_spec.rb +3 -5
  300. data/spec/chef/knife/ionoscloud_server_suspend_spec.rb +93 -0
  301. data/spec/chef/knife/ionoscloud_server_token_spec.rb +97 -0
  302. data/spec/chef/knife/ionoscloud_server_update_spec.rb +105 -0
  303. data/spec/chef/knife/ionoscloud_server_upgrade_spec.rb +96 -0
  304. data/spec/chef/knife/ionoscloud_share_get_spec.rb +66 -0
  305. data/spec/chef/knife/ionoscloud_share_update_spec.rb +91 -0
  306. data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +15 -3
  307. data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +17 -5
  308. data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +79 -0
  309. data/spec/chef/knife/ionoscloud_snapshot_list_spec.rb +2 -2
  310. data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +12 -3
  311. data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +113 -0
  312. data/spec/chef/knife/ionoscloud_template_list_spec.rb +78 -0
  313. data/spec/chef/knife/ionoscloud_user_create_spec.rb +3 -1
  314. data/spec/chef/knife/ionoscloud_user_delete_spec.rb +4 -2
  315. data/spec/chef/knife/ionoscloud_user_get_spec.rb +70 -0
  316. data/spec/chef/knife/ionoscloud_user_ssourl_spec.rb +3 -3
  317. data/spec/chef/knife/ionoscloud_user_update_spec.rb +110 -0
  318. data/spec/chef/knife/ionoscloud_volume_attach_spec.rb +4 -4
  319. data/spec/chef/knife/ionoscloud_volume_create_spec.rb +21 -11
  320. data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +15 -5
  321. data/spec/chef/knife/ionoscloud_volume_detach_spec.rb +5 -5
  322. data/spec/chef/knife/ionoscloud_volume_get_spec.rb +81 -0
  323. data/spec/chef/knife/ionoscloud_volume_list_spec.rb +4 -4
  324. data/spec/chef/knife/ionoscloud_volume_update_spec.rb +116 -0
  325. data/spec/spec_helper.rb +251 -39
  326. metadata +245 -6
@@ -12,7 +12,7 @@ describe Chef::Knife::IonoscloudPccDelete do
12
12
  end
13
13
 
14
14
  describe '#run' do
15
- it 'should call PrivateCrossConnectApi.pccs_delete when the ID is valid' do
15
+ it 'should call PrivateCrossConnectsApi.pccs_delete when the ID is valid' do
16
16
  pcc = pcc_mock
17
17
  subject_config = {
18
18
  ionoscloud_username: 'email',
@@ -24,13 +24,13 @@ describe Chef::Knife::IonoscloudPccDelete do
24
24
  subject.name_args = [pcc.id]
25
25
 
26
26
  peers = pcc.properties.peers.map { |peer| peer.id }
27
- datacenters = pcc.properties.connectable_datacenters.map { |datacenter| datacenter.id }
27
+ datacenters = pcc.properties.connectable_datacenters.map { |pcc| pcc.id }
28
28
 
29
29
  expect(subject).to receive(:puts).with("ID: #{pcc.id}")
30
30
  expect(subject).to receive(:puts).with("Name: #{pcc.properties.name}")
31
31
  expect(subject).to receive(:puts).with("Description: #{pcc.properties.description}")
32
32
  expect(subject).to receive(:puts).with("Peers: #{peers.to_s}")
33
- expect(subject).to receive(:puts).with("Datacenters: #{datacenters.to_s}")
33
+ expect(subject).to receive(:puts).with("Connectable Datacenters: #{datacenters.to_s}")
34
34
  expect(subject.ui).to receive(:warn).with("Deleted PCC #{pcc.id}. Request ID: ")
35
35
 
36
36
  expect(subject.api_client).not_to receive(:wait_for)
@@ -41,14 +41,14 @@ describe Chef::Knife::IonoscloudPccDelete do
41
41
  {
42
42
  method: 'GET',
43
43
  path: "/pccs/#{pcc.id}",
44
- operation: :'PrivateCrossConnectApi.pccs_find_by_id',
44
+ operation: :'PrivateCrossConnectsApi.pccs_find_by_id',
45
45
  return_type: 'PrivateCrossConnect',
46
46
  result: pcc,
47
47
  },
48
48
  {
49
49
  method: 'DELETE',
50
50
  path: "/pccs/#{pcc.id}",
51
- operation: :'PrivateCrossConnectApi.pccs_delete',
51
+ operation: :'PrivateCrossConnectsApi.pccs_delete',
52
52
  },
53
53
  ],
54
54
  )
@@ -56,7 +56,7 @@ describe Chef::Knife::IonoscloudPccDelete do
56
56
  expect { subject.run }.not_to raise_error(Exception)
57
57
  end
58
58
 
59
- it 'should not call PrivateCrossConnectApi.pccs_delete when the ID is not valid' do
59
+ it 'should not call PrivateCrossConnectsApi.pccs_delete when the ID is not valid' do
60
60
  pcc_id = 'invalid_id'
61
61
  subject_config = {
62
62
  ionoscloud_username: 'email',
@@ -75,7 +75,7 @@ describe Chef::Knife::IonoscloudPccDelete do
75
75
  {
76
76
  method: 'GET',
77
77
  path: "/pccs/#{pcc_id}",
78
- operation: :'PrivateCrossConnectApi.pccs_find_by_id',
78
+ operation: :'PrivateCrossConnectsApi.pccs_find_by_id',
79
79
  return_type: 'PrivateCrossConnect',
80
80
  exception: Ionoscloud::ApiError.new(code: 404),
81
81
  },
@@ -0,0 +1,71 @@
1
+ require 'spec_helper'
2
+ require 'ionoscloud_pcc_get'
3
+
4
+ Chef::Knife::IonoscloudPccGet.load_deps
5
+
6
+ describe Chef::Knife::IonoscloudPccGet do
7
+ before :each do
8
+ subject { Chef::Knife::IonoscloudPccGet.new }
9
+
10
+ allow(subject).to receive(:puts)
11
+ allow(subject).to receive(:print)
12
+ end
13
+
14
+ describe '#run' do
15
+ it 'should call PrivateCrossConnectsApi.pccs_find_by_id' do
16
+ pcc = pcc_mock
17
+ subject_config = {
18
+ ionoscloud_username: 'email',
19
+ ionoscloud_password: 'password',
20
+ pcc_id: pcc.id,
21
+ yes: true,
22
+ }
23
+
24
+ subject_config.each { |key, value| subject.config[key] = value }
25
+
26
+
27
+ peers = pcc.properties.peers.map { |peer| peer.id }
28
+ datacenters = pcc.properties.connectable_datacenters.map { |pcc| pcc.id }
29
+
30
+ expect(subject).to receive(:puts).with("ID: #{pcc.id}")
31
+ expect(subject).to receive(:puts).with("Name: #{pcc.properties.name}")
32
+ expect(subject).to receive(:puts).with("Description: #{pcc.properties.description}")
33
+ expect(subject).to receive(:puts).with("Peers: #{peers.to_s}")
34
+ expect(subject).to receive(:puts).with("Connectable Datacenters: #{datacenters.to_s}")
35
+
36
+ expect(subject.api_client).not_to receive(:wait_for)
37
+ mock_call_api(
38
+ subject,
39
+ [
40
+ {
41
+ method: 'GET',
42
+ path: "/pccs/#{pcc.id}",
43
+ operation: :'PrivateCrossConnectsApi.pccs_find_by_id',
44
+ return_type: 'PrivateCrossConnect',
45
+ result: pcc,
46
+ },
47
+ ],
48
+ )
49
+
50
+ expect { subject.run }.not_to raise_error(Exception)
51
+ end
52
+
53
+ it 'should not make any call if any required option is missing' do
54
+ required_options = subject.instance_variable_get(:@required_options)
55
+
56
+ arrays_without_one_element(required_options).each do |test_case|
57
+
58
+ test_case[:array].each { |value| subject.config[value] = 'test' }
59
+
60
+ expect(subject).to receive(:puts).with("Missing required parameters #{test_case[:removed]}")
61
+ expect(subject.api_client).not_to receive(:call_api)
62
+
63
+ expect { subject.run }.to raise_error(SystemExit) do |error|
64
+ expect(error.status).to eq(1)
65
+ end
66
+
67
+ required_options.each { |value| subject.config[value] = nil }
68
+ end
69
+ end
70
+ end
71
+ end
@@ -12,7 +12,7 @@ describe Chef::Knife::IonoscloudPccList do
12
12
  end
13
13
 
14
14
  describe '#run' do
15
- it 'should call PrivateCrossConnectApi.pccs_get' do
15
+ it 'should call PrivateCrossConnectsApi.pccs_get' do
16
16
  pccs = pccs_mock
17
17
  subject_config = {
18
18
  ionoscloud_username: 'email',
@@ -38,7 +38,7 @@ describe Chef::Knife::IonoscloudPccList do
38
38
  {
39
39
  method: 'GET',
40
40
  path: '/pccs',
41
- operation: :'PrivateCrossConnectApi.pccs_get',
41
+ operation: :'PrivateCrossConnectsApi.pccs_get',
42
42
  return_type: 'PrivateCrossConnects',
43
43
  result: pccs,
44
44
  },
@@ -0,0 +1,83 @@
1
+ require 'spec_helper'
2
+ require 'ionoscloud_pcc_update'
3
+
4
+ Chef::Knife::IonoscloudPccUpdate.load_deps
5
+
6
+ describe Chef::Knife::IonoscloudPccUpdate do
7
+ before :each do
8
+ subject { Chef::Knife::IonoscloudPccUpdate.new }
9
+
10
+ allow(subject).to receive(:puts)
11
+ allow(subject).to receive(:print)
12
+ end
13
+
14
+ describe '#run' do
15
+ it 'should call PrivateCrossConnectsApi.pccs_patch' do
16
+ pcc = pcc_mock
17
+ subject_config = {
18
+ ionoscloud_username: 'email',
19
+ ionoscloud_password: 'password',
20
+ pcc_id: pcc.id,
21
+ name: pcc.properties.name + '_edited',
22
+ description: pcc.properties.description + '_edited',
23
+ yes: true,
24
+ }
25
+
26
+ subject_config.each { |key, value| subject.config[key] = value }
27
+
28
+ peers = pcc.properties.peers.map { |peer| peer.id }
29
+ datacenters = pcc.properties.connectable_datacenters.map { |pcc| pcc.id }
30
+
31
+ expect(subject).to receive(:puts).with("ID: #{pcc.id}")
32
+ expect(subject).to receive(:puts).with("Name: #{subject_config[:name]}")
33
+ expect(subject).to receive(:puts).with("Description: #{subject_config[:description]}")
34
+ expect(subject).to receive(:puts).with("Peers: #{peers.to_s}")
35
+ expect(subject).to receive(:puts).with("Connectable Datacenters: #{datacenters.to_s}")
36
+
37
+ pcc.properties.name = subject_config[:name]
38
+ pcc.properties.description = subject_config[:description]
39
+
40
+ mock_wait_for(subject)
41
+ mock_call_api(
42
+ subject,
43
+ [
44
+ {
45
+ method: 'PATCH',
46
+ path: "/pccs/#{pcc.id}",
47
+ operation: :'PrivateCrossConnectsApi.pccs_patch',
48
+ return_type: 'PrivateCrossConnect',
49
+ body: { name: subject_config[:name], description: subject_config[:description] },
50
+ result: pcc,
51
+ },
52
+ {
53
+ method: 'GET',
54
+ path: "/pccs/#{pcc.id}",
55
+ operation: :'PrivateCrossConnectsApi.pccs_find_by_id',
56
+ return_type: 'PrivateCrossConnect',
57
+ result: pcc,
58
+ },
59
+ ],
60
+ )
61
+
62
+ expect { subject.run }.not_to raise_error(Exception)
63
+ end
64
+
65
+ it 'should not make any call if any required option is missing' do
66
+ required_options = subject.instance_variable_get(:@required_options)
67
+
68
+ arrays_without_one_element(required_options).each do |test_case|
69
+
70
+ test_case[:array].each { |value| subject.config[value] = 'test' }
71
+
72
+ expect(subject).to receive(:puts).with("Missing required parameters #{test_case[:removed]}")
73
+ expect(subject.api_client).not_to receive(:call_api)
74
+
75
+ expect { subject.run }.to raise_error(SystemExit) do |error|
76
+ expect(error.status).to eq(1)
77
+ end
78
+
79
+ required_options.each { |value| subject.config[value] = nil }
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ require 'ionoscloud_request_get'
3
+
4
+ Chef::Knife::IonoscloudRequestGet.load_deps
5
+
6
+ describe Chef::Knife::IonoscloudRequestGet do
7
+ before :each do
8
+ subject { Chef::Knife::IonoscloudRequestGet.new }
9
+
10
+ allow(subject).to receive(:puts)
11
+ allow(subject).to receive(:print)
12
+ end
13
+
14
+ describe '#run' do
15
+ it 'should call RequestsApi.requests_find_by_id' do
16
+ request = request_mock
17
+ subject_config = {
18
+ ionoscloud_username: 'email',
19
+ ionoscloud_password: 'password',
20
+ request_id: request.id,
21
+ yes: true,
22
+ }
23
+
24
+ subject_config.each { |key, value| subject.config[key] = value }
25
+
26
+ expect(subject).to receive(:puts).with("ID: #{request.id}")
27
+ expect(subject).to receive(:puts).with("Status: #{request.metadata.request_status.metadata.status}")
28
+ expect(subject).to receive(:puts).with("Method: #{request.properties.method}")
29
+ expect(subject).to receive(:puts).with("URL: #{request.properties.url}")
30
+ expect(subject).to receive(:puts).with("Targets: #{request.metadata.request_status.metadata.targets.map { |target| [target.target.id, target.target.type] }.to_s}")
31
+ expect(subject).to receive(:puts).with("Body: #{request.properties.body}")
32
+ expect(subject).to receive(:puts).with("Headers: #{request.properties.headers}")
33
+
34
+ expect(subject.api_client).not_to receive(:wait_for)
35
+ mock_call_api(
36
+ subject,
37
+ [
38
+ {
39
+ method: 'GET',
40
+ path: "/requests/#{request.id}",
41
+ operation: :'RequestsApi.requests_find_by_id',
42
+ return_type: 'Request',
43
+ result: request,
44
+ },
45
+ ],
46
+ )
47
+
48
+ expect { subject.run }.not_to raise_error(Exception)
49
+ end
50
+
51
+ it 'should not make any call if any required option is missing' do
52
+ required_options = subject.instance_variable_get(:@required_options)
53
+
54
+ arrays_without_one_element(required_options).each do |test_case|
55
+
56
+ test_case[:array].each { |value| subject.config[value] = 'test' }
57
+
58
+ expect(subject).to receive(:puts).with("Missing required parameters #{test_case[:removed]}")
59
+ expect(subject.api_client).not_to receive(:call_api)
60
+
61
+ expect { subject.run }.to raise_error(SystemExit) do |error|
62
+ expect(error.status).to eq(1)
63
+ end
64
+
65
+ required_options.each { |value| subject.config[value] = nil }
66
+ end
67
+ end
68
+ end
69
+ end
@@ -28,7 +28,7 @@ describe Chef::Knife::IonoscloudRequestList do
28
28
  end
29
29
 
30
30
  describe '#run' do
31
- it 'should call RequestApi.resources_get with default options when nothing is set' do
31
+ it 'should call RequestsApi.resources_get with default options when nothing is set' do
32
32
  subject_config = {
33
33
  ionoscloud_username: 'email',
34
34
  ionoscloud_password: 'password',
@@ -44,7 +44,7 @@ describe Chef::Knife::IonoscloudRequestList do
44
44
  {
45
45
  method: 'GET',
46
46
  path: '/requests',
47
- operation: :'RequestApi.requests_get',
47
+ operation: :'RequestsApi.requests_get',
48
48
  options: { depth: 2, limit: 20, offset: 0 },
49
49
  return_type: 'Requests',
50
50
  result: @requests,
@@ -55,7 +55,7 @@ describe Chef::Knife::IonoscloudRequestList do
55
55
  expect { subject.run }.not_to raise_error(Exception)
56
56
  end
57
57
 
58
- it 'should call RequestApi.resources_get with set options if present' do
58
+ it 'should call RequestsApi.resources_get with set options if present' do
59
59
  subject_config = {
60
60
  ionoscloud_username: 'email',
61
61
  ionoscloud_password: 'password',
@@ -73,7 +73,7 @@ describe Chef::Knife::IonoscloudRequestList do
73
73
  {
74
74
  method: 'GET',
75
75
  path: '/requests',
76
- operation: :'RequestApi.requests_get',
76
+ operation: :'RequestsApi.requests_get',
77
77
  options: { depth: 2, limit: subject_config[:limit], offset: subject_config[:offset] },
78
78
  return_type: 'Requests',
79
79
  result: @requests,
@@ -84,7 +84,7 @@ describe Chef::Knife::IonoscloudRequestList do
84
84
  expect { subject.run }.not_to raise_error(Exception)
85
85
  end
86
86
 
87
- it 'should call RequestApi.resources_get with default limit if it is not an Integer' do
87
+ it 'should call RequestsApi.resources_get with default limit if it is not an Integer' do
88
88
  subject_config = {
89
89
  ionoscloud_username: 'email',
90
90
  ionoscloud_password: 'password',
@@ -103,7 +103,7 @@ describe Chef::Knife::IonoscloudRequestList do
103
103
  {
104
104
  method: 'GET',
105
105
  path: '/requests',
106
- operation: :'RequestApi.requests_get',
106
+ operation: :'RequestsApi.requests_get',
107
107
  options: { depth: 2, limit: 20, offset: subject_config[:offset] },
108
108
  return_type: 'Requests',
109
109
  result: @requests,
@@ -114,7 +114,7 @@ describe Chef::Knife::IonoscloudRequestList do
114
114
  expect { subject.run }.not_to raise_error(Exception)
115
115
  end
116
116
 
117
- it 'should call RequestApi.resources_get with default offset if it is not an Integers' do
117
+ it 'should call RequestsApi.resources_get with default offset if it is not an Integers' do
118
118
  subject_config = {
119
119
  ionoscloud_username: 'email',
120
120
  ionoscloud_password: 'password',
@@ -133,7 +133,7 @@ describe Chef::Knife::IonoscloudRequestList do
133
133
  {
134
134
  method: 'GET',
135
135
  path: '/requests',
136
- operation: :'RequestApi.requests_get',
136
+ operation: :'RequestsApi.requests_get',
137
137
  options: { depth: 2, limit: subject_config[:limit], offset: 0 },
138
138
  return_type: 'Requests',
139
139
  result: @requests,
@@ -144,7 +144,7 @@ describe Chef::Knife::IonoscloudRequestList do
144
144
  expect { subject.run }.not_to raise_error(Exception)
145
145
  end
146
146
 
147
- it 'should call RequestApi.resources_get with the expected status when set' do
147
+ it 'should call RequestsApi.resources_get with the expected status when set' do
148
148
  subject_config = {
149
149
  ionoscloud_username: 'email',
150
150
  ionoscloud_password: 'password',
@@ -162,7 +162,7 @@ describe Chef::Knife::IonoscloudRequestList do
162
162
  {
163
163
  method: 'GET',
164
164
  path: '/requests',
165
- operation: :'RequestApi.requests_get',
165
+ operation: :'RequestsApi.requests_get',
166
166
  options: { depth: 2, limit: subject_config[:limit], offset: 0, filter_request_status: subject_config[:status] },
167
167
  return_type: 'Requests',
168
168
  result: @requests,
@@ -173,7 +173,7 @@ describe Chef::Knife::IonoscloudRequestList do
173
173
  expect { subject.run }.not_to raise_error(Exception)
174
174
  end
175
175
 
176
- it 'should call RequestApi.resources_get with no status when set wrong' do
176
+ it 'should call RequestsApi.resources_get with no status when set wrong' do
177
177
  subject_config = {
178
178
  ionoscloud_username: 'email',
179
179
  ionoscloud_password: 'password',
@@ -192,7 +192,7 @@ describe Chef::Knife::IonoscloudRequestList do
192
192
  {
193
193
  method: 'GET',
194
194
  path: '/requests',
195
- operation: :'RequestApi.requests_get',
195
+ operation: :'RequestsApi.requests_get',
196
196
  options: { depth: 2, limit: subject_config[:limit], offset: 0 },
197
197
  return_type: 'Requests',
198
198
  result: @requests,
@@ -204,7 +204,7 @@ describe Chef::Knife::IonoscloudRequestList do
204
204
  end
205
205
 
206
206
 
207
- it 'should call RequestApi.resources_get with the expected method when set' do
207
+ it 'should call RequestsApi.resources_get with the expected method when set' do
208
208
  subject_config = {
209
209
  ionoscloud_username: 'email',
210
210
  ionoscloud_password: 'password',
@@ -222,7 +222,7 @@ describe Chef::Knife::IonoscloudRequestList do
222
222
  {
223
223
  method: 'GET',
224
224
  path: '/requests',
225
- operation: :'RequestApi.requests_get',
225
+ operation: :'RequestsApi.requests_get',
226
226
  options: { depth: 2, limit: subject_config[:limit], offset: 0, filter_method: subject_config[:method] },
227
227
  return_type: 'Requests',
228
228
  result: @requests,
@@ -233,7 +233,7 @@ describe Chef::Knife::IonoscloudRequestList do
233
233
  expect { subject.run }.not_to raise_error(Exception)
234
234
  end
235
235
 
236
- it 'should call RequestApi.resources_get with no method when set wrong' do
236
+ it 'should call RequestsApi.resources_get with no method when set wrong' do
237
237
  subject_config = {
238
238
  ionoscloud_username: 'email',
239
239
  ionoscloud_password: 'password',
@@ -252,7 +252,7 @@ describe Chef::Knife::IonoscloudRequestList do
252
252
  {
253
253
  method: 'GET',
254
254
  path: '/requests',
255
- operation: :'RequestApi.requests_get',
255
+ operation: :'RequestsApi.requests_get',
256
256
  options: { depth: 2, limit: subject_config[:limit], offset: 0 },
257
257
  return_type: 'Requests',
258
258
  result: @requests,
@@ -7,7 +7,7 @@ describe Chef::Knife::IonoscloudRequestStatus do
7
7
  subject { Chef::Knife::IonoscloudRequestStatus.new }
8
8
 
9
9
  describe '#run' do
10
- it 'should call RequestApi.requests_status_get and output the received status when the request ID is valid' do
10
+ it 'should call RequestsApi.requests_status_get and output the received status when the request ID is valid' do
11
11
  request_status = request_status_mock
12
12
  subject_config = {
13
13
  ionoscloud_username: 'email',
@@ -26,7 +26,7 @@ describe Chef::Knife::IonoscloudRequestStatus do
26
26
  {
27
27
  method: 'GET',
28
28
  path: "/requests/#{subject_config[:request_id]}/status",
29
- operation: :'RequestApi.requests_status_get',
29
+ operation: :'RequestsApi.requests_status_get',
30
30
  return_type: 'RequestStatus',
31
31
  result: request_status,
32
32
  },
@@ -58,7 +58,7 @@ describe Chef::Knife::IonoscloudRequestStatus do
58
58
  {
59
59
  method: 'GET',
60
60
  path: "/requests/#{request_id}/status",
61
- operation: :'RequestApi.requests_status_get',
61
+ operation: :'RequestsApi.requests_status_get',
62
62
  return_type: 'RequestStatus',
63
63
  exception: Ionoscloud::ApiError.new(code: 404),
64
64
  },
@@ -12,7 +12,7 @@ describe Chef::Knife::IonoscloudS3keyCreate do
12
12
  end
13
13
 
14
14
  describe '#run' do
15
- it 'should call UserManagementApi.um_users_s3keys_post with the expected arguments and output based on what it receives' do
15
+ it 'should call UserS3KeysApi.um_users_s3keys_post with the expected arguments and output based on what it receives' do
16
16
  s3_key = s3_key_mock
17
17
  subject_config = {
18
18
  ionoscloud_username: 'email',
@@ -33,7 +33,7 @@ describe Chef::Knife::IonoscloudS3keyCreate do
33
33
  {
34
34
  method: 'POST',
35
35
  path: "/um/users/#{subject_config[:user_id]}/s3keys",
36
- operation: :'UserManagementApi.um_users_s3keys_post',
36
+ operation: :'UserS3KeysApi.um_users_s3keys_post',
37
37
  return_type: 'S3Key',
38
38
  result: s3_key,
39
39
  },
@@ -12,7 +12,7 @@ describe Chef::Knife::IonoscloudS3keyDelete do
12
12
  end
13
13
 
14
14
  describe '#run' do
15
- it 'should call UserManagementApi.um_users_s3keys_delete when the ID is valid' do
15
+ it 'should call UserS3KeysApi.um_users_s3keys_delete when the ID is valid' do
16
16
  s3_key = s3_key_mock
17
17
  subject_config = {
18
18
  ionoscloud_username: 'email',
@@ -37,14 +37,14 @@ describe Chef::Knife::IonoscloudS3keyDelete do
37
37
  {
38
38
  method: 'GET',
39
39
  path: "/um/users/#{subject_config[:user_id]}/s3keys/#{s3_key.id}",
40
- operation: :'UserManagementApi.um_users_s3keys_find_by_key_id',
40
+ operation: :'UserS3KeysApi.um_users_s3keys_find_by_key_id',
41
41
  return_type: 'S3Key',
42
42
  result: s3_key,
43
43
  },
44
44
  {
45
45
  method: 'DELETE',
46
46
  path: "/um/users/#{subject_config[:user_id]}/s3keys/#{s3_key.id}",
47
- operation: :'UserManagementApi.um_users_s3keys_delete',
47
+ operation: :'UserS3KeysApi.um_users_s3keys_delete',
48
48
  },
49
49
  ],
50
50
  )
@@ -52,7 +52,7 @@ describe Chef::Knife::IonoscloudS3keyDelete do
52
52
  expect { subject.run }.not_to raise_error(Exception)
53
53
  end
54
54
 
55
- it 'should not call UserManagementApi.um_users_s3keys_delete when the ID is not valid' do
55
+ it 'should not call UserS3KeysApi.um_users_s3keys_delete when the ID is not valid' do
56
56
  s3_key_id = 'invalid_id'
57
57
  subject_config = {
58
58
  ionoscloud_username: 'email',
@@ -72,7 +72,7 @@ describe Chef::Knife::IonoscloudS3keyDelete do
72
72
  {
73
73
  method: 'GET',
74
74
  path: "/um/users/#{subject_config[:user_id]}/s3keys/#{s3_key_id}",
75
- operation: :'UserManagementApi.um_users_s3keys_find_by_key_id',
75
+ operation: :'UserS3KeysApi.um_users_s3keys_find_by_key_id',
76
76
  return_type: 'S3Key',
77
77
  exception: Ionoscloud::ApiError.new(code: 404),
78
78
  },
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ require 'ionoscloud_s3key_get'
3
+
4
+ Chef::Knife::IonoscloudS3keyGet.load_deps
5
+
6
+ describe Chef::Knife::IonoscloudS3keyGet do
7
+ before :each do
8
+ subject { Chef::Knife::IonoscloudS3keyGet.new }
9
+
10
+ allow(subject).to receive(:puts)
11
+ allow(subject).to receive(:print)
12
+ end
13
+
14
+ describe '#run' do
15
+ it 'should call UserS3KeysApi.um_users_s3keys_find_by_key_id' do
16
+ s3_key = s3_key_mock
17
+ subject_config = {
18
+ ionoscloud_username: 'email',
19
+ ionoscloud_password: 'password',
20
+ user_id: 'user_id',
21
+ s3_key_id: s3_key.id,
22
+ yes: true,
23
+ }
24
+
25
+ subject_config.each { |key, value| subject.config[key] = value }
26
+
27
+ expect(subject).to receive(:puts).with("ID: #{s3_key.id}")
28
+ expect(subject).to receive(:puts).with("Secret Key: #{s3_key.properties.secret_key}")
29
+ expect(subject).to receive(:puts).with("Active: #{s3_key.properties.active}")
30
+
31
+ expect(subject.api_client).not_to receive(:wait_for)
32
+ mock_call_api(
33
+ subject,
34
+ [
35
+ {
36
+ method: 'GET',
37
+ path: "/um/users/#{subject_config[:user_id]}/s3keys/#{s3_key.id}",
38
+ operation: :'UserS3KeysApi.um_users_s3keys_find_by_key_id',
39
+ return_type: 'S3Key',
40
+ result: s3_key,
41
+ },
42
+ ],
43
+ )
44
+
45
+ expect { subject.run }.not_to raise_error(Exception)
46
+ end
47
+
48
+ it 'should not make any call if any required option is missing' do
49
+ required_options = subject.instance_variable_get(:@required_options)
50
+
51
+ arrays_without_one_element(required_options).each do |test_case|
52
+
53
+ test_case[:array].each { |value| subject.config[value] = 'test' }
54
+
55
+ expect(subject).to receive(:puts).with("Missing required parameters #{test_case[:removed]}")
56
+ expect(subject.api_client).not_to receive(:call_api)
57
+
58
+ expect { subject.run }.to raise_error(SystemExit) do |error|
59
+ expect(error.status).to eq(1)
60
+ end
61
+
62
+ required_options.each { |value| subject.config[value] = nil }
63
+ end
64
+ end
65
+ end
66
+ end
@@ -12,7 +12,7 @@ describe Chef::Knife::IonoscloudS3keyList do
12
12
  end
13
13
 
14
14
  describe '#run' do
15
- it 'should call UserManagementApi.um_users_s3keys_get' do
15
+ it 'should call UserS3KeysApi.um_users_s3keys_get' do
16
16
  s3_keys = s3_keys_mock
17
17
  subject_config = {
18
18
  ionoscloud_username: 'email',
@@ -39,7 +39,7 @@ describe Chef::Knife::IonoscloudS3keyList do
39
39
  {
40
40
  method: 'GET',
41
41
  path: "/um/users/#{subject_config[:user_id]}/s3keys",
42
- operation: :'UserManagementApi.um_users_s3keys_get',
42
+ operation: :'UserS3KeysApi.um_users_s3keys_get',
43
43
  return_type: 'S3Keys',
44
44
  result: s3_keys,
45
45
  },