Calin,
Thanks for joining the conversation.
I hadn’t previously considered making use of the node keyword. While it does appear to apply the restriction I’m looking for it occurs in the syntax at an inconvenient point.
My aim is to predefine the extension nodes and their relationships in file (or profile) which is created once from the TMForum SID using tooling. That common file would then be available to template authors to who wish to extend their deployable nodes with the standard MetricABE structure. The node keyword for MetricDefinition occurs within the hosted_app_type type definition and so could not be part of that common file.
Would the orchestrator error reporting problem that you mention in your second paragraph be eased if the node type restriction could be expressed in the relationship type definition as I requested?
Paul Jordan
OSS Specialist
BT Technology<https://intra.bt.com/bt/tso> | Tel +44 (0) 3316252643 |
paul.m.jordan@bt.com<mailto:
paul.m.jordan@bt.com>
This email contains information from BT that might be privileged or confidential. And it's only meant for the person above. If that's not you, we're sorry - we must have sent it to you by mistake. Please email us to let us know, and don't copy or forward it to anyone else. Thanks.
We monitor our email systems and may record all our emails.
British Telecommunications plc
R/O : 81 Newgate Street, London EC1A 7AJ
Registered in England: No 1800000
From: Calin Curescu <
calin.curescu@ericsson.com>
Sent: 02 December 2020 23:11
To: Jordan,PM,Paul,TNK6 R <
paul.m.jordan@bt.com>;
lauwers@ubicity.com;
tosca-comment@lists.oasis-open.orgSubject: Re: [tosca-comment] RE: Restricting relationship types to node types and node types with capability types.
Hi Paul,
If you don’t need the different capability types, then I think you can just use one capability type and use the requirement definition where you can either restrict the capability type (via the capability keyword) or restrict the node type (via the node keyword). Please see the attached yaml.
One observation that I made is that the valid_target_types (as it is now) acts only like a constraint on the capability type you need to choose in the requirement definition (i.e. the orchestrator will not validate the template if mismatched). On the other hand the node keyname is not mandatory in the requirement definition. Thus, in the case the target node type is not defined in the requirement, the valid_target_node_types would act as a node_filter that is not defined in the requirement but in the relationship type (i.e. the orchestrator will not return a validation error, but will need to filter out such invalid node types at runtime). Thus errors w.r.t. the latter will be harder to discover.
BR,
/Calin
From: <
tosca-comment@lists.oasis-open.org<mailto:
tosca-comment@lists.oasis-open.org>> on behalf of "
paul.m.jordan@bt.com<mailto:
paul.m.jordan@bt.com>" <
paul.m.jordan@bt.com<mailto:
paul.m.jordan@bt.com>>
Date: Tuesday, 1 December 2020 at 11:57
To: "
lauwers@ubicity.com<mailto:
lauwers@ubicity.com>" <
lauwers@ubicity.com<mailto:
lauwers@ubicity.com>>, "
tosca-comment@lists.oasis-open.org<mailto:
tosca-comment@lists.oasis-open.org>" <
tosca-comment@lists.oasis-open.org<mailto:
tosca-comment@lists.oasis-open.org>>
Subject: [tosca-comment] RE: Restricting relationship types to node types and node types with capability types.
Chris,
Thanks for taking the time on this. There is nothing wrong with what you have done here. My problem occurred when expanding this pattern to larder numbers of extension nodes:
There will be many node_types derived_from MetricABE in the same way as you have done for MetricDefinition.
Many pairs of these derived node types will have a relationship between them and that relationship has its own name.
In order to create all those relationships with different names, there will many relationship_types derived_from NodeIsExtendedBy in the same way as you have done for MetricDefinitionMeasures.
I will need to restrict the use of each of these relationship types to the specific pair of node_types which use that name.
You have achieved that using the MetricDefinitionExtention capability type. My point is that all these capabilities would be defined only for this job which adds about 30% more lines to the template. I could avoid all that if a revised syntax allowed me to restrict the application of the relationships by referencing the node_type rather than referencing a capability_type within the node type.
Regards
Paul Jordan
OSS Specialist
BT Technology<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fintra.bt.com%2Fbt%2Ftso&data=04%7C01%7Cpaul.m.jordan%40bt.com%7C3dcd105b1c1c46dde97208d897178d76%7Ca7f356889c004d5eba4129f146377ab0%7C0%7C1%7C637425475166198937%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=abd%2FoL%2FXeFmxHqmLcfT1QDcnTn2tMQ5De0aVSAHsufI%3D&reserved=0> | Tel +44 (0) 3316252643 |
paul.m.jordan@bt.com<mailto:
paul.m.jordan@bt.com>
This email contains information from BT that might be privileged or confidential. And it's only meant for the person above. If that's not you, we're sorry - we must have sent it to you by mistake. Please email us to let us know, and don't copy or forward it to anyone else. Thanks.
We monitor our email systems and may record all our emails.
British Telecommunications plc
R/O : 81 Newgate Street, London EC1A 7AJ
Registered in England: No 1800000
From: Chris Lauwers <
lauwers@ubicity.com<mailto:
lauwers@ubicity.com>>
Sent: 30 November 2020 19:59
To: Jordan,PM,Paul,TNK6 R <
paul.m.jordan@bt.com<mailto:
paul.m.jordan@bt.com>>;
tosca-comment@lists.oasis-open.org<mailto:
tosca-comment@lists.oasis-open.org>
Subject: RE: Restricting relationship types to node types and node types with capability types.
Hi Paul,
I’m attaching a very rudimentary TOSCA template that starts to implement your pattern for the SID Metric ABE. It shows how relationship types can be refined by limiting valid_target_types to derived types of the NodeExtension capability type.
I’d love to work with you to flesh this out further if you’re interested.
Thanks,
Chris
From: Chris Lauwers
Sent: Sunday, November 29, 2020 6:15 PM
To:
paul.m.jordan@bt.com<mailto:
paul.m.jordan@bt.com>;
tosca-comment@lists.oasis-open.org<mailto:
tosca-comment@lists.oasis-open.org>
Subject: RE: Restricting relationship types to node types and node types with capability types.
Thanks Paul, we’ll take this up for review. In the meantime, a couple of additional comments:
* If we were to rename the “valid_target_types” keyword, then perhaps “valid_target_capability_types” may be the more accurate description.
* As we discussed, I believe your pattern can be supported by subclassing capability types. You mentioned that might be too cumbersome, but I’ll try to work through your example to get a feel for how bad it really is