Project Description

Uyuni is the upstream community project from which the very popular SUSE Manager is derived. It uses its own QE test suite wirtten in Cucumber and Ruby. Currently the Uyuni test suite runs with Ruby 2.5.9 which is EOL since 2021. This is because the most current Ruby version for openSUSE Leap 15.4, which the test suite controller runs on, is still Ruby 2.5.9. Updating the Ruby version allows us to modernize the test suite code base and to use more recent Ruby gems that do not support the old Ruby version anymore.

After talking to Lubos about using a more recent Ruby version on Leap 15.4, he recommended to use the ones from devel:languages:ruby built in the OBS.

Goal for this Hackweek

1. Step

  • update Ruby on the Uyuni test suite controller to version 3.1/3.2
  • adapt the test suite code to work with the new Ruby version

2. Step

  • update all used Ruby gems step by step
  • adapt the test suite code to work with the updated gems. Major ones are Capybara, Cucumber and Selenium Webdriver

Bonus

  • Fix new RuboCop issues when removing the TODO file

Resources

Links

  • Test suite: https://github.com/uyuni-project/uyuni/tree/master/testsuite
  • OBS Ruby builds: https://build.opensuse.org/project/show/devel:languages:ruby
  • Ruby issue: https://github.com/SUSE/spacewalk/issues/17431
  • RuboCop issue: https://github.com/SUSE/spacewalk/issues/14192
  • Code Coverage issue: https://github.com/SUSE/spacewalk/issues/8583

Skills

  • Ruby
  • Selenium/Capybara
  • Cucumber/BDD
  • Terraform/sumaform
  • Salt

This project is part of:

Hack Week 22 Hack Week 23

Activity

  • over 2 years ago: e_bischoff liked this project.
  • over 2 years ago: j_renner liked this project.
  • over 2 years ago: admehmood liked this project.
  • over 2 years ago: oscar-barrios liked this project.
  • over 2 years ago: dgedon added keyword "suma" to this project.
  • over 2 years ago: dgedon added keyword "susemanager" to this project.
  • over 2 years ago: dgedon started this project.
  • over 2 years ago: dgedon added keyword "selenium" to this project.
  • over 2 years ago: dgedon added keyword "terraform" to this project.
  • over 2 years ago: dgedon added keyword "sumafrom" to this project.
  • over 2 years ago: dgedon added keyword "salt" to this project.
  • over 2 years ago: dgedon added keyword "testing" to this project.
  • over 2 years ago: dgedon added keyword "qe" to this project.
  • over 2 years ago: dgedon added keyword "qa" to this project.
  • over 2 years ago: dgedon added keyword "uyuni" to this project.
  • over 2 years ago: dgedon added keyword "ruby" to this project.
  • over 2 years ago: dgedon added keyword "cucumber" to this project.
  • over 2 years ago: dgedon added keyword "gems" to this project.
  • over 2 years ago: dgedon added keyword "rubygems" to this project.
  • over 2 years ago: dgedon added keyword "rubocop" to this project.
  • over 2 years ago: dgedon added keyword "leap" to this project.
  • over 2 years ago: dgedon added keyword "capybara" to this project.
  • over 2 years ago: dgedon originated this project.

  • Comments

    • dgedon
      11 months ago by dgedon | Reply

      This project is officially done.

    Similar Projects

    Move Uyuni Test Framework from Selenium to Playwright by oscar-barrios

    Description

    The goal of this project is to migrate the existing Uyuni Test Framework from using Selenium to Playwright. This migration will improve the stability, speed, and maintainability of our end-to-end tests by leveraging the modern features of Playwright. The work involves rewriting existing Selenium code in Ruby to Playwright code in TypeScript. This will include updating test framework runner, step definitions, and configurations. As we also need to move from Cucumber Ruby to CucumberJS.


    Goals

    • Migrate Core tests including Onboarding of clients
    • Improve test reliabillity: Measure and confirm a significant reduction of flakynes.
    • Implement a robust framework: Establish a well-structured and reusable Playwright test framework using the CucumberJS

    Resources


    Move Uyuni Test Framework from Selenium to Playwright by oscar-barrios

    Description

    The goal of this project is to migrate the existing Uyuni Test Framework from using Selenium to Playwright. This migration will improve the stability, speed, and maintainability of our end-to-end tests by leveraging the modern features of Playwright. The work involves rewriting existing Selenium code in Ruby to Playwright code in TypeScript. This will include updating test framework runner, step definitions, and configurations. As we also need to move from Cucumber Ruby to CucumberJS.


    Goals

    • Migrate Core tests including Onboarding of clients
    • Improve test reliabillity: Measure and confirm a significant reduction of flakynes.
    • Implement a robust framework: Establish a well-structured and reusable Playwright test framework using the CucumberJS

    Resources


    Move Uyuni Test Framework from Selenium to Playwright by oscar-barrios

    Description

    The goal of this project is to migrate the existing Uyuni Test Framework from using Selenium to Playwright. This migration will improve the stability, speed, and maintainability of our end-to-end tests by leveraging the modern features of Playwright. The work involves rewriting existing Selenium code in Ruby to Playwright code in TypeScript. This will include updating test framework runner, step definitions, and configurations. As we also need to move from Cucumber Ruby to CucumberJS.


    Goals

    • Migrate Core tests including Onboarding of clients
    • Improve test reliabillity: Measure and confirm a significant reduction of flakynes.
    • Implement a robust framework: Establish a well-structured and reusable Playwright test framework using the CucumberJS

    Resources


    terraform-provider-feilong by e_bischoff

    Project Description

    People need to test operating systems and applications on s390 platform.

    Installation from scratch solutions include:

    • just deploy and provision manually add-emoji (with the help of ftpboot script, if you are at SUSE)
    • use s3270 terminal emulation (used by openQA people?)
    • use LXC from IBM to start CP commands and analyze the results
    • use zPXE to do some PXE-alike booting (used by the orthos team?)
    • use tessia to install from scratch using autoyast
    • use libvirt for s390 to do some nested virtualization on some already deployed z/VM system
    • directly install a Linux kernel on a LPAR and use kvm + libvirt from there

    Deployment from image solutions include:

    • use ICIC web interface (openstack in disguise, contributed by IBM)
    • use ICIC from the openstack terraform provider (used by Rancher QA)
    • use zvm_ansible to control SMAPI
    • connect directly to SMAPI low-level socket interface

    IBM Cloud Infrastructure Center (ICIC) harnesses the Feilong API, but you can use Feilong without installing ICIC, provided you set up a "z/VM cloud connector" into one of your VMs following this schema.

    What about writing a terraform Feilong provider, just like we have the terraform libvirt provider? That would allow to transparently call Feilong from your main.tf files to deploy and destroy resources on your system/z.

    Other Feilong-based solutions include:

    • make libvirt Feilong-aware
    • simply call Feilong from shell scripts with curl
    • use zvmconnector client python library from Feilong
    • use zthin part of Feilong to directly command SMAPI.

    Goal for Hackweek 23

    My final goal is to be able to easily deploy and provision VMs automatically on a z/VM system, in a way that people might enjoy even outside of SUSE.

    My technical preference is to write a terraform provider plugin, as it is the approach that involves the least software components for our deployments, while remaining clean, and compatible with our existing development infrastructure.

    Goals for Hackweek 24

    Feilong provider works and is used internally by SUSE Manager team. Let's push it forward!

    Let's add support for fiberchannel disks and multipath.

    Possible goals for Hackweek 25

    Modernization, maturity, and maintenance.