Commit Graph

8 Commits

Author SHA1 Message Date
Q.hongtao 4bc6162515 Remove six library
Remove six-library Replace the following items with Python 3 style code.
- six.interger_types
- six.itervalues
- six.text_type
- six.string_types
- six.StringIO
- six.next
- six.b
- six.PY3

Change-Id: I299c90d5cbeb41be0132691265b8dcbeae65520e
2020-09-23 10:27:12 +08:00
Eyal 9b576aec7c Use raw strings in all pattern matching strings
This removes some of the deprecation warnings on
unsupported escape sequence for python3.6 and up

Change-Id: I2a6b99aeb3db3b45e0a4c76f1ea4af3b798de73d
2019-08-06 17:57:13 +03:00
Eyal 97b493ade6 Don't use default mutable parameter
Using default mutable parameter is bad.
Default parameters are evaluated only once
if you mutate it you will get unexpected results.
Since we don't mutate here the default paramter, make
sure it is unmutable.

Change-Id: Ib5c451a8c8cad7b6c9a009369c1c039563023368
2019-04-15 10:30:34 +03:00
Bob Haddleton e98614cd60 Update OnClauseSPec task name criteria
The OnClauseSpec required Task names to be \w+ or [a-zA-Z0-9_]
which is not enforced by the DSL, so it was possible to have
valid task names that could not be referenced in an on-clause.

YAML enforces some restrictions on characters in task names (#, !, |)
but other than that any JSON-schema valid string should be a valid Task
name

Change-Id: I3f1056cad7c67e160a082c2a0de2e3bfd476bc63
Closes-Bug: 1797439
2018-10-12 11:58:22 -05:00
Vitalii Solodilov 4bf03d8e7d Remove extra a specification validation
Currently when we get a specification using the instantiate_spec function,
we always validate their schema and semantics over and over again.
To prevent it we add new validate parameter to a Spec class.
The validate parameter must be True when we create a workflow, workbook
or action using a mistral-api. In all other cases, it must be False.

Change-Id: Ia450ea9635bc75c204fe031cfeeab154f1d03862
Closes-Bug: #1738769
Signed-off-by: Vitalii Solodilov <mcdkr@yandex.ru>
2018-07-30 11:55:35 +04:00
Vitalii Solodilov 160948e3c6 Use on-clause and retry_policy get_spec for validation
This patch places restrictions on the content of the on-success,
on-complete, on-error, retry, concurrency, timeout, wait-before,
wait-after and pause-before statements.
test_direct_transition was refactored to exclude repeated test cases
for on clause keys.

Co-Authored-By: Vitalii Solodilov <mcdkr@yandex.ru>
Closes-Bug: #1714341
Change-Id: I8b314c8759a46111a81cf4a9400aa1cab2ea5201
Signed-off-by: Vitalii Solodilov <mcdkr@yandex.ru>
2018-06-24 05:34:19 +00:00
Renat Akhmerov 5c185c3481 Optimizing lang schema validation
* Before this patch some language specification schemas were
  validated twice (or even more) because some parent specs had
  references to specific schemas of child specs in their schemas.
  And due to our recursive parsing algorithm the same schemas were
  checked many times. It reduces performance and complicates
  the entire lang specification framework because there's too many
  relationships between different specs. The better approach is to
  reduce a number of relationships. One way is to not check schemas
  child specs when checking parent spec schema. This patch removes
  such references replacing them just common schemas like
  "non-empty" or "any" which don't lead to validating sub-schemas
  when validating parent schemas.
* Minor style changes

Change-Id: I6b695c1870bf8b70112332d4052115543382cdc7
2017-04-13 14:30:42 +07:00
Renat Akhmerov 6c6e212688 Advanced publishing: change workflow lang schema
* 'on-success', 'on-error' and 'on-complete' can now look like
  described in "Advanced Publishing" specification [1]
* Refactored all places related to the spec changes
* Added unit tests for advanced schema of 'on-xxx' clauses

[1] https://github.com/openstack/mistral-specs/blob/master/specs/pike/approved/advanced_publishing.rst

Change-Id: I190fcec0a40ca6f97d712168f4be7a418bd1f0e8
Partially implements: blueprint mistral-advanced-publishing-global-vars
2017-04-13 12:05:34 +07:00