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.
- checksums.yaml +4 -4
- data/docs/README.md +1 -1
- data/docs/subcommands/composite_server_create.md +9 -3
- data/docs/subcommands/cube_server_create.md +91 -0
- data/docs/subcommands/firewall_create.md +5 -2
- data/docs/subcommands/flowlog_create.md +63 -0
- data/docs/subcommands/flowlog_delete.md +51 -0
- data/docs/subcommands/flowlog_list.md +51 -0
- data/docs/subcommands/group_create.md +10 -1
- data/docs/subcommands/natgateway_create.md +41 -0
- data/docs/subcommands/natgateway_delete.md +35 -0
- data/docs/subcommands/natgateway_lan_add.md +46 -0
- data/docs/subcommands/natgateway_lan_remove.md +39 -0
- data/docs/subcommands/natgateway_list.md +35 -0
- data/docs/subcommands/natgateway_rule_add.md +66 -0
- data/docs/subcommands/natgateway_rule_list.md +38 -0
- data/docs/subcommands/natgateway_rule_remove.md +39 -0
- data/docs/subcommands/networkloadbalancer_create.md +54 -0
- data/docs/subcommands/networkloadbalancer_delete.md +35 -0
- data/docs/subcommands/networkloadbalancer_list.md +35 -0
- data/docs/subcommands/networkloadbalancer_rule_add.md +72 -0
- data/docs/subcommands/networkloadbalancer_rule_list.md +39 -0
- data/docs/subcommands/networkloadbalancer_rule_remove.md +39 -0
- data/docs/subcommands/networkloadbalancer_rule_target_add.md +64 -0
- data/docs/subcommands/networkloadbalancer_rule_target_list.md +43 -0
- data/docs/subcommands/networkloadbalancer_rule_target_remove.md +51 -0
- data/docs/subcommands/nic_create.md +3 -3
- data/docs/subcommands/nodepool_lan_add.md +49 -0
- data/docs/subcommands/nodepool_lan_remove.md +39 -0
- data/docs/subcommands/server_console.md +39 -0
- data/docs/subcommands/server_list.md +4 -1
- data/docs/subcommands/server_resume.md +35 -0
- data/docs/subcommands/server_suspend.md +35 -0
- data/docs/subcommands/server_token.md +39 -0
- data/docs/subcommands/server_upgrade.md +39 -0
- data/docs/subcommands/template_list.md +31 -0
- data/docs/subcommands/volume_create.md +2 -5
- data/docs/summary.md +29 -0
- data/knife-ionoscloud.gemspec +1 -1
- data/lib/chef/knife/ionoscloud_backupunit_create.rb +12 -16
- data/lib/chef/knife/ionoscloud_backupunit_delete.rb +2 -5
- data/lib/chef/knife/ionoscloud_backupunit_get.rb +33 -0
- data/lib/chef/knife/ionoscloud_backupunit_list.rb +1 -1
- data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +1 -1
- data/lib/chef/knife/ionoscloud_backupunit_update.rb +62 -0
- data/lib/chef/knife/ionoscloud_base.rb +309 -1
- data/lib/chef/knife/ionoscloud_composite_server_create.rb +23 -5
- data/lib/chef/knife/ionoscloud_contract_list.rb +32 -23
- data/lib/chef/knife/ionoscloud_cube_server_create.rb +212 -0
- data/lib/chef/knife/ionoscloud_datacenter_create.rb +11 -14
- data/lib/chef/knife/ionoscloud_datacenter_delete.rb +2 -7
- data/lib/chef/knife/ionoscloud_datacenter_get.rb +33 -0
- data/lib/chef/knife/ionoscloud_datacenter_list.rb +4 -2
- data/lib/chef/knife/ionoscloud_datacenter_update.rb +67 -0
- data/lib/chef/knife/ionoscloud_firewall_create.rb +16 -21
- data/lib/chef/knife/ionoscloud_firewall_delete.rb +5 -13
- data/lib/chef/knife/ionoscloud_firewall_get.rb +52 -0
- data/lib/chef/knife/ionoscloud_firewall_list.rb +5 -3
- data/lib/chef/knife/ionoscloud_firewall_update.rb +133 -0
- data/lib/chef/knife/ionoscloud_flowlog_create.rb +116 -0
- data/lib/chef/knife/ionoscloud_flowlog_delete.rb +103 -0
- data/lib/chef/knife/ionoscloud_flowlog_get.rb +84 -0
- data/lib/chef/knife/ionoscloud_flowlog_list.rb +101 -0
- data/lib/chef/knife/ionoscloud_flowlog_update.rb +127 -0
- data/lib/chef/knife/ionoscloud_group_create.rb +33 -27
- data/lib/chef/knife/ionoscloud_group_delete.rb +1 -11
- data/lib/chef/knife/ionoscloud_group_get.rb +1 -13
- data/lib/chef/knife/ionoscloud_group_list.rb +19 -7
- data/lib/chef/knife/ionoscloud_group_update.rb +131 -0
- data/lib/chef/knife/ionoscloud_group_user_add.rb +1 -18
- data/lib/chef/knife/ionoscloud_group_user_remove.rb +1 -18
- data/lib/chef/knife/ionoscloud_image_list.rb +1 -1
- data/lib/chef/knife/ionoscloud_ipblock_create.rb +10 -13
- data/lib/chef/knife/ionoscloud_ipblock_delete.rb +1 -4
- data/lib/chef/knife/ionoscloud_ipblock_get.rb +33 -0
- data/lib/chef/knife/ionoscloud_ipblock_update.rb +57 -0
- data/lib/chef/knife/ionoscloud_ipfailover_add.rb +1 -1
- data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +1 -1
- data/lib/chef/knife/ionoscloud_k8s_create.rb +27 -35
- data/lib/chef/knife/ionoscloud_k8s_delete.rb +1 -9
- data/lib/chef/knife/ionoscloud_k8s_get.rb +33 -0
- data/lib/chef/knife/ionoscloud_k8s_update.rb +99 -0
- data/lib/chef/knife/ionoscloud_label_add.rb +1 -1
- data/lib/chef/knife/ionoscloud_label_list.rb +1 -1
- data/lib/chef/knife/ionoscloud_label_remove.rb +1 -1
- data/lib/chef/knife/ionoscloud_lan_create.rb +6 -14
- data/lib/chef/knife/ionoscloud_lan_delete.rb +3 -4
- data/lib/chef/knife/ionoscloud_lan_get.rb +38 -0
- data/lib/chef/knife/ionoscloud_lan_list.rb +2 -1
- data/lib/chef/knife/ionoscloud_lan_update.rb +76 -0
- data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +4 -14
- data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +2 -9
- data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +3 -13
- data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +1 -1
- data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +3 -15
- data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +3 -16
- data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +73 -0
- data/lib/chef/knife/ionoscloud_location_list.rb +5 -3
- data/lib/chef/knife/ionoscloud_natgateway_create.rb +60 -0
- data/lib/chef/knife/ionoscloud_natgateway_delete.rb +54 -0
- data/lib/chef/knife/ionoscloud_natgateway_get.rb +42 -0
- data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +74 -0
- data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +52 -0
- data/lib/chef/knife/ionoscloud_natgateway_list.rb +51 -0
- data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +107 -0
- data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +65 -0
- data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +55 -0
- data/lib/chef/knife/ionoscloud_natgateway_rule_update.rb +116 -0
- data/lib/chef/knife/ionoscloud_natgateway_update.rb +84 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +89 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +62 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_get.rb +42 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +57 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +141 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +65 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +68 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +124 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +70 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +88 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_update.rb +148 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_update.rb +98 -0
- data/lib/chef/knife/ionoscloud_nic_create.rb +17 -22
- data/lib/chef/knife/ionoscloud_nic_delete.rb +3 -7
- data/lib/chef/knife/ionoscloud_nic_get.rb +49 -0
- data/lib/chef/knife/ionoscloud_nic_list.rb +9 -5
- data/lib/chef/knife/ionoscloud_nic_update.rb +96 -0
- data/lib/chef/knife/ionoscloud_node_get.rb +49 -0
- data/lib/chef/knife/ionoscloud_node_list.rb +0 -1
- data/lib/chef/knife/ionoscloud_nodepool_create.rb +35 -48
- data/lib/chef/knife/ionoscloud_nodepool_delete.rb +1 -7
- data/lib/chef/knife/ionoscloud_nodepool_get.rb +43 -0
- data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +104 -0
- data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +72 -0
- data/lib/chef/knife/ionoscloud_nodepool_list.rb +3 -1
- data/lib/chef/knife/ionoscloud_nodepool_update.rb +124 -0
- data/lib/chef/knife/ionoscloud_pcc_create.rb +12 -18
- data/lib/chef/knife/ionoscloud_pcc_delete.rb +2 -10
- data/lib/chef/knife/ionoscloud_pcc_get.rb +33 -0
- data/lib/chef/knife/ionoscloud_pcc_list.rb +1 -1
- data/lib/chef/knife/ionoscloud_pcc_update.rb +63 -0
- data/lib/chef/knife/ionoscloud_request_get.rb +40 -0
- data/lib/chef/knife/ionoscloud_request_list.rb +1 -1
- data/lib/chef/knife/ionoscloud_request_status.rb +1 -1
- data/lib/chef/knife/ionoscloud_s3key_create.rb +3 -7
- data/lib/chef/knife/ionoscloud_s3key_delete.rb +4 -7
- data/lib/chef/knife/ionoscloud_s3key_get.rb +38 -0
- data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -2
- data/lib/chef/knife/ionoscloud_server_console.rb +43 -0
- data/lib/chef/knife/ionoscloud_server_create.rb +14 -26
- data/lib/chef/knife/ionoscloud_server_delete.rb +3 -9
- data/lib/chef/knife/ionoscloud_server_get.rb +43 -0
- data/lib/chef/knife/ionoscloud_server_list.rb +16 -5
- data/lib/chef/knife/ionoscloud_server_reboot.rb +1 -1
- data/lib/chef/knife/ionoscloud_server_resume.rb +44 -0
- data/lib/chef/knife/ionoscloud_server_start.rb +1 -1
- data/lib/chef/knife/ionoscloud_server_stop.rb +1 -1
- data/lib/chef/knife/ionoscloud_server_suspend.rb +45 -0
- data/lib/chef/knife/ionoscloud_server_token.rb +43 -0
- data/lib/chef/knife/ionoscloud_server_update.rb +97 -0
- data/lib/chef/knife/ionoscloud_server_upgrade.rb +45 -0
- data/lib/chef/knife/ionoscloud_share_create.rb +7 -11
- data/lib/chef/knife/ionoscloud_share_delete.rb +2 -3
- data/lib/chef/knife/ionoscloud_share_get.rb +38 -0
- data/lib/chef/knife/ionoscloud_share_update.rb +70 -0
- data/lib/chef/knife/ionoscloud_snapshot_create.rb +2 -10
- data/lib/chef/knife/ionoscloud_snapshot_delete.rb +2 -7
- data/lib/chef/knife/ionoscloud_snapshot_get.rb +32 -0
- data/lib/chef/knife/ionoscloud_snapshot_list.rb +1 -1
- data/lib/chef/knife/ionoscloud_snapshot_restore.rb +3 -14
- data/lib/chef/knife/ionoscloud_snapshot_update.rb +126 -0
- data/lib/chef/knife/ionoscloud_template_list.rb +47 -0
- data/lib/chef/knife/ionoscloud_user_create.rb +1 -8
- data/lib/chef/knife/ionoscloud_user_delete.rb +1 -6
- data/lib/chef/knife/ionoscloud_user_get.rb +32 -0
- data/lib/chef/knife/ionoscloud_user_ssourl.rb +1 -1
- data/lib/chef/knife/ionoscloud_user_update.rb +92 -0
- data/lib/chef/knife/ionoscloud_volume_attach.rb +1 -1
- data/lib/chef/knife/ionoscloud_volume_create.rb +18 -34
- data/lib/chef/knife/ionoscloud_volume_delete.rb +3 -9
- data/lib/chef/knife/ionoscloud_volume_detach.rb +1 -1
- data/lib/chef/knife/ionoscloud_volume_get.rb +36 -0
- data/lib/chef/knife/ionoscloud_volume_list.rb +2 -2
- data/lib/chef/knife/ionoscloud_volume_update.rb +106 -0
- data/lib/knife-ionoscloud/version.rb +1 -1
- data/spec/chef/knife/ionoscloud_backupunit_create_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_backupunit_delete_spec.rb +5 -5
- data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +65 -0
- data/spec/chef/knife/ionoscloud_backupunit_list_spec.rb +1 -1
- data/spec/chef/knife/ionoscloud_backupunit_ssourl_spec.rb +3 -3
- data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +78 -0
- data/spec/chef/knife/ionoscloud_base_spec.rb +4 -4
- data/spec/chef/knife/ionoscloud_composite_server_create_spec.rb +11 -8
- data/spec/chef/knife/ionoscloud_contract_list_spec.rb +32 -27
- data/spec/chef/knife/ionoscloud_cube_server_create_spec.rb +249 -0
- data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +6 -2
- data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +8 -5
- data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +69 -0
- data/spec/chef/knife/ionoscloud_datacenter_list_spec.rb +5 -3
- data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +82 -0
- data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +5 -3
- data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +6 -5
- data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +77 -0
- data/spec/chef/knife/ionoscloud_firewall_list_spec.rb +5 -3
- data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +117 -0
- data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +254 -0
- data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +360 -0
- data/spec/chef/knife/ionoscloud_flowlog_get_spec.rb +171 -0
- data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +264 -0
- data/spec/chef/knife/ionoscloud_flowlog_update_spec.rb +244 -0
- data/spec/chef/knife/ionoscloud_group_create_spec.rb +9 -0
- data/spec/chef/knife/ionoscloud_group_delete_spec.rb +6 -0
- data/spec/chef/knife/ionoscloud_group_get_spec.rb +6 -0
- data/spec/chef/knife/ionoscloud_group_list_spec.rb +26 -8
- data/spec/chef/knife/ionoscloud_group_update_spec.rb +121 -0
- data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +6 -0
- data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +6 -0
- data/spec/chef/knife/ionoscloud_image_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +66 -0
- data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +79 -0
- data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +4 -4
- data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +7 -7
- data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +7 -0
- data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +16 -11
- data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +72 -0
- data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +114 -0
- data/spec/chef/knife/ionoscloud_kubeconfig_get_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_label_add_spec.rb +10 -10
- data/spec/chef/knife/ionoscloud_label_list_spec.rb +14 -14
- data/spec/chef/knife/ionoscloud_label_remove_spec.rb +20 -20
- data/spec/chef/knife/ionoscloud_lan_create_spec.rb +4 -3
- data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +7 -5
- data/spec/chef/knife/ionoscloud_lan_get_spec.rb +68 -0
- data/spec/chef/knife/ionoscloud_lan_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_lan_update_spec.rb +87 -0
- data/spec/chef/knife/ionoscloud_loadbalancer_create_spec.rb +3 -3
- data/spec/chef/knife/ionoscloud_loadbalancer_delete_spec.rb +5 -5
- data/spec/chef/knife/ionoscloud_loadbalancer_get_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_loadbalancer_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_loadbalancer_nic_add_spec.rb +6 -6
- data/spec/chef/knife/ionoscloud_loadbalancer_nic_remove_spec.rb +6 -6
- data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +89 -0
- data/spec/chef/knife/ionoscloud_location_list_spec.rb +5 -3
- data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +92 -0
- data/spec/chef/knife/ionoscloud_natgateway_delete_spec.rb +118 -0
- data/spec/chef/knife/ionoscloud_natgateway_get_spec.rb +81 -0
- data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +158 -0
- data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +209 -0
- data/spec/chef/knife/ionoscloud_natgateway_list_spec.rb +79 -0
- data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +99 -0
- data/spec/chef/knife/ionoscloud_natgateway_rule_list_spec.rb +92 -0
- data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +78 -0
- data/spec/chef/knife/ionoscloud_natgateway_rule_update_spec.rb +121 -0
- data/spec/chef/knife/ionoscloud_natgateway_update_spec.rb +121 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +93 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +120 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_get_spec.rb +82 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_list_spec.rb +88 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +105 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_list_spec.rb +89 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +150 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +113 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_list_spec.rb +85 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +281 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_update_spec.rb +163 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_update_spec.rb +107 -0
- data/spec/chef/knife/ionoscloud_nic_create_spec.rb +9 -5
- data/spec/chef/knife/ionoscloud_nic_delete_spec.rb +8 -6
- data/spec/chef/knife/ionoscloud_nic_get_spec.rb +72 -0
- data/spec/chef/knife/ionoscloud_nic_list_spec.rb +12 -6
- data/spec/chef/knife/ionoscloud_nic_update_spec.rb +97 -0
- data/spec/chef/knife/ionoscloud_node_get_spec.rb +70 -0
- data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +10 -5
- data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +14 -0
- data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +83 -0
- data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +222 -0
- data/spec/chef/knife/ionoscloud_nodepool_lan_remove.rb +196 -0
- data/spec/chef/knife/ionoscloud_nodepool_list_spec.rb +3 -1
- data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +134 -0
- data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +11 -8
- data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +7 -7
- data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +71 -0
- data/spec/chef/knife/ionoscloud_pcc_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +83 -0
- data/spec/chef/knife/ionoscloud_request_get_spec.rb +69 -0
- data/spec/chef/knife/ionoscloud_request_list_spec.rb +16 -16
- data/spec/chef/knife/ionoscloud_request_status_spec.rb +3 -3
- data/spec/chef/knife/ionoscloud_s3key_create_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_s3key_delete_spec.rb +5 -5
- data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +66 -0
- data/spec/chef/knife/ionoscloud_s3key_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_server_console_spec.rb +97 -0
- data/spec/chef/knife/ionoscloud_server_create_spec.rb +6 -3
- data/spec/chef/knife/ionoscloud_server_delete_spec.rb +8 -5
- data/spec/chef/knife/ionoscloud_server_get_spec.rb +74 -0
- data/spec/chef/knife/ionoscloud_server_list_spec.rb +63 -5
- data/spec/chef/knife/ionoscloud_server_reboot_spec.rb +3 -5
- data/spec/chef/knife/ionoscloud_server_resume_spec.rb +93 -0
- data/spec/chef/knife/ionoscloud_server_start_spec.rb +3 -5
- data/spec/chef/knife/ionoscloud_server_stop_spec.rb +3 -5
- data/spec/chef/knife/ionoscloud_server_suspend_spec.rb +93 -0
- data/spec/chef/knife/ionoscloud_server_token_spec.rb +97 -0
- data/spec/chef/knife/ionoscloud_server_update_spec.rb +105 -0
- data/spec/chef/knife/ionoscloud_server_upgrade_spec.rb +96 -0
- data/spec/chef/knife/ionoscloud_share_get_spec.rb +66 -0
- data/spec/chef/knife/ionoscloud_share_update_spec.rb +91 -0
- data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +15 -3
- data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +17 -5
- data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +79 -0
- data/spec/chef/knife/ionoscloud_snapshot_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +12 -3
- data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +113 -0
- data/spec/chef/knife/ionoscloud_template_list_spec.rb +78 -0
- data/spec/chef/knife/ionoscloud_user_create_spec.rb +3 -1
- data/spec/chef/knife/ionoscloud_user_delete_spec.rb +4 -2
- data/spec/chef/knife/ionoscloud_user_get_spec.rb +70 -0
- data/spec/chef/knife/ionoscloud_user_ssourl_spec.rb +3 -3
- data/spec/chef/knife/ionoscloud_user_update_spec.rb +110 -0
- data/spec/chef/knife/ionoscloud_volume_attach_spec.rb +4 -4
- data/spec/chef/knife/ionoscloud_volume_create_spec.rb +21 -11
- data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +15 -5
- data/spec/chef/knife/ionoscloud_volume_detach_spec.rb +5 -5
- data/spec/chef/knife/ionoscloud_volume_get_spec.rb +81 -0
- data/spec/chef/knife/ionoscloud_volume_list_spec.rb +4 -4
- data/spec/chef/knife/ionoscloud_volume_update_spec.rb +116 -0
- data/spec/spec_helper.rb +251 -39
- 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
|
|
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 { |
|
|
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: :'
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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: :'
|
|
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
|
|
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: :'
|
|
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
|
|
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: :'
|
|
42
|
+
operation: :'UserS3KeysApi.um_users_s3keys_get',
|
|
43
43
|
return_type: 'S3Keys',
|
|
44
44
|
result: s3_keys,
|
|
45
45
|
},
|