I have created a blueprint to capture the intention to simplify calling 
standard actions:

https://blueprints.launchpad.net/mistral/+spec/mistral-shorthand-action-in-dsl

DZ> 

On Feb 11, 2014, at 7:40 AM, Dmitri Zimine <d...@stackstorm.com> wrote:

> Yes it makes sense, let's draft how it may look;
> 
> and also think over implementation implications - now we separate task 
> parameters, action parameters, and service parameters, we may need to merge 
> them when instantiating the action. 
> 
> DZ. 
> 
> On Feb 11, 2014, at 6:19 AM, Renat Akhmerov <rakhme...@mirantis.com> wrote:
> 
>> Dmitry, I think you are right here. I think for simple case we should be 
>> able to use in-place action definition without having to define the action 
>> separately. Like you said it’s only valuable if we need to reuse it.
>> 
>> The only difference I see between std:send-email and something like REST_API 
>> is that a set of parameters for the latter is dynamic (versus std:send-email 
>> where it’s always “recipients”, “subject”, “body”). Even though it’s still 
>> the same protocol (HTTP) but a particular request representation may be 
>> different (i.e. query string, headers, the structure of body in case POST 
>> etc.). But I think that doesn’t cancel the idea of being able to define the 
>> action along with the task itself.
>> 
>> So good point. As for the syntax itself, we need to think it over. In the 
>> snippet you provided “action: std:REST_API”, so we need to make sure not to 
>> have ambiguities in the ways how we can refer actions. A convention could be 
>> “if we don’t use a namespace we assume that there’s a separate action 
>> definition included into the same workbook, otherwise it should be 
>> considered in-place action definition and task property “action” refers to 
>> an action type rather than the action itself”. Does that make sense?
> 
>> 
>> Renat Akhmerov
>> @ Mirantis Inc.
>> 
>> On 11 Feb 2014, at 16:23, Dmitri Zimine <d...@stackstorm.com> wrote:
>> 
>>> Do we have (or think about) a shorthand to calling REST_API action, without 
>>> defining a service? 
>>> 
>>> FULL  DSL:
>>> 
>>> Services:
>>> TimeService:
>>>     type: REST_API
>>>     parameters:
>>>       baseUrl:http://api.timezonedb.com
>>>       key:<my_api_key>
>>>     actions:
>>>       get-time:
>>>         task-parameters:
>>>           zone:
>>> Workflow:
>>> tasks:
>>>    timeInToronto:
>>>       action: TimeService:get-time
>>>       parameters:
>>>         zone: "America/Toronto"
>>> 
>>> SHORTCUT - may look something like this: 
>>> 
>>> Workflow:
>>> tasks:
>>>     timeInToronto:
>>>         action:std:REST_API
>>>         parameters:
>>>           baseUrl: "http://api.timezonedb.com";
>>>           method: "GET"
>>>           parameters: "zone=/America/Toronto&key=<my_api_key>"
>>>           
>>> Why asking:  
>>> 
>>> 1) analogy with std:send-email action. I wonder do we have to make user 
>>> define Service for std:send-email? and I think that for standard tasks we 
>>> shouldn't have to. If there is any thinking on REST_API, it may apply here. 
>>> 
>>> 2) For a one-off web service calls the complete syntax is may be overkill 
>>> (but yes, it comes handy for reuse). See examples below. 
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev@lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to