| opendevreview | chandan kumar proposed openstack/cyborg-tempest-plugin master: Add scenario test for PCI device discovery and profile creation https://review.opendev.org/c/openstack/cyborg-tempest-plugin/+/992210 | 07:10 |
|---|---|---|
| opendevreview | chandan kumar proposed openstack/cyborg master: Add NVMeVirt emulated NVMe device support for devstack https://review.opendev.org/c/openstack/cyborg/+/977083 | 07:16 |
| opendevreview | chandan kumar proposed openstack/cyborg-tempest-plugin master: Add scenario test for PCI device discovery and profile creation https://review.opendev.org/c/openstack/cyborg-tempest-plugin/+/992210 | 09:13 |
| chandankumar | Cyborg team meeting starts in another 53 mins, Feel free to add your agenda here: https://etherpad.opendev.org/p/openstack-cyborg-irc-meeting#L42 | 13:06 |
| sean-k-mooney | chandankumar: thansk for taking a look at my cyborg tempest fixes by the way | 13:10 |
| sean-k-mooney | i have one minor bug to fix on the cybrog side but i think im more or less feature complete on the srbac work | 13:11 |
| sean-k-mooney | obvioulys we still need to review an approve the spec but i have a poc of it workign now with test more or less end to end | 13:11 |
| chandankumar | I have not looked at the srbac tempest tests, only focusing on ruff patches | 13:35 |
| sean-k-mooney | yep i got annored by the fact i had to manually fix pep8 | 13:42 |
| sean-k-mooney | also i ment ot do that a few months ago | 13:42 |
| sean-k-mooney | but i the cve work took precendce | 13:43 |
| sean-k-mooney | i still need to follwo ups wiht the client and some of the watcher repos but its not very hard to do | 13:43 |
| chandankumar | Hello all, Team meeting time | 14:00 |
| rlandy | o/ | 14:00 |
| chandankumar | #startmeeting cyborg | 14:00 |
| opendevmeet | Meeting started Tue Jun 9 14:00:59 2026 UTC and is due to finish in 60 minutes. The chair is chandankumar. Information about MeetBot at http://wiki.debian.org/MeetBot. | 14:00 |
| opendevmeet | Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. | 14:00 |
| opendevmeet | The meeting name has been set to 'cyborg' | 14:00 |
| chandankumar | who all are aroud? | 14:01 |
| chandankumar | o/ | 14:01 |
| chandankumar | #courtsey ping sean-k-mooney dviroel amoralej bogdando[m] jgilaber_ | 14:01 |
| sean-k-mooney | o/ | 14:01 |
| rlandy | o/ | 14:01 |
| jgilaber_ | o/ | 14:01 |
| *** jgilaber_ is now known as jgilaber | 14:01 | |
| chandankumar | Here is the link to etherpad https://etherpad.opendev.org/p/openstack-cyborg-irc-meeting#L42, feel free to add your topic here. | 14:01 |
| chandankumar | Since We donot have any topic to discuss I will directly jump to review topic | 14:04 |
| chandankumar | #topic Reviews | 14:04 |
| chandankumar | #link Remove glance image verification: https://review.opendev.org/q/topic:%22remove-glance-sig%22 | 14:05 |
| chandankumar | In last meeting, we discussed about dropping glance image verification code and respective parameters | 14:05 |
| chandankumar | I broke the patches into 3 patches | 14:05 |
| chandankumar | https://review.opendev.org/c/openstack/cyborg/+/991027: Remove broken image signature verification | 14:06 |
| chandankumar | https://review.opendev.org/c/openstack/cyborg/+/991598: Use GenericDriver.update() as the FPGA programming interface | 14:06 |
| chandankumar | https://review.opendev.org/c/openstack/cyborg/+/991579: Fix FakeDriver to support FPGA programming in CI | 14:06 |
| chandankumar | and tested here: https://review.opendev.org/c/openstack/cyborg-tempest-plugin/+/991081: Add scenario test for FPGA programming with FakeDriver | 14:06 |
| sean-k-mooney | the midle patch is still kidn fo incorrect | 14:07 |
| sean-k-mooney | the fake driver shoudl not inherit form the fpga one | 14:07 |
| sean-k-mooney | so really the thrid patch should be the secodn one | 14:08 |
| chandankumar | I pasted it in wrong order | 14:08 |
| sean-k-mooney | the order you pasted is correct | 14:08 |
| jgilaber | can't we just skip the second patch in the chain? | 14:08 |
| sean-k-mooney | the order you have them in gerrit is not | 14:08 |
| sean-k-mooney | jgilaber: right | 14:08 |
| sean-k-mooney | we shoudl not need https://review.opendev.org/c/openstack/cyborg/+/991579/2 | 14:09 |
| chandankumar | https://review.opendev.org/c/openstack/cyborg/+/991598 | 14:09 |
| chandankumar | I will do that | 14:09 |
| sean-k-mooney | the main think we need to make it work is https://review.opendev.org/c/openstack/cyborg/+/991598/2/cyborg/agent/manager.py | 14:09 |
| sean-k-mooney | and oblviy uypdatign the fpga dirver to use update internally | 14:10 |
| sean-k-mooney | im sure there are other places in teh manger we need to fix | 14:10 |
| sean-k-mooney | but evenutlly we shoudl nto call any driver spcific method | 14:10 |
| sean-k-mooney | only the methods on the base driver | 14:10 |
| sean-k-mooney | anyway the ci is green | 14:11 |
| jgilaber | the last patch looks ok from a quick glance | 14:11 |
| sean-k-mooney | and you updated tempest as well | 14:11 |
| sean-k-mooney | so if you remove the midel patch i think we are good directionally | 14:11 |
| sean-k-mooney | and can pick this up in gerrit | 14:11 |
| jgilaber | +1, since update is already in the base driver, this looks correct | 14:12 |
| chandankumar | https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/drivers/modules/generic.py#L82 | 14:12 |
| sean-k-mooney | if you read the docsting/comment for it | 14:12 |
| sean-k-mooney | its pretty clear that it was alwasy inteded for progrming the device | 14:12 |
| chandankumar | one more thing https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/drivers/modules/generic.py#L82 and https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/drivers/driver.py also | 14:12 |
| chandankumar | Do we want to keep both of the files? or keep one | 14:13 |
| sean-k-mooney | yes so https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/drivers/driver.py | 14:13 |
| sean-k-mooney | defiens the interface | 14:13 |
| chandankumar | yes | 14:13 |
| sean-k-mooney | we may combine them into one file | 14:13 |
| sean-k-mooney | but lets do that eperatly | 14:13 |
| sean-k-mooney | *seperatly | 14:13 |
| chandankumar | yes that would be much better | 14:14 |
| chandankumar | Ok I will propose a patch after the meeting | 14:14 |
| sean-k-mooney | well we need to decied on the direction | 14:14 |
| sean-k-mooney | my linclition is to delet this entirly | 14:15 |
| sean-k-mooney | but i want to look a the history and usage | 14:15 |
| sean-k-mooney | before we make a code change for it | 14:15 |
| sean-k-mooney | id ont think https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/drivers/modules/generic.py#L82 | 14:15 |
| sean-k-mooney | is currently used | 14:15 |
| sean-k-mooney | so we will liekly delete the enfire https://github.com/openstack/cyborg/tree/master/cyborg/accelerator/drivers/modules directory | 14:16 |
| sean-k-mooney | but as i said we need to investigate if this is infact dead code or not | 14:16 |
| chandankumar | https://review.opendev.org/c/openstack/cyborg/+/473186 - added the generic driver | 14:16 |
| jgilaber | it looks like not all drivers inherit from the base one e.g https://github.com/openstack/cyborg/blob/233f2a5b7e396c24bf15ae22f8cf64a480666f5c/cyborg/accelerator/drivers/gpu/base.py#L30 | 14:17 |
| sean-k-mooney | chandankumar: yes but that generic dirver was lated remvoed | 14:17 |
| sean-k-mooney | jgilaber: ya that also a problem kind of | 14:18 |
| sean-k-mooney | it will work but id dont want to chagne thie picemeal | 14:18 |
| chandankumar | I will look into the history | 14:19 |
| chandankumar | I can see two specs also https://github.com/openstack/cyborg-specs/blob/981405a8938ed786feaaf63ea1955aa7174a367b/specs/pike/implemented/cyborg-driver-proposal.rst#L8 and https://github.com/openstack/cyborg-specs/blob/981405a8938ed786feaaf63ea1955aa7174a367b/specs/train/implemented/cyborg-accelerator-driver.rst#L8 around generic driver | 14:19 |
| sean-k-mooney | chandankumar: ok | 14:19 |
| sean-k-mooney | so i have been hining at the fact that this might need a spec or mor thought then a quick bugfix | 14:20 |
| sean-k-mooney | i.e. tha that you shoudl proably not focus on this right now | 14:20 |
| sean-k-mooney | let me know what you find | 14:20 |
| chandankumar | yes correct | 14:20 |
| chandankumar | sure, I will dig into the history and open a bug around that | 14:20 |
| chandankumar | we can take it from there | 14:20 |
| sean-k-mooney | this was somithing i was plannign to look into closer to the end of the cycle ebfor ethe next ptg | 14:20 |
| sean-k-mooney | i dont really expect use to make large changes to this ebfore then | 14:21 |
| sean-k-mooney | basiclly i want to look at propsoign a new generic driver framework for next chcel | 14:22 |
| sean-k-mooney | and prot the exitign fucntionaltiy as part fo that work | 14:22 |
| chandankumar | yup, I will keep it to finding, you can take it from there | 14:22 |
| sean-k-mooney | cool so i think we can move onto jgilaber spec | 14:23 |
| chandankumar | yes | 14:23 |
| chandankumar | #link https://review.opendev.org/c/openstack/cyborg-specs/+/982276: Add generic mdev driver spec for 2026.2 | 14:23 |
| chandankumar | jgilaber: I have added your spec since you made changes to it | 14:23 |
| chandankumar | Anything you want to highlight from last revision | 14:24 |
| jgilaber | thanks for the reviews on the spec | 14:24 |
| jgilaber | there is one thing worth pointing out I think | 14:24 |
| jgilaber | while going through sean-k-mooney comments there is one that made me doubt, let me find the link | 14:25 |
| jgilaber | #link https://review.opendev.org/c/openstack/cyborg-specs/+/982276/comment/b5f2b851_3cfdee76/ | 14:25 |
| jgilaber | #undo | 14:25 |
| jgilaber | sorry, I though I pasted the wrong link | 14:25 |
| sean-k-mooney | the deplicate device coment | 14:26 |
| jgilaber | yes | 14:26 |
| sean-k-mooney | ya so in the medium term the conducrot shoud nto eb talkign to palcement at all | 14:26 |
| sean-k-mooney | the cybrog compute agents should | 14:26 |
| jgilaber | it looks to me that currently in cyborg we cannot currently have a deployable with more than one resource class | 14:26 |
| jgilaber | which we might want to do to use multiple mdev classes from one device | 14:26 |
| sean-k-mooney | well that proably ok | 14:27 |
| sean-k-mooney | what we need to model is as follows | 14:27 |
| sean-k-mooney | we need 1 placement resouce provider per PF | 14:27 |
| sean-k-mooney | and we need an inventory of mdev benetat it | 14:28 |
| sean-k-mooney | so each mdev will be a deployable right but there wotn be a 1:1 mapping between deployabels and resouce providers | 14:28 |
| sean-k-mooney | i need to look into that in more deail myself to see how this is currently working | 14:29 |
| sean-k-mooney | one thing that would help is some ascii diagrams in the spec | 14:29 |
| sean-k-mooney | to visually show how this works | 14:29 |
| sean-k-mooney | we have 2 related concepts in cybrogs api devices and deployables | 14:30 |
| jgilaber | good point I'll add some diagrams, it was confusing for me too | 14:30 |
| jgilaber | but if I understood correctly, in cyborg the resrouce provider is created from a DriverDeployable | 14:30 |
| jgilaber | not from a DriverDevice | 14:31 |
| sean-k-mooney | so the only way we woudl supprot more then one mdev type per phsyica device | 14:32 |
| sean-k-mooney | is if we were addign the VFs | 14:32 |
| sean-k-mooney | with that said we coudl aslo suffix the pci adress in the rp name | 14:33 |
| sean-k-mooney | with the type | 14:33 |
| sean-k-mooney | so i think we coudl workaroudn that limiation | 14:33 |
| sean-k-mooney | but we may want to think about the modelign more | 14:33 |
| sean-k-mooney | in nova we started with 1 type per device | 14:33 |
| sean-k-mooney | so that woudl eb a reasonable limiation fro v1 | 14:33 |
| sean-k-mooney | the nvidia driver didnt supprotr multipel asfar as im aware either | 14:33 |
| jgilaber | that is my understanding yes, the simplest workaround would be one DriverDeployable for each mdev type | 14:34 |
| sean-k-mooney | can you write up some of the options in the spec | 14:34 |
| sean-k-mooney | and we can discuss the tradeoffs | 14:34 |
| jgilaber | the nvidia driver just picks the first vgpu type it finds and uses that to create the rp | 14:34 |
| sean-k-mooney | i see | 14:34 |
| jgilaber | sure, I already have some of this but I'll expand with the diagrams | 14:34 |
| sean-k-mooney | that less then useful | 14:35 |
| sean-k-mooney | that comemnt was it picking the first one | 14:36 |
| sean-k-mooney | jgilaber: did you have any other questions you wanted to raise | 14:36 |
| jgilaber | no, thanks, the rest of the feedback was clear and I think I addressed it all | 14:37 |
| chandankumar | thank you jgilaber | 14:37 |
| chandankumar | moving to last review | 14:37 |
| chandankumar | #link SRBAC: https://review.opendev.org/q/topic:%22bp/consistent-and-secure-rbac%22 | 14:37 |
| chandankumar | #link srbac spec https://review.opendev.org/c/openstack/cyborg-specs/+/991932 | 14:38 |
| chandankumar | sean-k-mooney: do you want to take it | 14:38 |
| sean-k-mooney | sure | 14:38 |
| sean-k-mooney | so this is one of 2 specs im planing to work on this cycle | 14:38 |
| sean-k-mooney | part of the work was already compelted as part fo the CVE fixes | 14:38 |
| sean-k-mooney | that focused on geting a secure baselien for api policy | 14:39 |
| sean-k-mooney | the spec covers the 3 phases of the srbac comunity goal | 14:39 |
| sean-k-mooney | it intnet for this cycle ist to supprot all standard roels | 14:39 |
| sean-k-mooney | admin, manager, member, reader and service | 14:39 |
| sean-k-mooney | i have mostly implemtned the spec already | 14:39 |
| sean-k-mooney | including tmpest tests | 14:40 |
| sean-k-mooney | but i woudl liek to ask for folks to review the spec | 14:40 |
| sean-k-mooney | with attention pated to the polices/personas mapped to each api endpoint | 14:40 |
| sean-k-mooney | basiclly ask does it make sense for this persona to eb able to call this api | 14:40 |
| sean-k-mooney | i have 1 small bug in the cybrog patches which isll fix today/tomorrow | 14:41 |
| sean-k-mooney | its technical debt form the cve fixes | 14:41 |
| sean-k-mooney | that i want to think about a little more before fixing | 14:41 |
| sean-k-mooney | the simple fix is trivali but im thinkign fo cleaning up a little more tech debt while im there | 14:41 |
| sean-k-mooney | any questions on the effort or in general? | 14:41 |
| jgilaber | not really, I've added the spec to my review list, I hope to get to it by the end of the week | 14:42 |
| chandankumar | thank you for all the patches and spec, will go over the spec and have feedback there | 14:42 |
| sean-k-mooney | in the spec i detail the timelien as well. this cycle suprpot the new polices, 2027.1 make the new polices the default and 2027.2 delete the old code | 14:42 |
| sean-k-mooney | oh before i forget | 14:43 |
| sean-k-mooney | after the patches on the tempest plugin i also did the ruff and pre-commit work for that repo | 14:43 |
| sean-k-mooney | i coudl have doen that first but i had alrady written the patches :) | 14:44 |
| sean-k-mooney | so if folk want me to do that first i can mvoe it to the front | 14:44 |
| sean-k-mooney | one goal i have is to compelte that for all the cybrog and watcher repos | 14:45 |
| jgilaber | I think it's fine, we don't have a lot of open patches so it won't be a problem to rebase | 14:45 |
| chandankumar | anything is fine | 14:45 |
| sean-k-mooney | ok ill leave it where it is for now then | 14:45 |
| sean-k-mooney | thats all i had on that | 14:45 |
| chandankumar | thank you sean-k-mooney! | 14:46 |
| chandankumar | Since we donot have any bugs moving to open discussion | 14:46 |
| chandankumar | #topic Open Discussion | 14:46 |
| chandankumar | I see an item there | 14:46 |
| chandankumar | #topic driver support level | 14:46 |
| chandankumar | I think sean-k-mooney has added it | 14:47 |
| sean-k-mooney | ya more an fyi form me | 14:47 |
| sean-k-mooney | so im planning to start on the patch to add the supprot levels to our docs | 14:47 |
| sean-k-mooney | either later this week or next | 14:47 |
| sean-k-mooney | but ill try and prepare that for review before the next meeting | 14:47 |
| sean-k-mooney | that was basiclly it | 14:47 |
| chandankumar | thank you! | 14:48 |
| chandankumar | Moving to last one | 14:48 |
| chandankumar | #topic volunteer to chair next meeting | 14:48 |
| chandankumar | Anyone wants to chair next meeting? | 14:48 |
| rlandy | I can do it | 14:48 |
| rlandy | haven't done one of these in a while | 14:49 |
| sean-k-mooney | works for me, welcome back | 14:49 |
| chandankumar | thank you rlandy ! | 14:49 |
| rlandy | no problem | 14:49 |
| chandankumar | time to close the meeting | 14:49 |
| chandankumar | thank you all for attending! | 14:49 |
| chandankumar | #endmeeting | 14:49 |
| opendevmeet | Meeting ended Tue Jun 9 14:49:49 2026 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4) | 14:49 |
| opendevmeet | Minutes: https://meetings.opendev.org/meetings/cyborg/2026/cyborg.2026-06-09-14.00.html | 14:49 |
| opendevmeet | Minutes (text): https://meetings.opendev.org/meetings/cyborg/2026/cyborg.2026-06-09-14.00.txt | 14:49 |
| opendevmeet | Log: https://meetings.opendev.org/meetings/cyborg/2026/cyborg.2026-06-09-14.00.log.html | 14:49 |
| jgilaber | thanks chandankumar | 14:49 |
| sean-k-mooney | jgilaber: to your point ealier https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/drivers/pci/base.py#L21 | 14:51 |
| sean-k-mooney | most of the dirver dont inherit form base | 14:51 |
| sean-k-mooney | one of of the openquetion i have is do we want ot use a base clss or a protocol to defien the internfce | 14:52 |
| sean-k-mooney | either works and a common base class has its advangates as woudl a mixin for the common functionatliy | 14:52 |
| sean-k-mooney | for the new medev dirver you shoudl inherit form https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/drivers/driver.py#L17 | 14:53 |
| sean-k-mooney | but in genreal i think i want to spend some time thinking about restucture the repo a bit next cycel to normalise the code base a bit | 14:55 |
| sean-k-mooney | for exampel we shoudl not ahve any config stuff https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/configuration.py outside fo https://github.com/openstack/cyborg/tree/master/cyborg/conf | 14:55 |
| sean-k-mooney | and there shoudl not be any db code | 14:56 |
| sean-k-mooney | https://github.com/openstack/cyborg/blob/master/cyborg/accelerator/accelerator.py | 14:56 |
| sean-k-mooney | outside of https://github.com/openstack/cyborg/tree/master/cyborg/db | 14:56 |
| sean-k-mooney | but i suspect at elast some fo this code is deadcode | 14:56 |
| sean-k-mooney | so the dirver not ineritign form the base driver is just one of the peices fo tehcnial debt we need to clean up in the repo layout | 14:57 |
| jgilaber | I'll double check but I think I have it already in my spec, but yes either way it would work | 14:57 |
| jgilaber | it was unexpected to have that base class but not use it | 14:57 |
| sean-k-mooney | ya... so there si a lot of have completed code migration still in the repo | 14:58 |
| sean-k-mooney | out side fo the work you and chandankumar are doing implanning to spend the rest fo the cycle doign these cleanups before the next ptg | 14:58 |
| sean-k-mooney | so that we are in a better places to looks at larger architecurall isseus over the next cycle ot two | 14:59 |
| sean-k-mooney | once the image verifcation cleanup is done im plannign to work on https://bugs.launchpad.net/openstack-cyborg/+bug/2143943 assuming you or chandan doen pick it up by then | 15:00 |
| sean-k-mooney | its on my list to start after im happy with the srback work adn have the inital poc of the pci mangaged mode changes so my eta for that is about 2-3 weeks | 15:02 |
| jgilaber | I'll be busy for a bit with the nova mtty and the the rest of the of the nova mdev work | 15:06 |
| sean-k-mooney | ya no worreis this was more an fyi | 15:06 |
| sean-k-mooney | of what i plan to work on next | 15:06 |
| sean-k-mooney | in think i cna have the 2 "feature" i plan to delver for the cycel done by the end of june or early july, then im plannign to swap to buring down technial debt adn reviewing ye're sutff for the rest of the cycle | 15:07 |
| sean-k-mooney | jgilaber: speaking of you lates mtty run is currenly runnign temspt | 15:10 |
| sean-k-mooney | its goign to fail on some unrelated tests | 15:10 |
| jgilaber | oh cool | 15:10 |
| sean-k-mooney | but we should have results form it in the next hour or so | 15:10 |
| jgilaber | yeah it's going to fail for sure since the whitebox tests have check for valid pci address | 15:10 |
| sean-k-mooney | its acutlly failing on unrelated live mgiration tests | 15:11 |
| jgilaber | I was testing the zuul config and see if I had the configuration right and then I push a patch to make that check accept mdev devices | 15:11 |
| sean-k-mooney | so ill looint why ocne we have actul logs | 15:11 |
| jgilaber | ack thanks! | 15:11 |
| sean-k-mooney | my guess is the whitebox plugin may have confirued something tha tbrok live migrtion or some other unrelated issues but ill need to look at the nova-comptue logs to figure that out rather then just the tempest log stream | 15:13 |
| sean-k-mooney | i know you didnt set the cpu config options in the josb def for whitebox but i dont recall what the devstack plugisn defaults are | 15:14 |
| jgilaber | yes I saw your comment I probably missed a few settings, I tried to add the minimal set to get the test to run and then iteratively add the rest | 15:15 |
| jgilaber | to make sure that I understood what each does | 15:15 |
| sean-k-mooney | ya once we have a full run we can look at the rendered config files and then see what we need to tweak | 15:15 |
| sean-k-mooney | i dont thin that will be hard | 15:15 |
| sean-k-mooney | the ohter option we have is to write new tests in tempest iteslf | 15:16 |
| sean-k-mooney | that done need whitebox | 15:16 |
| opendevreview | Joan Gilabert proposed openstack/cyborg-specs master: Add generic mdev driver spec for 2026.2 https://review.opendev.org/c/openstack/cyborg-specs/+/982276 | 15:30 |
| sean-k-mooney | jgilaber: so the live migtion fialed because the qemu process crashed | 17:06 |
| jgilaber | sean-k-mooney, do you think it is related to the patch? | 18:01 |
| sean-k-mooney | no | 18:02 |
| sean-k-mooney | i think you jsut got unlucky | 18:02 |
| jgilaber | ack, thanks | 18:02 |
| jgilaber | I pushed a new version because the tempest regex was wrong | 18:03 |
| jgilaber | and I saw no reference to the whitebox | 18:03 |
| sean-k-mooney | that also failing i think but ill take a look when its done | 18:06 |
| sean-k-mooney | we may want to disabel the other jobs while we are debuging this | 18:07 |
| sean-k-mooney | just so it does not us as much gate resouces and or take as long | 18:08 |
| sean-k-mooney | but we can do that tomorrow | 18:08 |
| jgilaber | good point, I'll do that tomorrow | 18:14 |
| blanson[m] | \\\=-0987654321KL;' | 19:48 |
Generated by irclog2html.py 4.1.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!