I'll continue the effort I started at last Hackweek to support Windows clients in Uyuni/SUSE Manager using Salt. When this is done, SUSE Manager would act as a WSUS server to Windows clients.
https://hackweek.suse.com/20/projects/suse-manager-windows-client-support
https://github.com/uyuni-project/uyuni/issues/1937
Status as of end of Hackweek 19
- Windows added to database, Java side, etc
- Ported Microsoft update protocol server-server and client-server reference implementations to Linux, so it's possible to download updates and CVE information from Microsoft to the Uyuni Server
- Salt packages for Windows built (locally, not in OBS)
- Bootstrapping clients from the WebUI does not fully work: client is bootstrapped, Salt key arrives to the Uyuni Server but after accepting it, system does not finish registration. Apparently, some grains are missing on the client, or enablement is missing something on the Java side. Same happens when initiating registration from the Salt minion (i. e. minion contacts the master).
Missing, maybe doable in one hackweek (depends a lot on the first item: fixing the Java enablement)
- Fix Java side so that client finishes registration to Uyuni Server
- Bootstrap repository
- Add updates and CVE information to the channels and database after synchronizing them
- Call Microsoft Update server-server from spacewalk-reposync / mgr-sync
Missing, not doable by me in one hackweek
- Virtualization. Should be easy if using KVM or Xen on Windows. Support for Hyper-V Virtualization Hosts depends on libvirt supporting Hyper-V (it does on Leap, it should on SLE starting with SLE 15 SP3)
- OpenSCAP. Should be easy, mainly providing the OpenSCAP tools and content in some channel and deploying them to the clients. Tricky part is not really OpenSCAP but how to add content from outside Microsoft Update to a Windows channel.
- Autoinstall Windows using Cobbler (http://cobbler.github.io/blog/2020/12/04/wingen.html)
- Building Salt packages for Windows in OBS. Building Windows software on OBS is cumbersome (requires using mingw), and Salt has its own building mechanism for Windows.
- Build Windows images
How to join?
I will be in the uyuni-devel Gitter channel during Hackweek, ping me there if you want to help, provide feedback, or just are curious: https://gitter.im/uyuni-project/devel
Looking for hackers with the skills:
uyuni susemanager windows systemsmanagement server linux salt microsoft wsus
This project is part of:
Hack Week 20
Activity
Comments
-
over 4 years ago by juliogonzalezgil | Reply
No promises that I will perform miracles, but as a former Windows sysadmin, maybe I can provide some help with some stuff.
-
over 4 years ago by pagarcia | Reply
Same information, in a nicer way (slide deck) https://www.slideshare.net/pgquiles/hackweek-20-open-door-support-windows-clients-in-uyunisuse-manager
-
Similar Projects
Flaky Tests AI Finder for Uyuni and MLM Test Suites by oscar-barrios
Description
Our current Grafana dashboards provide a great overview of test suite health, including a panel for "Top failed tests." However, identifying which of these failures are due to legitimate bugs versus intermittent "flaky tests" is a manual, time-consuming process. These flaky tests erode trust in our test suites and slow down development.
This project aims to build a simple but powerful Python script that automates flaky test detection. The script will directly query our Prometheus instance for the historical data of each failed test, using the jenkins_build_test_case_failure_age
metric. It will then format this data and send it to the Gemini API with a carefully crafted prompt, asking it to identify which tests show a flaky pattern.
The final output will be a clean JSON list of the most probable flaky tests, which can then be used to populate a new "Top Flaky Tests" panel in our existing Grafana test suite dashboard.
Goals
By the end of Hack Week, we aim to have a single, working Python script that:
- Connects to Prometheus and executes a query to fetch detailed test failure history.
- Processes the raw data into a format suitable for the Gemini API.
- Successfully calls the Gemini API with the data and a clear prompt.
- Parses the AI's response to extract a simple list of flaky tests.
- Saves the list to a JSON file that can be displayed in Grafana.
- New panel in our Dashboard listing the Flaky tests
Resources
- Jenkins Prometheus Exporter: https://github.com/uyuni-project/jenkins-exporter/
- Data Source: Our internal Prometheus server.
- Key Metric:
jenkins_build_test_case_failure_age{jobname, buildid, suite, case, status, failedsince}
. - Existing Query for Reference:
count by (suite) (max_over_time(jenkins_build_test_case_failure_age{status=~"FAILED|REGRESSION", jobname="$jobname"}[$__range]))
. - AI Model: The Google Gemini API.
- Example about how to interact with Gemini API: https://github.com/srbarrios/FailTale/
- Visualization: Our internal Grafana Dashboard.
- Internal IaC: https://gitlab.suse.de/galaxy/infrastructure/-/tree/master/srv/salt/monitoring
Move Uyuni Test Framework from Selenium to Playwright + AI by oscar-barrios
Description
This project aims to migrate the existing Uyuni Test Framework from Selenium to Playwright. The move will improve the stability, speed, and maintainability of our end-to-end tests by leveraging Playwright's modern features. We'll be rewriting the current Selenium code in Ruby to Playwright code in TypeScript, which includes updating the test framework runner, step definitions, and configurations. This is also necessary because we're moving from Cucumber Ruby to CucumberJS.
If you're still curious about the AI in the title, it was just a way to grab your attention. Thanks for your understanding.
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
- Existing Uyuni Test Framework (Cucumber Ruby + Capybara + Selenium)
- My Template for CucumberJS + Playwright in TypeScript
- Started Hackweek Project
pudc - A PID 1 process that barks to the internet by mssola
Description
As a fun exercise in order to dig deeper into the Linux kernel, its interfaces, the RISC-V architecture, and all the dragons in between; I'm building a blog site cooked like this:
- The backend is written in a mixture of C and RISC-V assembly.
- The backend is actually PID1 (for real, not within a container).
- We poll and parse incoming HTTP requests ourselves.
- The frontend is a mere HTML page with htmx.
The project is meant to be Linux-specific, so I'm going to use io_uring, pidfs, namespaces, and Linux-specific features in order to drive all of this.
I'm open for suggestions and so on, but this is meant to be a solo project, as this is more of a learning exercise for me than anything else.
Goals
- Have a better understanding of different Linux features from user space down to the kernel internals.
- Most importantly: have fun.
Resources