OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC

  • 1.  RE: Enhancements to the TOSCA data filtering abilities

    Posted 12-12-2018 02:26




    By the way, as I think about this more, it seems to me that there is no reason why node filters should use condition clauses (rather than constraint clauses). For example, if I wanted a node filter that says:
    I want a Ubuntu host with 8G of memory or a CentOS host with 4G of memory . I don t think I can express that using just constraint clauses (even when we add Boolean operators to constraints) since we need constraints that combine multiple properties. Using
    condition clauses in node filters would solve this problem.
     
    Thanks,
     
    Chris
     


    From: Katzman, Anatoly <ak435s@intl.att.com>

    Sent: Sunday, September 23, 2018 6:20 AM
    To: Calin Curescu <calin.curescu@ericsson.com>; Chris Lauwers <lauwers@ubicity.com>; NOSHPITZ, CLAUDE <cn5542@att.com>; alex.vul@intel.com; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; lishitao@huawei.com; ljlamers@vmware.com; mrutkows@us.ibm.com;
    Paul.Lipton@ca.com; priya.g@netcracker.com; Steve Baillargeon <steve.baillargeon@ericsson.com>; thinh.nguyenphu@nokia.com; dmytro.gassanov@NetCracker.com; don.deel@netapp.com; dpalma@vnomic.com; SHADMI, DAVID <ds200p@att.com>; hsurti@cisco.com; ifat.afek@alcatel-lucent.com;
    JDurand@us.fujitsu.com; jeremy@gigaspaces.com; jim.hunter@ca.com; jpackett@us.ibm.com; kraman@redhat.com; luca.gioppo@csi.it; rpenta@redhat.com; xavier.degenne@fastconnect.fr; zhao.huabing@zte.com.cn
    Subject: RE: Enhancements to the TOSCA data filtering abilities


     
    Hi Calin,
    Thank you for the feedback, really encouraging.
     
    Regarding the new self-reflecting attributes I think it is a good addition and that it deserves a separate proposal and a separate discussion thread



  • 2.  RE: [tosca] RE: Enhancements to the TOSCA data filtering abilities

    Posted 12-12-2018 07:46
    Hello all,   If I may, I d just like to voice my opinion about the proposal of using a list in the YAML key to shorten the definitions in this example:   data_types:   VirtualCpuWithStaticPinning:     derived_from: tosca.datatypes.nfv.VirtualCpu     properties:       [virtual_cpu_pinning, cpu_pinning_policy]:         constraints:           - equal: static   While this approach seems to simplify matters from the user s perspective, it will create major headaches to the orchestrator implementors. Also, YAML also has support for anchors that does away with the issue of repetition, so the following will work in any existing orchestrator, according to existing standard, and will do the trick:   data_types: VirtualCpuWithStaticPinning: derived_from: tosca.datatypes.nfv.VirtualCpu properties: virtual_cpu_pinning: &static_constraints constraints: - equal: static cpu_pinning_policy: *static_constraints   Additionally, for this specific case, TOSCA also provides a dsl_definitions mechanism:   dsl_definitions: - &static_constraints constraints: - equal: static   data_types: VirtualCpuWithStaticPinning: derived_from: tosca.datatypes.nfv.VirtualCpu properties: virtual_cpu_pinning: *static_constraints cpu_pinning_policy: *static_constraints   Best regards, Matej     Matej ArtaÄ, PhD / Project Manager / +386 1 244 77 53 XLAB d.o.o. / Pot za Brdom 100 / SI - 1000 Ljubljana / Slovenia tel.+386 1 244 77 50 / info@xlab.si / www.xlab.si Project Manager, Platform and System Orchestration Member, OASIS TOSCA Standard Technical Committee Google Drive / Linkedin / Twitter     From: tosca@lists.oasis-open.org <tosca@lists.oasis-open.org> On Behalf Of Chris Lauwers Sent: Wednesday, December 12, 2018 3:26 AM To: Katzman, Anatoly <ak435s@intl.att.com>; Calin Curescu <calin.curescu@ericsson.com>; NOSHPITZ, CLAUDE <cn5542@att.com>; alex.vul@intel.com; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; lishitao@huawei.com; ljlamers@vmware.com; mrutkows@us.ibm.com; Paul.Lipton@ca.com; priya.g@netcracker.com; Steve Baillargeon <steve.baillargeon@ericsson.com>; thinh.nguyenphu@nokia.com; dmytro.gassanov@netcracker.com; don.deel@netapp.com; dpalma@vnomic.com; SHADMI, DAVID <ds200p@att.com>; hsurti@cisco.com; ifat.afek@alcatel-lucent.com; JDurand@us.fujitsu.com; jeremy@gigaspaces.com; jim.hunter@ca.com; jpackett@us.ibm.com; kraman@redhat.com; luca.gioppo@csi.it; rpenta@redhat.com; xavier.degenne@fastconnect.fr; zhao.huabing@zte.com.cn Cc: tosca@lists.oasis-open.org Subject: [tosca] RE: Enhancements to the TOSCA data filtering abilities   By the way, as I think about this more, it seems to me that there is no reason why node filters should use condition clauses (rather than constraint clauses). For example, if I wanted a node filter that says: I want a Ubuntu host with 8G of memory or a CentOS host with 4G of memory . I don t think I can express that using just constraint clauses (even when we add Boolean operators to constraints) since we need constraints that combine multiple properties. Using condition clauses in node filters would solve this problem.   Thanks,   Chris   From: Katzman, Anatoly < ak435s@intl.att.com > Sent: Sunday, September 23, 2018 6:20 AM To: Calin Curescu < calin.curescu@ericsson.com >; Chris Lauwers < lauwers@ubicity.com >; NOSHPITZ, CLAUDE < cn5542@att.com >; alex.vul@intel.com ; Arturo Martin De Nicolas < arturo.martin-de-nicolas@ericsson.com >; lishitao@huawei.com ; ljlamers@vmware.com ; mrutkows@us.ibm.com ; Paul.Lipton@ca.com ; priya.g@netcracker.com ; Steve Baillargeon < steve.baillargeon@ericsson.com >; thinh.nguyenphu@nokia.com ; dmytro.gassanov@NetCracker.com ; don.deel@netapp.com ; dpalma@vnomic.com ; SHADMI, DAVID < ds200p@att.com >; hsurti@cisco.com ; ifat.afek@alcatel-lucent.com ; JDurand@us.fujitsu.com ; jeremy@gigaspaces.com ; jim.hunter@ca.com ; jpackett@us.ibm.com ; kraman@redhat.com ; luca.gioppo@csi.it ; rpenta@redhat.com ; xavier.degenne@fastconnect.fr ; zhao.huabing@zte.com.cn Subject: RE: Enhancements to the TOSCA data filtering abilities   Hi Calin, Thank you for the feedback, really encouraging.   Regarding the new self-reflecting attributes I think it is a good addition and that it deserves a separate proposal and a separate discussion thread


  • 3.  Re: Enhancements to the TOSCA data filtering abilities

    Posted 12-13-2018 09:53




    Hi,
     
    I agree that we should use
    condition clauses in the node_filter instead of constraint clauses . This will allow us to put an or or a not in front of several attributes.

    Moreover, by using the direct assertion definition when specifying it, the condition clause becomes undistinguishable from a constraint clause. Which means that all the existing specifications
    stay valid. We just add the possibility to put an and or or not before several properties/attributes, from now on.

     
    Also within the constraint clause it is useful to have or and not to be able to express better constraints. This is simple, just by adding the and , or , and not to the constraints keyword
    tables. Again, this will extend the constraint clause, with all that is already written staying valid.
     
    The only thing that we still cannot do within a node_filter is to have an or between normal properties and properties within a capability definition. But this is a small price to pay for backwards
    compatibility.
     
    The changes in the document should be immediate and straightforward. I could help to write it.
     
    BR,
    /Calin
     

    From: Chris Lauwers <lauwers@ubicity.com>
    Date: Wednesday, 12 December 2018 at 03:26
    To: "Katzman, Anatoly" <ak435s@intl.att.com>, Calin Curescu <calin.curescu@ericsson.com>, "NOSHPITZ, CLAUDE" <cn5542@att.com>, "alex.vul@intel.com" <alex.vul@intel.com>, Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>, "lishitao@huawei.com"
    <lishitao@huawei.com>, "ljlamers@vmware.com" <ljlamers@vmware.com>, "mrutkows@us.ibm.com" <mrutkows@us.ibm.com>, "Paul.Lipton@ca.com" <Paul.Lipton@ca.com>, "priya.g@netcracker.com" <priya.g@netcracker.com>, Steve Baillargeon <steve.baillargeon@ericsson.com>,
    "thinh.nguyenphu@nokia.com" <thinh.nguyenphu@nokia.com>, "dmytro.gassanov@NetCracker.com" <dmytro.gassanov@netcracker.com>, "don.deel@netapp.com" <don.deel@netapp.com>, "dpalma@vnomic.com" <dpalma@vnomic.com>, "SHADMI, DAVID" <ds200p@att.com>, "hsurti@cisco.com"
    <hsurti@cisco.com>, "ifat.afek@alcatel-lucent.com" <ifat.afek@alcatel-lucent.com>, "JDurand@us.fujitsu.com" <JDurand@us.fujitsu.com>, "jeremy@gigaspaces.com" <jeremy@gigaspaces.com>, "jim.hunter@ca.com" <jim.hunter@ca.com>, "jpackett@us.ibm.com" <jpackett@us.ibm.com>,
    "kraman@redhat.com" <kraman@redhat.com>, "luca.gioppo@csi.it" <luca.gioppo@csi.it>, "rpenta@redhat.com" <rpenta@redhat.com>, "xavier.degenne@fastconnect.fr" <xavier.degenne@fastconnect.fr>, "zhao.huabing@zte.com.cn" <zhao.huabing@zte.com.cn>
    Cc: "tosca@lists.oasis-open.org" <tosca@lists.oasis-open.org>
    Subject: RE: Enhancements to the TOSCA data filtering abilities


     

    By the way, as I think about this more, it seems to me that there is no reason why node filters should use condition clauses (rather than constraint clauses). For example, if I wanted a node filter that says:
    I want a Ubuntu host with 8G of memory or a CentOS host with 4G of memory . I don t think I can express that using just constraint clauses (even when we add Boolean operators to constraints) since we need constraints that combine multiple properties. Using
    condition clauses in node filters would solve this problem.
     
    Thanks,
     
    Chris
     


    From: Katzman, Anatoly <ak435s@intl.att.com>

    Sent: Sunday, September 23, 2018 6:20 AM
    To: Calin Curescu <calin.curescu@ericsson.com>; Chris Lauwers <lauwers@ubicity.com>; NOSHPITZ, CLAUDE <cn5542@att.com>; alex.vul@intel.com; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; lishitao@huawei.com; ljlamers@vmware.com; mrutkows@us.ibm.com;
    Paul.Lipton@ca.com; priya.g@netcracker.com; Steve Baillargeon <steve.baillargeon@ericsson.com>; thinh.nguyenphu@nokia.com; dmytro.gassanov@NetCracker.com; don.deel@netapp.com; dpalma@vnomic.com; SHADMI, DAVID <ds200p@att.com>; hsurti@cisco.com; ifat.afek@alcatel-lucent.com;
    JDurand@us.fujitsu.com; jeremy@gigaspaces.com; jim.hunter@ca.com; jpackett@us.ibm.com; kraman@redhat.com; luca.gioppo@csi.it; rpenta@redhat.com; xavier.degenne@fastconnect.fr; zhao.huabing@zte.com.cn
    Subject: RE: Enhancements to the TOSCA data filtering abilities


     
    Hi Calin,
    Thank you for the feedback, really encouraging.
     
    Regarding the new self-reflecting attributes I think it is a good addition and that it deserves a separate proposal and a separate discussion thread



  • 4.  RE: Enhancements to the TOSCA data filtering abilities

    Posted 12-14-2018 22:06




    Comments in-line
     


    From: Calin Curescu <calin.curescu@ericsson.com>

    Sent: Thursday, December 13, 2018 1:53 AM
    To: Chris Lauwers <lauwers@ubicity.com>; Katzman, Anatoly <ak435s@intl.att.com>; NOSHPITZ, CLAUDE <cn5542@att.com>; alex.vul@intel.com; Arturo Martin De Nicolas <arturo.martin-de-nicolas@ericsson.com>; lishitao@huawei.com; ljlamers@vmware.com; mrutkows@us.ibm.com;
    Paul.Lipton@ca.com; priya.g@netcracker.com; Steve Baillargeon <steve.baillargeon@ericsson.com>; thinh.nguyenphu@nokia.com; dmytro.gassanov@NetCracker.com; don.deel@netapp.com; dpalma@vnomic.com; SHADMI, DAVID <ds200p@att.com>; hsurti@cisco.com; ifat.afek@alcatel-lucent.com;
    JDurand@us.fujitsu.com; jeremy@gigaspaces.com; jim.hunter@ca.com; jpackett@us.ibm.com; kraman@redhat.com; luca.gioppo@csi.it; rpenta@redhat.com; xavier.degenne@fastconnect.fr; zhao.huabing@zte.com.cn
    Cc: tosca@lists.oasis-open.org
    Subject: Re: Enhancements to the TOSCA data filtering abilities


     
    Hi,
     
    I agree that we should use
    condition clauses in the node_filter instead of constraint clauses . This will allow us to put an or or a not in front of several attributes.

    Moreover, by using the direct assertion definition when specifying it, the condition clause becomes undistinguishable from a constraint clause.

     
    Actually, to be technical correct, I would rephrase this as follows:. The syntax for condition clauses looks as follows (assuming we deprecate the assert keyword):
     
    condition_clause: and_clause or_clause not_clause list of assertion_clause
    or_clause : or: + list of condition_clause
    and_clause: and + list of condition_clause
    not_clause: not + list of condition_clause
    assertion_clause: <property_name:> +  list of constraint_clause
     
    The syntax for property filter clauses looks as follows:
     
    property_filter: <property_name:> + list of constraint_clause
     
    What this means, then, is that the assertion clause and the property filter clause look exactly the same (assuming again that we deprecate the assert keyword). If in addition, we allowed Boolean
    operators in node_filters, then a node filter would effectively consist of a condition clause. Constraint clauses would still look different.
                 

    Which means that all the existing specifications stay valid. We just add the possibility to put an and or or not before several properties/attributes, from now on.

     
    Unless anyone objects, I will obsolete the assert keyword in condition clauses.
     
    Also within the constraint clause it is useful to have or and not to be able to express better constraints. This is simple, just by adding the and , or , and not to the constraints
    keyword tables. Again, this will extend the constraint clause, with all that is already written staying valid.
     
    Yes, this would be simple to do, but I m not sure it adds a whole lot of value. For example, let s look at the following example which would become possible with your suggestion:
     
    condition:
      - port:

        - or
          - { equal: 80 }
          - { equal: 431 }
     
    This logic could already be expressed without your suggestion as follows:
     
    condition:
      - or:

        - port: { equal: 80 }
        - port: { equal: 431 }
     
    Would we create confusion by giving template designers two different ways to accomplish the same thing?
     
    The only thing that we still cannot do within a node_filter is to have an or between normal properties and properties within a capability definition. But this is a small price to
    pay for backwards compatibility.
     
    Yes, but that could be accomplished if we adopted Anatoly s 3 rd proposal, as follows. Let s assume a node has a port property and a compute capability. We could create a logic _expression_
    as follows:
     
    condition:
      - or:

        - port: { equal: 80 }
        - [compute, mem_size] : { greater_or_equal: 2GB }



    The changes in the document should be immediate and straightforward. I could help to write it.
     
    BR,
    /Calin