_mup_ensemble/expose-provision-machines-reexpose r296 committed by jim.baker@canonical.com00:06
_mup_Mocked version of verifying connection closed terminates topology watch00:06
_mup_ensemble/expose-provision-machines-reexpose r297 committed by jim.baker@canonical.com00:09
_mup_Removed need for mocking00:09
_mup_ensemble/expose-provision-machines-reexpose r298 committed by jim.baker@canonical.com00:24
_mup_Test clean up/comments; also now test what happens when the client is disconnected before the watch is even started00:24
_mup_ensemble/expose-provision-machines-reexpose r299 committed by jim.baker@canonical.com00:42
_mup_ensemble/expose-provision-machines-reexpose r300 committed by jim.baker@canonical.com00:43
_mup_Removed unused import00:43
_mup_Bug #812619 was filed: Re-exposing a service does not work with the provisioning agent <Ensemble:In Progress by jimbaker> < https://launchpad.net/bugs/812619 >00:49
=== daker_ is now known as daker
fwereadedoes anyone know anything abut the config parsing in ensemble?12:00
niemeyerMorning all12:31
niemeyerfwereade: I'm sure someone knows about it :-)12:31
niemeyerfwereade: What are you looking for?12:31
fwereadeniemeyer: I've written a test for the orchestra schema, and I can't get both that and the ec2schema tests to pass at the same time12:32
fwereadeniemeyer: the problem is that we get an error for every schema we check12:32
fwereadeniemeyer: and we don't necessarily get the one I'm testing for12:33
fwereadeniemeyer: (that's controlled by the order in which we specify the provider schemas in the OneOf)12:33
fwereadeniemeyer: am I missing something obvious? :)12:34
niemeyerfwereade: Hard to tell without knowing what the error is12:34
fwereadeniemeyer: if I'm missing (say) orchestra-server, then we get an exception from coerce()12:35
fwereadeniemeyer: quite rightly12:35
niemeyerfwereade: Can you please paste the error and the code somewhere?12:35
fwereadeniemeyer: but we also get an exception when we attempt to coerce() to the EC2 schema, because we don't have (say) control-bucket12:35
niemeyerfwereade: Well, we shouldn't attempt to coerce an orchestra config to an EC2 schema12:36
fwereadeniemeyer: agreed12:36
niemeyerfwereade: They have to be separate schemas12:37
fwereadeniemeyer: hm, ok, so we just do a first pass to determine the type12:37
fwereadeniemeyer: and then try to apply the actual schema we've detected12:38
fwereadeniemeyer: it's not intractable, but I didn't want to lay heavily into that section of code without checking with someone12:38
niemeyerfwereade: Hmmm.. just a sec12:39
fwereadeniemeyer: no rush, I was just about to have lunch anyway12:39
fwereadeniemeyer: and I've got some unrelated issue with my VMs that I need to sort out before I can be confident it's worth proposing a merge12:40
fwereadeniemeyer: (I have the cobbler communication tested, and I can boot machines, but they don't actually manage to install)12:41
fwereadeniemeyer: talk later?12:41
niemeyerfwereade: I see what you mean12:44
niemeyerfwereade: This is a shortcoming in our schema library12:44
niemeyerfwereade: Let me ponder for a moment on the issue and we catch up later12:44
niemeyerfwereade: You're not blocked on this, right?12:45
niemeyerfwereade: I think you're doing the right thing, FWIW.. it's just the schema library itself that should be fixed12:45
lynxmanhey guys, I have a question for you :)13:29
lynxmangot ensemble module on Mac but when I execute it says13:29
lynxmanImportError: No module named zookeeper13:29
lynxmanthat I assume is not the txzookeper python library13:29
lynxmanso which one should I look to import?13:29
lynxmanzookeeper itself?13:30
lynxmanello? :)13:36
niemeyerlynxman: Hey13:50
niemeyerlynxman: Yeah, that's the C extension that is provided by zookeeper itself13:50
niemeyerlynxman: txzookeeper is a wrapper on top of that which "Twistifies" (ugh) the library13:51
fwereadeniemeyer: that was my reading of the issue, but I thought it was worth checking ;)13:52
fwereadeniemeyer: and no, I'm not blocked yet, but I should be in a little while13:53
fwereadeniemeyer: I'll let you know when it bcomes urgent :)13:54
lynxmanniemeyer: cool, so I'll just create the python extensions for that :)13:59
niemeyerfwereade: Thanks :)14:11
niemeyerlynxman: Super :)14:11
RoAkSoAxfwereade: howdy! do you think I should do something like this?: http://paste.ubuntu.com/647347/14:50
fwereadeRoAkSoAx: sounds sensible to me14:58
fwereadeRoAkSoAx: will make it easy to pull out whatever's common14:58
fwereadeRoAkSoAx: btw, you remember we got everything running on my machine14:59
fwereadeRoAkSoAx: seems we didn't quite, was wondering if you had a few minutes to point me in the right direction14:59
fwereadeRoAkSoAx: I can launch a machine but the install doesn't complete15:00
RoAkSoAxfwereade: you need to change the IP of the proxy15:01
RoAkSoAxfwereade: in the preseed15:02
RoAkSoAxfwereade: that's what comes to my mind15:04
fwereadeRoAkSoAx: the first errors I see are a couple of "debconf-copydb: cannot open question file"s15:05
fwereadeRoAkSoAx: but it keeps doing stuff after that15:06
fwereadeRoAkSoAx: it starts to look fatal around "cannot stat /etc/default/puppet", while setting up ubuntu-orchestra-client15:07
lynxmanniemeyer: just FYI, it's done https://trac.macports.org/ticket/3023715:19
RoAkSoAxfwereade: remove orchestra-client from the preseed15:20
RoAkSoAxfwereade: or extra packages15:20
RoAkSoAxthat is from the preseed *inside* the cobbler VM15:20
RoAkSoAx/var/lib/cobbler/kickstarts/ensemble.preseed I think15:20
fwereadeRoAkSoAx: thanks: it took me an embarrassingly long time peering at the kickstarts dir on the host system before the penny dropped there15:26
hazmatlynxman, awesome15:28
hazmatlynxman, does the live check stuff mean it will auto pull the latest?15:29
hazmathmm. probably not with the checksums15:29
lynxmanhazmat: nope, we'll have to update manually for now15:31
lynxmanhazmat: macports is like BSD ports, it requires static versions, but once it's there updating it is easier15:32
_mup_ensemble/trunk r276 committed by kapil.thangavelu@canonical.com15:33
_mup_merge deploy-tolerates-broken-formulas-bug-810765 [r=fwereade,jimbaker][f=810765]15:33
_mup_Ensemble deploy will behave nicely when formulas in a repository have broken metadatas, by ignoring them.15:33
_mup_ensemble/trunk-merge r270 committed by kapil.thangavelu@canonical.com15:36
_mup_merge trunk15:36
_mup_ensemble/security-node-policy-def r276 committed by kapil.thangavelu@canonical.com15:41
_mup_address review comments, inline owner_ace func, additional doc comments on rule signature.15:41
RoAkSoAxfwereade: heh it happens15:47
niemeyerlynxman: Woot!16:05
lynxmanniemeyer: \o/16:08
lynxmanniemeyer: as soon as it's live mac developers will be able to use and deploy ensemble as well16:08
lynxman(client side of course)16:08
niemeyerlynxman: Please keep us updated.. quite curious to see how that'll go16:08
lynxmanniemeyer: will do :)16:09
niemeyerAlright.. I'll step out for lunch16:10
niemeyerJust off of a meeting16:10
niemeyerFor those who didn't receive it, we have a developer (all formula and core are welcome) meeting today at 17:30UTC for sync up16:11
niemeyerIn Google+16:11
niemeyerPlease be here if you're interested16:11
* niemeyer => lunch16:12
_mup_Bug #810808 was filed: Formula install hook never completes <Ensemble:In Progress> < https://launchpad.net/bugs/810808 >16:14
kirklandniemeyer: how does one attend this meeting?16:33
kirklandniemeyer: is it irc only?16:34
kirklandniemeyer: i see "(voice)" and "In Google+", but I don't see how to join16:34
bcsallerkirkland: I think someone has to start it which hasn't happened yet as far as I can see16:36
kirklandbcsaller: kthx16:38
_mup_Bug #812996 was filed: Deploy should support config options <Ensemble:In Progress by bcsaller> < https://launchpad.net/bugs/812996 >16:39
hazmatbcsaller, it looks like you have a conflict against trunk in that merge proposal16:43
hazmatkirkland, are you on google plus?16:47
kirklandhazmat: sadly, yes16:47
robbiewhangouts are cool...but setting them up sucks16:47
robbiewunless you create a damn circle for each individual friend...or always hangout with the same group </rant>16:48
SpamapSYou don't have to "hangout" .. you can just video chat with somebody16:48
fwereadeSpamapS: where's the fun in that?16:49
robbiewbut if I want to video chat with 2 people...I need to hangout, right?16:49
robbiewif those two people are in my circles, i should be able to just select them and hang...but you can't 16:49
robbiewyou have to invite them..and hope you have the right address for them that they've used with google +16:50
robbiewBeta crap16:50
SpamapSyour worlds... will collide16:50
robbiew</rant..for real>16:50
robbiewI guess I'm getting what I paid for16:50
kirklandrobbiew: you're paying with your own soul16:52
hazmatfwereade, niemeyer, jimbaker  .. we're all hanging out in hangout if your interested16:53
jimbakerhazmat, i've been following this discussion about the hangout - but is there a URL for it?16:54
hazmatjimbaker, you have to be logged into google plus, and it should appear there16:54
jimbakerlet me check it again... i just joined yesterday16:54
jimbakerhazmat, looked around the page, just see something about creating a hangout16:56
hazmatjimbaker, i'll send another link16:59
hazmatjimbaker, what's your icon.. there are lots on google +16:59
jimbakerhazmat, my icon? ;)17:00
hazmatjimbaker, its hard to figure out which of the many is you17:00
jimbakerhazmat, i guess i'm the one who has not yet associated a picture w/ my account yet17:01
hazmatjimbaker, there are lots of those.. do you have profile info filled out?17:04
hazmatjimbaker, actually easier might just be sending me your gmail address via priv msg17:04
jimbakerhazmat, i just added two bits - my picture, and employment at canonical17:05
jimbakerbtw, my desktop doesn't have audio input17:10
jimbakeri will have to switch over to my laptop instead17:11
_mup_ensemble/trunk r277 committed by kapil.thangavelu@canonical.com17:14
_mup_merge security-node-policy-def [r=niemeyer,bcsaller][f=810510]17:14
_mup_A security policy implementation that returns ACLs for zk nodes by path.17:14
=== serue_ is now known as hallyn
niemeyerhazmat: Oh, wasn't it 17:30?17:20
niemeyerI'll join17:20
niemeyerbcsaller, fwereade, jimbaker, m_3: ping?17:22
jimbakerniemeyer, hi17:22
bcsallerniemeyer: ready when you are17:22
fwereadeniemeyer: heyhey17:22
fwereadeniemeyer: we're all hanging out17:22
niemeyerfwereade: Where?17:22
niemeyerI don't have any invitations here17:23
fwereadeniemeyer: google plus somewhere... not sure who set it up17:23
niemeyerfwereade: Someone has to invite me17:23
niemeyerfwereade: and bcsaller/jimbaker, I suppose17:23
fwereadeniemeyer: done, I think17:24
jimbakerhazmat is the person who set up the hangout17:24
jimbakeri think the easiest way is for every person who wants to join the meeting to pm hazmat their gmail address, assuming they have one17:25
niemeyerfwereade: No, nothing here17:26
fwereadeheh, bizarre17:27
m_3ney niemeyer... we're "hanging"17:27
fwereadeniemeyer: just tried again, just in case17:27
kirklandhazmat: how do i get in?17:28
fwereadeit's a shame niemeyer's not there to enjoy our cool party17:28
niemeyerAh, got from bcsaller now17:28
m_3I think ben set it up... it appeared in my stream17:28
bcsallerjust now, yeah17:28
niemeyerkirkland: We have our own party now! :-)17:29
m_3hazmat: we switched from that hangout to a new one17:30
niemeyerSpamapS: ping17:32
kirklandrobbiew: SpamapS: you guys coming?17:32
SpamapSWhere do I go?17:32
jimbakerlooks like i have a problem joining from my laptop... will try again17:33
adam_gcan someone send invite to gandelman.a@gmail.com plzz?17:33
* robbiew has no delusions about the lack of value he will provide to the discussion17:33
niemeyerhazmat: ping?17:34
niemeyerhazmat: Where are you?17:34
hazmatniemeyer, networking hicckup17:35
SpamapSSorry guys, I want to be there, but I don't know where there is17:36
m_3SpamapS: invited17:36
m_3adam_g: invited17:37
SpamapSm_3: I have no evidence of any invitations. :p17:38
bcsallerSpamapS: not in your stream?17:38
m_3it shows up on the stream17:38
m_3go to ben's profile17:38
SpamapSwell hidden17:39
niemeyerfwereade: I can hear you17:42
fwereadeniemeyer: looks like it was actually foretelling the near future17:43
m_3SpamapS: bad audio17:43
fwereadetrying to rejoin17:43
fwereadenot looking good :/17:46
m_3SpamapS: bad audio again18:02
SpamapSmy net connection has basically failed18:10
RoAkSoAxfwereade: still arou nd?18:15
fwereadeRoAkSoAx: yep18:15
fwereadeRoAkSoAx: what can I do for you?18:15
RoAkSoAxfwereade: want you to review something real quick18:16
fwereadeRoAkSoAx: sure :)18:16
RoAkSoAxfwereade: http://paste.ubuntu.com/647512/18:16
RoAkSoAxfwereade: so from OrchestraSaveState __init__ I'm instancing OrchestraStorage which basically obtains the connection to the storage18:17
RoAkSoAxfwereade: so my concerns are, instancing this : # FIXME: Should this be done like this?18:17
RoAkSoAx        self._storage = OrchestraStorage(self)18:17
RoAkSoAxand in OrchestraStorage18:17
RoAkSoAxobtain the config like this:18:17
RoAkSoAxself.config = provider._provider.config18:17
fwereadeRoAkSoAx: I think that should be a self._provider.get_file_storage18:17
fwereadeRoAkSoAx: in general I think if we can do things via the provider we should18:18
RoAkSoAxfwereade: ok so I keep the get_file_storage function on the MachineProvider then18:18
fwereadeRoAkSoAx: I think so18:18
RoAkSoAxfwereade: alright, cool, thanks!18:18
fwereadeRoAkSoAx: a pleasure :)18:19
=== daker is now known as daker_
adam_gis this error message meaningful to anyone? i haven't seen it before:18:37
SpamapSwhoa that does look confusing18:39
SpamapSare the hooks copied to some tmp dir?18:39
* SpamapS prepares an upload of ensemble that runs the test suite during build18:40
adam_gSpamapS: the file in /tmp is some template script generated by ensemble18:41
SpamapSInteresting.. here are the failures when running the test suite ina clean chroot...18:49
SpamapSexceptions.ValueError: Could not find AWS_ACCESS_KEY_ID18:50
m_3adam_g: the kill not finding the pid just means the hook exited without removing its pid file18:53
m_3just an unclean or abnormal exit for some reason?18:53
m_3what happens in non debug-hooks mode?18:55
adam_gor at least i think.. let me check once more18:56
_mup_ensemble/expose-provider-ec2 r293 committed by jim.baker@canonical.com19:12
_mup_Merged trunk19:12
_mup_ensemble/expose-provider-ec2 r294 committed by jim.baker@canonical.com19:20
_mup_Merged upstream expose-provision-machines-reexpose and resolved conflicts19:20
_mup_ensemble/expose-provider-ec2 r295 committed by jim.baker@canonical.com19:25
_mup_Default to NotExposed for watched_units19:25
_mup_Bug #813112 was filed: test suite cannot run without an ssh key <Ensemble:New> < https://launchpad.net/bugs/813112 >19:27
niemeyerThat was a long call19:28
niemeyerfwereade: ping19:37
jimbakergood to see the firewall actually opening/closing ports in response to the use of ensemble expose/ensemble unexpose19:40
jimbakerniemeyer, the only issue with dividing up the branches is that there's no ec2 provider implementation in expose-provision-machines; this doesn't come into place until the branch i'm currently working on, expose-provider-ec219:42
niemeyerjimbaker: Dividing which branches in this case?19:43
jimbakerthe two branches i just mentioned, expose-provision-machines and expose-provider-ec219:43
jimbakergiven that MachineProvider is a subclass of object, we don't currently have a way of defaulting say an empty implementation19:44
jimbakerexpose-provision-machines works fine with the dummy provider of course19:44
niemeyerjimbaker: Sorry, ECONTEXT19:45
niemeyerjimbaker: What's the issue you're trying to address?19:45
jimbakerniemeyer, the MachineProvider implementation is required to implement open_port, close_port, get_opened_ports19:45
jimbakerthis is done with the dummy provider19:46
niemeyerjimbaker: Yes, the implementation is required.. for the implementation? :-)19:46
jimbakerand is changed with the ec2 provider in expose-provider-ec219:46
jimbakerniemeyer, maybe i should have a branch called transitional that adds these empty methods, possibly throwing some sort of error like a provider error?19:47
jimbakeralternatively, this can be merged as a group into trunk19:47
niemeyerjimbaker: Probably not, if that's not required19:47
niemeyerjimbaker: Having just the dummy implementation, and then adding the ec2 one in a follow up sounds ok19:47
jimbakerniemeyer, sounds good19:47
niemeyerjimbaker: Unless you're detecting  a problem with doing it that I'm still missing?19:47
jimbakerniemeyer, the problem is that if you run expose-provision-machines against an ec2 provider, it will fail, due to the lack of implementation19:48
jimbakerso i think the cleanest way of addressing this is to just merge these branches as a group19:49
jimbakeronce they are all approved19:50
jimbakerniemeyer, the other thing is that once in trunk, this will force some formula writers and presumably all formula deployers to consider the firewall19:52
jimbakerniemeyer, so this will be an important change to communicate on my part :)19:52
niemeyerjimbaker: That's doable too19:53
niemeyerjimbaker: Yes, that sounds reasonable, on both counts19:54
niemeyerjimbaker: We should also discuss the change19:54
jimbakerniemeyer, cool19:54
niemeyerjimbaker: To see if we have to introduce a migration path or not19:54
jimbakerniemeyer, my feeling is that in discussing the migration, it would be best to combine the one line + comments change for the wordpress example formula with the doc changes (mostly from draft to main)19:55
jimbakerthat would be the branch after the one i'm currently working on19:56
niemeyerjimbaker: Hmm.. the example formulas don't really worry me.. what we have to discuss with SpamapS, m_3, adam_g, negronjl, and lynxman is the fact that their formulas will stop working19:56
jimbakerniemeyer, after expose-provider-ec2 and expose-migration (the branch just discussed), there's a firewall solution in place for ec219:56
niemeyerWell.. not really stop working per se19:57
jimbakerniemeyer, correct19:57
niemeyerThey'll just not open the firewall19:57
niemeyerWhich doesn't sound like a big issue, but we have to talk19:57
niemeyerjimbaker: Can you please bring up that conversation in the mailing list?19:57
jimbakerniemeyer, right, they can always manually open the firewall using their favorite tool19:57
jimbakerniemeyer, i will do the mailing list discussion19:58
jimbakeror at least kick it off ;)19:58
niemeyerjimbaker: Thanks19:58
jimbakerniemeyer, then after all this dust settles, i can then work on supporting unexpose and expose hooks. but that's more for completeness than what i would imagine is a common use case19:59
* hazmat goes into review mode19:59
negronjlfrom my point of view guys, change what needs to be changed in ensemble and let me know what changed.  I'll adapt the formulas to match the work.20:02
negronjlin other words...don't worry about my formulas.  Just let me know what changed and I'll adapt them to work.20:03
* negronjl is out to a meeting20:03
jimbakernegronjl, it boils down to: open-port PORT[/PROTOCOL] in a hook script; ensemble expose SERVICE_TO_BE_EXPOSED20:04
jimbakerensemble does the rest of the work20:04
niemeyerhazmat: Looking at that can isn't fun20:04
hazmatniemeyer, back20:06
adam_gwhen using add-unit, is formula uploaded from locall repository to new unit or is it fetched from bootstrap node such that all units are running the same revision of a formula?20:10
m_3jimbaker, niemeyer: +1 on what negronjl said (different answer later when things are in production tho!)20:17
SpamapSI wonder if there is some sort of kernel level event service that can be tapped to find out what ports a process is using.20:20
m_3adam_g: dunno, never tried to add-unit without upgrading changes first... big issue though20:20
SpamapSlike inotify but for sockets instead of files20:20
m_3SpamapS: doesn't netstat have a mode where it continues watching sockets?20:22
SpamapSm_3: --continuous .. that polls tho20:24
adam_gm_3: i'm trying to add new units that have modified configuration. is this doable?20:25
SpamapSdo we have config settings in trunk yet?20:25
SpamapSI really want to start mucking with that20:26
adam_gi need each unit deployed to have a zone # assigned to it, and i'd like to be able to decide which zone a member joins when i deploy20:27
m_3adam_g: I've only been able to do that by adding the config info to an interface and letting another related service manage it20:27
adam_gi was thinking, in the meantime, of just hard-coding and updating it each time i deploy a new unit, but that doesn't work if they all share the same revision20:28
m_3other service can do 'relation-list' on a relation-joined and then send out new info across the board20:30
m_3can peer solve this?20:30
adam_gi'd like to decide which zones new units join, not the formula20:31
m_3yeah, that's just totally config20:31
m_3we'll get a 'deploy --config local.yaml' but I don't know if that'll be an option on add-unit20:33
adam_gi think another way would be to deploy the service once for each zone, and add-units to that services/zone20:37
m_3zone_manager service, or just curl it from somewhere... bad, worse20:37
m_3separate formulas?20:38
adam_gdeploy --config zone1.yaml swift-storage swift-zone120:39
adam_gdeploy --config zone2.yaml swift-storage swift-zone220:39
adam_gadd-unit swift-zone120:39
m_3absolutely if that's in there yet20:39
adam_gnot yet, im just using some hax for now.20:39
m_3that's probably the best... I've mocked up some config-get calls already20:40
m_3we'll have to see what bcsaller did with add-unit and --config20:41
bcsallerI didn't, you configure the service, not the units20:42
m_3so in adam_g's previous example, will 'add-unit swift-zone1' pick up the config?20:42
m_3(that came from a local yaml?)20:43
SpamapSadd-unit, no20:45
SpamapSoops, was scrolled back20:46
m_3I'm confused then... I'll dig trhough the branch to see what's up20:49
bcsallerm_3: service options are available available in all units and are the same 20:49
bcsallerall units of a given service 20:50
_mup_ensemble/expose-provider-ec2 r296 committed by jim.baker@canonical.com21:01
_mup_Doc strings, comments, test on EC2 error when accessing instances21:01
_mup_ensemble/expose-provider-ec2 r297 committed by jim.baker@canonical.com21:08
_mup_Docstrings for test_securitygroup21:08
_mup_ensemble/expose-provider-ec2 r298 committed by jim.baker@canonical.com21:12
niemeyerExtremely sleepy right now..21:35
niemeyerWill step out and lay down a bit21:35
* negronjl is back21:44
_mup_ensemble/expose-provider-ec2 r299 committed by jim.baker@canonical.com21:53
_mup_Test for EC2 errors in security group ops21:53
_mup_ensemble/expose-provider-ec2 r300 committed by jim.baker@canonical.com21:56
hazmatadam_g, formulas are uploaded to formula storage (s3) and downloaded from there for each deployed unit22:01
hazmatadam_g, environment's don't span ec2 regions 22:02
hazmatwe'll need to work out some sort of capability for that in the future22:02
hazmatSpamapS, service config is almost there, but not yet fully in trunk, last bits are in review22:03
* SpamapS will continue meditating in the corner until said review is complete22:05
hazmatSpamapS, i'm going to be looking at the lxc stuff and your branch next week, had a long chat with niemeyer about it an hr ago.22:06
SpamapShazmat: I'm at your disposal if you have questions22:08
hazmatSpamapS, i definitely will, thanks22:11
jimbakerok, i just proposed a branch that pulls all the pieces together for working with the firewall22:28
jimbakerin terms of doing this on ec2, that is22:29
m_3jimbaker: do you have a rough estimate of when ensemble will default to all ports closed behavior?22:35
jimbakerm_3, the branch i just proposed implements exactly that22:35
jimbakerm_3, it might be worthwhile checking it out so you can see the impact - but i think it's going to be super minimal22:36
m_3ok, I'll keep and eye out22:36
jimbakerm_3, re "when", only when it gets through the review process of course ;) - but the only big dependency has been approved by niemeyer and is awaiting a review by hazmat22:37
jimbaker(that would be expose-provision-machines)22:37
* hazmat digs back into reviews22:43

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!