This is starting to look good. I think I would separate the columns
that are displayed from the search bar though. And whatever columns you
search on should be added to the custom columns automatically. Also,
have the current columns checked off (the ones we show by default)
Also, right now the code doesn't work if you search without selecting
some custom columns. You probably already know that.. but just in case. :-)
This and the new search are really making this powerful! Thanks for
your hard work.
I checked out ticket55 branch and tried it out. Couple observations..
1) can we have it hide the Keyvalue pull down when Key/Value is not
selected? Hide the pull down and the title as well. :-)
2) the composite Key_Value_String / Key_Value_Int causes a serious
It preloads every Value for every key.. so the following code took over
2 minutes on my laptop..
all_keys = cls.query()
return [key.key_name for key in all_keys]
I looked to see if there was some way to delay the loading but I
couldn't find any. Can you make the code work without the composite?
p.s. - reply to the beaker-devel list.. I'm trying to keep all
communication on the list. :-)
I added beah rpm to the lab controller repo, using cobbler we can have
the following in the kickstart:
cat << EOF > /etc/yum.repos.d/beaker-harness.repo
os_version will expand to fedora11 for example. We'll have a different
harness repo per release. Eventually we can get beah in Fedora proper.
We can add $arch in there if we need it.
Issues I ran into :
1) Right now I had to add the rhts-noarch repo as well since the
rhts-test-runner.sh expects that repo. I think we should move repo
creation and yum install to beah backend. I know eventually we will
want to support install methods other than rpm/yum. (the repos needed
are in the xml file)
2) The beah-beaker-backend service had to be restarted after bootup
because NetworkManager hasn't finished bringing the network interface
up. We should add nm-online to the init script so it doesn't continue
until the network is up.
3) I had to turn the service on
chkconfig --add beah-srv
chkconfig --add beah-beaker-backend
Shouldn't the service be activated after install?
4) I'm writing the config file out from cobbler kickstart
cat << EOF > /etc/beah_beaker.conf
# LAB_CONTROLLER: URI of Beaker's XML-RPC handler
# # HOSTNAME: Pretend to be machine with given name:
I think this is fine. no need for anything fancier
If we can fix 1 and 2 then we will be able to run automatically after
Marian Csontos wrote:
Lets keep this discussion on beaker-devel if possible. :-)
> On 11/03/2009 04:40 PM, Bill Peck wrote:
>> Hi Marian,
>> Below is an example of how to upload files in real time in beaker. I am
>> doing this for the console logging. It should be very similar for the
>> Two methods for uploading files
>> task_upload_file Uploads file to task specific location
>> (typically the stdout/stderr of the task)
>> recipe_upload_file Uploads file to recipe specific location
>> (typically console logs)
> Oh, I see. I ignored Watchdog class entirely and missed
> recipe_upload_file method.
> If I understand sources correctly, Watchdog is separate from proxy and
> does not handle XML-RPC`s at all. Why is the recipe_upload_file method
> in Watchdog class and not in ProxyHelper? Is it because task is not
> expected to upload recipe specific files? Are we sure it is not?
It doesn't handle proxies. It does its own authenticated xmlrpc back to
> E.g. I would like harness to submit its logs in some cases after the
> recipe is done. Though this could be done by adding another task to
> XML, I am not sure it would work in all cases - e.g. when recipe is
> aborted. This would require a way to extend the recycle period, after
> recipe has finished.
I'm fine with moving the recipe_upload_file method to the ProxyHelper.
I didn't see a use case at first but your explanation makes sense.
> From *_upload_file doc-string:
> > path: the relative path to upload to
> and it is used here:
> > self.recipe_upload_file(watchdog['recipe_id'],
> > "/",
> > "console.log",
> > size,
> > md5sum,
> > where,
> > data)
> What is supposed to be relative address starts with a slash.
> Is it correct?
> Is the slash mandatory?
>> server = xmlrpclib.Server("http://%s:%s" % (server_hostname, port))
>> if os.path.exists(filepath):
>> file = open(filepath, "r")
>> while True:
>> where = file.tell()
>> line = file.read(65536)
>> if not line:
>> size = len(line)
>> data = base64.encodestring(line)
>> md5sum = md5_constructor(line).hexdigest()
>> Should be able to do the above from a pipe as well. May have to change
>> the seek
>> Beaker-devel mailing list
Marian Csontos wrote:
> Hi Bill,
> Is LC going to provide a synchronization among multiple tasks as RHTS
it could, but I don't have any store (DB) in the lab controller right now.
> I would like to implement this as a kind of variables in Harness:
> - variables could be either local (stored by harness) or server side
> (managed by external entity, with the assistance of backends).
> - local variables could be persistent - e.g. would survive a reboot.
> - (task|recipe|recipe-set)-specific variables, by using id in its name.
> - server side var's would be handled by backend - again, backend could
> decide which variables it handles by simple pattern matching.
I would like it to be done in the harness so that when multi-host tests
are run outside of the beaker scheduler they would work. The XML would
still have to say who is in what role.
<task avg_time="7200" id="233" name="/distribution/kernelinstall"
result="None" role="SERVERS" status="Running">
How would the harness running on dell-pesc430-02.rhts.eng.bos.redhat.com
know it needed to talk to the harness running on
Who is going to be the primary sync master? Whoever has the lowest ip
Does seem easy if I just implement a store on the lab controller and let
them use it as the sync master..
> Comments welcome,
> -- Marian
Below is an example of how to upload files in real time in beaker. I am
doing this for the console logging. It should be very similar for the
Two methods for uploading files
task_upload_file Uploads file to task specific location
(typically the stdout/stderr of the task)
recipe_upload_file Uploads file to recipe specific location
(typically console logs)
server = xmlrpclib.Server("http://%s:%s" % (server_hostname, port))
file = open(filepath, "r")
where = file.tell()
line = file.read(65536)
if not line:
size = len(line)
data = base64.encodestring(line)
md5sum = md5_constructor(line).hexdigest()
Should be able to do the above from a pipe as well. May have to change