Renat,

Thanks for the additional information.  I've been trying to put the pieces of 
history together and it seems I missed some of it.  I think I now understand 
the evolution of things.  Mistral does seem like it would work for what we 
need, so I'll definitely be paying attention to it.

I'm curious about the general OpenStack precedent of having an incubated 
project depend on one that isn't yet incubated.  Does that make it a hindrance 
for graduating to an official project since it would require operators to 
deploy something that isn't yet officially part of openstack, or does that not 
matter?

Greg

On Jan 2, 2014, at 12:21 AM, Renat Akhmerov 
<[email protected]<mailto:[email protected]>> wrote:

Greg,

This is really not a new discussion. Particularly, we’ve already discussed 
EventScheduler thing before with heat folks 
(http://lists.openstack.org/pipermail/openstack-dev/2013-November/019150.html). 
We agreed that EventScheduler doesn’t make a lot of sense alone after Mistral 
came into play. It’s because EventScheduler only describes calling webhooks on 
schedule and nothing else. Mistral already has this functionality just because 
it’s a part of its core idea. Timer events is just one of the event types 
Mistral is going to support (there will also be others like Ceilometer alarms). 
And one of the simple use case of Mistral would be exactly “calling a webhook 
on schedule”. Since Mistral uses DSL as a main interaction means with a user 
the team decided to implement ideas of EventScheduler as a part of Mistral DSL 
as well. Here’s the simple Mistral DSL that describes basically the same as 
described in EventScheduler:


Services:
   MyRest:
     type: REST_API
     parameters:
         baseUrl: http://localhost:8988/my_service
     actions:
         my-action:
           parameters:
               url: /my-action
               method: GET

Workflow:
   tasks:
     my-task:
         action: MyRest:my-action

   events:
     my-task:
        type: periodic
        tasks: my-task
        parameters:
            cron-pattern: "*/1 * * * *"

I really hope it’s self-explaining enough (if not, let us know what is not 
clear or what you don’t like, we’ll improve it). Basically, to make this simple 
DSL snippet work we just need to upload it to Mistral via REST API. Just want 
to repeat: this already works. To simplify this even more for use cases like 
yours we also have an idea of providing some API sugar like scheduling webhook 
calls using special REST API action like:

http POST /webhooks

{
“name”: “my every minute webhook”,
“webhook": 
“http://my.webhook.host/someurl”<http://my.webhook.host/someurl%E2%80%9D>,
“schedule”: {
“cron”: “* * * * *"
}
}

And under the hood Mistral would just generate a workflow definition similar to 
provided above.

So my main point here that I was trying to make is that EventScheduler is just 
a special case of Mistral capabilities. We can just provide a convenience for 
scheduling webhook calls on the API (a couple of hours to implement).

Thanks! Happy New Year to everyone!

Renat Akhmerov
@ Mirantis Inc.



_______________________________________________
OpenStack-dev mailing list
[email protected]<mailto:[email protected]>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to