Decoupled tools from tests
@ -1,85 +0,0 @@
|
|||||||
= OpenQA install guide =
|
|
||||||
|
|
||||||
== Install OpenSuse 13.2, default with Gnome ==
|
|
||||||
|
|
||||||
* Add online repos before install
|
|
||||||
* Create partition setup & use the right HDD
|
|
||||||
* Select Update & Non-OSS repos & Main Update Repository
|
|
||||||
* Select GNOME desktop
|
|
||||||
* Create user (test/fedora), make user system administrator
|
|
||||||
* Disable firewall, enable SSH
|
|
||||||
* ???
|
|
||||||
* Profit!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
== OpenQA installation ==
|
|
||||||
|
|
||||||
sudo su -
|
|
||||||
|
|
||||||
# add user
|
|
||||||
useradd geekotest
|
|
||||||
|
|
||||||
# add repos
|
|
||||||
zypper ar -f obs://devel:openQA/openSUSE_13.2 openQA
|
|
||||||
zypper ar -f obs://devel:openQA:13.2/openSUSE_13.2 openQA-perl-modules
|
|
||||||
|
|
||||||
# install
|
|
||||||
zypper in openQA
|
|
||||||
zypper in openQA-worker
|
|
||||||
|
|
||||||
# filesystem layout
|
|
||||||
|
|
||||||
cd /var/lib/openqa
|
|
||||||
mkdir pool/1
|
|
||||||
chown -R geekotest backlog cache factory perl pool share testresults script
|
|
||||||
|
|
||||||
|
|
||||||
# apache
|
|
||||||
gensslcert
|
|
||||||
cd /etc/apache2/vhosts.d/
|
|
||||||
a2enmod headers
|
|
||||||
a2enmod proxy
|
|
||||||
a2enmod proxy_http
|
|
||||||
a2enmod proxy_wstunnel
|
|
||||||
a2enmod ssl
|
|
||||||
a2enflag SSL
|
|
||||||
|
|
||||||
cp openqa-ssl.conf.template openqa-ssl.conf
|
|
||||||
cp openqa.conf.template openqa.conf
|
|
||||||
|
|
||||||
# edit openqa-common.inc
|
|
||||||
# replace Order allow deny & Allow from all by sinle line
|
|
||||||
# Require all granted
|
|
||||||
|
|
||||||
# edit openqa-ssl.conf
|
|
||||||
# un-comment lines starting with #SSL
|
|
||||||
# replace paths to certificates from 'openqa.{crt,key}' to 'server.{crt,key}'
|
|
||||||
|
|
||||||
# OpenID
|
|
||||||
# edit /etc/openqa/openqa.ini
|
|
||||||
# uncomment & change:
|
|
||||||
# [openid]
|
|
||||||
# provider = https://id.fedoraproject.org/
|
|
||||||
|
|
||||||
|
|
||||||
# apply patch fixing machine-pausing in QEMU, if needed
|
|
||||||
# https://github.com/os-autoinst/os-autoinst/commit/c8896375288d5f39424cf06108a92c8498c4aff3
|
|
||||||
|
|
||||||
# services
|
|
||||||
systemctl enable apache2
|
|
||||||
systemctl restart apache2
|
|
||||||
systemctl enable openqa-webui
|
|
||||||
systemctl restart openqa-webui
|
|
||||||
|
|
||||||
|
|
||||||
curl http://localhost
|
|
||||||
|
|
||||||
# login via OpenID - the first one to login is automagically set to be the admin
|
|
||||||
|
|
||||||
# Setup Worker
|
|
||||||
# go to http:/localhost/api_keys & create the keys
|
|
||||||
# copy the key & secret to /etc/openqa/client.conf
|
|
||||||
systemctl enable openqa-worker@1
|
|
||||||
systemctl start openqa-worker@1
|
|
||||||
# check whether worker is active in the web-ui
|
|
@ -1,52 +0,0 @@
|
|||||||
# Default boot and install
|
|
||||||
* workstation live
|
|
||||||
* server offline
|
|
||||||
* KDE live
|
|
||||||
|
|
||||||
# Storage devices
|
|
||||||
* sata
|
|
||||||
* pata
|
|
||||||
* scsi
|
|
||||||
* virtio
|
|
||||||
* raidy?
|
|
||||||
|
|
||||||
# guided storage configuration
|
|
||||||
* guided empty
|
|
||||||
* delete all
|
|
||||||
* multi select
|
|
||||||
* delete partial
|
|
||||||
* free space
|
|
||||||
* encrypted
|
|
||||||
* multi empty all
|
|
||||||
|
|
||||||
# guided shrinking
|
|
||||||
* shrink?
|
|
||||||
|
|
||||||
# custom storage
|
|
||||||
* software raid
|
|
||||||
* btrfs
|
|
||||||
* ext3
|
|
||||||
* xfs
|
|
||||||
* no swap
|
|
||||||
|
|
||||||
# user interface
|
|
||||||
* interface graphical
|
|
||||||
* text?
|
|
||||||
|
|
||||||
# installation repositories
|
|
||||||
* http/ftp variation
|
|
||||||
* nfs???
|
|
||||||
|
|
||||||
# kickstarts?
|
|
||||||
* (zalezi na sitovani mezi virtualkou a hostem)
|
|
||||||
|
|
||||||
# upgrade?
|
|
||||||
* (slo by to, ale bude to tahat baliky z netu)
|
|
||||||
|
|
||||||
# misc
|
|
||||||
* anaconda user creation
|
|
||||||
* updates img via url
|
|
||||||
* updates img via local media
|
|
||||||
* traceback debug
|
|
||||||
* dualboot with windows
|
|
||||||
* image boot local
|
|
@ -1,32 +0,0 @@
|
|||||||
= QEMU settings =
|
|
||||||
|
|
||||||
Set via variables per-testsuite in the OpenQA-opensuse tests (might make more sense to do it per-machine):
|
|
||||||
|
|
||||||
# disk settings
|
|
||||||
$vars->{NUMDISKS} ||= 1;
|
|
||||||
$vars->{HDDSIZEGB} ||= 10;
|
|
||||||
$vars->{HDDMODEL} ||= "virtio-blk";
|
|
||||||
# network settings
|
|
||||||
$vars->{NICMODEL} ||= "virtio-net";
|
|
||||||
$vars->{NICTYPE} ||= "user";
|
|
||||||
$vars->{NICMAC} ||= "52:54:00:12:34:56";
|
|
||||||
# misc
|
|
||||||
if (!$vars->{OFW}) {
|
|
||||||
$vars->{QEMUVGA} ||= ["cirrus"];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$vars->{QEMUVGA} ||= [ 'std', '-g', '1024x768' ];
|
|
||||||
}
|
|
||||||
$vars->{QEMUCPUS} ||= 1;
|
|
||||||
if ( defined( $vars->{RAIDLEVEL} ) ) {
|
|
||||||
$vars->{NUMDISKS} = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UEFI, USBBOOT, KEEPHDDS, LAPTOP - ???
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
# server_simple
|
|
||||||
|
|
||||||
## TESTS
|
|
||||||
// get anaconda
|
|
||||||
* disk_guided_empty
|
|
||||||
// start installatin & reboot
|
|
||||||
// wait for login screen
|
|
||||||
|
|
||||||
## QEMU-vars
|
|
||||||
|
|
||||||
|
|
||||||
## Covered testcases
|
|
||||||
* server offline
|
|
||||||
* virtio
|
|
||||||
* guided empty
|
|
||||||
* interface graphical
|
|
||||||
* anaconda user creation
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 809 B After Width: | Height: | Size: 809 B |
@ -1,72 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
import pygame
|
|
||||||
import sys
|
|
||||||
import os.path
|
|
||||||
import glob
|
|
||||||
import json
|
|
||||||
from pygame.locals import *
|
|
||||||
|
|
||||||
def load_areas(img, jsons):
|
|
||||||
if img in jsons.keys():
|
|
||||||
f = open(jsons[img], "r")
|
|
||||||
img_json = f.read()
|
|
||||||
f.close()
|
|
||||||
parsed = json.loads(img_json)
|
|
||||||
return parsed["area"]
|
|
||||||
else:
|
|
||||||
return []
|
|
||||||
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print "%s directory" % sys.argv[0]
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
RES = (1024, 768)
|
|
||||||
|
|
||||||
pygame.init()
|
|
||||||
fpsClock = pygame.time.Clock()
|
|
||||||
|
|
||||||
windowSurfaceObj = pygame.display.set_mode(RES)
|
|
||||||
pygame.display.set_caption("OpenQA needles viewer")
|
|
||||||
|
|
||||||
img_files = glob.glob(os.path.join(sys.argv[1], "*.png"))
|
|
||||||
img_files.sort()
|
|
||||||
json_files = glob.glob(os.path.join(sys.argv[1], "*.json"))
|
|
||||||
|
|
||||||
jsons = {}
|
|
||||||
for img in img_files:
|
|
||||||
json_name = os.path.splitext(img)[0] + ".json"
|
|
||||||
if json_name in json_files:
|
|
||||||
jsons[img] = json_name
|
|
||||||
|
|
||||||
index = 0
|
|
||||||
imageSurfaceObj = pygame.image.load(img_files[index])
|
|
||||||
pygame.display.set_caption(os.path.basename(img_files[index]))
|
|
||||||
areas = load_areas(img_files[index], jsons)
|
|
||||||
|
|
||||||
while True:
|
|
||||||
for event in pygame.event.get():
|
|
||||||
if event.type == QUIT:
|
|
||||||
pygame.quit()
|
|
||||||
sys.exit()
|
|
||||||
elif event.type == KEYDOWN:
|
|
||||||
if event.key == K_LEFT:
|
|
||||||
index = index - 1 if index > 0 else len(img_files) - 1
|
|
||||||
img_index = img_files[index]
|
|
||||||
imageSurfaceObj = pygame.image.load(img_index)
|
|
||||||
pygame.display.set_caption(os.path.basename(img_index))
|
|
||||||
areas = load_areas(img_index, jsons)
|
|
||||||
elif event.key == K_RIGHT:
|
|
||||||
index = index + 1 if index + 1 < len(img_files) else 0
|
|
||||||
img_index = img_files[index]
|
|
||||||
imageSurfaceObj = pygame.image.load(img_index)
|
|
||||||
pygame.display.set_caption(os.path.basename(img_index))
|
|
||||||
areas = load_areas(img_index, jsons)
|
|
||||||
elif event.key == K_ESCAPE:
|
|
||||||
pygame.event.post(pygame.event.Event(QUIT))
|
|
||||||
|
|
||||||
windowSurfaceObj.blit(imageSurfaceObj, (0, 0))
|
|
||||||
for area in areas:
|
|
||||||
pygame.draw.rect(windowSurfaceObj, pygame.Color(255, 0, 0), (area["xpos"], area["ypos"], area["width"], area["height"]), 3)
|
|
||||||
|
|
||||||
pygame.display.update()
|
|
||||||
fpsClock.tick(30)
|
|