Hello,
I have a lava setup and right now running two single instance servers.
These are pretty high end servers are handling 4-5 Android devices over USB
I need to expand that to multi node setup with maximum DUTs connected to
one dispatcher.
The target is only to have android DUTs so that implies a very stable USB
hub and stack on the dispatcher machines.
I used a couple of off the shelf desktops in the past and the USB stack
could not handle more than 1 device at a time.
Any suggestions for hardware that is proven to be solid for dispatchers.
Thanks
Sandeep
Hello,
For the 2016.4 release I had created a custom LAVA extension to add 2
commands and 2 xmlrpc methods. The extension mechanism was very
convenient. All I had to do was install an egg on the system and restart
the lava service. When I upgraded to 2016.6 the extension did not work
due to commit b6fd045cc2b320ed34a6fefd713cd0574ed7b376 "Remove the need
for extensions".
I was not able to find a way to add my extension to INSTALLED_APPS and
register the xmlrpc methods without modifying settings/common.py and
urls.py. I looked through common.py and distro.py and could not find
support in settings.conf for extensions. I also looked for a
local_settings import which is referenced on the Internet as a common
way to extend django, but did not find it. If there is a way to extend
LAVA without modifying the LAVA python code, please let me know and I
will be happy to send in a documentation patch.
It would have been nice if functionality such as the extension
mechanism, which is part of the external interface of LAVA, had gone
through a deprecation cycle. A reworked demo app showing how the new
extension mechanism works would have also been helpful.
Thank you for your time.
--
Konrad Scherer, MTS, Linux Products Group, Wind River
---------- Forwarded message ----------
From: Steve McIntyre <steve.mcintyre(a)linaro.org>
Date: 31 May 2016 at 16:46
Subject: Re: pipeline vland help
To: Christian Ziethén <christian.ziethen(a)linaro.org>
Cc: neil.williams(a)linaro.org
On Tue, May 31, 2016 at 03:29:45PM +0200, Christian Ziethén wrote:
>Hi,
Hi Christian,
You'd be much better asking on the lava-users mailing list rather than
just directly to me, I'll be honest.
>Been struggling with setting up a vland between two arndale targets. I have
>managed to create a multinode job that uses the pipeline model:
>https://lng.validation.linaro.org/scheduler/job/9702/multinode_definition
>Have also managed to create valid yaml that seems to conform to the code in
>lava-server/lava_scheduler_app/schema.py
>https://lng.validation.linaro.org/scheduler/job/9743/multinode_definition
>This one does however not do anything after being submitted, I tried
putting
>100M in the tags for the vland, I also tried requiring that the arndale
targets
>in the multinode protocol had the 100M tag, but that didn't work.
According to
>the device dictionary for lng-arndale-01, it should have a 100M tag on
iface1.
Hmmm, OK. I can see that it's sat waiting for devices to be
assigned. Looking at the definition, you've got one group (role)
defined with 2 entries. I believe that for VLANd jobs you need to have
individual roles for each machine. Neil can confirm.
>Also have this job (v1):
>https://lng.validation.linaro.org/scheduler/job/9118/multinode_definition
>Which runs my test using iface1 (I think) but it doesn't use vland.
Right, v1 doesn't do vland.
>I am unsure how to debug this.
>
>It was my assumption that I could create a vlan with the vland protocol and
>then query which interface is on that vlan in my test-definition. That
would be
>my end goal for this exercise.
Sure, that's what we expect to have working for you.
Cheers,
--
Steve McIntyre steve.mcintyre(a)linaro.org
<http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs
Hi,
For the last couple of days I’ve been trying to setup a device in our lab for deployment and installation of a Linux OS.
However, I’ve came across a few issues and lots of questions and hopefully I can get some answers here.
Considerations:
1. I’ve decided to give it a go with LAVA v2 and try using the pipeline model
2. I’m not testing any “boards”, so it’s hard to find a similar example
3. I am not deploying any Linaro images (not even debian based)
4. My team develops and supports a reference Linux OS, based on RHEL, so that means we have total control of our images, kickstarter scripts, etc.
5. We already have a PXE server in our network, which is where our servers (the targets in this context) get booted from by default
6. Once booted from PXE, we get a PXE menu, where we can either select an option, or press ESC and add a custom command (at this syslinux is running)
7. We have access to the serial console of every device via serial port server (telnet <ipaddr> <port>)
8. We have power control over every device via IPMI
Issues:
1. I couldn’t find the documentation for how to add devices and device types to the server (which location to add the file, which format - yaml/conf)
2. In the above described environment, I suppose we would skip the deployment phase, since the devices already boot into syslinux from PXE (is this correct?). Either way, it would be nice to be able to run ‘ipmitool chassis booted pxe’ before rebooting the system.
3. Either way (via boot or deploy), how can I make sure to detect the PXE (syslinux) menu, send the ESC key, and send the command I need to trigger the kickstart installation?
To sum-up, the Workflow I’m trying to achieve after having completed the whole setup sort of goes like this:
1. Reboot target device into PXE (the PXE itself will download and start syslinux here)
2. Wait for PXE menu (expect some sort of string)
3. Send ESC key (to get into the boot shell)
4. Send command (this will trigger our kickstarter script and the installation will take around 5 minutes). The images that are needed are fetched automatically from our sftp server.
5. Wait for boot prompt after system installation succeeds
6. Login using credentials (username, password)
7. Run whatever tests we need from here
Any help here would be much appreciated.
Thanks in advance!
--
matallui
Hello,
I just started to set up a lava server to test custom devices and I've some questions about testing custom or third party boards.
Does someone know a good documentation or tutorial for the integration of custom boards? It seems that there isn't much documented for this topic.
Is there any documentation for setting up a custom device configuration file and the commands that can be used, like client_type?
Thank you and best regards
Stefan
[cid:b073c64a8131462290b626cc30430be3]<http://www.facebook.com/WagoKontakttechnik> [cid:00cd0405ac4344fbb39caf677313ca6c] <http://www.youtube.com/WagoKontakttechnik> [cid:3139f430e8f940bb956be9ff06d8d5c2] <https://www.xing.com/companies/wagokontakttechnikgmbh&co.kg> [cid:614f801bb8f64c1d8a9dbfd711f2a29a] <http://twitter.com/WAGOKontakttech> [cid:69804606bdd6406aa66c78bf7dae6c2a] <http://www.linkedin.com/company/wago-kontakttechnik>
[cid:711e500a31984a6a959819fb46ba7f2d]
________________________________________________________________________________________
Diese E-Mail einschlie?lich ihrer Anh?nge ist vertraulich und daher allein f?r den Gebrauch durch den vorgesehenen Empf?nger bestimmt. Dritten ist das Lesen, Verteilen oder Weiterleiten dieser E-Mail sowie jedwedes Vertrauen auf deren Inhalt untersagt. Wir bitten, eine fehlgeleitete E-Mail unverz?glich vollst?ndig zu l?schen und uns eine Nachricht zukommen zu lassen.
This email may contain material that is confidential and/or privileged for the sole use of the intended recipient. Any review, reliance or distribution by others or forwarding without express permission is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
WAGO Kontakttechnik GmbH (nach Schweizer Recht) & Co. KG; Rechtsform: Kommanditgesellschaft; Sitz: Minden; Registergericht: Bad Oeynhausen, HRA 6218; Pers?nlich haftender Gesellschafter: WAGO Kontakttechnik Beteiligungs GmbH; Sitz: Domdidier (Schweiz); Handelsregisteramt CH-217-3533291-9; Gesch?ftsf?hrung: Dipl.-Wirtsch. Ing. (FH) Sven Michael Hohorst; Dipl. Betriebsw. Axel Christian B?rner; Dipl.-Ing. (FH) Ulrich Bohling.
Hi there,
When I run LAVA hacking session on Juno but found sometimes Juno
cannot be allocated IP properly:
- I created multinode definition for Juno:
https://validation.linaro.org/scheduler/job/845471.0: this
definition is to launch kvm so I can run testing suits on it;
https://validation.linaro.org/scheduler/job/845471.1: this
definition is to launch "deploy_linaro_image" on Juno board;
- After launched these two images, the kvm usually can work well and I
can smoothly log in it with ssh;
- But for juno board, it will have below log for ssh:
395.1 ./setup_session_oe: line 38: /etc/init.d/ssh: No such file or directory
395.2 <LAVA_SIGNAL_TESTCASE TEST_CASE_ID=sshd-restart RESULT=fail>
395.3 sshd re-start failed
395.4 Target's Gateway: 10.0.0.1
395.5 ip: RTNETLINK answers: Network is unreachable
395.6
395.7
395.8 *********************************************************************************************
395.9 Please connect to: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@ (juno-07)
395.10 *********************************************************************************************
395.11
So finally I cannot get the info for Juno's IP and cannot log in it
with ssh. It's not everytime I can reproduce this failure, so sometimes
it's lucky so I can get a correct IP.
- As a workaroud, I found if I create two saperated definitions for
Juno and kvm independently, then Juno's IP issue can be resolved:
https://validation.linaro.org/scheduler/job/845552https://validation.linaro.org/scheduler/job/845561
So could you help give suggestions for this?
Thanks,
Leo Yan
Hi,
I have made a test setup with LAVA to run some test cases on my AM335X
based platform. I want to execute some simple test cases like testing
the status of "ifconfig eth0" command. I don't want to deploy any image
and my goal is to execute only this test directly(target is booted with
root file system mounted).I have the below job submitted to the lava
worker. ethernet.yaml contains the shell script which actually performs
the ifconfig test.
=============================================================================================
{
"actions": [
{
"command": "dummy_deploy",
"parameters": {
"target_type": "oe"
}
},
{
"command": "lava_test_shell",
"parameters": {
"testdef_repos": [
{
"testdef": "/root/lava_tests/yaml/ethernet.yaml"
}
],
"timeout": 60
}
},
{
"command": "submit_results_on_host",
"parameters": {
"server": "http://10.24.252.13:81/RPC2/",
"stream": "/anonymous/lavaserver/"
}
}
],
"device_type": "ELIN",
"health_check": false,
"job_name": "elin-ethernet-test",
"logging_level": "DEBUG",
"timeout": 60
}
=======================================================================================================
Lava dispatcher is able to connect to the target and start the job. But
finally I am getting a timeout. Please find the attached log for
details. I can see that after connecting with the target the dispatcher
is checking/finding some information related to the file system, and
looks like it is getting timed out there. How can I avoid this and make
the dispatcher to directly perform the test on the target platform?
Any help any help would be appreciated.
Best Regards,
Pradeepkumar Soman
Hi all,
We are using LAVA to run jobs from KernelCI which is a test automation
system used to test latest versions of the kernel (upstream, next,
stable, ...). Our main goal is to put in our lab a maximum of boards
which are not yet in KernelCI to provide boot reports for these boards.
However, for some of these, we own a single copy while we definitely
need to work on them to add new features or improve them.
What we could do (and what we are currently doing), is to manually put a
board in maintenance mode, take it physically outside of the lab, work
on it and put it back in the lab when we have finished working on it.
This is not really efficient and during the time the board is physically
outside of the lab, not a single job (from KernelCI or ours) can run.
We would like to create a tool to be able to remotely control our boards
while they still are physically in the lab. We need to be able to do
everything we could do if the board would be on our desk. This means
getting the serial connection, powering on or off the board and sending
files (kernel, DTB, initramfs, ...) to it.
For the latter, we just have to copy the files in the directory used by
the TFTP server of LAVA master node.
I would like to know if it is possible to add an endpoint in the API to
power on or off a given board? Is it possible to get the serial
connection over the API?
To put a board virtually outside of the lab, we need to put it into
maintenance mode in LAVA. As of yet, this is only possible from the
browser, right? It would be great if we could add two endpoints to the
API: one for putting a board offline and one for putting a board online,
so we can remotely manage from our program whether a board is in the lab.
We may have few people working on the same board. Therefore, we need a
way to ensure only one person is able to use this board at a certain
time. I've seen the "created_by" attribute in the
DeviceStateTransition[1] which could help us to find who last put the
board virtually outside of the lab and thus denying access to other
users. However, we do not have a way to get this information today via
the API. Is it possible to add an endpoint to get the status of a given
device (like in 'all_devices'[2] but for one device) and the associated
user responsible of the last device state transition?
I can help with patches if you agree to add these endpoints to the API.
Thanks,
Quentin
[1]
https://github.com/Linaro/lava-server/blob/release/lava_scheduler_app/model…
[2]
https://github.com/Linaro/lava-server/blob/release/lava_scheduler_app/api.p…
The Cambridge LAVA Lab has a transparent squid proxy which saves having
to configure each dispatcher and device to use it. Outgoing HTTP
traffic from the lab has
no choice as it is intercepted at the internet gateway.
We did this because even after configuring the dispatcher, and
devices, it's almost
impossible to make all test shell tasks use the proxy. LAVA sets a
shell environment
inside a job but many of the clients in the various different types of
job simply ignore it.
Chasing every test writer was not feasible as the lab usage is so
large, but might be ok
in a smaller lab with tighter control of the jobs.
We don't proxy HTTPS requests because that's becomes very complicated
with faking
certificates etc
>>Marc Titinger <mtitinger at baylibre.com> writes:
>>
>> I had to make this change to get squid3 going with our LAVA 1.0 machine.
>> I thought this could be useful. I did not test extensively though.
>
>FWIW, I had problems getting lava-dispatcher to use my local squid proxy
>also. Seems setting LAVA_PROXY in lava-dispatcher.conf was working for
>the the devices (lava set the environment variable after booting the
>target), but lava-dispatcher itself was not using the proxy.
>
>I'll give this a try as well.
>
>Kevin
From: Marc Titinger <mtitinger(a)baylibre.com>
search_substr_from_array would return a false positive
in lava_dispatcher/downloader.py when trying to match
'no_proxy' exclusion list with the download object url.
This now uses a (too?) simple substring matching rather
than a greedy regex.
Signed-off-by: Marc Titinger <mtitinger(a)baylibre.com>
---
lava_dispatcher/utils.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lava_dispatcher/utils.py b/lava_dispatcher/utils.py
index f2fd79a..037f6b5 100644
--- a/lava_dispatcher/utils.py
+++ b/lava_dispatcher/utils.py
@@ -640,7 +640,7 @@ def search_substr_from_array(string, array, sep=','):
Strings in array are separated by default with ','
"""
for obj in array.split(sep):
- if re.search('.*' + str(obj) + '.*', str(string)):
+ if str(obj).find(string) is not -1:
return True
return False
--
2.5.0