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
|
@@ -87,6 +87,20 @@ class Chef
|
|
|
87
87
|
long: '--ssh-keys SSHKEY1,SSHKEY2,...',
|
|
88
88
|
description: 'A list of public SSH keys to include'
|
|
89
89
|
|
|
90
|
+
option :backupunit_id,
|
|
91
|
+
short: '-B BACKUPUNIT_ID',
|
|
92
|
+
long: '--backupunit BACKUPUNIT_ID',
|
|
93
|
+
description: 'The uuid of the Backup Unit that user has access to. The property is immutable and is only allowed '\
|
|
94
|
+
'to be set on a new volume creation. It is mandatory to provide either \'public image\' or \'imageAlias\' in '\
|
|
95
|
+
'conjunction with this property.'
|
|
96
|
+
|
|
97
|
+
option :user_data,
|
|
98
|
+
short: '-u USER_DATA',
|
|
99
|
+
long: '--user-data USER_DATA',
|
|
100
|
+
description: 'The cloud-init configuration for the volume as base64 encoded string. The property is '\
|
|
101
|
+
'immutable and is only allowed to be set on a new volume creation. It is mandatory to provide either \'public image\' '\
|
|
102
|
+
'or \'imageAlias\' that has cloud-init compatibility in conjunction with this property.'
|
|
103
|
+
|
|
90
104
|
option :nic_name,
|
|
91
105
|
long: '--nic-name NAME',
|
|
92
106
|
description: 'Name of the NIC'
|
|
@@ -108,9 +122,11 @@ class Chef
|
|
|
108
122
|
long: '--lan ID',
|
|
109
123
|
description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created'
|
|
110
124
|
|
|
111
|
-
option :
|
|
112
|
-
long: '--
|
|
113
|
-
description: '
|
|
125
|
+
option :firewall_type,
|
|
126
|
+
long: '--firewall-type FIREWALL_TYPE',
|
|
127
|
+
description: 'The type of firewall rules that will be allowed on the NIC. If it is not specified it will take the '\
|
|
128
|
+
'default value INGRESS',
|
|
129
|
+
default: 'INGRESS'
|
|
114
130
|
|
|
115
131
|
attr_reader :description, :required_options
|
|
116
132
|
|
|
@@ -125,11 +141,10 @@ class Chef
|
|
|
125
141
|
|
|
126
142
|
def run
|
|
127
143
|
$stdout.sync = true
|
|
128
|
-
handle_extra_config
|
|
129
144
|
validate_required_params(@required_options, config)
|
|
130
145
|
|
|
131
|
-
config[:ssh_keys] = config[:ssh_keys].split(',') if config[:ssh_keys]
|
|
132
|
-
config[:ips] = config[:ips].split(',') if config[:ips]
|
|
146
|
+
config[:ssh_keys] = config[:ssh_keys].split(',') if config[:ssh_keys]
|
|
147
|
+
config[:ips] = config[:ips].split(',') if config[:ips]
|
|
133
148
|
|
|
134
149
|
print ui.color('Creating composite server...', :magenta).to_s
|
|
135
150
|
|
|
@@ -145,6 +160,8 @@ class Chef
|
|
|
145
160
|
type: config[:type],
|
|
146
161
|
licence_type: config[:licence_type],
|
|
147
162
|
availability_zone: config[:volume_availability_zone],
|
|
163
|
+
backupunit_id: config[:backupunit_id],
|
|
164
|
+
user_data: config[:user_data],
|
|
148
165
|
}.compact)
|
|
149
166
|
)
|
|
150
167
|
|
|
@@ -154,7 +171,7 @@ class Chef
|
|
|
154
171
|
ips: config[:ips],
|
|
155
172
|
dhcp: config[:dhcp],
|
|
156
173
|
lan: config[:lan],
|
|
157
|
-
|
|
174
|
+
firewall_type: config[:firewall_type],
|
|
158
175
|
}.compact)
|
|
159
176
|
)
|
|
160
177
|
|
|
@@ -176,14 +193,26 @@ class Chef
|
|
|
176
193
|
),
|
|
177
194
|
)
|
|
178
195
|
|
|
179
|
-
server_api = Ionoscloud::
|
|
196
|
+
server_api = Ionoscloud::ServersApi.new(api_client)
|
|
180
197
|
|
|
181
198
|
server, _, headers = server_api.datacenters_servers_post_with_http_info(config[:datacenter_id], server)
|
|
182
199
|
|
|
183
200
|
dot = ui.color('.', :magenta)
|
|
184
201
|
api_client.wait_for { print dot; is_done? get_request_id headers }
|
|
185
202
|
|
|
186
|
-
|
|
203
|
+
server = server_api.datacenters_servers_find_by_id(config[:datacenter_id], server.id)
|
|
204
|
+
|
|
205
|
+
puts "\n"
|
|
206
|
+
puts "#{ui.color('ID', :cyan)}: #{server.id}"
|
|
207
|
+
puts "#{ui.color('Name', :cyan)}: #{server.properties.name}"
|
|
208
|
+
puts "#{ui.color('Cores', :cyan)}: #{server.properties.cores}"
|
|
209
|
+
puts "#{ui.color('CPU Family', :cyan)}: #{server.properties.cpu_family}"
|
|
210
|
+
puts "#{ui.color('Ram', :cyan)}: #{server.properties.ram}"
|
|
211
|
+
puts "#{ui.color('Availability Zone', :cyan)}: #{server.properties.availability_zone}"
|
|
212
|
+
puts "#{ui.color('Boot Volume', :cyan)}: #{server.properties.boot_volume ? server.properties.boot_volume.id : ''}"
|
|
213
|
+
puts "#{ui.color('Boot CDROM', :cyan)}: #{server.properties.boot_cdrom ? server.properties.boot_cdrom.id : ''}"
|
|
214
|
+
|
|
215
|
+
puts 'done'
|
|
187
216
|
end
|
|
188
217
|
end
|
|
189
218
|
end
|
|
@@ -18,33 +18,41 @@ class Chef
|
|
|
18
18
|
|
|
19
19
|
def run
|
|
20
20
|
$stdout.sync = true
|
|
21
|
-
handle_extra_config
|
|
22
21
|
validate_required_params(@required_options, config)
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
contracts = Ionoscloud::ContractResourcesApi.new(api_client).contracts_get()
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
25
|
+
contracts.items.each do
|
|
26
|
+
|contract|
|
|
27
|
+
puts "#{ui.color('Contract Type', :cyan)}: #{contract.type}"
|
|
28
|
+
puts "#{ui.color('Contract Owner', :cyan)}: #{contract.properties.owner}"
|
|
29
|
+
puts "#{ui.color('Contract Number', :cyan)}: #{contract.properties.contract_number}"
|
|
30
|
+
puts "#{ui.color('Registration Domain', :cyan)}: #{contract.properties.reg_domain}"
|
|
31
|
+
puts "#{ui.color('Status', :cyan)}: #{contract.properties.status}"
|
|
32
|
+
puts "#{ui.color('Cores per contract', :cyan)}: #{contract.properties.resource_limits.cores_per_contract}"
|
|
33
|
+
puts "#{ui.color('Cores per server', :cyan)}: #{contract.properties.resource_limits.cores_per_server}"
|
|
34
|
+
puts "#{ui.color('Cores provisioned', :cyan)}: #{contract.properties.resource_limits.cores_provisioned}"
|
|
35
|
+
puts "#{ui.color('HDD limit per contract', :cyan)}: #{contract.properties.resource_limits.hdd_limit_per_contract}"
|
|
36
|
+
puts "#{ui.color('HDD limit per volume', :cyan)}: #{contract.properties.resource_limits.hdd_limit_per_volume}"
|
|
37
|
+
puts "#{ui.color('HDD volume provisioned', :cyan)}: #{contract.properties.resource_limits.hdd_volume_provisioned}"
|
|
38
|
+
puts "#{ui.color('RAM per contract', :cyan)}: #{contract.properties.resource_limits.ram_per_contract}"
|
|
39
|
+
puts "#{ui.color('RAM per server', :cyan)}: #{contract.properties.resource_limits.ram_per_server}"
|
|
40
|
+
puts "#{ui.color('RAM provisioned', :cyan)}: #{contract.properties.resource_limits.ram_provisioned}"
|
|
41
|
+
puts "#{ui.color('Reservable IPs', :cyan)}: #{contract.properties.resource_limits.reservable_ips}"
|
|
42
|
+
puts "#{ui.color('Reservable IPs in use', :cyan)}: #{contract.properties.resource_limits.reserved_ips_in_use}"
|
|
43
|
+
puts "#{ui.color('Reservable IPs on contract', :cyan)}: #{contract.properties.resource_limits.reserved_ips_on_contract}"
|
|
44
|
+
puts "#{ui.color('SSD limit per contract', :cyan)}: #{contract.properties.resource_limits.ssd_limit_per_contract}"
|
|
45
|
+
puts "#{ui.color('SSD limit per volume', :cyan)}: #{contract.properties.resource_limits.ssd_limit_per_volume}"
|
|
46
|
+
puts "#{ui.color('SSD volume provisioned', :cyan)}: #{contract.properties.resource_limits.ssd_volume_provisioned}"
|
|
47
|
+
puts "#{ui.color('DAS volume provisioned', :cyan)}: #{contract.properties.resource_limits.das_volume_provisioned}"
|
|
48
|
+
puts "#{ui.color('K8s Cluster Limit Total', :cyan)}: #{contract.properties.resource_limits.k8s_cluster_limit_total}"
|
|
49
|
+
puts "#{ui.color('K8s Clusters provisioned', :cyan)}: #{contract.properties.resource_limits.k8s_clusters_provisioned}"
|
|
50
|
+
puts "#{ui.color('NLB total limit', :cyan)}: #{contract.properties.resource_limits.nlb_limit_total}"
|
|
51
|
+
puts "#{ui.color('NLBs provisioned', :cyan)}: #{contract.properties.resource_limits.nlb_provisioned}"
|
|
52
|
+
puts "#{ui.color('NAT gateway total limit', :cyan)}: #{contract.properties.resource_limits.nat_gateway_limit_total}"
|
|
53
|
+
puts "#{ui.color('NAT gateways provisioned', :cyan)}: #{contract.properties.resource_limits.nat_gateway_provisioned}"
|
|
54
|
+
puts "\n"
|
|
55
|
+
end
|
|
48
56
|
end
|
|
49
57
|
end
|
|
50
58
|
end
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
require_relative 'ionoscloud_base'
|
|
2
|
+
|
|
3
|
+
class Chef
|
|
4
|
+
class Knife
|
|
5
|
+
class IonoscloudCubeServerCreate < Knife
|
|
6
|
+
include Knife::IonoscloudBase
|
|
7
|
+
|
|
8
|
+
banner 'knife ionoscloud cube server create (options)'
|
|
9
|
+
|
|
10
|
+
option :datacenter_id,
|
|
11
|
+
short: '-D DATACENTER_ID',
|
|
12
|
+
long: '--datacenter-id DATACENTER_ID',
|
|
13
|
+
description: 'Name of the virtual datacenter'
|
|
14
|
+
|
|
15
|
+
option :name,
|
|
16
|
+
short: '-n NAME',
|
|
17
|
+
long: '--name NAME',
|
|
18
|
+
description: '(required) Name of the server'
|
|
19
|
+
|
|
20
|
+
option :template,
|
|
21
|
+
long: '--template TEMPLATE_UUID',
|
|
22
|
+
description: 'The UUID of the template for creating a CUBE server; the available templates for CUBE servers can be found on the templates resource'
|
|
23
|
+
|
|
24
|
+
option :cpu_family,
|
|
25
|
+
short: '-f CPU_FAMILY',
|
|
26
|
+
long: '--cpu-family CPU_FAMILY',
|
|
27
|
+
description: 'The family of processor cores (INTEL_XEON or AMD_OPTERON)',
|
|
28
|
+
default: 'INTEL_SKYLAKE'
|
|
29
|
+
|
|
30
|
+
option :availability_zone,
|
|
31
|
+
short: '-a AVAILABILITY_ZONE',
|
|
32
|
+
long: '--availability-zone AVAILABILITY_ZONE',
|
|
33
|
+
description: 'The availability zone of the server',
|
|
34
|
+
default: 'AUTO'
|
|
35
|
+
|
|
36
|
+
option :volume_name,
|
|
37
|
+
long: '--volume-name NAME',
|
|
38
|
+
description: 'Name of the volume'
|
|
39
|
+
|
|
40
|
+
option :bus,
|
|
41
|
+
short: '-b BUS',
|
|
42
|
+
long: '--bus BUS',
|
|
43
|
+
description: 'The bus type of the volume (VIRTIO or IDE)'
|
|
44
|
+
|
|
45
|
+
option :image,
|
|
46
|
+
short: '-N ID',
|
|
47
|
+
long: '--image ID',
|
|
48
|
+
description: '(required) The image or snapshot ID'
|
|
49
|
+
|
|
50
|
+
option :licence_type,
|
|
51
|
+
short: '-l LICENCE',
|
|
52
|
+
long: '--licence-type LICENCE',
|
|
53
|
+
description: 'The licence type of the volume (LINUX, WINDOWS, WINDOWS2016, UNKNOWN, OTHER)'
|
|
54
|
+
|
|
55
|
+
option :image_password,
|
|
56
|
+
short: '-P PASSWORD',
|
|
57
|
+
long: '--image-password PASSWORD',
|
|
58
|
+
description: 'The password set on the image for the "root" or "Administrator" user'
|
|
59
|
+
|
|
60
|
+
option :ssh_keys,
|
|
61
|
+
short: '-K SSHKEY[,SSHKEY,...]',
|
|
62
|
+
long: '--ssh-keys SSHKEY1,SSHKEY2,...',
|
|
63
|
+
description: 'A list of public SSH keys to include'
|
|
64
|
+
|
|
65
|
+
option :backupunit_id,
|
|
66
|
+
short: '-B BACKUPUNIT_ID',
|
|
67
|
+
long: '--backupunit BACKUPUNIT_ID',
|
|
68
|
+
description: 'The uuid of the Backup Unit that user has access to. The property is immutable and is only allowed '\
|
|
69
|
+
'to be set on a new volume creation. It is mandatory to provide either \'public image\' or \'imageAlias\' in '\
|
|
70
|
+
'conjunction with this property.'
|
|
71
|
+
|
|
72
|
+
option :user_data,
|
|
73
|
+
short: '-u USER_DATA',
|
|
74
|
+
long: '--user-data USER_DATA',
|
|
75
|
+
description: 'The cloud-init configuration for the volume as base64 encoded string. The property is '\
|
|
76
|
+
'immutable and is only allowed to be set on a new volume creation. It is mandatory to provide either \'public image\' '\
|
|
77
|
+
'or \'imageAlias\' that has cloud-init compatibility in conjunction with this property.'
|
|
78
|
+
|
|
79
|
+
option :set_boot,
|
|
80
|
+
long: '--set-boot',
|
|
81
|
+
description: 'Whether to set the volume as the boot volume'
|
|
82
|
+
|
|
83
|
+
option :nic_name,
|
|
84
|
+
long: '--nic-name NAME',
|
|
85
|
+
description: 'Name of the NIC'
|
|
86
|
+
|
|
87
|
+
option :ips,
|
|
88
|
+
short: '-i IP[,IP,...]',
|
|
89
|
+
long: '--ips IP[,IP,...]',
|
|
90
|
+
description: 'IPs assigned to the NIC'
|
|
91
|
+
|
|
92
|
+
option :dhcp,
|
|
93
|
+
short: '-h',
|
|
94
|
+
long: '--dhcp',
|
|
95
|
+
boolean: true | false,
|
|
96
|
+
default: true,
|
|
97
|
+
description: 'Set to false if you wish to disable DHCP'
|
|
98
|
+
|
|
99
|
+
option :lan,
|
|
100
|
+
short: '-L ID',
|
|
101
|
+
long: '--lan ID',
|
|
102
|
+
description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created'
|
|
103
|
+
|
|
104
|
+
option :firewall_type,
|
|
105
|
+
short: '-t FIREWALL_TYPE',
|
|
106
|
+
long: '--firewall-type FIREWALL_TYPE',
|
|
107
|
+
description: 'The type of firewall rules that will be allowed on the NIC. If it is not specified it will take the '\
|
|
108
|
+
'default value INGRESS',
|
|
109
|
+
default: 'INGRESS'
|
|
110
|
+
|
|
111
|
+
attr_reader :description, :required_options
|
|
112
|
+
|
|
113
|
+
def initialize(args = [])
|
|
114
|
+
super(args)
|
|
115
|
+
@description =
|
|
116
|
+
'This creates a new cube server with an attached volume and NIC in a specified virtual data center.'
|
|
117
|
+
@required_options = [
|
|
118
|
+
:datacenter_id, :name, :template, :ionoscloud_username, :ionoscloud_password,
|
|
119
|
+
]
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def run
|
|
123
|
+
$stdout.sync = true
|
|
124
|
+
validate_required_params(@required_options, config)
|
|
125
|
+
|
|
126
|
+
config[:ssh_keys] = config[:ssh_keys].split(',') if config[:ssh_keys]
|
|
127
|
+
config[:ips] = config[:ips].split(',') if config[:ips]
|
|
128
|
+
|
|
129
|
+
print ui.color('Creating cube server...', :magenta).to_s
|
|
130
|
+
|
|
131
|
+
volumes = [Ionoscloud::Volume.new(
|
|
132
|
+
properties: Ionoscloud::VolumeProperties.new({
|
|
133
|
+
name: config[:volume_name],
|
|
134
|
+
bus: config[:bus] || 'VIRTIO',
|
|
135
|
+
image: config[:image],
|
|
136
|
+
ssh_keys: config[:ssh_keys],
|
|
137
|
+
image_password: config[:image_password],
|
|
138
|
+
type: 'DAS',
|
|
139
|
+
licence_type: config[:licence_type],
|
|
140
|
+
backupunit_id: config[:backupunit_id],
|
|
141
|
+
user_data: config[:user_data],
|
|
142
|
+
}.compact)
|
|
143
|
+
)]
|
|
144
|
+
|
|
145
|
+
nics = []
|
|
146
|
+
|
|
147
|
+
if config[:nic_name] || config[:ips] || config[:dhcp] || config[:lan]
|
|
148
|
+
nics = [
|
|
149
|
+
Ionoscloud::Nic.new(
|
|
150
|
+
properties: Ionoscloud::NicProperties.new({
|
|
151
|
+
name: config[:nic_name],
|
|
152
|
+
ips: config[:ips],
|
|
153
|
+
dhcp: config[:dhcp],
|
|
154
|
+
lan: config[:lan],
|
|
155
|
+
firewall_type: config[:firewall_type],
|
|
156
|
+
}.compact)
|
|
157
|
+
)
|
|
158
|
+
]
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
server = Ionoscloud::Server.new(
|
|
162
|
+
properties: Ionoscloud::ServerProperties.new({
|
|
163
|
+
name: config[:name],
|
|
164
|
+
type: 'CUBE',
|
|
165
|
+
template_uuid: config[:template],
|
|
166
|
+
cpu_family: config[:cpu_family],
|
|
167
|
+
ram: config[:ram],
|
|
168
|
+
availability_zone: config[:availability_zone],
|
|
169
|
+
}.compact),
|
|
170
|
+
entities: Ionoscloud::ServerEntities.new(
|
|
171
|
+
volumes: {
|
|
172
|
+
items: volumes,
|
|
173
|
+
},
|
|
174
|
+
nics: {
|
|
175
|
+
items: nics,
|
|
176
|
+
},
|
|
177
|
+
),
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
server_api = Ionoscloud::ServersApi.new(api_client)
|
|
181
|
+
|
|
182
|
+
server, _, headers = server_api.datacenters_servers_post_with_http_info(config[:datacenter_id], server)
|
|
183
|
+
|
|
184
|
+
dot = ui.color('.', :magenta)
|
|
185
|
+
api_client.wait_for { print dot; is_done? get_request_id headers }
|
|
186
|
+
|
|
187
|
+
server = server_api.datacenters_servers_find_by_id(config[:datacenter_id], server.id, depth: 1)
|
|
188
|
+
|
|
189
|
+
if config[:set_boot]
|
|
190
|
+
changes = Ionoscloud::ServerProperties.new(boot_volume: { id: server.entities.volumes.items[0].id })
|
|
191
|
+
_, _, headers = server_api.datacenters_servers_patch_with_http_info(
|
|
192
|
+
config[:datacenter_id], server.id, changes,
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
api_client.wait_for { is_done? get_request_id headers }
|
|
196
|
+
|
|
197
|
+
server = server_api.datacenters_servers_find_by_id(config[:datacenter_id], server.id, depth: 1)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
puts "\n"
|
|
201
|
+
puts "#{ui.color('ID', :cyan)}: #{server.id}"
|
|
202
|
+
puts "#{ui.color('Name', :cyan)}: #{server.properties.name}"
|
|
203
|
+
puts "#{ui.color('Type', :cyan)}: #{server.properties.type}"
|
|
204
|
+
puts "#{ui.color('Cores', :cyan)}: #{server.properties.cores}"
|
|
205
|
+
puts "#{ui.color('CPU Family', :cyan)}: #{server.properties.cpu_family}"
|
|
206
|
+
puts "#{ui.color('Ram', :cyan)}: #{server.properties.ram}"
|
|
207
|
+
puts "#{ui.color('Availability Zone', :cyan)}: #{server.properties.availability_zone}"
|
|
208
|
+
puts "#{ui.color('Boot Volume', :cyan)}: #{server.properties.boot_volume ? server.properties.boot_volume.id : ''}"
|
|
209
|
+
puts "#{ui.color('Boot CDROM', :cyan)}: #{server.properties.boot_cdrom ? server.properties.boot_cdrom.id : ''}"
|
|
210
|
+
|
|
211
|
+
puts 'done'
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
end
|
|
@@ -37,27 +37,29 @@ class Chef
|
|
|
37
37
|
|
|
38
38
|
def run
|
|
39
39
|
$stdout.sync = true
|
|
40
|
-
handle_extra_config
|
|
41
40
|
validate_required_params(@required_options, config)
|
|
42
41
|
|
|
43
42
|
print "#{ui.color('Creating data center...', :magenta)}"
|
|
44
43
|
|
|
45
|
-
datacenter_api = Ionoscloud::
|
|
44
|
+
datacenter_api = Ionoscloud::DataCentersApi.new(api_client)
|
|
46
45
|
|
|
47
|
-
datacenter, _, headers = datacenter_api.datacenters_post_with_http_info(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
),
|
|
55
|
-
)
|
|
46
|
+
datacenter, _, headers = datacenter_api.datacenters_post_with_http_info({
|
|
47
|
+
properties: {
|
|
48
|
+
name: config[:name],
|
|
49
|
+
description: config[:description],
|
|
50
|
+
location: config[:location],
|
|
51
|
+
}.compact,
|
|
52
|
+
})
|
|
56
53
|
|
|
57
54
|
dot = ui.color('.', :magenta)
|
|
58
55
|
api_client.wait_for { print dot; is_done? get_request_id headers }
|
|
59
56
|
|
|
60
|
-
|
|
57
|
+
puts "\n"
|
|
58
|
+
puts "#{ui.color('ID', :cyan)}: #{datacenter.id}"
|
|
59
|
+
puts "#{ui.color('Name', :cyan)}: #{datacenter.properties.name}"
|
|
60
|
+
puts "#{ui.color('Description', :cyan)}: #{datacenter.properties.description}"
|
|
61
|
+
puts "#{ui.color('Location', :cyan)}: #{datacenter.properties.location}"
|
|
62
|
+
puts 'done'
|
|
61
63
|
end
|
|
62
64
|
end
|
|
63
65
|
end
|
|
@@ -20,10 +20,9 @@ class Chef
|
|
|
20
20
|
|
|
21
21
|
def run
|
|
22
22
|
$stdout.sync = true
|
|
23
|
-
handle_extra_config
|
|
24
23
|
validate_required_params(@required_options, config)
|
|
25
24
|
|
|
26
|
-
datacenter_api = Ionoscloud::
|
|
25
|
+
datacenter_api = Ionoscloud::DataCentersApi.new(api_client)
|
|
27
26
|
|
|
28
27
|
@name_args.each do |datacenter_id|
|
|
29
28
|
begin
|
|
@@ -34,8 +33,14 @@ class Chef
|
|
|
34
33
|
next
|
|
35
34
|
end
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
msg_pair('ID', datacenter.id)
|
|
37
|
+
msg_pair('Name', datacenter.properties.name)
|
|
38
|
+
msg_pair('Description', datacenter.properties.description)
|
|
39
|
+
msg_pair('Location', datacenter.properties.location)
|
|
40
|
+
msg_pair('Version', datacenter.properties.version)
|
|
41
|
+
|
|
38
42
|
puts "\n"
|
|
43
|
+
|
|
39
44
|
begin
|
|
40
45
|
confirm('Do you really want to delete this data center')
|
|
41
46
|
rescue SystemExit => exc
|
|
@@ -23,7 +23,6 @@ class Chef
|
|
|
23
23
|
|
|
24
24
|
def run
|
|
25
25
|
$stdout.sync = true
|
|
26
|
-
handle_extra_config
|
|
27
26
|
validate_required_params(@required_options, config)
|
|
28
27
|
|
|
29
28
|
datacenter_list = [
|
|
@@ -31,19 +30,19 @@ class Chef
|
|
|
31
30
|
ui.color('Name', :bold),
|
|
32
31
|
ui.color('Description', :bold),
|
|
33
32
|
ui.color('Location', :bold),
|
|
33
|
+
ui.color('CPU Architectures', :bold),
|
|
34
34
|
ui.color('Version', :bold),
|
|
35
|
-
ui.color('Sec Auth Protection', :bold),
|
|
36
35
|
]
|
|
37
36
|
|
|
38
|
-
datacenter_api = Ionoscloud::
|
|
37
|
+
datacenter_api = Ionoscloud::DataCentersApi.new(api_client)
|
|
39
38
|
|
|
40
39
|
datacenter_api.datacenters_get({ depth: 1 }).items.each do |datacenter|
|
|
41
40
|
datacenter_list << datacenter.id
|
|
42
41
|
datacenter_list << datacenter.properties.name
|
|
43
42
|
datacenter_list << datacenter.properties.description || ''
|
|
44
43
|
datacenter_list << datacenter.properties.location
|
|
44
|
+
datacenter_list << datacenter.properties.cpu_architecture.map { |arch| arch.cpu_family }
|
|
45
45
|
datacenter_list << datacenter.properties.version.to_s
|
|
46
|
-
datacenter_list << datacenter.properties.sec_auth_protection.to_s
|
|
47
46
|
end
|
|
48
47
|
|
|
49
48
|
puts ui.list(datacenter_list, :uneven_columns_across, 6)
|
|
@@ -25,7 +25,7 @@ class Chef
|
|
|
25
25
|
option :name,
|
|
26
26
|
short: '-n NAME',
|
|
27
27
|
long: '--name NAME',
|
|
28
|
-
description: 'Name of the
|
|
28
|
+
description: 'Name of the NIC'
|
|
29
29
|
|
|
30
30
|
option :protocol,
|
|
31
31
|
short: '-P PROTOCOL',
|
|
@@ -57,7 +57,6 @@ class Chef
|
|
|
57
57
|
description: 'Defines the start range of the allowed port(s)'
|
|
58
58
|
|
|
59
59
|
option :port_range_end,
|
|
60
|
-
short: '-t PORT',
|
|
61
60
|
long: '--port-range-end PORT',
|
|
62
61
|
description: 'Defines the end range of the allowed port(s)'
|
|
63
62
|
|
|
@@ -71,6 +70,12 @@ class Chef
|
|
|
71
70
|
description: 'Defines the allowed code (from 0 to 254) if the' \
|
|
72
71
|
' protocol ICMP is chosen; null allows all codes'
|
|
73
72
|
|
|
73
|
+
option :type,
|
|
74
|
+
short: '--t TYPE',
|
|
75
|
+
long: '--type TYPE',
|
|
76
|
+
description: 'The type of firewall rule. If is not specified, it will take the default value INGRESS',
|
|
77
|
+
default: 'INGRESS'
|
|
78
|
+
|
|
74
79
|
attr_reader :description, :required_options
|
|
75
80
|
|
|
76
81
|
def initialize(args = [])
|
|
@@ -82,7 +87,6 @@ class Chef
|
|
|
82
87
|
|
|
83
88
|
def run
|
|
84
89
|
$stdout.sync = true
|
|
85
|
-
handle_extra_config
|
|
86
90
|
validate_required_params(@required_options, config)
|
|
87
91
|
|
|
88
92
|
print "#{ui.color('Creating firewall...', :magenta)}"
|
|
@@ -97,11 +101,12 @@ class Chef
|
|
|
97
101
|
port_range_end: config[:port_range_end],
|
|
98
102
|
icmp_type: config[:icmp_type],
|
|
99
103
|
icmp_code: config[:icmp_code],
|
|
104
|
+
type: config[:type]
|
|
100
105
|
}
|
|
101
106
|
|
|
102
|
-
|
|
107
|
+
firewallrules_api = Ionoscloud::FirewallRulesApi.new(api_client)
|
|
103
108
|
|
|
104
|
-
firewall, _, headers =
|
|
109
|
+
firewall, _, headers = firewallrules_api.datacenters_servers_nics_firewallrules_post_with_http_info(
|
|
105
110
|
config[:datacenter_id],
|
|
106
111
|
config[:server_id],
|
|
107
112
|
config[:nic_id],
|
|
@@ -111,14 +116,26 @@ class Chef
|
|
|
111
116
|
dot = ui.color('.', :magenta)
|
|
112
117
|
api_client.wait_for { print dot; is_done? get_request_id headers }
|
|
113
118
|
|
|
114
|
-
firewall =
|
|
119
|
+
firewall = firewallrules_api.datacenters_servers_nics_firewallrules_find_by_id(
|
|
115
120
|
config[:datacenter_id],
|
|
116
121
|
config[:server_id],
|
|
117
122
|
config[:nic_id],
|
|
118
123
|
firewall.id,
|
|
119
124
|
)
|
|
120
125
|
|
|
121
|
-
|
|
126
|
+
puts "\n"
|
|
127
|
+
puts "#{ui.color('ID', :cyan)}: #{firewall.id}"
|
|
128
|
+
puts "#{ui.color('Name', :cyan)}: #{firewall.properties.name}"
|
|
129
|
+
puts "#{ui.color('Protocol', :cyan)}: #{firewall.properties.protocol}"
|
|
130
|
+
puts "#{ui.color('Source MAC', :cyan)}: #{firewall.properties.source_mac}"
|
|
131
|
+
puts "#{ui.color('Source IP', :cyan)}: #{firewall.properties.source_ip}"
|
|
132
|
+
puts "#{ui.color('Target IP', :cyan)}: #{firewall.properties.target_ip}"
|
|
133
|
+
puts "#{ui.color('Port Range Start', :cyan)}: #{firewall.properties.port_range_start}"
|
|
134
|
+
puts "#{ui.color('Port Range End', :cyan)}: #{firewall.properties.port_range_end}"
|
|
135
|
+
puts "#{ui.color('ICMP Type', :cyan)}: #{firewall.properties.icmp_type}"
|
|
136
|
+
puts "#{ui.color('ICMP Code', :cyan)}: #{firewall.properties.icmp_code}"
|
|
137
|
+
puts "#{ui.color('Type', :cyan)}: #{firewall.properties.type}"
|
|
138
|
+
puts 'done'
|
|
122
139
|
end
|
|
123
140
|
end
|
|
124
141
|
end
|
|
@@ -33,14 +33,13 @@ class Chef
|
|
|
33
33
|
|
|
34
34
|
def run
|
|
35
35
|
$stdout.sync = true
|
|
36
|
-
handle_extra_config
|
|
37
36
|
validate_required_params(@required_options, config)
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
firewallrules_api = Ionoscloud::FirewallRulesApi.new(api_client)
|
|
40
39
|
|
|
41
40
|
@name_args.each do |firewall_id|
|
|
42
41
|
begin
|
|
43
|
-
firewall =
|
|
42
|
+
firewall = firewallrules_api.datacenters_servers_nics_firewallrules_find_by_id(
|
|
44
43
|
config[:datacenter_id], config[:server_id], config[:nic_id], firewall_id,
|
|
45
44
|
)
|
|
46
45
|
rescue Ionoscloud::ApiError => err
|
|
@@ -49,8 +48,17 @@ class Chef
|
|
|
49
48
|
next
|
|
50
49
|
end
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
msg_pair('ID', firewall.id)
|
|
52
|
+
msg_pair('Name', firewall.properties.name)
|
|
53
|
+
msg_pair('Protocol', firewall.properties.protocol)
|
|
54
|
+
msg_pair('Source MAC', firewall.properties.source_mac)
|
|
55
|
+
msg_pair('Source IP', firewall.properties.source_ip)
|
|
56
|
+
msg_pair('Target IP', firewall.properties.target_ip)
|
|
57
|
+
msg_pair('Port Range Start', firewall.properties.port_range_start)
|
|
58
|
+
msg_pair('Port Range End', firewall.properties.port_range_end)
|
|
59
|
+
msg_pair('ICMP Type', firewall.properties.icmp_type)
|
|
60
|
+
msg_pair('ICMP Code', firewall.properties.icmp_code)
|
|
61
|
+
msg_pair('Type', firewall.properties.type)
|
|
54
62
|
|
|
55
63
|
begin
|
|
56
64
|
confirm('Do you really want to delete this firewall rule')
|
|
@@ -58,7 +66,7 @@ class Chef
|
|
|
58
66
|
next
|
|
59
67
|
end
|
|
60
68
|
|
|
61
|
-
_, _, headers =
|
|
69
|
+
_, _, headers = firewallrules_api.datacenters_servers_nics_firewallrules_delete_with_http_info(
|
|
62
70
|
config[:datacenter_id], config[:server_id], config[:nic_id], firewall_id,
|
|
63
71
|
)
|
|
64
72
|
ui.warn("Deleted Firewall rule #{firewall.id}. Request ID: #{get_request_id headers}")
|
|
@@ -33,7 +33,6 @@ class Chef
|
|
|
33
33
|
|
|
34
34
|
def run
|
|
35
35
|
$stdout.sync = true
|
|
36
|
-
handle_extra_config
|
|
37
36
|
validate_required_params(@required_options, config)
|
|
38
37
|
|
|
39
38
|
firewall_list = [
|
|
@@ -47,11 +46,12 @@ class Chef
|
|
|
47
46
|
ui.color('Port Range End', :bold),
|
|
48
47
|
ui.color('ICMP Type', :bold),
|
|
49
48
|
ui.color('ICMP CODE', :bold),
|
|
49
|
+
ui.color('Type', :bold),
|
|
50
50
|
]
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
firewallrules_api = Ionoscloud::FirewallRulesApi.new(api_client)
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
firewallrules_api.datacenters_servers_nics_firewallrules_get(
|
|
55
55
|
config[:datacenter_id], config[:server_id], config[:nic_id], { depth: 1 }
|
|
56
56
|
).items.each do |firewall|
|
|
57
57
|
firewall_list << firewall.id
|
|
@@ -64,9 +64,10 @@ class Chef
|
|
|
64
64
|
firewall_list << firewall.properties.port_range_end.to_s
|
|
65
65
|
firewall_list << firewall.properties.icmp_type.to_s
|
|
66
66
|
firewall_list << firewall.properties.icmp_code.to_s
|
|
67
|
+
firewall_list << firewall.properties.type.to_s
|
|
67
68
|
end
|
|
68
69
|
|
|
69
|
-
puts ui.list(firewall_list, :uneven_columns_across,
|
|
70
|
+
puts ui.list(firewall_list, :uneven_columns_across, 11)
|
|
70
71
|
end
|
|
71
72
|
end
|
|
72
73
|
end
|