Library to manage cloud crash tests
my $name = crash_deploy_name();
Return the deploy name. Azure use it as resource group name
my $vm_name = crash_vm_name(provider => 'AZURE');
Returns the VM name for a given cloud provider. This function is designed to be called before VM creation, as it does not require a running VM to determine the name. It is used when composing Azure or GCE CLI commands for VM creation, creating the publiccloud::instance object to populate the instance_id field, and during VM deletion. Note that EC2 does not need or allow specifying a name in this way, so this function is not supported for the EC2 provider.
Run the Azure deployment for the crash test
Run the AWS deployment for the crash test Returns the instance ID
Run the GCP deployment for the crash test
Get the deployment public IP of the VM. Die if an unsupported csp name is provided.
my $username = crash_get_username(provider => 'GCE');
Get the username for SSH login based on cloud provider
my $instance = crash_get_instance(
provider => 'GCE',
region => 'us-central1',
availability_zone => 'b');
Create and return a publiccloud::instance object for the crash test VM
crash_cleanup(
provider => 'GCE',
region => 'us-central1');
Clean up cloud resources for crash test
Polls C<systemctl is-system-running> via SSH for up to 5 minutes.
If C<reg_code> is provided, registers the system and verifies with C<SUSEConnect -s>.
crash_softrestart(instance => $instance [, timeout => 600]);
Does a soft restart of the given instance by running the command shutdown -r.
crash_wait_back(vm_ip => '1.2.3.4');
Wait until SUT is back again polling port 22 on the given IP. Then list for failed services and die if find one.
Delete the Azure deployment
Delete the AWS deployment
Delete the GCP deployment
crash_patch_system(
provider => 'GCE',
region => 'us-central1',
availability_zone => 'b');
Patch the crash system using ssh_fully_patch_system and reboot.
crash_network_peering_create(
provider => 'AZURE',
ibsm_ip => '10.1.2.3',
region => 'westeurope',
ibsm_rg => 'IBSmRg');
crash_network_peering_create(
provider => 'GCE',
ibsm_ip => '10.1.2.3',
region => 'us-central1',
availability_zone => 'a',
project => 'my-project',
ibsm_ncc_hub => 'projects/ibsm-project/locations/global/hubs/ibsm-hub');
crash_network_peering_create(
provider => 'EC2',
ibsm_ip => '10.1.2.3',
region => 'us-east-1',
ibsm_ip_range => '10.0.0.0/8',
ibsm_prj_tag => 'my-project-tag');
Create a network peering between the crash test SUT and an IBSm server. Supported providers are AZURE (Azure VNet Peering), GCE (GCP NCC Spoke) and EC2 (AWS Transit Gateway). After peering is established, the IBSm IP is added to /etc/hosts on the SUT and optional incident repos are configured.
AZURE, GCE or EC2repos_add_server_to_hosts(
ibsm_ip => '10.0.0.1',
incident_repos => 'http://repo1,http://repo2',
ssh_cmd => 'ssh user@host');
Add the server IP to /etc/hosts and configure incident repos on a single SUT via SSH.
crash_network_peering_delete(
provider => 'AZURE',
ibsm_rg => 'IBSmRg');
crash_network_peering_delete(
provider => 'GCE');
Delete the network peering between the crash test SUT and the IBSm server. Supported providers are AZURE and GCE.
AZURE or GCE