fuel-web/nailgun/nailgun/fuyaql/README.md

3.1 KiB

Fuel-YAQL

Fuel-YAQL is a live YAQL master node console for Fuel to easy evaluate yaql conditions user wanted to put into task.

How to use:

on Fuel master node, run

manage.py yaql -c 'CLUSTER_ID'

where 'CLUSTER_ID' is id of existing cluster which you can get by run

fuel env

command. Cluster id is required there to have an opportunity for use internal Fuel yaql functions such as 'changed' or 'new'. After this fuel-yaql console will be opened:

fuel-yaql >

there you can evaluate all functions and conditions you need just by entering them, for example:

fuel-yaql> changed($)

true

This console has some internal commands. There they are:

fuel-yaql> :show cluster

Cluster id is: 1, name is: test

shows you the cluster you currently use.

fuel-yaql> :show node

Currently used node id is: master

shows you a node in this cluster for which conditions will be evaluated.

fuel-yaql> :show nodes

Cluster has nodes with ids: {1: 'controller'}

shows you all nodes in this cluster

fuel-yaql> :use cluster 1

will switch contexts to another cluster

fuel-yaql> :use node 1

will switch contexts to another node

fuel-yaql> :show tasks

shows all tasks in 'deployment', 'error', 'ready' and 'pending' states for currently selected cluster. In other words, this commands represents a list of tasks which you can use as a context.

fuel-yaql> :loadprevious task 5

will switch old context to a context of pointed task. It can be worthy if you want to evaluate an expression not for the current cluster state, but for old one.

fuel-yaql> :loadcurrent task 10

will switch new context to context of pointed task. It can be as worthy as :loadprevious command. Maybe you should know that there is no restriction to have old context really older than new context - you can switch them as you want

Fuel itself has several internal yaql functions which are not included to base yaql interpreter. There they are:

changed() - will show you the difference between new and old contexts

new() - returns you new context data

old() - returns you old context data

added() - returns the diff what was added between old and new context

deleted() - returns the diff what was deleted between old and new contexts

changedAll($.first, $.second, $.Nth) - returns True if all expressions in parentheses returns non-False

changedAny($.first, $.second, $.Nth) - returns True if any expression in parentheses returns non-False

Changelog

0.7

[*] Project moved and became a part of Fuel-nailgun

0.6

[*] internal fixes, tests added

0.5

[+] opportunity to run fuyaql with predefined contexts and expression and return a result

0.4

[*] internal fixes

0.3

[+] changelog

[+] switched to readline, so input line doesn't looks like telnet one

[+] internal commands autocomplit by Tab

[+] internal commands ':oldcontext task' and ':newcontext task' added

[*] not creating default existing context as a task anymore. It allows to not touch DB for a creating temporary task

0.2

[+] first usable version

0.1

[+] proof of concept created