GitHub user tliron opened a pull request:
https://github.com/apache/incubator-ariatosca/pull/72
Aria 105 integrate modeling
So, this is a very big pull request.
As it stands, I am not yet done fixing all the tests, however it's been a
long time and we need to at least start the review process.
Let me give an overview:
`aria.modeling` is where all the new models sit. They are all very detailed
and documented using Sphinx. They ended up diverging quite a lot from what
Maxim first created, though I built a lot on his work. In particular, I made
sure that SqlAlchemy specifics would be "hidden" from users using standard
Python lists and dicts. I reworked a lot of the helper functions in `bases` to
support these additional features.
Some highlights:
* A true normalized relational database structure. No fields with string
dicts or lists in them.
* No more name lookups: all relationships between models are done using
foreign keys. I would actually want to add more constraints in the future to
improve validation. As of the now, the `validate` functions are not good
enough: a user could create invalid models.
* Parameters are serialized via pickling. This allows us to maintain the
rich type structure of TOSCA. So far it seems to be working great, though ...
we would need to keep an eye on this.
* There might be seem to be a lot of duplication between templates and
instances. This is because 1) the move from one to the other may involve
intrinsic function calls, so all properties might indeed be different, and 2) I
want to make it possible, in theory at least, to be able to create a service
instance even if there is no service template. This would allow the ARIA
orchestrator to work on any service, even if it does not have a blueprint.
(Actually, a smart modeling tool could possibly "templatize" an existing
modeled service, allowing one to generate a blueprint in order to duplicate it.
Neat!) The relationship between the two sets of models should be optional, not
required.
If you want to see how they are created by the parser, see
`aria_extensions_tosca.simple_v1_0.modeling.__init__`.
`aria.orchestrator.workflows.task.api` has been reworked to use both
"interface_name" and "operation_name" instead of a single string that is parsed
using the period. This has helped a lot in reducing confusion and ambiguity in
many parts of the code, and correctly represents the reality of the modeling
structure.
The impact on our tests has been huge. :/ I am marching through all of them
and am not done yet. So please don't be worried to see many tests failing.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/incubator-ariatosca
ARIA-105-integrate-modeling
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-ariatosca/pull/72.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #72
----
commit 58e10523713f08b51181d84f4a303fbc15e23810
Author: Tal Liron <[email protected]>
Date: 2017-02-17T22:00:40Z
Initial refactoring (mostly broken)
commit f28b0af157e13c41482921ecba03409c07ca2660
Author: Tal Liron <[email protected]>
Date: 2017-02-21T23:49:14Z
Added RelationshipTemplate; added one-to-many support
commit 1a0b85ab1bc048bee7a9efe3e9e11969ce202c0a
Author: Tal Liron <[email protected]>
Date: 2017-02-23T00:05:49Z
Full use of aria.modeling! (but with problems)
commit f1074fee24d3a9895ad7e35dd8d58a7ab7265b99
Author: Tal Liron <[email protected]>
Date: 2017-02-23T23:07:03Z
Modeling refactoring; improved metadata; work on instance models
commit f62cdd4b95c556c3b893654cba6842b1f23f51a0
Author: Tal Liron <[email protected]>
Date: 2017-02-24T23:12:46Z
Service instance models
commit 33a4ee7252ddfbfdfc6a6bcf7ab5c5c6117c71aa
Author: Tal Liron <[email protected]>
Date: 2017-02-27T18:50:34Z
Template and instance complete (as_raw as well)
commit 0150da178ebd63c055f9cd05af7ddba5e5a711e8
Author: Tal Liron <[email protected]>
Date: 2017-02-28T23:00:38Z
Major reworking of models to make better use of SqlAlchemy; unfinished work
on orchestration models
commit 58aac8da2e6ecdc9749a1d128f78810d39cd0d67
Author: Tal Liron <[email protected]>
Date: 2017-03-01T22:10:12Z
Modeling integation complete -- except testing ;)
commit daa2d538b590e38ff97dcec2e721a011c37b3e15
Author: Tal Liron <[email protected]>
Date: 2017-03-03T02:15:12Z
Add types to modeling, plus many fixes to models
commit 091152f2716ae8abfdd42f23f399ff540abea41a
Author: Tal Liron <[email protected]>
Date: 2017-03-03T17:05:19Z
Some test updates (unfinished)
commit 36eb2d24c2d0791738e6b9f88a81fc5f906745ce
Author: Tal Liron <[email protected]>
Date: 2017-03-03T23:42:53Z
Move types into service template; continue fixing tests
commit 24ad8ba1e1a013a2348880459e81830fc270b16f
Author: Tal Liron <[email protected]>
Date: 2017-03-05T03:31:42Z
Add rich docs, fix many tests
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---