← Prev in month ← Prev in thread

RE: [tosca] Groups - 2015-04-19 tosca_elk_DRAFT_CSAR.zip uploaded

From
Chris Lauwers <>
Date
2015-04-20T20:26:14+00:00
ID
Thread
RE: [tosca] Groups - 2015-04-19 tosca_elk_DRAFT_CSAR.zip uploaded
Thanks Sahdev, but I don’t believe this change fixes the problem, it only moves it somewhere else. Yes, we now have a new MyConnectsTo relationship type, but
 MyConnectsTo implicitly creates a new Interface Type (based on tosca.interfaces.relationship.Configure) that adds a new input parameter. If we’re not allowed to dynamically “augment” types in entity definitions, then clearly augmenting Interface Types shouldn’t
 be allowed either. The correct solution here is to explicitly introduce a new Interface Type (e.g. MyConfigure) that derives from Configure and then have MyConnectsTo use the MyConfigure interface.

 

In addition, your change doesn’t address the corresponding issue in requirement assignments. For example, the logstash node template uses an “in-line” relationship
 assignment syntax to assign an IP address value to the IP address input defined in the MyConnectsTo relationship type. According to the spec, this is not allowed. Instead, a new relationship template needs to be defined explicitly.

 

(Note that my argument here is solely based on what’s in the spec. I want to re-iterate my personal opinion that the spec is too restrictive and that what you
 were trying to do in the first version of this file is perfectly acceptable and should be allowed).

 

Aside from the requirements-related issues, here are some other comments (in no particular order)

 

1.      
The tosca_base_type_definition.yaml file is not a valid Tosca file (i.e. it doesn’t include any valid Tosca keynames) and as such should not be used
 in an “import” statement

2.      
More importantly, in my opinion it should be the responsibility of the Tosca runtime to import all the normative type definitions, not the responsibility
 of the application developer.

3.      
The PayPalPizzaStore node type defines a “database_connection” capability with capability type tosca.capabilities.DatabaseEndpoint. There is no such
 type in the normative type definitions. The correct type is tosca.capabilities.Endpoint.Database

4.      
A number of node templates include a “get_attribute[<server>, ip_address]” where <server> is an instance of Compute. However, Compute no longer has
 IP address attributes. For this use case, I believe we need to use “private_address” instead.

5.      
In the MyConnectsTo relationship type definition, you reference the Configure interface by its type name (tosca.interfaces.relationship.Configure) rather
 than by its symbolic name (which is “Configure”).

6.      
You have a similar problem in the PayPalPizzaStore node type: you refer the “Standard” interface by its type name (tosca.interfaces.node.lifecycle.Standard)
 rather than by its symbolic name.

7.      
This problem then carries over into all the node templates as well (about a dozen instances). Whenever you reference an interface, you refer to that
 interface by its type name rather than by its symbolic name.

8.      
Your “list” syntax is incorrect for requirements definitions in logstash.yaml. There is a missing “dash” before the “search_endpoint” requirement name.
 The correct syntax is as follows:

 

node_types:

  tosca.nodes.SoftwareComponent.Logstash:

    derived_from: tosca.nodes.SoftwareComponent

    requirements:

      - search_endpoint:

          capability: tosca.capabilities.Endpoint

          node: tosca.nodes.SoftwareComponent.Elasticsearch

          relationship: tosca.relationships.MyConnectsTo

 

9.      
Whenever you declare inputs to an Operation in an Interface, you use the “input” keyname rather than the “inputs” keyname. I don’t believe “input” is
 a valid keyname anywhere in the Tosca spec.

10.  
The “mongo_db” node template fails to set the following required properties: “user”, “name”, “port”, and “password”.

11.  
The “paypal_pizzastore” node template fails to set the required property “context_root”

12.  
The “mongo_dbms” node template fails to set the required properties “port” and “root_password”

13.  
In the “interfaces” section of the “paypal_pizzastore” node template, the “mongodb_ip” and “github_url” inputs are assigned only for the “configure”
 operation, but in the PayPalPizzaStore node type these inputs are declared for all operations in the “Standard” interface. The correct assignment is as follows:

 

  node_templates:

    paypal_pizzastore:

      type: tosca.nodes.WebApplication.PayPalPizzaStore

      interfaces:

        Standard:

           inputs:

             github_url: { get_property: [ SELF, github_url ] }

             mongodb_ip: { get_attribute: [mongo_server, private_address] }

           configure:

             implementation: Scripts/nodejs/configure.sh

           start: Scripts/nodejs/start.sh

 

 

Let me know if you need more detail on any of these,

 

Best regards,

 

Chris

 

 

 

 

From:  [mailto:]
On Behalf Of Sahdev Zala

Sent: Sunday, April 19, 2015 8:17 PM

To: 

Subject: [tosca] Groups - 2015-04-19 tosca_elk_DRAFT_CSAR.zip uploaded

 

Submitter's message

Hello, in this draft, I have tried modifying the requirements section per comments from Chris Lauwers. For logstash types I have created a custom relationship for now as the topic is still under discussion. Thanks!

-- Sahdev Zala 

Document Name:
2015-04-19 tosca_elk_DRAFT_CSAR.zip

No description provided.

Download Latest Revision

Public Download Link

Submitter: Sahdev Zala

Group: OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC

Folder: Working Documents

Date submitted: 2015-04-19 20:16:21
← Prev in month ← Prev in thread