diff options
author | Assaf, Shay (sa726r) <sa726r@intl.att.com> | 2018-08-26 11:53:35 +0300 |
---|---|---|
committer | Assaf, Shay (sa726r) <sa726r@intl.att.com> | 2018-08-26 11:53:35 +0300 |
commit | 1b700c8606f319cbda416a8abb70ea16dceb7a29 (patch) | |
tree | 1febba7da1dbdddccf917612acab08363a476f93 /openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out | |
parent | b111bbed40e9fe02d980fe0af360f60ca47f5ac6 (diff) |
related-networks property support as input
Change-Id: I2d6fb011f7440127559a8f02b1c8a72095694403
Issue-ID: SDC-1658
Signed-off-by: Assaf, Shay (sa726r) <sa726r@intl.att.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out')
3 files changed, 173 insertions, 160 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/GlobalSubstitutionTypesServiceTemplate.yaml index 65df4491d8..43ce925d02 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/GlobalSubstitutionTypesServiceTemplate.yaml +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/GlobalSubstitutionTypesServiceTemplate.yaml @@ -18,22 +18,6 @@ node_types: status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix: - type: list - required: true - status: SUPPORTED - entry_schema: - type: string - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix: - type: list - required: true - status: SUPPORTED - entry_schema: - type: string - port_vdbe_untr_port_subnetpoolid: - type: string - required: true - status: SUPPORTED subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix: type: list required: true @@ -78,12 +62,6 @@ node_types: status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_1_subports_ip_v6_address: - type: list - required: true - status: SUPPORTED - entry_schema: - type: string subinterface_vdbe_untr_1_subports_subinterfaces_name_prefix: type: list required: true @@ -134,154 +112,182 @@ node_types: status: SUPPORTED entry_schema: type: json - port_vdbe_untr_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements + subinterface_vdbe_untr_1_subports_vn_network_list: + type: list required: true status: SUPPORTED - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 + entry_schema: + type: string + port_vdbe_untr_port_name: + type: list + required: true status: SUPPORTED - constraints: - - greater_or_equal: 0 - subinterface_vdbe_untr_1_subports_parent_interface: + entry_schema: + type: string + port_vdbe_untr_port_network_role: + type: string + required: true + status: SUPPORTED + subinterface_vdbe_untr_2_subports_vn_network_list: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_service_template_filter_count: + subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix: type: list required: true status: SUPPORTED entry_schema: - type: float - subinterface_vdbe_untr_1_subports_service_template_filter_count: + type: string + subinterface_vdbe_untr_2_subports_ip_v6_address: type: list required: true status: SUPPORTED entry_schema: - type: float - subinterface_vdbe_untr_1_subports_vn_network_list: + type: string + subinterface_vdbe_untr_2_subports_mac_address: type: list required: true status: SUPPORTED entry_schema: type: string - port_vdbe_untr_port_name: + subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len: type: list required: true status: SUPPORTED entry_schema: type: string - port_vdbe_untr_port_vlan_requirements: + compute_vdbe_name: type: list required: true status: SUPPORTED entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - subinterface_vdbe_untr_2_subports_ip_address: + type: string + subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len: type: list required: true status: SUPPORTED entry_schema: type: string - port_vdbe_untr_port_network_role: - type: string + port_vdbe_untr_port_related_networks: + type: list required: true status: SUPPORTED - subinterface_vdbe_untr_1_subports_vmac_address: + entry_schema: + type: org.openecomp.datatypes.network.RelatedNetworksAssignments + subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix: + port_vdbe_untr_port_ip_requirements: type: list required: true status: SUPPORTED entry_schema: - type: string - subinterface_vdbe_untr_2_subports_vn_network_list: + type: org.openecomp.datatypes.network.IpRequirements + subinterface_vdbe_untr_1_subports_vlan_tag_list: type: list required: true status: SUPPORTED entry_schema: - type: string - subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix: + type: json + subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix: + subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_ip_v6_address: + port_vdbe_untr_port_subnetpoolid: + type: string + required: true + status: SUPPORTED + subinterface_vdbe_untr_1_subports_ip_v6_address: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_mac_address: + port_vdbe_untr_port_mac_requirements: + type: org.openecomp.datatypes.network.MacRequirements + required: true + status: SUPPORTED + index_value: + type: integer + description: Index value of this substitution service template runtime instance + required: false + default: 0 + status: SUPPORTED + constraints: + - greater_or_equal: 0 + subinterface_vdbe_untr_1_subports_parent_interface: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len: + subinterface_vdbe_untr_2_subports_service_template_filter_count: type: list required: true status: SUPPORTED entry_schema: - type: string - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len: + type: float + subinterface_vdbe_untr_1_subports_service_template_filter_count: type: list required: true status: SUPPORTED entry_schema: - type: string - subinterface_vdbe_untr_2_subports_parent_interface: + type: float + port_vdbe_untr_port_vlan_requirements: + type: list + required: true + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.network.VlanRequirements + subinterface_vdbe_untr_2_subports_ip_address: type: list required: true status: SUPPORTED entry_schema: type: string - compute_vdbe_name: + subinterface_vdbe_untr_1_subports_vmac_address: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len: + subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix: type: list required: true status: SUPPORTED entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len: + subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix: type: list required: true status: SUPPORTED entry_schema: type: string - port_vdbe_untr_port_ip_requirements: + subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len: type: list required: true status: SUPPORTED entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - subinterface_vdbe_untr_1_subports_vlan_tag_list: + type: string + subinterface_vdbe_untr_2_subports_parent_interface: type: list required: true status: SUPPORTED entry_schema: - type: json + type: string requirements: - dependency_vdbe_vdbe_untr_port_vdbe_untr_1_subports: capability: tosca.capabilities.Node @@ -795,4 +801,4 @@ node_types: type: tosca.capabilities.Node occurrences: - 1 - - UNBOUNDED + - UNBOUNDED
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/MainServiceTemplate.yaml index 9f6943864b..32ad867f3c 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/MainServiceTemplate.yaml +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/MainServiceTemplate.yaml @@ -416,10 +416,6 @@ topology_template: properties: subinterface_vdbe_untr_1_subports_ip_address: - get_input: vdbe_untrusted_ip_1 - subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix: - - get_input: vdbe_aap_untrusted_ip_prefix - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix: - - get_input: vdbe_aap_untrusted_ip_prefix subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix: - get_input: vdbe_aap_sec_untrusted_ip_prefix subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix: @@ -434,8 +430,6 @@ topology_template: - get_input: vdbe_aap_untrusted_ip_prefix_len subinterface_vdbe_untr_1_subports_mac_address: - get_input: vdbe_hw_untr_mac_1 - subinterface_vdbe_untr_1_subports_ip_v6_address: - - get_input: vdbe_untrusted_v6_ip_1 subinterface_vdbe_untr_1_subports_subinterfaces_name_prefix: - str_replace: template: VM_NAMEDBE001p1n004 @@ -463,15 +457,6 @@ topology_template: - get_input: aap_address_mode subinterface_vdbe_untr_2_subports_vlan_tag_list: - get_input: untrusted_vlan_tags - port_vdbe_untr_port_mac_requirements: - mac_count_required: - is_required: false - subinterface_vdbe_untr_1_subports_parent_interface: - - vdbe_1_untr_port_1 - subinterface_vdbe_untr_2_subports_service_template_filter_count: - - 5 - subinterface_vdbe_untr_1_subports_service_template_filter_count: - - get_input: untrusted_num_vn subinterface_vdbe_untr_1_subports_vn_network_list: - get_input: untrusted_vn_networks port_vdbe_untr_port_name: @@ -482,34 +467,16 @@ topology_template: get_input: vdbe_device_name VM_NAME: get_input: vdbe_name_1 - subinterface_vdbe_untr_2_subports_ip_address: - - get_input: vdbe_untrusted_ip_1 - subinterface_vdbe_untr_1_subports_vmac_address: - - get_input: vdbe_untrusted_vmac_address - subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix: - - str_replace: - template: VM_NAMEDBE001p1n004 - params: - DBE: - get_input: vdbe_device_name - VM_NAME: - get_input: vdbe_name_1 subinterface_vdbe_untr_2_subports_vn_network_list: - get_input: untrusted_vn_networks subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix: - get_input: vdbe_aap_untrusted_v6_ip_prefix - subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix: - - get_input: vdbe_aap_sec_untrusted_ip_prefix subinterface_vdbe_untr_2_subports_ip_v6_address: - get_input: vdbe_untrusted_v6_ip_1 subinterface_vdbe_untr_2_subports_mac_address: - get_input: vdbe_hw_untr_mac_1 subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len: - get_input: vdbe_aap_untrusted_v6_ip_prefix_len - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len: - - get_input: vdbe_aap_untrusted_ip_prefix_len - subinterface_vdbe_untr_2_subports_parent_interface: - - vdbe_1_untr_port_1 compute_vdbe_name: - get_input: vdbe_name_1 subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len: @@ -524,6 +491,39 @@ topology_template: is_required: false subinterface_vdbe_untr_1_subports_vlan_tag_list: - get_input: untrusted_vlan_tags + subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix: + - get_input: vdbe_aap_untrusted_ip_prefix + subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix: + - get_input: vdbe_aap_untrusted_ip_prefix + subinterface_vdbe_untr_1_subports_ip_v6_address: + - get_input: vdbe_untrusted_v6_ip_1 + port_vdbe_untr_port_mac_requirements: + mac_count_required: + is_required: false + subinterface_vdbe_untr_1_subports_parent_interface: + - vdbe_1_untr_port_1 + subinterface_vdbe_untr_2_subports_service_template_filter_count: + - 5 + subinterface_vdbe_untr_1_subports_service_template_filter_count: + - get_input: untrusted_num_vn + subinterface_vdbe_untr_2_subports_ip_address: + - get_input: vdbe_untrusted_ip_1 + subinterface_vdbe_untr_1_subports_vmac_address: + - get_input: vdbe_untrusted_vmac_address + subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix: + - str_replace: + template: VM_NAMEDBE001p1n004 + params: + DBE: + get_input: vdbe_device_name + VM_NAME: + get_input: vdbe_name_1 + subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix: + - get_input: vdbe_aap_sec_untrusted_ip_prefix + subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len: + - get_input: vdbe_aap_untrusted_ip_prefix_len + subinterface_vdbe_untr_2_subports_parent_interface: + - vdbe_1_untr_port_1 service_template_filter: substitute_service_template: Nested_vdbeServiceTemplate.yaml count: 1 @@ -552,4 +552,4 @@ topology_template: get_input: untr_vfc_instance_group_function subinterface_role: untr members: - - abstract_vdbe + - abstract_vdbe
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/Nested_vdbeServiceTemplate.yaml index 9886c59afb..dccbc264f1 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/Nested_vdbeServiceTemplate.yaml +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/oneSubInterfaceNetworkRole/out/Nested_vdbeServiceTemplate.yaml @@ -19,19 +19,6 @@ topology_template: required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix: - type: list - required: true - entry_schema: - type: string - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix: - type: list - required: true - entry_schema: - type: string - port_vdbe_untr_port_subnetpoolid: - type: string - required: true subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix: type: list required: true @@ -68,11 +55,6 @@ topology_template: required: true entry_schema: type: string - subinterface_vdbe_untr_1_subports_ip_v6_address: - type: list - required: true - entry_schema: - type: string subinterface_vdbe_untr_1_subports_subinterfaces_name_prefix: type: list required: true @@ -114,129 +96,152 @@ topology_template: required: true entry_schema: type: json - port_vdbe_untr_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - subinterface_vdbe_untr_1_subports_parent_interface: + subinterface_vdbe_untr_1_subports_vn_network_list: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_service_template_filter_count: + port_vdbe_untr_port_name: type: list required: true entry_schema: - type: float - subinterface_vdbe_untr_1_subports_service_template_filter_count: + type: string + port_vdbe_untr_port_network_role: + type: string + required: true + subinterface_vdbe_untr_2_subports_vn_network_list: type: list required: true entry_schema: - type: float - subinterface_vdbe_untr_1_subports_vn_network_list: + type: string + subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix: type: list required: true entry_schema: type: string - port_vdbe_untr_port_name: + subinterface_vdbe_untr_2_subports_ip_v6_address: type: list required: true entry_schema: type: string - port_vdbe_untr_port_vlan_requirements: + subinterface_vdbe_untr_2_subports_mac_address: type: list required: true entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - subinterface_vdbe_untr_2_subports_ip_address: + type: string + subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len: type: list required: true entry_schema: type: string - port_vdbe_untr_port_network_role: - type: string - required: true - subinterface_vdbe_untr_1_subports_vmac_address: + compute_vdbe_name: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix: + subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_vn_network_list: + port_vdbe_untr_port_related_networks: type: list required: true entry_schema: - type: string - subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix: + type: org.openecomp.datatypes.network.RelatedNetworksAssignments + subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix: + port_vdbe_untr_port_ip_requirements: type: list required: true entry_schema: - type: string - subinterface_vdbe_untr_2_subports_ip_v6_address: + type: org.openecomp.datatypes.network.IpRequirements + subinterface_vdbe_untr_1_subports_vlan_tag_list: + type: list + required: true + entry_schema: + type: json + subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_mac_address: + subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len: + port_vdbe_untr_port_subnetpoolid: + type: string + required: true + subinterface_vdbe_untr_1_subports_ip_v6_address: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len: + port_vdbe_untr_port_mac_requirements: + type: org.openecomp.datatypes.network.MacRequirements + required: true + index_value: + type: integer + description: Index value of this substitution service template runtime instance + required: false + default: 0 + constraints: + - greater_or_equal: 0 + subinterface_vdbe_untr_1_subports_parent_interface: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_parent_interface: + subinterface_vdbe_untr_2_subports_service_template_filter_count: + type: list + required: true + entry_schema: + type: float + subinterface_vdbe_untr_1_subports_service_template_filter_count: + type: list + required: true + entry_schema: + type: float + port_vdbe_untr_port_vlan_requirements: + type: list + required: true + entry_schema: + type: org.openecomp.datatypes.network.VlanRequirements + subinterface_vdbe_untr_2_subports_ip_address: type: list required: true entry_schema: type: string - compute_vdbe_name: + subinterface_vdbe_untr_1_subports_vmac_address: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len: + subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix: type: list required: true entry_schema: type: string - subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len: + subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix: type: list required: true entry_schema: type: string - port_vdbe_untr_port_ip_requirements: + subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len: type: list required: true entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - subinterface_vdbe_untr_1_subports_vlan_tag_list: + type: string + subinterface_vdbe_untr_2_subports_parent_interface: type: list required: true entry_schema: - type: json + type: string node_templates: vdbe_vdbe_untr_port_vdbe_untr_1_subports: type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested @@ -428,6 +433,8 @@ topology_template: vlan_requirements: get_input: port_vdbe_untr_port_vlan_requirements subinterface_indicator: true + related_networks: + get_input: port_vdbe_untr_port_related_networks ip_requirements: get_input: port_vdbe_untr_port_ip_requirements network_role_tag: @@ -653,4 +660,4 @@ topology_template: - subinterface_link_vdbe_0_subint_untr_vmi_0 dependency_vdbe: - vdbe - - dependency + - dependency
\ No newline at end of file |