Unverified Commit c5430bf2 authored by Francesc Guasch's avatar Francesc Guasch Committed by GitHub
Browse files

Release 0.6 (#1245)



Merge development into master for release

* fix(install): upgrade timestamps (#1205)

issue #1204

* test(auth): check login with uid or cn
* test(auth): properly check both uid and cn
* fix(cleanup): don't kill recent stale process
* test(frontend): clone info works when extra ports


* feature(cli): remove domain

* fix(backend): done process get closed

* Fix/1180 save screenshot database (#1207)

fix(frontend): save screenshot in database

* The screenshot is now storaged in the database and included as a JSON field
* The test has been modified according to the new functions.

fixes #1180

* fix(backend): do not count waiting processes

* test(frontend): check process limits

* Refactor frontend web service (#1212)

* refactor(frontend): websockets admin and list bases
* feature(frontend): warn admin about configure proxy
* refactor(frontend): show/hide requests

issue #1196

* aim for release 0.6

* changes for 0.6

* refactor(test): remaining tests that failed without root

* Fix/1218 copy local screenshots database (#1219)

Copies local screenshot files to the database

Checks if the screenshot column exists (added in the 0.5 release)

fixes #1218

* Refactor #1208 ldap (#1210)

refactor(auth): use PBKDF2 to store encripted data in LDAP

* test(auth): check with MD5 and PBKDF2
* refactor(auth): improved LDAP support
* enabled PBKDF2 and SHA-256
* suggest bind by default
* test old rfc2307 and new format and hashing

issue #1208

* Using the eventual ldap.field configuration option, uid as default (#1206)

* fix(auth): search in LDAP by uid and cn by default

* Fix/1154 improve new machine page (#1222)

fix(frontend): Improve users management in admin

   Modifies the regex to allow float values on the disk size

fixes #1150 & #1154

* fix(backend): retry processes properly

* fix(backend): convert disk size to integer

* refactor(nodes): do not balance when only 1 node

* Fix #1135 drivers  (#1225)

* test(backend): check drivers are kept on migration

Positive duplication of problem reported by @eagliardi

issue #1135

* fix(install): dependency for new LDAP auth

* Refactor #1196 ping (#1227)

refactor(frontend): ping backend WS

issue #1196

* Fix #1023 anonymous users don't get deleted (#1214)

fix(backend): remove temporary user on shutdown or remove

* test(backend): temporary user get removed
* test(auth): check when upgrade
* refactor(frontend): allow ws anonyous on some channels
* refactor(frontend): removed legacy ping backend
* test(volatile): check users are removed

closes issue #1023

* fix(frontend): only refresh screenshot when action mode (#1229)

issue #1228

* fix(frontend): settings button was missing

* Refactor #1228 action (#1230)

* fix(frontend): copy contents so it flickrs less

issue #1228

* fix(install): added missing , in SQL

* fix(install): upgrade screenshots from previous releases

* refactor(frontend): empty ws didn't return anything

* test(frontend): check web services

* list machines
* list bases user

* fix(backend): prepare base before clone many

* Feature  restrict access by client (#1233)

feture(frontend):  allow machines if access by client granted

* feature(frontend): setup access by client
* test(frontend): test ws with access grant
* feature(access): allow by accept-whatever with many options
* test(frontend): check access by encoding

issue #1213

* Rebase virtual machines (#1224)

feature(volumes): rebase volume files

* fix(install): enable proxy for production hypnotoad

* copyright message updated

* refactor(test): ping without cache to speed it up

* refactor(backend): keep track of instances

Instead of searching for machines in nodes we keep
track of instances so it is faster to remove them.

issue #1235

* Copy screenshot updated to db (#1234)

* fix(frontend): copy screenshot updated to db

necessary because of @eskumon changes

closes issue #1221

* refactor(db): table for instances

* Improved contribution help for forks.

* fix(backend): deal with conflicting ports

This problem raised when creating multiple clones
and starting them all at once.

* test(ports): check when many clones start at once

* fix(frontend): fixed reload in admin machines

* Fix/1201 renew mac (#1232)

fix(renewMac): Renew MAC on more than 1 NIC

closes issue #1201

* fix(iso): Fedora 21 correct name

* fix(frontend): screenshot refresh

* fix(install): upgrade to db screenshots fixed

Properly reads the png blob

* refactor(frontend): clone many from non-base fixed

* Added Kali 2020 to the default ISO list (#1236)

Added Kali 2020 to the default ISO list

* fix(ISO): fixed to allow Kali and other ISOs

* doc: fetch upstream git code with https

* Refactor spinoff (#1237)

refactor(backend): spinoff volumes

Base in frontend actions slightly improved. Need some work though

issue #852

* test(backend): check copy many clones at once

* refactor(backend): only clone many for > 1

* fix(backend): spinoff_volumes is now spinoff

* Change number of virtual CPUs (#1238)

feature(KVM): change number of virtual CPUs

* change CPUs and memory
* refactor(test): change memory via hardware
* refactor(frontend): more responsive machine settings

* fix(test): start all clones requires no remote ip

* Add tr.po (#1239)

* Add in user settings the valencia language 

* Add the valencia language
* Fix two typos in spanish

* How clean up a fork and restart it from upstream (#1243)

* refactor(test): use common code

* Do not run all the rebase test unless required

* Properly detect browser languages

* feature(ldap): force ssl version on connections

required for connect to older LDAP servers

* fix(qcow): check the volume is not in use

* fix(test): missing chain name cleaning rules

* refactor(frontend): improved list machines render

* refactor(backend): cope with already removed volumes
Co-authored-by: default avatarEstefany <55500089+eskumon@users.noreply.github.com>
Co-authored-by: default avatarOlm <olm@unicaen.fr>
Co-authored-by: default avatarFernando Verdugo <fv3rdugo@gmail.com>
Co-authored-by: default avatargmiranda <guillermo.dev@gmail.com>
Co-authored-by: default avatarergün elvan bilsel <30519822+erelbi@users.noreply.github.com>
Co-authored-by: default avatarcarlosvinaroz <60468268+carlosvinaroz@users.noreply.github.com>
parent 6309185f
......@@ -209,3 +209,14 @@ A PR can only be merged into master by a maintainer if:
Any maintainer is allowed to merge a PR if all of these conditions are
met.
### 11 Reset my fork to upstream
```sh
git remote add upstream https://github.com/UPC/ravada
git fetch upstream
git checkout develop
git reset --hard upstream/develop
git push origin develop --force
```
......@@ -1253,7 +1253,7 @@ sub _upgrade_tables {
$self->_upgrade_table('iso_images','device','varchar(255)');
$self->_upgrade_table('iso_images','min_disk_size','int (11) DEFAULT NULL');
$self->_upgrade_table('users','language','char(3) DEFAULT NULL');
$self->_upgrade_table('users','language','char(40) DEFAULT NULL');
if ( $self->_upgrade_table('users','is_external','int(11) DEFAULT 0')) {
my $sth = $CONNECTOR->dbh->prepare(
"UPDATE users set is_external=1 WHERE password='*LK* no pss'"
......
......@@ -585,7 +585,7 @@ sub _connect_ldap {
for my $retry ( 1 .. 3 ) {
if ($secure ) {
$ldap = Net::LDAPS->new($host, port => $port, verify => 'none')
$ldap = _connect_ldaps($host, $port);
} else {
$ldap = Net::LDAP->new($host, port => $port, verify => 'none')
}
......@@ -605,6 +605,17 @@ sub _connect_ldap {
return $ldap;
}
sub _connect_ldaps($host, $port) {
my @args;
push @args,(sslversion => $$CONFIG->{ldap}->{sslversion})
if exists $$CONFIG->{ldap}->{sslversion};
return Net::LDAPS->new($host, port => $port, verify => 'none'
,@args
)
}
sub _init_ldap_admin {
return $LDAP_ADMIN if $LDAP_ADMIN;
......
......@@ -339,7 +339,8 @@ sub _disk_device($self, $with_info=undef, $attribute=undef, $value=undef) {
my ($boot_node) = $disk->findnodes('boot');
my $info = {};
$info = $self->_volume_info($file) if $file && $device eq 'disk';
eval { $info = $self->_volume_info($file) if $file && $device eq 'disk' };
die $@ if $@ && $@ !~ /not found/i;
$info->{device} = $device;
if (!$info->{name} ) {
if ($file) {
......
......@@ -217,7 +217,7 @@ sub list_machines($self, $user) {
sub _around_list_machines($orig, $self, $user) {
my $machines = $self->$orig($user);
for my $m (@$machines) {
$m->{can_shutdown} = $user->can_shutdown($m->{id});
eval { $m->{can_shutdown} = $user->can_shutdown($m->{id}) };
$m->{can_start} = 0;
$m->{can_start} = 1 if $m->{id_owner} == $user->id || $user->is_admin;
......
# Translators:
# Alexander Salas Bastidas <alexander.salas@gmail.com>, 2018
# JanFontanet <jan2_@hotmail.es>, 2018
# Fernando Verdugo, 2019
# Amparo _rvd <amparorvd@gmail.com>, 2019
# Joel Alarcón <joelalju100@gmail.com>, 2017
# Fernando Verdugo <fv3rdugo@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: 0.1.0-alpha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-03 10:12+0300\n"
"PO-Revision-Date: 2017-01-03 11:17+0000\n"
"Last-Translator: Amparo _rvd <amparorvd@gmail.com>, 2019\n"
"Language-Team: Spanish (https://www.transifex.com/ravada/teams/70385/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.7.1\n"
msgid "Ravada broker"
msgstr "Broker Ravada"
msgid "Machine Name"
msgstr "Nom de la màquina"
msgid "Tools"
msgstr "Eines"
msgid "Choose a Machine to Start"
msgstr "Tria una màquina per a iniciar"
msgid "Start"
msgstr "Iniciar"
msgid "Stop"
msgstr "Parar"
msgid "View"
msgstr "Veure"
msgid "Prepare base"
msgstr "Preparar base"
msgid "Clone"
msgstr "Clonar"
msgid "Clone/s"
msgstr "clon/s"
msgid "Users List"
msgstr "Llista d'usuaris"
msgid "Name"
msgstr "Nom"
msgid "Log Out"
msgstr "Eixir"
msgid "Available Machines"
msgstr "Màquinas disponibles"
msgid "Help"
msgstr "Ajuda"
msgid "Requirements"
msgstr "Requeriments"
msgid "About"
msgstr "Info"
msgid "Mark all as read"
msgstr "Marcar tot com llegit"
msgid "Settings"
msgstr "Preferències"
msgid "New Machine"
msgstr "Nova màquina"
msgid "I want to change my password"
msgstr "Vull canviar la meua contrasenya"
msgid "I want to change my language"
msgstr "Vull canviar el meu idioma"
msgid "Language:"
msgstr "Idioma:"
msgid "English"
msgstr "Inglés"
msgid "Spanish"
msgstr "Español"
msgid "Catalan"
msgstr "Catalán"
msgid "Galician"
msgstr "Gallego"
msgid "French"
msgstr "Francés"
msgid "Hindi"
msgstr "Hindi"
msgid "Indonesian"
msgstr "Indonesio"
msgid "Persian"
msgstr "Persa"
msgid "Japanese"
msgstr "Japonés"
msgid "German"
msgstr "Aleman"
msgid "Valencia"
msgstr "Valencià"
msgid "New Password:"
msgstr "Nova Contrasenya:"
msgid "Confirm Password:"
msgstr "Confirmar Contraseña:"
msgid "Submit"
msgstr "Enviar"
msgid "Your language has been changed successfully"
msgstr "El seu idioma ha sigut canviat amb èxit"
msgid "Your password has been changed successfully"
msgstr "La seua contrasenya ha sigut camviada amb èxit"
msgid "Password is too short"
msgstr "Contraseña massa curta"
msgid "Password fields do not match"
msgstr "Els camps de contrasenya no coincideixen"
msgid "Some of the password fields are empty"
msgstr "Algun camp de contrasenya està buit"
msgid "Status"
msgstr "Estat"
msgid "Actions"
msgstr "Accions"
msgid "Down"
msgstr "Parada"
msgid "Running"
msgstr "En marxa"
msgid "Shutdown"
msgstr "Apagar"
msgid "Screenshot"
msgstr "Captura de pantalla"
msgid "Paused"
msgstr "Pausat"
msgid "Machine locked by request"
msgstr "Màquina bloquejada per"
msgid "Process"
msgstr "Procés"
msgid "Copy"
msgstr "Còpia"
msgid "Error!"
msgstr "¡Error!"
msgid "Error"
msgstr "Error"
msgid "Backend not available!"
msgstr "Backend no disponible!"
msgid "Subject"
msgstr "Assumpte"
msgid "Date"
msgstr "Data"
msgid "Mark as read"
msgstr "Marca com llegit"
msgid "Mark as unread"
msgstr "Marca com no llegit"
msgid "No messages to show"
msgstr "No hi ha missatges per a mostrar"
msgid "Admin"
msgstr "Admin"
msgid "Machines"
msgstr "Màquines"
msgid "machines"
msgstr "màquines"
msgid "Users"
msgstr "Usuaris"
msgid "users"
msgstr "usuaris"
msgid "Messages"
msgstr "Missatges"
msgid "messages"
msgstr "missatges"
msgid "Admin tools"
msgstr "Eines d'administració"
msgid "Remove base"
msgstr "Elimina base"
msgid "Restore"
msgstr "Restaura"
msgid "Hibernate"
msgstr "Hibernar"
msgid "Are you sure?"
msgstr "Estàs segur/a?"
msgid "Yes"
msgstr "Sí"
msgid "No"
msgstr "No"
msgid "Make public"
msgstr "Fes públic"
msgid "Machine settings"
msgstr "Preferèncias de la máquina"
msgid "Cannot remove base, machine has clones"
msgstr "No es pot esborrar la base, la màquina té clons"
msgid "show clones"
msgstr "mostra clons"
msgid "hide clones"
msgstr "amaga clons"
msgid "For Spice redirection you will need to install"
msgstr "Per a la redirecció de spice, necessitaràs instal·lar"
msgid "in your computer."
msgstr "en el teu ordinador."
msgid "Search in your distro, e.g. in Debian/Ubuntu with"
msgstr "Cerca en la teua distro, p.e. en Debian/Ubuntu amb"
msgid "You will need to install"
msgstr "Necessitaràs instal·lar"
msgid "and USB drivers ("
msgstr "i els drivers USB ("
msgid ""
"Be aware that in Windows, Spice redirection is not automatic. It is "
"necessary to associate protocol with the app."
msgstr ""
"Tingues en compte que en Windows, la redirecció de Spice no és automàtica. És "
"necessari associar el protocol amb l'aplicació."
msgid "To make this possible, download"
msgstr "Per a fer això possible, descàrrega"
msgid ""
"or copy the following lines in an ASCII file and save with extension .reg, "
"then execute the file."
msgstr ""
"o còpia les següents línies en un arxiu ASCII i guarda amb l'extensió "
".reg, després executa l'arxiu."
msgid "Login"
msgstr "Connecta't"
msgid "Welcome"
msgstr "Benvigut"
msgid "A viewer is required to run the virtual machines."
msgstr "Es precisa d'un visualitzador per a encendre la màquina virtual."
msgid "It is required a viewer to run the virtual machines."
msgstr "És necessari un visor per a executar les màquines virtuals."
msgid "Virtual Machines"
msgstr "Màquines Virtuals"
msgid "User"
msgstr "Usuari"
msgid "Password"
msgstr "Contrasenya"
msgid "Start session"
msgstr "Iniciar sessió"
msgid "bits) in your computer."
msgstr "bits) en el teu ordinador."
msgid "Permissions"
msgstr "Permisos"
msgid "can change the settings of owned virtual machines."
msgstr "pot canviar els ajustos de les màquines virtuals en possessió."
msgid "can change the settings of any virtual machines."
msgstr "pot canviar els ajustos de qualsevol màquina virtual."
msgid "can change the settings of any virtual machines "
msgstr "pot canviar els ajustos de qualsevol màquina virtual "
msgid "cloned from one base owned by the user."
msgstr "clonat des d'una base en possessió de l'usuari."
msgid "can clone public virtual machines."
msgstr "pot clonar màquines virtuals públiques."
msgid "can clone any virtual machine."
msgstr "pot clonar màquines virtual."
msgid "can create bases."
msgstr "pot crear bases."
msgid "can create virtual machines."
msgstr "pot crear màquines virtuals."
msgid "can grant permissions to other users"
msgstr "pot atorgar permisos a altres usuaris"
msgid "can hibernate any virtual machine."
msgstr "pot hibernar qualsevol màquina virtual."
msgid "can hibernate clones from virtual machines owned by the user."
msgstr "pot hibernar clons de màquines virtuals en possessió de l'usuari."
msgid "can hibernate any clone."
msgstr "pot hibernar qualsevol clon."
msgid "can remove any virtual machines owned by the user."
msgstr "pot llevar qualsevol màquina virtual en possessió de l'usuari."
msgid "can remove any virtual machine."
msgstr "pot llevar qualsevol màquina virtual."
msgid "can remove clones from virtual machines owned by the user."
msgstr "pot llevar clons de màquines virtuals en possessió de l'usuari."
msgid "can remove any clone."
msgstr "pot llevar qualsevol clon."
msgid "can take a screenshot of any virtual machine owned by the user."
msgstr ""
"pot prendre una captura de pantalla de qualsevol màquina virtual en possessió"
" de l'usuari"
msgid "can take a screenshot of any virtual machine."
msgstr "pot prendre una captura de pantalla de qualsevol màquina virtual."
msgid "can shutdown any virtual machine."
msgstr "pot apagar qualsevol màquina virtual."
msgid "can shutdown clones from virtual machines owned by the user."
msgstr "pot apagar clons de màquines virtuals en possessió de l'usuari."
msgid "Submit Query"
msgstr "Enviar Consulta"
msgid "From Template"
msgstr "Des de Plantilla"
msgid "From Machine"
msgstr "Des de Màquina"
msgid "Backend"
msgstr "Backend"
msgid "Select Template"
msgstr "Selecciona Plantilla"
msgid ""
"This ISO image has not been downloaded yet. It may take some minutes, even "
"hours until the file is fetched from the Internet."
msgstr ""
"Aquesta imatge ISO no s'ha descarregat encara. Poden passar alguns minuts, "
"fins i tot hores, fins que l'arxiu s'obtinga d'Internet."
msgid "Download now"
msgstr "Descarregar ara"
msgid "Select ISO"
msgstr "Seleccionar ISO"
msgid "Template"
msgstr "Plantilla"
msgid "Disk Size: (GB)"
msgstr "Grandària del Disc: (GB)"
msgid "Swap Size: (GB)"
msgstr "Grandària del Swap: (GB)"
msgid "Ram: (GB)"
msgstr "Ram: (GB)"
msgid "Machine name is required."
msgstr "El nom de la màquina és necessari."
msgid "Machine name can't exceed 20 characters."
msgstr "El nom de la màquina no pot superar els 20 caràcters."
msgid "Backend selection is required."
msgstr "Fa falta seleccionar un backend."
msgid "ISO image selection is required."
msgstr "Fa falta seleccionar una imatge d'ISO."
msgid "Template selection is required."
msgstr "Fa falta seleccionar una plantilla."
msgid "A machine with that name already exists."
msgstr "Una màquina amb aqueix nom ja existeix."
msgid ""
"The machine name is only allowed to consist of alphabetic characters, "
"numbers, dashes and points."
msgstr ""
"El nom de la màquina només pot contindre caràcters alfabètics, números,"
" guions i punts."
msgid "Create"
msgstr "Crear"
msgid ""
"can change the settings of all virtual machines cloned from one base owned "
"by the user."
msgstr ""
"pot canviar la configuració de totes les màquines virtuals clonades "
"des d'una base propietat de l'usuari."
msgid "monitoring"
msgstr "monitoratge"
msgid "Are you sure you want to remove the Base of"
msgstr "Estàs segur de voler eliminar la base de"
msgid "Are you sure you want to prepare the Base of"
msgstr "Estàs segur de voler convertir la base de"
msgid "Are you sure you want to change the Public state of"
msgstr "Estàs segur de voler canviar l'estat públic de"
msgid "Search"
msgstr "Buscar"
msgid "There are no public bases available in this system."
msgstr "No hi ha bases públiques disponibles en aquest sistema."
msgid "There are no machines available in this system."
msgstr "No hi ha màquines disponibles en aquest sistema."
msgid "Create one."
msgstr "Crea una."
msgid "not public"
msgstr "no pública"
msgid "User Settings"
msgstr "Configuració d'usuari"
msgid "Create a new account"
msgstr "Crear un compte nou"
msgid "Username"
msgstr "Nom d'usuari"
msgid "Hide Private"
msgstr "Amagar Privades"
msgid "Show All"
msgstr "Mostrar Tot"
msgid "Shutting down ..."
msgstr "Apagant ..."
msgid "It may take a couple of minutes."
msgstr "Pot tardar un parell de minuts."
msgid "Hybernating ..."
msgstr "Hibernant ..."
msgid "Description"
msgstr "Descripció"
msgid "Rename"
msgstr "Canviar de nom"
msgid "Options"
msgstr "Opcions"
msgid "Drivers"
msgstr "Controladors"
msgid "Graphics"
msgstr "Gràfics"
msgid "Remove Machine"
msgstr "Eliminar Màquina"
msgid "System overview"
msgstr "Resum del sistema"
msgid "Danger Zone"
msgstr "Zona Perillosa"
msgid ""
"Once you delete the machine, there is no going back. Please be certain."
msgstr ""
"Una vegada que elimines la màquina, no hi ha marxa arrere. Per favor, *asegurate."
msgid "Danger"
msgstr "Perill"
msgid "This will remove all the contents of the machine"
msgstr "Això esborrarà tot el contingut de la màquina"
msgid "This action can't be undone"
msgstr "Aquesta acció no pot desfer-se"
msgid "Are you sure ?"
msgstr "Estàs segur?"
msgid "Yes, remove"
msgstr "Sí, eliminar"
msgid "Virtual Machine"
msgstr "Màquina virtual"
msgid "removed"
msgstr "eliminat"
msgid "This will remove all the"