Wednesday, 2016-11-23

*** thrash is now known as thrash|g0ne00:18
*** bobh has quit IRC01:35
*** DaveTurner has quit IRC02:10
*** bobh has joined #openstack-mistral02:13
*** jamielennox is now known as jamielennox|away02:30
*** bobh has quit IRC02:49
*** bobh has joined #openstack-mistral02:57
*** jamielennox|away is now known as jamielennox02:59
*** bobh has quit IRC03:04
*** bobh has joined #openstack-mistral03:16
*** sharatss has quit IRC03:18
*** sharatss has joined #openstack-mistral03:19
*** catintheroof has joined #openstack-mistral03:27
*** catintheroof has quit IRC03:40
*** bobh has quit IRC04:02
rakhmerovdtantsur|afk: no support for microversions04:53
rakhmerovdtantsur|afk: yes, you need to update mapping.json and update the database (mistral-db-manage --config-file <file> populate)04:58
openstackgerritSharat Sharma proposed openstack/mistral: Add timestamp at the bottom of every page  https://review.openstack.org/39776106:22
openstackgerritSharat Sharma proposed openstack/mistral: Add timestamp at the bottom of every page  https://review.openstack.org/39776106:23
*** ist has joined #openstack-mistral06:24
*** janki has joined #openstack-mistral06:26
*** ist has quit IRC06:34
d0ugaldtantsur|afk: so, we could write simple tripleo actions that call ironic client initially. Then migrate over once either it is enabled by default or this is resolved in Mistral08:18
*** dtantsur|afk is now known as dtantsur08:27
dtantsurd0ugal, right, this was my thought too... I just didn't like the idea of such wrapper08:29
*** jaosorior has joined #openstack-mistral08:29
*** shardy has joined #openstack-mistral08:30
*** jpich has joined #openstack-mistral08:30
d0ugaldtantsur: agreed08:32
d0ugaldtantsur: I suspect it wont be trivial to solve in Mistral - but it has been on my list, so this helps move it up in priority :)08:33
dtantsurcool :)08:33
d0ugalI guess a simple solution would be to make it globally configurable08:34
d0ugalWhich wouldn't be ideal, but it would be easy08:34
d0ugaland it would be cleaner than having to specify the client version in every action call.08:35
*** ist has joined #openstack-mistral08:35
dtantsuryep08:37
d0ugaldtantsur: so it is just a case of passing in this? https://github.com/openstack/tripleo-common/blob/master/tripleo_common/actions/base.py#L5908:38
d0ugalrakhmerov: ping08:40
rakhmerovyes08:40
rakhmerovhere08:40
rakhmerovhi, what's up?08:41
d0ugalrakhmerov: How would you feel about additional config settings to pass in extra parameters to the openstack clients?08:41
d0ugalrakhmerov: more context just above in my conversation with dtantsur08:41
rakhmerovIstvan Imre (ist) is going to work on that08:42
rakhmerovsoon08:42
rakhmerovhe needs it too08:42
d0ugalah, I was thinking about working on it now :)08:42
rakhmerov:)08:42
rakhmerovist: hi Istvan, you here?08:42
rakhmerovwould you please be able to share the details on those additional params passed to clients?08:42
rakhmerovso that we see if that correlates to what we're discussing08:43
d0ugalso, we want to pass this: https://github.com/openstack/tripleo-common/blob/master/tripleo_common/actions/base.py#L5908:43
d0ugalbecause some ironic features are not enabled by default08:43
d0ugalthis version is newer than the default08:43
rakhmerovooh, this..08:44
rakhmerovI think it's somewhat different actually08:44
d0ugaloh, what are you thinking of?08:44
rakhmerovIstvan's idea was to be able to pass any context parameters from the client side08:44
rakhmerovso that actions could use them08:45
d0ugalCan you give an example?08:45
dtantsurif I get it right, that would probably work too.. it's less convenient, but more in line with microversioning idea08:46
rakhmerovany environmental stuff that is meaningful for a particular client. Actually those TARGET_* params could be considered just arbitrary dynamic params that certain actions use (in our case all OpenStack actions)08:46
rakhmerovit's basically to give a client to influence more on what they are doing with Mistral08:47
rakhmerovto make Mistral less connected to a certain OpenStack08:47
d0ugalRight, I see08:48
rakhmerovIstvan has some other use cases, I'll ask him to share that08:48
d0ugalso openstack actions could then be used against other openstacks.08:48
isthello08:48
rakhmerovd0ugal: yes08:48
rakhmerovist: hey )08:48
d0ugalso it is esentially the same problem, we just have different motivation for it :)08:48
rakhmerovcan you please share your idea with dynamic params08:48
rakhmerov?08:48
rakhmerovd0ugal: in my understanding, yes08:49
istWe just passing some hidden parameters to our actions, which we would like to hide from workflow write08:49
istwriter08:49
rakhmerovauthor, yep08:49
rakhmerovist: what's your use case?08:49
rakhmerovfor example08:49
rakhmerovwe already discussed it but it slipped away from my head08:50
d0ugal:)08:50
istBasically we would like to pass some read-only and hidden data to our custom actions08:50
rakhmerov:) yeah08:50
d0ugalist: the auth token for example?08:50
rakhmerovso the idea is to be able to customize workflow behavior but w/o rewriting workflow itself08:51
rakhmerovfrom the client08:51
rakhmerovvia having more flexible actions08:51
d0ugalright08:51
rakhmerovtaking some additional params08:51
istfor example if we pass them to workflow as explicit parameter our 3rd party workflow developer could easily mix these parameters in their workflow, and may it could do harm on our system08:52
rakhmerovok08:52
istthat's why we need some hidden/read-only parameters to protect ourself from 3rd party WF developers08:53
rakhmerov:)08:53
rakhmerovI see08:53
rakhmerovit's because we let them write some custom workflows08:54
rakhmerovas part of using our product08:54
d0ugalright08:54
rakhmerovhm..08:54
d0ugalso it this a bit like sandboxing a little bit?08:54
rakhmerova little bit tricky but I get it08:54
rakhmerovkind of, yes08:54
d0ugalokay08:54
rakhmerovdtantsur: is this any helpful to you?08:55
d0ugalist: Had you thought about how you would do this in Mistral?08:55
d0ugalrakhmerov: if it allows passing arbitrary parameters to the openstack client initialization then I think it would help dtantsur too.08:56
rakhmerovist: is it ok if we share that design document that you sent me some time ago? In a little bit different form08:56
dtantsurrakhmerov, looks so that we can pass TARGET_OS_BAREMETAL_API_VERSION=.. or something08:56
rakhmerovit had all enough info08:56
dtantsurist, my only problem: will these parameters be visible to client initialization code?08:56
rakhmerovdtantsur: yes, and our actions would be able to extract this param from the context08:56
dtantsurrakhmerov, from this object? https://github.com/openstack/mistral/blob/30d05ab7d2c47f7e77ab333392c619aeda1f9f68/mistral/actions/openstack/actions.py#L36708:57
d0ugalrakhmerov: we need to be careful with client caching if we re-enable it, as this will make the number of unique clients far greater.08:57
d0ugal(just a side point)08:57
d0ugaldtantsur: Yeah, I think so.08:58
rakhmerovdtantsur: it's a tricky thing. We have this problem now I believe. We need to do it more smartly. In fact, we'd like to not create clients all the time (cache them) but we need to see what we pass and cache based on some critical init params08:58
rakhmerovyes, right08:58
dtantsurright, so API version would be such critical parameter08:58
rakhmerovd0ugal: may be we shouldn't be caching at all or only subset of clients08:58
rakhmerovagnostic to any param changes08:59
rakhmerovright08:59
d0ugalrakhmerov: I think an LRU cache is fine, we pick a sensible default max cache size and make it configurable.08:59
rakhmerovaffirmative09:00
d0ugalwe probably need to add a cache key function to each client action09:00
rakhmerov+109:00
d0ugalso it does get a little more complicated, but I don't think it will be that bad.09:00
dtantsuris all this planned for the near future?09:01
d0ugalrakhmerov, ist: How would we pass this context to the workflow?09:01
dtantsurif so, I won't end up doing hacks in TripleO09:01
d0ugaldtantsur: I'll see if I can do it, I want to avoid the hacks too :)09:01
d0ugalor see if I can help anyway09:02
dtantsurcool! ping me as well for testing/reviews/discussions (I'll stay on this channel for a while then)09:02
rakhmerovdtantsur: this is one of the important things that we agreed to address within the team. d0ugal and rbrady (and myself) are assigned to do it in the current cycle09:02
dtantsurgreat09:02
d0ugalYeah, it is part of a larger problem.09:03
rakhmerovd0ugal: so, it's just supposed to be info stored in our context transparently. So for example, we passed something from the client, json = {"my_custom_params": {"key1": ..., "key2": ...}}09:04
rakhmerovit gets stored in WF context in some special section "custom_client_params" or similar09:04
d0ugalrakhmerov: right, that's fine - I just don't understand where it comes from originally?09:04
rakhmerovand also becomes a part of our security context09:04
rakhmerovwhich is available to all actions09:05
rakhmerovso they can extract that info too09:05
rakhmerovit comes from the client09:05
d0ugalrakhmerov: so it is added as a new parameter in the API?09:05
rakhmerovthat's the whole point, we need to make them dynamic09:06
istyes new parameter to client is needed09:06
rakhmerovso that we can pass virtually anything we want09:06
d0ugalso, for example, something like this...09:06
rakhmerovyes, in the client it's a new param but with a flexible structure09:07
d0ugalmistral execution-create my_workflow $WORKFLOW_INPUT $WORKFLOW_CONTEXT09:07
rakhmerovhm... kind of09:07
rakhmerovon the second thought, how is that different from the currently existing environment? :)09:08
rakhmerovenv09:08
d0ugalheh, good question.09:08
* rakhmerov renat is slightly confused09:08
* d0ugal too09:08
rakhmerovist: help us :)09:08
d0ugalbut environments confuse me, because I don't understand how anybody else uses them lol09:08
d0ugal(and I know our use-case is a bit weird)09:08
rakhmerovd0ugal: the idea of environments is very simple IMO. It's the 100% analogy to regular OS environments09:09
istbut if we would like to go even further, we could consider refactoring of security / OS context, and create some structure like  action_context / <any key> / ... where <any key> could be OS for example for OpenStack security context09:10
rakhmerovi.e. we have a bash script which uses some environment variables09:10
rakhmerovand they can be different for different users09:10
rakhmerovist: yes, right09:10
d0ugalrakhmerov: right, I understand that - but is there a way to read and write to an environment from the workflow? or do you only do that from custom actions?09:11
rakhmerovd0ugal: yes, indeed09:11
istCurerently we use only from custom actions09:11
rakhmerov<% env().my_env_var %>09:11
rakhmerovwhere env() points to the environment passed alongside with WF input (either just a name of the stored env or the entire json structure)09:12
d0ugalrakhmerov: does that environment only exist for the duration of the workflow?09:12
rakhmerovd0ugal: so one difference from env that I see is that like Istvan said those params must be hidden from workflow09:12
rakhmerovd0ugal: yes09:12
rakhmerovooh, no!!09:12
rakhmerovd0ugal: depends09:12
d0ugalhah09:12
rakhmerovthere's two cases: 1) named environment 2) explicit JSON09:13
rakhmerovin #1 it's just a DB persistent object09:13
d0ugalRight, we only use named environments.09:13
rakhmerovand when we start a WF we just specify its name09:13
rakhmerovfor #2 it's a transient structure existing only for this WF execution09:13
d0ugalokay, thans09:14
d0ugalthanks09:14
d0ugalI guess I might try and write a bit more here: http://docs.openstack.org/developer/mistral/dsl/dsl_v2.html#environment09:14
d0ugal:)09:14
rakhmerovvery simple example09:14
rakhmerovIn my workflows I need to be sending emails09:14
rakhmerovwhereas I use the same sent of workflows different users need to have different SMTP settings09:15
rakhmerovSMTP details could be passed in the environment09:15
rakhmerovso that WF don't have to have them hardcoded (which doesn't work for many users)09:16
rakhmerovd0ugal: yeah, I believe we have some bug to write more about it. It's very poorely documented, I admit09:16
d0ugalokay, that makes sense. thanks09:16
rakhmerov.. set of workflows ..09:16
rakhmerovok09:17
d0ugalI'll see if I can improve the documentation a bit, and you can tell me where I get it wrong :)09:17
d0ugalBack to the action/context discussion. So it seems environment isn't the right place for it09:17
rakhmerovso, on Istvan's idea, we'll write a spec first anyway09:17
d0ugalOkay09:17
rakhmerovd0ugal: sure09:17
rakhmerovd0ugal: yeah, seems like it's not09:17
d0ugalLet me know how I can help, or I will just review/test.09:18
rakhmerovso Istvan's idea is more about "Mistral client -> actions" relationship09:20
rakhmerovok09:20
d0ugalYeah, I think it is essentially the same for us09:21
dtantsurplease add me to the spec review as well once it's up09:21
dtantsurcompletely different thought: "OpenStack context is available by $.openstack" I wonder if we should pass API versions there after them being passed from standard versioning headers OS-API-Version (or whatever it is called now)09:23
* d0ugal reads http://developer.openstack.org/api-guide/compute/microversions.html09:24
d0ugaldtantsur: so mistral would look at the API version for each individual project it creates clients for?09:25
d0ugalIt seems both like a nice idea but also an abuse of the system. I'm not sure.09:26
dtantsurd0ugal, actually I think this is how microversions are intended to be used.. but I may be wrong09:29
d0ugaldtantsur: You are usually correct tho' :)09:36
dtantsurlol, not always definitely :)09:36
*** dtantsur is now known as dtantsur|bbl10:00
*** jamielennox is now known as jamielennox|away10:21
openstackgerritMerged openstack/mistral: Updated from global requirements  https://review.openstack.org/40090410:24
*** pkoniszewski has quit IRC10:35
openstackgerritGal Margalit proposed openstack/mistral-dashboard: mistral-dashboard: added action executions screens  https://review.openstack.org/40118810:35
*** ddeja has quit IRC10:36
*** ddeja has joined #openstack-mistral10:44
*** pkoniszewski has joined #openstack-mistral10:44
*** igormarnat has quit IRC11:00
*** rakhmerov has quit IRC11:01
*** akuznetsova has quit IRC11:02
*** akuznetsova has joined #openstack-mistral11:02
*** ist has quit IRC11:03
*** rakhmerov has joined #openstack-mistral11:05
*** igormarnat has joined #openstack-mistral11:07
*** ist_ has joined #openstack-mistral11:19
openstackgerritSharat Sharma proposed openstack/mistral: Updated the retries_remain statement  https://review.openstack.org/38361711:21
*** dtantsur|bbl is now known as dtantsur11:36
openstackgerritfengchaoyang proposed openstack/mistral: Fix configuration_guide docs not very good configuration.  https://review.openstack.org/40121611:43
*** openstackgerrit has quit IRC12:03
*** openstackgerrit has joined #openstack-mistral12:03
*** catintheroof has joined #openstack-mistral12:09
*** catintheroof has quit IRC12:15
*** catintheroof has joined #openstack-mistral12:20
openstackgerritfengchaoyang proposed openstack/mistral: Fix configuration_guide docs not very good configuration.  https://review.openstack.org/40121612:31
*** thrash|g0ne is now known as thrash12:32
*** shardy is now known as shardy_lunch12:39
*** catintheroof has quit IRC12:44
*** dprince has joined #openstack-mistral12:56
openstackgerritSharat Sharma proposed openstack/mistral: Fix devstack plugin compatibility  https://review.openstack.org/40124913:09
openstackgerritSharat Sharma proposed openstack/mistral: Fix devstack plugin compatibility  https://review.openstack.org/40124913:12
*** shardy_lunch is now known as shardy13:28
openstackgerritSharat Sharma proposed openstack/python-mistralclient: Wrap the contents of the input and description fields  https://review.openstack.org/40127514:08
sharatssrakhmerov, d0ugal ddeja https://review.openstack.org/#/c/401249/ this fixes gate-mistral-devstack-dsvm job. Please have a look14:12
d0ugalsharatss: will do!14:31
ddejasharatss: +2 from me14:33
d0ugaland me :)14:43
*** bobh has joined #openstack-mistral14:49
*** bobh has quit IRC14:49
*** bobh has joined #openstack-mistral14:50
*** jaosorior has quit IRC14:53
*** jaosorior has joined #openstack-mistral14:54
*** jaosorior has quit IRC15:09
*** jaosorior has joined #openstack-mistral15:10
*** chlong has joined #openstack-mistral15:25
*** chlong has quit IRC15:34
*** janki has quit IRC15:38
*** ist_ has quit IRC15:43
*** chlong has joined #openstack-mistral15:49
openstackgerritMerged openstack/mistral: Fix devstack plugin compatibility  https://review.openstack.org/40124915:57
*** DaveTurner has joined #openstack-mistral16:14
*** dprince has quit IRC16:33
*** weshay is now known as weshay_lunch16:37
*** Kiall has joined #openstack-mistral16:54
*** dprince has joined #openstack-mistral16:58
*** bobh has quit IRC17:01
*** bobh has joined #openstack-mistral17:04
*** jaosorior has quit IRC17:15
openstackgerritMichal Gershenzon proposed openstack/mistral: Yaql Tasks Function  https://review.openstack.org/40136017:23
*** weshay_lunch is now known as weshay17:42
*** shardy has quit IRC17:43
*** chlong has quit IRC17:50
*** dtantsur is now known as dtantsur|afk18:24
*** DaveTurner has quit IRC18:57
*** catintheroof has joined #openstack-mistral19:27
*** catintheroof has quit IRC19:34
*** jpich has quit IRC20:03
*** dprince has quit IRC20:46
*** catintheroof has joined #openstack-mistral21:08
*** jamielennox|away is now known as jamielennox21:22
*** catintheroof has quit IRC21:40
*** chlong has joined #openstack-mistral22:19
*** chlong has quit IRC22:30
*** catintheroof has joined #openstack-mistral22:48
*** catintheroof has quit IRC22:52
*** catintheroof has joined #openstack-mistral23:00
*** thrash is now known as thrash|g0bble23:07
*** catinthe_ has joined #openstack-mistral23:23
*** bobh has quit IRC23:24
*** catintheroof has quit IRC23:26
*** bobh has joined #openstack-mistral23:33
*** bobh has quit IRC23:38
*** catinthe_ has quit IRC23:55

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