>As for YAQL and JSONPath, I didn't see how it is possible to write conditions like "a && !b || c". Their data aggregation capabilities are decent, but at first we need to be able to write conditions.
Full set of logic operations is supported: $.object.attribute1 and not $object.attribute2 or $object.attribute3. Also there is true and false constants available: $.object.attribute is true or even $.object.attribute = true On Tue, Mar 11, 2014 at 4:51 PM, Vitaly Kramskikh <[email protected]>wrote: > Guys, > > As for using mako to preprocess YAML file, it could be a good idea to > generate cluster settings on cluster creation (like removing vlan spliters > section for a cluster with nova network) or volume groups, but I don't > think it is a good idea to calculate role availability using it and it is > impossible to set up dependencies between settings as it must be calculated > in browser. For example, we could have vSphere hypervisor which is > available only if vSphere section is enabled. > > As for YAQL and JSONPath, I didn't see how it is possible to write > conditions like "a && !b || c". Their data aggregation capabilities are > decent, but at first we need to be able to write conditions. > > But since we have toggleable sections, I doubt we even need these complex > conditions as role/settings availability will only depend on section > checkbox state. So flags/sections like "depends" and "conflicts" are more > than enough for our needs. > > > 2014-03-11 12:47 GMT+04:00 Serg Melikyan <[email protected]>: > > There are a few examples on the project Github > page<https://github.com/ativelkov/yaql>. >> More details may be found in the article: Yet Another Query >> Language<https://docs.google.com/document/d/1Ct8aPUPPpSmUjh6ugtu_CEBRHfF3bBM5FxzgJ1f-Nwk/edit?usp=sharing> >> >> >> >> On Tue, Mar 11, 2014 at 12:42 PM, Serg Melikyan >> <[email protected]>wrote: >> >>> Hi, Evgeniy >>> >>> A few months ago we hit similar use-case in Murano: ability to express >>> complicated conditions & queries. We used JSON Path, but it was not enough >>> for us. >>> >>> One major thing that is required when you implementing such mechanism is >>> restriction on Python usage - any executable code that can be executed on >>> server is a security/stability issue. To solve this use-case without >>> introducing ability to run any executable code we have created >>> YAQL<https://github.com/ativelkov/yaql> >>> . >>> >>> YAQL is very extensible and flexible library, that provides great >>> conditions/query expirience out of the box. YAQL may be easily extended >>> with own functions without adding anything in the library itself. Please, >>> look at the YAQL and let's discuss how YAQL may help to solve your cases. >>> >>> >>> On Fri, Mar 7, 2014 at 12:56 PM, Evgeniy L <[email protected]> wrote: >>> >>>> Hi Vitaly, >>>> >>>> I'm not sure that I understand you case correctly, but we can just a >>>> render flag to enable or disable role. >>>> >>>> For example: >>>> >>>> roles_metadata: >>>> controller: >>>> name: "Custom Role Name" >>>> description: "Role's description" >>>> conflicts: >>>> - compute >>>> enable: >>>> condition: >>>> ${cluster.attributes.editable.additional_components.ceilometer.value} >>>> description: "some error message" >>>> >>>> And for example we will be able to make more complicated conditions >>>> >>>> ${not >>>> cluster.attributes.editable.additional_components.ceilometer.value} >>>> >>>> ${cluster.attributes.some_cluster_attr and not >>>> cluster.attributes.some_cluster_attr2} >>>> >>>> But my suggestion is not to use such ugly construction in template (it >>>> would be better to create a helper), but it will be really useful for those >>>> who add new roles in fuel. >>>> >>>> >>>> On Thu, Mar 6, 2014 at 10:04 PM, Vitaly Kramskikh < >>>> [email protected]> wrote: >>>> >>>>> Hi Evgeniy, >>>>> >>>>> In that particular case with Ceph role availability dependent on >>>>> settings, where would you use the template? Generate a role list using it? >>>>> >>>>> >>>>> >>>>> 2014-03-06 19:12 GMT+04:00 Evgeniy L <[email protected]>: >>>>> >>>>>> Hi, >>>>>> >>>>>> We (python team) had a discussion about roles disabling feature [0] >>>>>> with colleagues from UI team as result I've created a design document [1] >>>>>> where I tried to describe problems which we have and possible solutions. >>>>>> >>>>>> Comments are welcome. >>>>>> >>>>>> [0] >>>>>> https://docs.google.com/a/mirantis.com/document/d/1-YMcGX0JI4LwbrpsvA-ktIkxVqCI3bi7PQ6U0udW0O0/edit >>>>>> [1] >>>>>> https://docs.google.com/a/mirantis.com/document/d/1yBaIxUMnrFths7N1_qVkIivpR0GsYHRlGR3C8IZ9bbk/edit# >>>>>> >>>>>> -- >>>>>> Mailing list: https://launchpad.net/~fuel-dev >>>>>> Post to : [email protected] >>>>>> Unsubscribe : https://launchpad.net/~fuel-dev >>>>>> More help : https://help.launchpad.net/ListHelp >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Vitaly Kramskikh, >>>>> Software Engineer, >>>>> Mirantis, Inc. >>>>> >>>> >>>> >>>> -- >>>> Mailing list: https://launchpad.net/~fuel-dev >>>> Post to : [email protected] >>>> Unsubscribe : https://launchpad.net/~fuel-dev >>>> More help : https://help.launchpad.net/ListHelp >>>> >>>> >>> >>> >>> -- >>> Serg Melikyan, Senior Software Engineer at Mirantis, Inc. >>> http://mirantis.com | [email protected] >>> >>> +7 (495) 640-4904, 0261 >>> +7 (903) 156-0836 >>> >> >> >> >> -- >> Serg Melikyan, Senior Software Engineer at Mirantis, Inc. >> http://mirantis.com | [email protected] >> >> +7 (495) 640-4904, 0261 >> +7 (903) 156-0836 >> > > > > -- > Vitaly Kramskikh, > Software Engineer, > Mirantis, Inc. > -- Serg Melikyan, Senior Software Engineer at Mirantis, Inc. http://mirantis.com | [email protected] +7 (495) 640-4904, 0261 +7 (903) 156-0836
-- Mailing list: https://launchpad.net/~fuel-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~fuel-dev More help : https://help.launchpad.net/ListHelp

