knife-ionoscloud 5.1.2 → 6.0.0.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/publish.yml +1 -4
- data/docs/README.md +0 -19
- data/docs/docs_generator.rb +1 -1
- data/docs/subcommands/backupunit_create.md +2 -5
- data/docs/subcommands/backupunit_delete.md +1 -4
- data/docs/subcommands/backupunit_list.md +1 -4
- data/docs/subcommands/backupunit_ssourl.md +1 -4
- data/docs/subcommands/composite_server_create.md +1 -4
- data/docs/subcommands/contract_list.md +1 -4
- data/docs/subcommands/datacenter_create.md +1 -4
- data/docs/subcommands/datacenter_delete.md +1 -4
- data/docs/subcommands/datacenter_list.md +1 -4
- data/docs/subcommands/firewall_create.md +2 -5
- data/docs/subcommands/firewall_delete.md +0 -3
- data/docs/subcommands/firewall_list.md +1 -4
- data/docs/subcommands/group_create.md +1 -4
- data/docs/subcommands/group_delete.md +1 -4
- data/docs/subcommands/group_get.md +1 -4
- data/docs/subcommands/group_list.md +1 -4
- data/docs/subcommands/group_user_add.md +0 -3
- data/docs/subcommands/group_user_remove.md +0 -3
- data/docs/subcommands/image_list.md +1 -4
- data/docs/subcommands/ipblock_create.md +1 -4
- data/docs/subcommands/ipblock_delete.md +1 -4
- data/docs/subcommands/ipblock_list.md +1 -4
- data/docs/subcommands/ipfailover_add.md +1 -4
- data/docs/subcommands/ipfailover_remove.md +1 -4
- data/docs/subcommands/k8s_create.md +5 -11
- data/docs/subcommands/k8s_delete.md +1 -4
- data/docs/subcommands/k8s_list.md +1 -4
- data/docs/subcommands/kubeconfig_get.md +1 -4
- data/docs/subcommands/label_add.md +1 -4
- data/docs/subcommands/label_list.md +1 -4
- data/docs/subcommands/label_remove.md +0 -3
- data/docs/subcommands/lan_create.md +1 -4
- data/docs/subcommands/lan_delete.md +0 -3
- data/docs/subcommands/lan_list.md +1 -4
- data/docs/subcommands/loadbalancer_create.md +2 -5
- data/docs/subcommands/loadbalancer_delete.md +0 -3
- data/docs/subcommands/loadbalancer_get.md +1 -4
- data/docs/subcommands/loadbalancer_list.md +1 -4
- data/docs/subcommands/loadbalancer_nic_add.md +0 -3
- data/docs/subcommands/loadbalancer_nic_remove.md +0 -3
- data/docs/subcommands/location_list.md +1 -4
- data/docs/subcommands/nic_create.md +3 -6
- data/docs/subcommands/nic_delete.md +1 -4
- data/docs/subcommands/nic_list.md +1 -4
- data/docs/subcommands/node_delete.md +0 -3
- data/docs/subcommands/node_list.md +1 -4
- data/docs/subcommands/node_replace.md +0 -3
- data/docs/subcommands/nodepool_create.md +5 -17
- data/docs/subcommands/nodepool_delete.md +0 -3
- data/docs/subcommands/nodepool_list.md +1 -4
- data/docs/subcommands/pcc_create.md +1 -4
- data/docs/subcommands/pcc_delete.md +1 -4
- data/docs/subcommands/pcc_list.md +1 -4
- data/docs/subcommands/request_list.md +1 -4
- data/docs/subcommands/request_status.md +1 -4
- data/docs/subcommands/request_wait.md +1 -4
- data/docs/subcommands/resource_list.md +1 -4
- data/docs/subcommands/s3key_create.md +1 -4
- data/docs/subcommands/s3key_delete.md +0 -3
- data/docs/subcommands/s3key_list.md +1 -4
- data/docs/subcommands/server_create.md +1 -4
- data/docs/subcommands/server_delete.md +0 -3
- data/docs/subcommands/server_list.md +1 -4
- data/docs/subcommands/server_reboot.md +0 -3
- data/docs/subcommands/server_start.md +0 -3
- data/docs/subcommands/server_stop.md +0 -3
- data/docs/subcommands/share_create.md +2 -5
- data/docs/subcommands/share_delete.md +2 -5
- data/docs/subcommands/share_list.md +1 -4
- data/docs/subcommands/snapshot_create.md +1 -4
- data/docs/subcommands/snapshot_delete.md +1 -4
- data/docs/subcommands/snapshot_list.md +1 -4
- data/docs/subcommands/snapshot_restore.md +1 -4
- data/docs/subcommands/user_create.md +3 -12
- data/docs/subcommands/user_delete.md +1 -4
- data/docs/subcommands/user_list.md +1 -4
- data/docs/subcommands/user_ssourl.md +1 -4
- data/docs/subcommands/volume_attach.md +0 -3
- data/docs/subcommands/volume_create.md +1 -28
- data/docs/subcommands/volume_delete.md +0 -3
- data/docs/subcommands/volume_detach.md +0 -3
- data/docs/subcommands/volume_list.md +1 -4
- data/docs/summary.md +0 -33
- data/knife-ionoscloud.gemspec +1 -1
- data/lib/chef/knife/ionoscloud_backupunit_create.rb +16 -12
- data/lib/chef/knife/ionoscloud_backupunit_delete.rb +5 -3
- data/lib/chef/knife/ionoscloud_backupunit_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +1 -2
- data/lib/chef/knife/ionoscloud_base.rb +6 -259
- data/lib/chef/knife/ionoscloud_composite_server_create.rb +38 -9
- data/lib/chef/knife/ionoscloud_contract_list.rb +32 -24
- data/lib/chef/knife/ionoscloud_cube_server_create.rb +215 -0
- data/lib/chef/knife/ionoscloud_datacenter_create.rb +14 -12
- data/lib/chef/knife/ionoscloud_datacenter_delete.rb +8 -3
- data/lib/chef/knife/ionoscloud_datacenter_list.rb +3 -4
- data/lib/chef/knife/ionoscloud_firewall_create.rb +24 -7
- data/lib/chef/knife/ionoscloud_firewall_delete.rb +14 -6
- data/lib/chef/knife/ionoscloud_firewall_list.rb +5 -4
- data/lib/chef/knife/ionoscloud_flowlog_create.rb +121 -0
- data/lib/chef/knife/ionoscloud_flowlog_delete.rb +106 -0
- data/lib/chef/knife/ionoscloud_flowlog_list.rb +100 -0
- data/lib/chef/knife/ionoscloud_group_create.rb +46 -16
- data/lib/chef/knife/ionoscloud_group_delete.rb +18 -2
- data/lib/chef/knife/ionoscloud_group_get.rb +17 -2
- data/lib/chef/knife/ionoscloud_group_list.rb +7 -2
- data/lib/chef/knife/ionoscloud_group_user_add.rb +13 -2
- data/lib/chef/knife/ionoscloud_group_user_remove.rb +13 -2
- data/lib/chef/knife/ionoscloud_image_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_ipblock_create.rb +13 -11
- data/lib/chef/knife/ionoscloud_ipblock_delete.rb +4 -3
- data/lib/chef/knife/ionoscloud_ipblock_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_ipfailover_add.rb +15 -9
- data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +9 -3
- data/lib/chef/knife/ionoscloud_k8s_create.rb +30 -28
- data/lib/chef/knife/ionoscloud_k8s_delete.rb +9 -2
- data/lib/chef/knife/ionoscloud_k8s_list.rb +0 -1
- data/lib/chef/knife/ionoscloud_kubeconfig_get.rb +0 -1
- data/lib/chef/knife/ionoscloud_label_add.rb +1 -2
- data/lib/chef/knife/ionoscloud_label_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_label_remove.rb +1 -2
- data/lib/chef/knife/ionoscloud_lan_create.rb +14 -7
- data/lib/chef/knife/ionoscloud_lan_delete.rb +4 -4
- data/lib/chef/knife/ionoscloud_lan_list.rb +2 -5
- data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +16 -7
- data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +10 -3
- data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +13 -4
- data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +14 -5
- data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +14 -5
- data/lib/chef/knife/ionoscloud_location_list.rb +5 -4
- data/lib/chef/knife/ionoscloud_natgateway_create.rb +71 -0
- data/lib/chef/knife/ionoscloud_natgateway_delete.rb +69 -0
- data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +82 -0
- data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +58 -0
- data/lib/chef/knife/ionoscloud_natgateway_list.rb +49 -0
- data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +124 -0
- data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +63 -0
- data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +72 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +95 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +81 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +56 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +150 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +63 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +78 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +141 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +68 -0
- data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +105 -0
- data/lib/chef/knife/ionoscloud_nic_create.rb +38 -19
- data/lib/chef/knife/ionoscloud_nic_delete.rb +11 -5
- data/lib/chef/knife/ionoscloud_nic_list.rb +9 -6
- data/lib/chef/knife/ionoscloud_node_delete.rb +6 -2
- data/lib/chef/knife/ionoscloud_node_list.rb +0 -2
- data/lib/chef/knife/ionoscloud_node_replace.rb +0 -1
- data/lib/chef/knife/ionoscloud_nodepool_create.rb +60 -38
- data/lib/chef/knife/ionoscloud_nodepool_delete.rb +32 -2
- data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +130 -0
- data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +96 -0
- data/lib/chef/knife/ionoscloud_nodepool_list.rb +3 -2
- data/lib/chef/knife/ionoscloud_pcc_create.rb +18 -13
- data/lib/chef/knife/ionoscloud_pcc_delete.rb +10 -3
- data/lib/chef/knife/ionoscloud_pcc_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_request_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_request_status.rb +1 -2
- data/lib/chef/knife/ionoscloud_request_wait.rb +0 -1
- data/lib/chef/knife/ionoscloud_resource_list.rb +0 -1
- data/lib/chef/knife/ionoscloud_s3key_create.rb +7 -4
- data/lib/chef/knife/ionoscloud_s3key_delete.rb +7 -5
- data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -3
- data/lib/chef/knife/{ionoscloud_server_get.rb → ionoscloud_server_console.rb} +11 -10
- data/lib/chef/knife/ionoscloud_server_create.rb +26 -15
- data/lib/chef/knife/ionoscloud_server_delete.rb +10 -3
- data/lib/chef/knife/ionoscloud_server_list.rb +16 -6
- data/lib/chef/knife/ionoscloud_server_reboot.rb +1 -2
- data/lib/chef/knife/ionoscloud_server_resume.rb +43 -0
- data/lib/chef/knife/ionoscloud_server_start.rb +1 -2
- data/lib/chef/knife/ionoscloud_server_stop.rb +1 -2
- data/lib/chef/knife/ionoscloud_server_suspend.rb +44 -0
- data/lib/chef/knife/ionoscloud_server_token.rb +42 -0
- data/lib/chef/knife/ionoscloud_server_upgrade.rb +44 -0
- data/lib/chef/knife/ionoscloud_share_create.rb +12 -8
- data/lib/chef/knife/ionoscloud_share_delete.rb +4 -3
- data/lib/chef/knife/ionoscloud_share_list.rb +0 -1
- data/lib/chef/knife/ionoscloud_snapshot_create.rb +10 -3
- data/lib/chef/knife/ionoscloud_snapshot_delete.rb +7 -3
- data/lib/chef/knife/ionoscloud_snapshot_list.rb +1 -2
- data/lib/chef/knife/ionoscloud_snapshot_restore.rb +2 -3
- data/lib/chef/knife/ionoscloud_template_list.rb +46 -0
- data/lib/chef/knife/ionoscloud_user_create.rb +20 -25
- data/lib/chef/knife/ionoscloud_user_delete.rb +7 -2
- data/lib/chef/knife/ionoscloud_user_list.rb +0 -1
- data/lib/chef/knife/ionoscloud_user_ssourl.rb +1 -2
- data/lib/chef/knife/ionoscloud_volume_attach.rb +1 -2
- data/lib/chef/knife/ionoscloud_volume_create.rb +31 -57
- data/lib/chef/knife/ionoscloud_volume_delete.rb +9 -3
- data/lib/chef/knife/ionoscloud_volume_detach.rb +9 -3
- data/lib/chef/knife/ionoscloud_volume_list.rb +2 -3
- 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_list_spec.rb +1 -1
- data/spec/chef/knife/ionoscloud_backupunit_ssourl_spec.rb +3 -3
- 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 +3 -12
- data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +5 -8
- data/spec/chef/knife/ionoscloud_datacenter_list_spec.rb +4 -4
- 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_list_spec.rb +5 -3
- 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_list_spec.rb +264 -0
- data/spec/chef/knife/ionoscloud_group_create_spec.rb +6 -7
- data/spec/chef/knife/ionoscloud_group_delete_spec.rb +3 -0
- data/spec/chef/knife/ionoscloud_group_get_spec.rb +3 -0
- data/spec/chef/knife/ionoscloud_group_list_spec.rb +11 -2
- data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +0 -3
- data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +0 -3
- data/spec/chef/knife/ionoscloud_image_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_ipblock_delete_spec.rb +0 -2
- data/spec/chef/knife/ionoscloud_ipblock_list_spec.rb +1 -1
- data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +4 -5
- data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +7 -8
- data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +0 -8
- data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +1 -7
- 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 +3 -4
- data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +5 -7
- data/spec/chef/knife/ionoscloud_lan_list_spec.rb +3 -5
- 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_location_list_spec.rb +5 -3
- data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +77 -0
- data/spec/chef/knife/ionoscloud_natgateway_delete_spec.rb +118 -0
- data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +143 -0
- data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +194 -0
- data/spec/chef/knife/ionoscloud_natgateway_list_spec.rb +79 -0
- data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +98 -0
- data/spec/chef/knife/ionoscloud_natgateway_rule_list_spec.rb +92 -0
- data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +77 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +80 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +119 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_list_spec.rb +88 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +104 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_list_spec.rb +89 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +124 -0
- data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +109 -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 +263 -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_list_spec.rb +12 -6
- data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +20 -13
- data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +13 -27
- data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +226 -0
- data/spec/chef/knife/ionoscloud_nodepool_lan_remove.rb +199 -0
- data/spec/chef/knife/ionoscloud_nodepool_list_spec.rb +3 -1
- data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +8 -11
- data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +6 -6
- data/spec/chef/knife/ionoscloud_pcc_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_request_list_spec.rb +24 -25
- 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_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 +3 -3
- data/spec/chef/knife/ionoscloud_server_delete_spec.rb +5 -5
- 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_upgrade_spec.rb +96 -0
- data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +3 -16
- data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +5 -17
- data/spec/chef/knife/ionoscloud_snapshot_list_spec.rb +2 -2
- data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +3 -3
- data/spec/chef/knife/ionoscloud_template_list_spec.rb +78 -0
- data/spec/chef/knife/ionoscloud_user_create_spec.rb +1 -3
- data/spec/chef/knife/ionoscloud_user_delete_spec.rb +2 -4
- data/spec/chef/knife/ionoscloud_user_ssourl_spec.rb +3 -3
- data/spec/chef/knife/ionoscloud_volume_attach_spec.rb +4 -4
- data/spec/chef/knife/ionoscloud_volume_create_spec.rb +6 -15
- data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +5 -14
- data/spec/chef/knife/ionoscloud_volume_detach_spec.rb +5 -14
- data/spec/chef/knife/ionoscloud_volume_list_spec.rb +4 -4
- data/spec/spec_helper.rb +270 -116
- metadata +93 -138
- data/docs/subcommands/backupunit_get.md +0 -35
- data/docs/subcommands/backupunit_update.md +0 -41
- data/docs/subcommands/datacenter_get.md +0 -35
- data/docs/subcommands/datacenter_update.md +0 -44
- data/docs/subcommands/firewall_get.md +0 -47
- data/docs/subcommands/firewall_update.md +0 -71
- data/docs/subcommands/group_update.md +0 -65
- data/docs/subcommands/ipblock_get.md +0 -35
- data/docs/subcommands/ipblock_update.md +0 -38
- data/docs/subcommands/k8s_get.md +0 -35
- data/docs/subcommands/k8s_update.md +0 -53
- data/docs/subcommands/lan_get.md +0 -39
- data/docs/subcommands/lan_update.md +0 -51
- data/docs/subcommands/loadbalancer_update.md +0 -48
- data/docs/subcommands/nic_get.md +0 -43
- data/docs/subcommands/nic_update.md +0 -58
- data/docs/subcommands/node_get.md +0 -43
- data/docs/subcommands/nodepool_get.md +0 -39
- data/docs/subcommands/nodepool_update.md +0 -69
- data/docs/subcommands/pcc_get.md +0 -35
- data/docs/subcommands/pcc_update.md +0 -41
- data/docs/subcommands/request_get.md +0 -35
- data/docs/subcommands/s3key_get.md +0 -39
- data/docs/subcommands/server_get.md +0 -39
- data/docs/subcommands/server_update.md +0 -60
- data/docs/subcommands/share_get.md +0 -39
- data/docs/subcommands/share_update.md +0 -45
- data/docs/subcommands/snapshot_get.md +0 -35
- data/docs/subcommands/snapshot_update.md +0 -77
- data/docs/subcommands/user_get.md +0 -35
- data/docs/subcommands/user_update.md +0 -56
- data/docs/subcommands/volume_get.md +0 -39
- data/docs/subcommands/volume_update.md +0 -66
- data/lib/chef/knife/ionoscloud_backupunit_get.rb +0 -33
- data/lib/chef/knife/ionoscloud_backupunit_update.rb +0 -62
- data/lib/chef/knife/ionoscloud_datacenter_get.rb +0 -33
- data/lib/chef/knife/ionoscloud_datacenter_update.rb +0 -67
- data/lib/chef/knife/ionoscloud_firewall_get.rb +0 -50
- data/lib/chef/knife/ionoscloud_firewall_update.rb +0 -131
- data/lib/chef/knife/ionoscloud_group_update.rb +0 -114
- data/lib/chef/knife/ionoscloud_ipblock_get.rb +0 -33
- data/lib/chef/knife/ionoscloud_ipblock_update.rb +0 -57
- data/lib/chef/knife/ionoscloud_k8s_get.rb +0 -33
- data/lib/chef/knife/ionoscloud_k8s_update.rb +0 -99
- data/lib/chef/knife/ionoscloud_lan_get.rb +0 -38
- data/lib/chef/knife/ionoscloud_lan_update.rb +0 -87
- data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +0 -73
- data/lib/chef/knife/ionoscloud_nic_get.rb +0 -47
- data/lib/chef/knife/ionoscloud_nic_update.rb +0 -93
- data/lib/chef/knife/ionoscloud_node_get.rb +0 -47
- data/lib/chef/knife/ionoscloud_nodepool_get.rb +0 -41
- data/lib/chef/knife/ionoscloud_nodepool_update.rb +0 -124
- data/lib/chef/knife/ionoscloud_pcc_get.rb +0 -33
- data/lib/chef/knife/ionoscloud_pcc_update.rb +0 -63
- data/lib/chef/knife/ionoscloud_request_get.rb +0 -40
- data/lib/chef/knife/ionoscloud_s3key_get.rb +0 -38
- data/lib/chef/knife/ionoscloud_server_update.rb +0 -97
- data/lib/chef/knife/ionoscloud_share_get.rb +0 -38
- data/lib/chef/knife/ionoscloud_share_update.rb +0 -70
- data/lib/chef/knife/ionoscloud_snapshot_get.rb +0 -32
- data/lib/chef/knife/ionoscloud_snapshot_update.rb +0 -126
- data/lib/chef/knife/ionoscloud_user_get.rb +0 -32
- data/lib/chef/knife/ionoscloud_user_update.rb +0 -92
- data/lib/chef/knife/ionoscloud_volume_get.rb +0 -36
- data/lib/chef/knife/ionoscloud_volume_update.rb +0 -106
- data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +0 -65
- data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +0 -78
- data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +0 -69
- data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +0 -82
- data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +0 -76
- data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +0 -116
- data/spec/chef/knife/ionoscloud_group_update_spec.rb +0 -109
- data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +0 -66
- data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +0 -79
- data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +0 -73
- data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +0 -115
- data/spec/chef/knife/ionoscloud_lan_get_spec.rb +0 -68
- data/spec/chef/knife/ionoscloud_lan_update_spec.rb +0 -91
- data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +0 -89
- data/spec/chef/knife/ionoscloud_nic_get_spec.rb +0 -70
- data/spec/chef/knife/ionoscloud_nic_update_spec.rb +0 -92
- data/spec/chef/knife/ionoscloud_node_get_spec.rb +0 -70
- data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +0 -83
- data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +0 -130
- data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +0 -71
- data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +0 -83
- data/spec/chef/knife/ionoscloud_request_get_spec.rb +0 -69
- data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +0 -66
- data/spec/chef/knife/ionoscloud_server_get_spec.rb +0 -71
- data/spec/chef/knife/ionoscloud_server_update_spec.rb +0 -102
- data/spec/chef/knife/ionoscloud_share_get_spec.rb +0 -66
- data/spec/chef/knife/ionoscloud_share_update_spec.rb +0 -91
- data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +0 -79
- data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +0 -113
- data/spec/chef/knife/ionoscloud_user_get_spec.rb +0 -70
- data/spec/chef/knife/ionoscloud_user_update_spec.rb +0 -110
- data/spec/chef/knife/ionoscloud_volume_get_spec.rb +0 -80
- data/spec/chef/knife/ionoscloud_volume_update_spec.rb +0 -115
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudNetworkloadbalancerDelete < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud networkloadbalancer delete LOAD_BALANCER_ID [LOAD_BALANCER_ID] (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'Name of the data center'
|
|
14
|
+
|
|
15
|
+
attr_reader :description, :required_options
|
|
16
|
+
|
|
17
|
+
def initialize(args = [])
|
|
18
|
+
super(args)
|
|
19
|
+
@description =
|
|
20
|
+
'Removes the specified Network Load Balancer.'
|
|
21
|
+
@required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def run
|
|
25
|
+
$stdout.sync = true
|
|
26
|
+
validate_required_params(@required_options, config)
|
|
27
|
+
|
|
28
|
+
network_load_balancers_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
|
|
29
|
+
|
|
30
|
+
@name_args.each do |network_load_balancer_id|
|
|
31
|
+
begin
|
|
32
|
+
network_load_balancer = network_load_balancers_api.datacenters_networkloadbalancers_find_by_network_load_balancer_id(
|
|
33
|
+
config[:datacenter_id],
|
|
34
|
+
network_load_balancer_id,
|
|
35
|
+
{ depth: 1 },
|
|
36
|
+
)
|
|
37
|
+
rescue Ionoscloud::ApiError => err
|
|
38
|
+
raise err unless err.code == 404
|
|
39
|
+
ui.error("Network Load balancer ID #{network_load_balancer_id} not found. Skipping.")
|
|
40
|
+
next
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
msg_pair('ID', network_load_balancer.id)
|
|
44
|
+
msg_pair('Name', network_load_balancer.properties.name)
|
|
45
|
+
msg_pair('Listener LAN', network_load_balancer.properties.listener_lan)
|
|
46
|
+
msg_pair('IPS', network_load_balancer.properties.ips)
|
|
47
|
+
msg_pair('Target LAN', network_load_balancer.properties.target_lan)
|
|
48
|
+
msg_pair('Private IPS', network_load_balancer.properties.lb_private_ips)
|
|
49
|
+
msg_pair('Forwarding Rules', network_load_balancer.entities.forwardingrules.items.map do |rule|
|
|
50
|
+
{
|
|
51
|
+
id: rule.id,
|
|
52
|
+
name: rule.properties.name,
|
|
53
|
+
algorithm: rule.properties.algorithm,
|
|
54
|
+
protocol: rule.properties.protocol,
|
|
55
|
+
listener_ip: rule.properties.listener_ip,
|
|
56
|
+
listener_port: rule.properties.listener_port,
|
|
57
|
+
health_check: rule.properties.health_check,
|
|
58
|
+
targets: rule.properties.targets,
|
|
59
|
+
}
|
|
60
|
+
end
|
|
61
|
+
)
|
|
62
|
+
# msg_pair('Flowlogs', network_load_balancer.entities.flowlogs.items.map { |flowlog| flowlog.id })
|
|
63
|
+
|
|
64
|
+
puts "\n"
|
|
65
|
+
|
|
66
|
+
begin
|
|
67
|
+
confirm('Do you really want to delete this Network Load balancer')
|
|
68
|
+
rescue SystemExit => exc
|
|
69
|
+
next
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
_, _, headers = network_load_balancers_api.datacenters_networkloadbalancers_delete_with_http_info(
|
|
73
|
+
config[:datacenter_id],
|
|
74
|
+
network_load_balancer_id,
|
|
75
|
+
)
|
|
76
|
+
ui.warn("Deleted Network Load balancer #{network_load_balancer.id}. Request ID: #{get_request_id headers}")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudNetworkloadbalancerList < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud networkloadbalancer list (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'Name of the data center'
|
|
14
|
+
|
|
15
|
+
attr_reader :description, :required_options
|
|
16
|
+
|
|
17
|
+
def initialize(args = [])
|
|
18
|
+
super(args)
|
|
19
|
+
@description =
|
|
20
|
+
'Retrieve a list of Network Load Balancers within the datacenter.'
|
|
21
|
+
@required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def run
|
|
25
|
+
$stdout.sync = true
|
|
26
|
+
validate_required_params(@required_options, config)
|
|
27
|
+
|
|
28
|
+
network_load_balancers_list = [
|
|
29
|
+
ui.color('ID', :bold),
|
|
30
|
+
ui.color('Name', :bold),
|
|
31
|
+
ui.color('Listener LAN', :bold),
|
|
32
|
+
ui.color('Target LAN', :bold),
|
|
33
|
+
ui.color('Rules', :bold),
|
|
34
|
+
ui.color('Flowlogs', :bold),
|
|
35
|
+
ui.color('IPS', :bold),
|
|
36
|
+
ui.color('Private IPS', :bold),
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
network_load_balancers_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
|
|
40
|
+
|
|
41
|
+
network_load_balancers_api.datacenters_networkloadbalancers_get(config[:datacenter_id], { depth: 2 }).items.each do |network_load_balancer|
|
|
42
|
+
network_load_balancers_list << network_load_balancer.id
|
|
43
|
+
network_load_balancers_list << network_load_balancer.properties.name
|
|
44
|
+
network_load_balancers_list << network_load_balancer.properties.listener_lan
|
|
45
|
+
network_load_balancers_list << network_load_balancer.properties.target_lan
|
|
46
|
+
network_load_balancers_list << network_load_balancer.entities.forwardingrules.items.length
|
|
47
|
+
network_load_balancers_list << network_load_balancer.entities.flowlogs.items.length
|
|
48
|
+
network_load_balancers_list << network_load_balancer.properties.ips
|
|
49
|
+
network_load_balancers_list << network_load_balancer.properties.lb_private_ips
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
puts ui.list(network_load_balancers_list, :uneven_columns_across, 8)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudNetworkloadbalancerRuleAdd < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud networkloadbalancer rule add (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'Name of the data center'
|
|
14
|
+
|
|
15
|
+
option :network_loadbalancer_id,
|
|
16
|
+
short: '-L NETWORK_LOADBALANCER_ID',
|
|
17
|
+
long: '--network-loadbalancer NETWORK_LOADBALANCER_ID',
|
|
18
|
+
description: 'ID of the Network Loadbalancer'
|
|
19
|
+
|
|
20
|
+
option :name,
|
|
21
|
+
short: '-n NAME',
|
|
22
|
+
long: '--name NAME',
|
|
23
|
+
description: 'A name of that Network Load Balancer forwarding rule'
|
|
24
|
+
|
|
25
|
+
option :algorithm,
|
|
26
|
+
short: '-a ALGORITHM',
|
|
27
|
+
long: '--algorithm ALGORITHM',
|
|
28
|
+
description: 'Algorithm for the balancing',
|
|
29
|
+
default: 'ROUND_ROBIN'
|
|
30
|
+
|
|
31
|
+
option :protocol,
|
|
32
|
+
long: '--protocol PROTOCOL',
|
|
33
|
+
description: 'Protocol of the balancing',
|
|
34
|
+
default: 'TCP'
|
|
35
|
+
|
|
36
|
+
option :listener_ip,
|
|
37
|
+
short: '-i LISTENER_IP',
|
|
38
|
+
long: '--ip LISTENER_IP',
|
|
39
|
+
description: 'Listening IP. (inbound)'
|
|
40
|
+
|
|
41
|
+
option :listener_port,
|
|
42
|
+
short: '-p LISTENER_PORT',
|
|
43
|
+
long: '--port LISTENER_PORT',
|
|
44
|
+
description: 'Listening port number. (inbound) (range: 1 to 65535)'
|
|
45
|
+
|
|
46
|
+
option :client_timeout,
|
|
47
|
+
long: '--client-timeout CLIENT_TIMEOUT',
|
|
48
|
+
description: 'ClientTimeout is expressed in milliseconds. This inactivity timeout applies when '\
|
|
49
|
+
'the client is expected to acknowledge or send data. If unset the default of 50 seconds will be used.',
|
|
50
|
+
default: 50
|
|
51
|
+
|
|
52
|
+
option :check_timeout,
|
|
53
|
+
long: '--check-timeout CLIENT_TIMEOUT',
|
|
54
|
+
description: 'It specifies the time (in milliseconds) for a target VM in this pool to answer the check. '\
|
|
55
|
+
'If a target VM has CheckInterval set and CheckTimeout is set too, then the smaller value of the two is '\
|
|
56
|
+
'used after the TCP connection is established.',
|
|
57
|
+
default: 2000
|
|
58
|
+
|
|
59
|
+
option :connect_timeout,
|
|
60
|
+
long: '--connect-timeout CONNECT_TIMEOUT',
|
|
61
|
+
description: 'It specifies the maximum time (in milliseconds) to wait for a connection attempt to a '\
|
|
62
|
+
'target VM to succeed. If unset, the default of 5 seconds will be used.',
|
|
63
|
+
default: 5000
|
|
64
|
+
|
|
65
|
+
option :target_timeout,
|
|
66
|
+
long: '--terget-timeout TARGET_TIMEOUT',
|
|
67
|
+
description: 'TargetTimeout specifies the maximum inactivity time (in milliseconds) on the target VM side. '\
|
|
68
|
+
'If unset, the default of 50 seconds will be used.',
|
|
69
|
+
default: 50000
|
|
70
|
+
|
|
71
|
+
option :retries,
|
|
72
|
+
short: '-r RETRIES',
|
|
73
|
+
long: '--retries RETRIES',
|
|
74
|
+
description: 'Retries specifies the number of retries to perform on a target VM after a connection failure. '\
|
|
75
|
+
'If unset, the default value of 3 will be used. (valid range: [0, 65535])',
|
|
76
|
+
default: 3
|
|
77
|
+
|
|
78
|
+
attr_reader :description, :required_options
|
|
79
|
+
|
|
80
|
+
def initialize(args = [])
|
|
81
|
+
super(args)
|
|
82
|
+
@description =
|
|
83
|
+
'Adds a Forwarding Rule to a Network Load Balancer under a data center.'
|
|
84
|
+
@required_options = [:datacenter_id, :network_loadbalancer_id, :name, :listener_ip, :listener_port, :ionoscloud_username, :ionoscloud_password]
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def run
|
|
88
|
+
$stdout.sync = true
|
|
89
|
+
validate_required_params(@required_options, config)
|
|
90
|
+
|
|
91
|
+
network_loadbalancers_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
|
|
92
|
+
|
|
93
|
+
if config[:gateway_ips]
|
|
94
|
+
config[:gateway_ips] = config[:gateway_ips].split(',')
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
network_loadbalancer_forwarding_rule = Ionoscloud::NetworkLoadBalancerForwardingRule.new(
|
|
98
|
+
properties: Ionoscloud::NetworkLoadBalancerForwardingRuleProperties.new(
|
|
99
|
+
name: config[:name],
|
|
100
|
+
algorithm: config[:algorithm],
|
|
101
|
+
protocol: config[:protocol],
|
|
102
|
+
listener_ip: config[:listener_ip],
|
|
103
|
+
listener_port: config[:listener_port],
|
|
104
|
+
health_check: Ionoscloud::NetworkLoadBalancerForwardingRuleHealthCheck.new(
|
|
105
|
+
client_timeout: config[:client_timeout],
|
|
106
|
+
check_timeout: config[:check_timeout],
|
|
107
|
+
connect_timeout: config[:connect_timeout],
|
|
108
|
+
target_timeout: config[:target_timeout],
|
|
109
|
+
retries: config[:retries],
|
|
110
|
+
),
|
|
111
|
+
),
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
_, _, headers = network_loadbalancers_api.datacenters_networkloadbalancers_forwardingrules_post_with_http_info(
|
|
115
|
+
config[:datacenter_id], config[:network_loadbalancer_id], network_loadbalancer_forwarding_rule,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
print "#{ui.color('Adding the rule to the Network Loadbalancer...', :magenta)}"
|
|
119
|
+
dot = ui.color('.', :magenta)
|
|
120
|
+
api_client.wait_for { print dot; is_done? get_request_id headers }
|
|
121
|
+
|
|
122
|
+
network_load_balancer = network_loadbalancers_api.datacenters_networkloadbalancers_find_by_network_load_balancer_id(
|
|
123
|
+
config[:datacenter_id], config[:network_loadbalancer_id], depth: 2,
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
puts "\n"
|
|
127
|
+
puts "#{ui.color('ID', :cyan)}: #{network_load_balancer.id}"
|
|
128
|
+
puts "#{ui.color('Name', :cyan)}: #{network_load_balancer.properties.name}"
|
|
129
|
+
puts "#{ui.color('Listener LAN', :cyan)}: #{network_load_balancer.properties.listener_lan}"
|
|
130
|
+
puts "#{ui.color('IPS', :cyan)}: #{network_load_balancer.properties.ips}"
|
|
131
|
+
puts "#{ui.color('Target LAN', :cyan)}: #{network_load_balancer.properties.target_lan}"
|
|
132
|
+
puts "#{ui.color('Private IPS', :cyan)}: #{network_load_balancer.properties.lb_private_ips}"
|
|
133
|
+
puts "#{ui.color('Forwarding Rules', :cyan)}: #{network_load_balancer.entities.forwardingrules.items.map do |rule|
|
|
134
|
+
{
|
|
135
|
+
id: rule.id,
|
|
136
|
+
name: rule.properties.name,
|
|
137
|
+
algorithm: rule.properties.algorithm,
|
|
138
|
+
protocol: rule.properties.protocol,
|
|
139
|
+
listener_ip: rule.properties.listener_ip,
|
|
140
|
+
listener_port: rule.properties.listener_port,
|
|
141
|
+
health_check: rule.properties.health_check,
|
|
142
|
+
targets: rule.properties.targets,
|
|
143
|
+
}
|
|
144
|
+
end}"
|
|
145
|
+
puts "#{ui.color('Flowlogs', :cyan)}: #{network_load_balancer.entities.flowlogs.items.map { |flowlog| flowlog.id }}"
|
|
146
|
+
puts 'done'
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudNetworkloadbalancerRuleList < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud networkloadbalancer rule list (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'The ID of the data center'
|
|
14
|
+
|
|
15
|
+
option :network_loadbalancer_id,
|
|
16
|
+
short: '-L NETWORK_LOADBALANCER_ID',
|
|
17
|
+
long: '--network-loadbalancer NETWORK_LOADBALANCER_ID',
|
|
18
|
+
description: 'ID of the Network Loadbalancer'
|
|
19
|
+
|
|
20
|
+
attr_reader :description, :required_options
|
|
21
|
+
|
|
22
|
+
def initialize(args = [])
|
|
23
|
+
super(args)
|
|
24
|
+
@description =
|
|
25
|
+
'Lists all available rules in a Network Loadbalancer under a data center.'
|
|
26
|
+
@required_options = [:datacenter_id, :network_loadbalancer_id, :ionoscloud_username, :ionoscloud_password]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def run
|
|
30
|
+
$stdout.sync = true
|
|
31
|
+
validate_required_params(@required_options, config)
|
|
32
|
+
|
|
33
|
+
$stdout.sync = true
|
|
34
|
+
network_loadbalancer_rule_list = [
|
|
35
|
+
ui.color('ID', :bold),
|
|
36
|
+
ui.color('Name', :bold),
|
|
37
|
+
ui.color('Algorithm', :bold),
|
|
38
|
+
ui.color('Protocol', :bold),
|
|
39
|
+
ui.color('Listener IP', :bold),
|
|
40
|
+
ui.color('Listener Port', :bold),
|
|
41
|
+
ui.color('Targets', :bold),
|
|
42
|
+
ui.color('Health Check', :bold),
|
|
43
|
+
]
|
|
44
|
+
network_loadbalancers_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
|
|
45
|
+
|
|
46
|
+
network_loadbalancers_api.datacenters_networkloadbalancers_forwardingrules_get(
|
|
47
|
+
config[:datacenter_id], config[:network_loadbalancer_id], depth: 1,
|
|
48
|
+
).items.each do |network_loadbalancer_rule|
|
|
49
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.id
|
|
50
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.properties.name
|
|
51
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.properties.algorithm
|
|
52
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.properties.protocol
|
|
53
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.properties.listener_ip
|
|
54
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.properties.listener_port
|
|
55
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.properties.targets.length
|
|
56
|
+
network_loadbalancer_rule_list << network_loadbalancer_rule.properties.health_check
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
puts ui.list(network_loadbalancer_rule_list, :uneven_columns_across, 8)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudNetworkloadbalancerRuleRemove < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud networkloadbalancer rule remove RULE_ID [RULE_ID] (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'The ID of the data center'
|
|
14
|
+
|
|
15
|
+
option :network_loadbalancer_id,
|
|
16
|
+
short: '-L NETWORK_LOADBALANCER_ID',
|
|
17
|
+
long: '--network-loadbalancer NETWORK_LOADBALANCER_ID',
|
|
18
|
+
description: 'ID of the Network Loadbalancer'
|
|
19
|
+
|
|
20
|
+
attr_reader :description, :required_options
|
|
21
|
+
|
|
22
|
+
def initialize(args = [])
|
|
23
|
+
super(args)
|
|
24
|
+
@description =
|
|
25
|
+
'Removes the specified rules from a Network Loadbalancer under a data center.'
|
|
26
|
+
@required_options = [:datacenter_id, :network_loadbalancer_id, :ionoscloud_username, :ionoscloud_password]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def run
|
|
30
|
+
$stdout.sync = true
|
|
31
|
+
validate_required_params(@required_options, config)
|
|
32
|
+
|
|
33
|
+
return unless @name_args.length > 0
|
|
34
|
+
|
|
35
|
+
network_loadbalancers_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
|
|
36
|
+
|
|
37
|
+
headers_to_wait = []
|
|
38
|
+
@name_args.each do |rule_id|
|
|
39
|
+
_, _, headers = network_loadbalancers_api.datacenters_networkloadbalancers_forwardingrules_delete_with_http_info(
|
|
40
|
+
config[:datacenter_id], config[:network_loadbalancer_id], rule_id,
|
|
41
|
+
)
|
|
42
|
+
headers_to_wait << headers
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
print "#{ui.color("Removing rules #{@name_args} from the NAT Gateway...", :magenta)}"
|
|
46
|
+
dot = ui.color('.', :magenta)
|
|
47
|
+
|
|
48
|
+
headers_to_wait.each { |headers| api_client.wait_for { print dot; is_done? get_request_id headers } }
|
|
49
|
+
|
|
50
|
+
network_load_balancer = network_loadbalancers_api.datacenters_networkloadbalancers_find_by_network_load_balancer_id(
|
|
51
|
+
config[:datacenter_id], config[:network_loadbalancer_id], depth: 2,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
puts "\n"
|
|
55
|
+
puts "#{ui.color('ID', :cyan)}: #{network_load_balancer.id}"
|
|
56
|
+
puts "#{ui.color('Name', :cyan)}: #{network_load_balancer.properties.name}"
|
|
57
|
+
puts "#{ui.color('Listener LAN', :cyan)}: #{network_load_balancer.properties.listener_lan}"
|
|
58
|
+
puts "#{ui.color('IPS', :cyan)}: #{network_load_balancer.properties.ips}"
|
|
59
|
+
puts "#{ui.color('Target LAN', :cyan)}: #{network_load_balancer.properties.target_lan}"
|
|
60
|
+
puts "#{ui.color('Private IPS', :cyan)}: #{network_load_balancer.properties.lb_private_ips}"
|
|
61
|
+
puts "#{ui.color('Forwarding Rules', :cyan)}: #{network_load_balancer.entities.forwardingrules.items.map do |rule|
|
|
62
|
+
{
|
|
63
|
+
id: rule.id,
|
|
64
|
+
name: rule.properties.name,
|
|
65
|
+
algorithm: rule.properties.algorithm,
|
|
66
|
+
protocol: rule.properties.protocol,
|
|
67
|
+
listener_ip: rule.properties.listener_ip,
|
|
68
|
+
listener_port: rule.properties.listener_port,
|
|
69
|
+
health_check: rule.properties.health_check,
|
|
70
|
+
targets: rule.properties.targets,
|
|
71
|
+
}
|
|
72
|
+
end}"
|
|
73
|
+
puts "#{ui.color('Flowlogs', :cyan)}: #{network_load_balancer.entities.flowlogs.items.map { |flowlog| flowlog.id }}"
|
|
74
|
+
puts 'done'
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudNetworkloadbalancerRuleTargetAdd < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud networkloadbalancer rule target add (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'Name of the data center'
|
|
14
|
+
|
|
15
|
+
option :network_loadbalancer_id,
|
|
16
|
+
short: '-L NETWORK_LOADBALANCER_ID',
|
|
17
|
+
long: '--network-loadbalancer NETWORK_LOADBALANCER_ID',
|
|
18
|
+
description: 'ID of the Network Loadbalancer'
|
|
19
|
+
|
|
20
|
+
option :forwarding_rule_id,
|
|
21
|
+
short: '-R FORWARDING_RULE_ID',
|
|
22
|
+
long: '--forwarding-rule FORWARDING_RULE_ID',
|
|
23
|
+
description: 'ID of the Network Loadbalancer Forwarding Rule'
|
|
24
|
+
|
|
25
|
+
option :ip,
|
|
26
|
+
short: '-i IP',
|
|
27
|
+
long: '--ip IP',
|
|
28
|
+
description: 'IP of a balanced target VM'
|
|
29
|
+
|
|
30
|
+
option :port,
|
|
31
|
+
short: '-p PORT',
|
|
32
|
+
long: '--port PORT',
|
|
33
|
+
description: 'Port of the balanced target service. (range: 1 to 65535)'
|
|
34
|
+
|
|
35
|
+
option :weight,
|
|
36
|
+
short: '-w WEIGTH',
|
|
37
|
+
long: '--weight WEIGTH',
|
|
38
|
+
description: 'Weight parameter is used to adjust the target VM\'s weight relative to other target VMs. '\
|
|
39
|
+
'All target VMs will receive a load proportional to their weight relative to the sum of all weights, so '\
|
|
40
|
+
'the higher the weight, the higher the load. The default weight is 1, and the maximal value is 256. A '\
|
|
41
|
+
'value of 0 means the target VM will not participate in load-balancing but will still accept persistent '\
|
|
42
|
+
'connections. If this parameter is used to distribute the load according to target VM\'s capacity, it is '\
|
|
43
|
+
'recommended to start with values which can both grow and shrink, for instance between 10 and 100 to leave '\
|
|
44
|
+
'enough room above and below for later adjustments.'
|
|
45
|
+
|
|
46
|
+
option :check,
|
|
47
|
+
short: '-c',
|
|
48
|
+
long: '--check',
|
|
49
|
+
description: 'Check specifies whether the target VM\'s health is checked. If turned off, a target VM is '\
|
|
50
|
+
'always considered available. If turned on, the target VM is available when accepting periodic TCP connections, '\
|
|
51
|
+
'to ensure that it is really able to serve requests. The address and port to send the tests to are those of the '\
|
|
52
|
+
'target VM. The health check only consists of a connection attempt.',
|
|
53
|
+
boolean: true
|
|
54
|
+
|
|
55
|
+
option :check_interval,
|
|
56
|
+
long: '--check-interval CHECK_INTERVAL',
|
|
57
|
+
description: 'CheckInterval determines the duration (in milliseconds) between consecutive health checks. '\
|
|
58
|
+
'If unspecified a default of 2000 ms is used.',
|
|
59
|
+
default: 2000
|
|
60
|
+
|
|
61
|
+
option :maintenance,
|
|
62
|
+
short: '-m',
|
|
63
|
+
long: '--maintenance MAINTENANCE',
|
|
64
|
+
description: 'Maintenance specifies if a target VM should be marked as down, even if it is not.',
|
|
65
|
+
boolean: true
|
|
66
|
+
|
|
67
|
+
attr_reader :description, :required_options
|
|
68
|
+
|
|
69
|
+
def initialize(args = [])
|
|
70
|
+
super(args)
|
|
71
|
+
@description =
|
|
72
|
+
'Adds a target to a Network Load Balancer Forwarding Rule under a data center.'
|
|
73
|
+
@required_options = [
|
|
74
|
+
:datacenter_id, :network_loadbalancer_id, :forwarding_rule_id, :ip, :port, :weight, :ionoscloud_username, :ionoscloud_password,
|
|
75
|
+
]
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def run
|
|
79
|
+
$stdout.sync = true
|
|
80
|
+
validate_required_params(@required_options, config)
|
|
81
|
+
|
|
82
|
+
network_loadbalancers_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
network_load_balancer_rule = network_loadbalancers_api.datacenters_networkloadbalancers_forwardingrules_find_by_forwarding_rule_id(
|
|
86
|
+
config[:datacenter_id], config[:network_loadbalancer_id], config[:forwarding_rule_id],
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
network_loadbalancer_forwarding_rule_target = Ionoscloud::NetworkLoadBalancerForwardingRuleTarget.new(
|
|
90
|
+
ip: config[:ip],
|
|
91
|
+
port: config[:port],
|
|
92
|
+
weight: config[:weight],
|
|
93
|
+
health_check: Ionoscloud::NetworkLoadBalancerForwardingRuleTargetHealthCheck.new(
|
|
94
|
+
check: config[:check],
|
|
95
|
+
check_interval: config[:check_interval],
|
|
96
|
+
maintenance: config[:maintenance],
|
|
97
|
+
),
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
network_load_balancer_rule.properties.targets << network_loadbalancer_forwarding_rule_target
|
|
101
|
+
|
|
102
|
+
_, _, headers = network_loadbalancers_api.datacenters_networkloadbalancers_forwardingrules_patch_with_http_info(
|
|
103
|
+
config[:datacenter_id],
|
|
104
|
+
config[:network_loadbalancer_id],
|
|
105
|
+
config[:forwarding_rule_id],
|
|
106
|
+
Ionoscloud::NetworkLoadBalancerForwardingRuleProperties.new({
|
|
107
|
+
targets: network_load_balancer_rule.properties.targets,
|
|
108
|
+
}),
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
print "#{ui.color('Adding the target to the Network Loadbalancer Forwarding Rule...', :magenta)}"
|
|
112
|
+
dot = ui.color('.', :magenta)
|
|
113
|
+
api_client.wait_for { print dot; is_done? get_request_id headers }
|
|
114
|
+
|
|
115
|
+
network_load_balancer_rule = network_loadbalancers_api.datacenters_networkloadbalancers_forwardingrules_find_by_forwarding_rule_id(
|
|
116
|
+
config[:datacenter_id], config[:network_loadbalancer_id], config[:forwarding_rule_id], depth: 2,
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
puts "\n"
|
|
120
|
+
puts "#{ui.color('ID', :cyan)}: #{network_load_balancer_rule.id}"
|
|
121
|
+
puts "#{ui.color('Name', :cyan)}: #{network_load_balancer_rule.properties.name}"
|
|
122
|
+
puts "#{ui.color('Algorithm', :cyan)}: #{network_load_balancer_rule.properties.algorithm}"
|
|
123
|
+
puts "#{ui.color('Protocol', :cyan)}: #{network_load_balancer_rule.properties.protocol}"
|
|
124
|
+
puts "#{ui.color('Listener IP', :cyan)}: #{network_load_balancer_rule.properties.listener_ip}"
|
|
125
|
+
puts "#{ui.color('Listener Port', :cyan)}: #{network_load_balancer_rule.properties.listener_port}"
|
|
126
|
+
puts "#{ui.color('Health Check', :cyan)}: #{network_load_balancer_rule.properties.health_check}"
|
|
127
|
+
puts "#{ui.color('Targets', :cyan)}: #{network_load_balancer_rule.properties.targets.map do |target|
|
|
128
|
+
{
|
|
129
|
+
ip: target.ip,
|
|
130
|
+
port: target.port,
|
|
131
|
+
weight: target.weight,
|
|
132
|
+
check: target.health_check.check,
|
|
133
|
+
check_interval: target.health_check.check_interval,
|
|
134
|
+
maintenance: target.health_check.maintenance,
|
|
135
|
+
}
|
|
136
|
+
end}"
|
|
137
|
+
puts 'done'
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudNetworkloadbalancerRuleTargetList < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud networkloadbalancer rule target list (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'The ID of the data center'
|
|
14
|
+
|
|
15
|
+
option :network_loadbalancer_id,
|
|
16
|
+
short: '-L NETWORK_LOADBALANCER_ID',
|
|
17
|
+
long: '--network-loadbalancer NETWORK_LOADBALANCER_ID',
|
|
18
|
+
description: 'ID of the Network Loadbalancer'
|
|
19
|
+
|
|
20
|
+
option :forwarding_rule_id,
|
|
21
|
+
short: '-R FORWARDING_RULE_ID',
|
|
22
|
+
long: '--forwarding-rule FORWARDING_RULE_ID',
|
|
23
|
+
description: 'ID of the Network Loadbalancer Forwarding Rule'
|
|
24
|
+
|
|
25
|
+
attr_reader :description, :required_options
|
|
26
|
+
|
|
27
|
+
def initialize(args = [])
|
|
28
|
+
super(args)
|
|
29
|
+
@description =
|
|
30
|
+
'Lists all targets of a Network Loadbalancer Forwarding Rule under a data center.'
|
|
31
|
+
@required_options = [
|
|
32
|
+
:datacenter_id, :network_loadbalancer_id, :forwarding_rule_id, :ionoscloud_username, :ionoscloud_password,
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def run
|
|
37
|
+
$stdout.sync = true
|
|
38
|
+
validate_required_params(@required_options, config)
|
|
39
|
+
|
|
40
|
+
$stdout.sync = true
|
|
41
|
+
target_list = [
|
|
42
|
+
ui.color('IP', :bold),
|
|
43
|
+
ui.color('Port', :bold),
|
|
44
|
+
ui.color('Weight', :bold),
|
|
45
|
+
ui.color('Check', :bold),
|
|
46
|
+
ui.color('Check interval', :bold),
|
|
47
|
+
ui.color('Maintenance', :bold),
|
|
48
|
+
]
|
|
49
|
+
network_loadbalancers_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
|
|
50
|
+
|
|
51
|
+
network_load_balancer_rule = network_loadbalancers_api.datacenters_networkloadbalancers_forwardingrules_find_by_forwarding_rule_id(
|
|
52
|
+
config[:datacenter_id], config[:network_loadbalancer_id], config[:forwarding_rule_id],
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
network_load_balancer_rule.properties.targets.each do |target|
|
|
56
|
+
target_list << target.ip
|
|
57
|
+
target_list << target.port
|
|
58
|
+
target_list << target.weight
|
|
59
|
+
target_list << target.health_check.check
|
|
60
|
+
target_list << target.health_check.check_interval
|
|
61
|
+
target_list << target.health_check.maintenance
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
puts ui.list(target_list, :uneven_columns_across, 6)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|