1 # Copyright (c) 2019 PANTHEON.tech s.r.o. All rights reserved.
3 # This program and the accompanying materials are made available under the
4 # terms of the Eclipse Public License v1.0 which accompanies this distribution,
5 # and is available at http://www.eclipse.org/legal/epl-v10.html
11 YANGMODELS_REPO_COMMIT_HASH = "76b82325c19bd2907acd344e6ef9bf2adfaae5cc"
12 OPENCONFIG_REPO_COMMIT_HASH = "00a27a5f0f3c472205ef293ab238e0530b610811"
14 # YANGMODELS_REPO_COMMIT_HASH = "cdd14114cdaf130be2b6bfce92538c05f6d7c07d"
15 # OPENCONFIG_REPO_COMMIT_HASH = "8062b1b45208b952598ad3c3aa9e5ebc4f03cc67"
17 YANGMODELS_REPO = "https://github.com/YangModels/yang"
18 OPENCONFIG_REPO = "https://github.com/openconfig/public"
19 TEST_TOOL_NAME = "yang-model-validator"
20 NEXUS_FALLBACK_URL_PART2 = "/content/repositories/opendaylight.release"
21 RELEASE_INTEGRATED_COMPONENTS = ["mdsal", "odlparent", "yangtools", "carpeople", "netconf"]
22 NEXUS_RELEASE_BASE_URL = "https://nexus.opendaylight.org/content/repositories/opendaylight.release"
25 def execute_ssh_command(hostname, command, username, commands_as_list=False):
26 # created client using paramiko
27 client = paramiko.SSHClient()
28 client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
29 client.connect(hostname, username=username)
31 for command in commands_as_list:
32 (stdin, stdout, stderr) = client.exec_command(command)
33 cmd_output = stdout.read()
36 (stdin, stdout, stderr) = client.exec_command(command)
37 exit_status=(stdout.channel.recv_exit_status())
38 cmd_output = stdout.read()
41 return [cmd_output, exit_status, error]
43 COMPONENT_MAPPING = {"netconf":"netconf-impl",
45 "carpeople":"clustering-it-model",
46 "yangtools":"yang-data-impl",
47 "bindingv1":"mdsal-binding-generator-impl",
48 "odl-micro":"odlmicro-impl"}
50 delete_static_paths_list = [
51 "rm -vrf src/main/yang/.git",
52 "rm -vrf src/main/yang/experimental",
53 # excluding ieee/draft from test
54 "rm -vrf src/main/yang/standard/ieee/draft",
55 "rm -vrf src/main/yang/standard/ietf/DRAFT",
56 # excluding 4 files due error "Unexpected error processing source SourceIdentifier [ietf-network@2018-02-26]"
57 # bug reported here https://jira.opendaylight.org/browse/YANGTOOLS-1465
58 "rm -vfr src/main/yang/standard/ietf/RFC/ietf-te-topology-state.yang",
59 "rm -vfr src/main/yang/standard/ietf/RFC/ietf-te-topology-state@2020-08-06.yang",
60 "rm -vfr src/main/yang/standard/ietf/RFC/ietf-te-topology.yang",
61 "rm -vfr src/main/yang/standard/ietf/RFC/ietf-te-topology@2020-08-06.yang",
62 ## Removing entire juniper folder because it creates an OOM Crash with the validator tool.*** Keywords ***
63 ## Unsure if the yang models are the problem or something in the tool. This is being tracked here:
64 ## https://jira.opendaylight.org/browse/YANGTOOLS-1093
65 "rm -vrf src/main/yang/vendor/juniper"
66 ## Removing the cisco folder because there are over 30k yang files there and would increase the test time to something
68 "rm -vrf src/main/yang/vendor/cisco",
69 ## Mount points may only be defined at either a container or a list, not anydata, lines 948
70 ## https://tools.ietf.org/html/rfc8528#section-3.1
71 "rm -vrf src/main/yang/standard/ietf/RFC/ietf-connectionless-oam@2019-04-16.yang",
72 ## removed dependency file from test standard/ietf/RFC/ietf-connectionless-oam@2019-04-16.yang
73 "rm -vrf src/main/yang/standard/ietf/RFC/ietf-connectionless-oam.yang",
74 ## removed dependecy file from test standard/ietf/RFC/ietf-connectionless-oam-methods@2019-04-16.yang
75 "rm -vrf src/main/yang/standard/ietf/RFC/ietf-connectionless-oam-methods.yang",
76 "rm -vrf src/main/yang/standard/ietf/RFC/ietf-connectionless-oam-methods@2019-04-16.yang",
80 "/home/jenkins/src/main/yang/",
81 "/home/jenkins/src/main/yang/standard",
82 "/home/jenkins/src/main/yang/standard/etsi",
83 "/home/jenkins/src/main/yang/standard/etsi/NFV-SOL006-v3.6.1",
84 "/home/jenkins/src/main/yang/standard/etsi/NFV-SOL006-v2.6.1",
85 "/home/jenkins/src/main/yang/standard/etsi/NFV-SOL006-v2.7.1",
86 "/home/jenkins/src/main/yang/standard/etsi/NFV-SOL006-v2.8.1",
87 "/home/jenkins/src/main/yang/standard/etsi/NFV-SOL006-v3.3.1",
88 "/home/jenkins/src/main/yang/standard/etsi/NFV-SOL006-v3.5.1",
89 "/home/jenkins/src/main/yang/standard/odp",
90 "/home/jenkins/src/main/yang/standard/bbf",
91 "/home/jenkins/src/main/yang/standard/ietf",
92 "/home/jenkins/src/main/yang/standard/ietf/RFC",
93 "/home/jenkins/src/main/yang/standard/mef",
94 "/home/jenkins/src/main/yang/standard/ieee",
95 "/home/jenkins/src/main/yang/standard/ieee/published",
96 "/home/jenkins/src/main/yang/standard/ieee/published/802.1",
97 "/home/jenkins/src/main/yang/standard/ieee/published/802.11",
98 "/home/jenkins/src/main/yang/standard/ieee/published/802",
99 "/home/jenkins/src/main/yang/standard/ieee/published/1588",
100 "/home/jenkins/src/main/yang/standard/ieee/published/802.3",
101 "/home/jenkins/src/main/yang/standard/ieee/published/1906.1",
102 "/home/jenkins/src/main/yang/standard/ieee/published/1906.1/Examples",
103 "/home/jenkins/src/main/yang/standard/iana",
104 "/home/jenkins/src/main/yang/vendor",
105 "/home/jenkins/src/main/yang/vendor/fujitsu",
106 "/home/jenkins/src/main/yang/vendor/huawei",
107 "/home/jenkins/src/main/yang/vendor/ciena",
108 "/home/jenkins/src/main/yang/vendor/nokia"