Merge "Include A1 adapter in CCSDK distribution repo"
diff --git a/ansible-server/src/main/Dockerfile b/ansible-server/src/main/Dockerfile
index d44f5c3..5a1c394 100644
--- a/ansible-server/src/main/Dockerfile
+++ b/ansible-server/src/main/Dockerfile
@@ -8,23 +8,24 @@
 COPY ansible-server/requirements.txt ansible-server/requirements.txt
 
 RUN apk add --no-cache curl \
+                       iputils \
                        bash \
-                       py2-pip \
+                       py3-pip \
                        openssh-client \
-                       python2 &&\
+                       python3 &&\
     apk add --no-cache --virtual .build-deps build-base \
                                              libffi-dev \
                                              openssl-dev \
-                                             python2-dev &&\
-    pip install --no-cache-dir --upgrade pip==$PIP_TAG && \
-    pip install --no-cache-dir -r ansible-server/requirements.txt &&\
+                                             python3-dev &&\
+    pip3 install --no-cache-dir --upgrade pip==$PIP_TAG && \
+    pip3 install --no-cache-dir -r ansible-server/requirements.txt &&\
     apk del .build-deps
 
 RUN addgroup -S ansible && adduser -S ansible -G ansible
+
 COPY --chown=ansible:ansible ansible-server ansible-server
 COPY --chown=ansible:ansible configuration/ansible.cfg /etc/ansible/ansible.cfg
 
-
 WORKDIR /opt/ansible-server
 
 RUN mkdir /opt/onap ; ln -s /opt/ansible-server /opt/onap/ccsdk
diff --git a/ansible-server/src/main/ansible-server/AnsibleModule.py b/ansible-server/src/main/ansible-server/AnsibleModule.py
index 71d0c05..80e59e2 100755
--- a/ansible-server/src/main/ansible-server/AnsibleModule.py
+++ b/ansible-server/src/main/ansible-server/AnsibleModule.py
@@ -80,7 +80,7 @@
             log.append (line)
     else:
         for line in stdout_value: # p.stdout.readlines():
-            print line # line,
+            print(line) # line,
             if ParseFlag and len(line.strip())>0:
                 ip_address = line.split(':')[0].strip()
                 ok_flag = line.split(':')[1].strip().split('=')[1].split('changed')[0].strip()
@@ -120,7 +120,7 @@
     p = Process(nodelist=ansible_call, args=('ansible_module_config', playbook_file, nodelist,d, ))
     p.start()
 
-    print "Process running"
-    print d
+    print("Process running")
+    print(d)
     p.join()
-    print d
+    print(d)
diff --git a/ansible-server/src/main/ansible-server/AnsibleSql.py b/ansible-server/src/main/ansible-server/AnsibleSql.py
index c910777..4fe7115 100755
--- a/ansible-server/src/main/ansible-server/AnsibleSql.py
+++ b/ansible-server/src/main/ansible-server/AnsibleSql.py
@@ -52,7 +52,7 @@
                 self.cur.execute(myquery)
             self.db.commit()
             results = self.cur.fetchall()
-        except Exception, e:
+        except Exception as e:
             results = repr(e)
         return results
     
@@ -139,24 +139,24 @@
     errorCode = 0
     diag = ''
 
-    print "***> in AnsibleSql.readPlaybook"
+    print("***> in AnsibleSql.readPlaybook")
     
     if not version:
         query = "SELECT MAX(version) FROM playbook WHERE name like'" + value + "%'"
-        print "   Query:", query
+        print("   Query:", query)
         results = sqlintf.Query (query)
         version = results[0][0]
 
-    print "   Provided playbook name:", value 
-    print "   Used version:", version
+    print("   Provided playbook name:", value) 
+    print("   Used version:", version)
 
     results = []
     if version:
         query = "SELECT value,type FROM playbook WHERE name='" + value + "@" + version + "'"
         results = sqlintf.Query (query)
 
-        print "Query:", query
-        print "Results:", results
+        print("Query:", query)
+        print("Results:", results)
     
     if len(results) == 0:
         errorCode = 1
@@ -173,7 +173,7 @@
     errorCode = []
     diag = []
 
-    print "***> in AnsibleSql.readCredential"
+    print("***> in AnsibleSql.readCredential")
     
     # Load credentials
 
@@ -198,8 +198,8 @@
                     rec +"'"
             results = sqlintf.Query (query)
 
-        print "   Query:", query
-        print "   Results:", len(results), results
+        print("   Query:", query)
+        print("   Results:", len(results), results)
 
         if len(results) == 0:
             errorCode = 1
@@ -240,20 +240,20 @@
 
     # Load playbooks
 
-    print "Loading playbooks"
+    print("Loading playbooks")
     for file in onlyfiles:
         if "yml" in file:
 
             name = file.split (".yml")[0]
-            print "  Loading:", name
+            print("  Loading:", name)
             version = name.split("@")[1]
             errorCode, diag = loadPlaybook (sqlintf, name, version, '.yml')
             if errorCode:
-                print "  Results: Failed - ", diag
+                print("  Results: Failed - ", diag)
             else:
-                print "  Results: Success"
+                print("  Results: Success")
 
-    print "\nLoading inventory"
+    print("\nLoading inventory")
     
     # Load inventory
 
@@ -274,48 +274,48 @@
     file.close()
 
     for hostgroup in inv:
-        print "  Loading:", hostgroup
+        print("  Loading:", hostgroup)
         hostfqdn = ''
         cred = ''
         for hostname in inv[hostgroup]:
             cred = inv[hostgroup][hostname]
             errorCode, diag = loadCredentials (sqlintf, hostgroup, hostname, cred)
             if errorCode:
-                print "  Results: Failed - ", diag
+                print("  Results: Failed - ", diag)
             else:
-                print "  Results: Success"
+                print("  Results: Success")
                 
-    print "\nReading playbook"
+    print("\nReading playbook")
     
     # Read playbook
 
     if not sqlintf.con:
-        print "Cannot connect to MySql:", sqlintf.error
+        print("Cannot connect to MySql:", sqlintf.error)
         sys.exit()
         
     name = "ansible_sleep"
-    print "Reading playbook:", name
+    print("Reading playbook:", name)
     value, version, errorCode, diag = readPlaybook (sqlintf, name)
     if errorCode:
-        print "Results: Failed - ", diag
+        print("Results: Failed - ", diag)
     else:
-        print "Results: Success"
-        print value
-        print version
-        print diag
+        print("Results: Success")
+        print(value)
+        print(version)
+        print(diag)
 
-    print "\nReading inventory"
+    print("\nReading inventory")
 
     # Read inventory
 
     tag = ["your_inventory_test_group_name"]
-    print "Reading inventory tag:", tag
+    print("Reading inventory tag:", tag)
     errorCode, diag = readCredentials (sqlintf, tag)
     if errorCode:
-        print "Results: Failed - ", diag
+        print("Results: Failed - ", diag)
     else:
-        print "Results: Success"
-        print diag
+        print("Results: Success")
+        print(diag)
                 
     sqlintf.Close()
 
diff --git a/ansible-server/src/main/ansible-server/LoadAnsibleMySql.py b/ansible-server/src/main/ansible-server/LoadAnsibleMySql.py
index d3c0ece..4bea8d1 100755
--- a/ansible-server/src/main/ansible-server/LoadAnsibleMySql.py
+++ b/ansible-server/src/main/ansible-server/LoadAnsibleMySql.py
@@ -47,7 +47,7 @@
                 self.cur.execute(myquery)
             self.db.commit()
             results = self.cur.fetchall()
-        except Exception, e:
+        except Exception as e:
             error = str (e)
         return results, error
 
@@ -100,7 +100,7 @@
     query = "SELECT hostname,hostgroup FROM inventory WHERE hostname='" + hostname +"'"
     results = sqlintf.Query (query)
 
-    print '==>', results
+    print('==>', results)
     
     if hostname in str(results):
 
@@ -155,24 +155,24 @@
     sqlintf = mySql (host, user, passwd, db)
 
     # Load playbooks
-    print "Loading playbooks"
+    print("Loading playbooks")
     for file in onlyfiles:
         if "yml" in file:
             name = file.split (".yml")[0]
-            print "  Loading:", name
+            print("  Loading:", name)
             version = name.split("@")[1]
             errorCode, diag = loadPlaybook (name, version)
             if errorCode:
-                print "  Results: Failed - ", diag
+                print("  Results: Failed - ", diag)
             else:
-                print "  Results: Success"
+                print("  Results: Success")
         if "tar.gz" in file:
             name = file.split (".tar.gz")[0]
-            print "  Loading:", name
+            print("  Loading:", name)
             version = name.split("@")[1]
             errorCode, diag = loadPlaybook (name, version, ".tar.gz")
 
-    print "\nLoading inventory"
+    print("\nLoading inventory")
     
     # Load inventory
     hostgroup = None
@@ -192,15 +192,15 @@
     file.close()
 
     for hostgroup in inv:
-        print "  Loading:", hostgroup
+        print("  Loading:", hostgroup)
         hostfqdn = ''
         cred = ''
         for hostname in inv[hostgroup]:
             cred = inv[hostgroup][hostname]
             errorCode, diag = loadCredentials (hostgroup, hostname, cred)
             if errorCode:
-                print "  Results: Failed - ", diag
+                print("  Results: Failed - ", diag)
             else:
-                print "  Results: Success"
+                print("  Results: Success")
                 
     sqlintf.Close()
diff --git a/ansible-server/src/main/ansible-server/RestServer.py b/ansible-server/src/main/ansible-server/RestServer.py
index 2b4da33..483b832 100755
--- a/ansible-server/src/main/ansible-server/RestServer.py
+++ b/ansible-server/src/main/ansible-server/RestServer.py
@@ -295,7 +295,7 @@
     cherrypy.log("LocalParameters: " + str(local_parms))
 
     f = open(playbook_path + "/vars/defaults.yml", "a")
-    for key, value in local_parms.items():
+    for key, value in list(local_parms.items()):
         f.write(key + "=" + value + "\n")
     f.close()
     # ##################################################
@@ -718,8 +718,8 @@
     # Just a debug to dump any records
     if 'GetStatus' in input_data['Type']:
         cherrypy.log("******** Dump Records **********")
-        if TestRecord.items():
-            for id, record in TestRecord.items():
+        if list(TestRecord.items()):
+            for id, record in list(TestRecord.items()):
                 cherrypy.log("    Id: " + id)
                 cherrypy.log("Record: " + str(record))
         else:
@@ -778,7 +778,7 @@
                 return out_obj
             elif 'GetStatus' in input_data['Type']:
                 cherrypy.log(" Dump Records")
-                for id, record in TestRecord.items():
+                for id, record in list(TestRecord.items()):
                     cherrypy.log(" id: " + id)
                     cherrypy.log("   Record:" + str(record))
             elif 'GetTheOutput' in input_data['Type'] or 'GetOutput' in input_data['Type']:
@@ -1027,7 +1027,7 @@
             if 'ansible_inv' in config_line:
                 ANSIBLE_INV = config_line.split(':')[1].strip()
                 if not os.path.exists(ANSIBLE_PATH + "/" + ANSIBLE_INV):
-                    print '[INFO] The ansible_inv file does not exist'
+                    print('[INFO] The ansible_inv file does not exist')
                     sys.exit(0)
             if 'ansible_temp' in config_line:
                 ANSIBLE_TEMP = config_line.split(':')[1].strip()
diff --git a/ansible-server/src/main/ansible-server/UsersRestServer.py b/ansible-server/src/main/ansible-server/UsersRestServer.py
index b899297..5b664e4 100755
--- a/ansible-server/src/main/ansible-server/UsersRestServer.py
+++ b/ansible-server/src/main/ansible-server/UsersRestServer.py
@@ -64,7 +64,7 @@
 
 def callback (Id, Result, Output, Log, returncode):
     
-    print "***> in RestServer.callback"
+    print("***> in RestServer.callback")
 
     if Id in TestRecord:
         time_now = datetime.datetime.utcnow()
@@ -116,17 +116,17 @@
                     if key in TestRecord[Id]['Output']['Output']:
                         data["Results"][key]["Output"] = TestRecord[Id]['Output']['Output'][key]
 
-            print "     Posting to", TestRecord[Id]['CallBack']
+            print("     Posting to", TestRecord[Id]['CallBack'])
             
             s = requests.Session()
             r = s.post(TestRecord[Id]['CallBack'], data = json.dumps(data),
                        headers = {'content-type': 'application/json'})
-            print  "     Response", r.status_code, r.text
+            print("     Response", r.status_code, r.text)
 
 def RunAnsible_Playbook (callback, Id, Inventory, Playbook, NodeList, TestRecord,
                          Path, ArchiveFlag):
 
-    print "***> in RestServer.RunAnsible_Playbook"
+    print("***> in RestServer.RunAnsible_Playbook")
 
     # Run test in playbook for given target
     Result = ''
@@ -627,9 +627,9 @@
                             # PAP
                             f = open(playbook_path + "/vars/defaults.yml","a")
                             #for id, record in TestRecord.items():
-                            print TestRecord[Id]['LocalParameters']
+                            print(TestRecord[Id]['LocalParameters'])
                             local_parms = TestRecord[Id]['LocalParameters']
-                            for key, value in local_parms.items():
+                            for key, value in list(local_parms.items()):
                                 f.write(key +"=" + value + "\n");
                             f.close()
                             ###################################################
@@ -664,7 +664,7 @@
                             f.close()
                             f = open(playbook_path + "/JsonRequest.txt", "w")
                             #f.write(str(input_json))
-                            print( json.dumps(input_json, indent=4, sort_keys=True))
+                            print(( json.dumps(input_json, indent=4, sort_keys=True)))
                             f.write( json.dumps(input_json, indent=4, sort_keys=True))
                             f.close()
 
@@ -719,8 +719,8 @@
             # Just a debug to dump any records
             if 'GetStatus' in input_data['Type']:
                 cherrypy.log( "******** Dump Records **********")
-                if TestRecord.items():
-                  for id, record in TestRecord.items():
+                if list(TestRecord.items()):
+                  for id, record in list(TestRecord.items()):
                     cherrypy.log( "    Id: " + id)
                     cherrypy.log( "Record: " + str(record))
                 else:
@@ -784,10 +784,10 @@
                         return out_obj
 
                     elif 'GetStatus' in input_data['Type']:
-                        print " Dump Records"
+                        print(" Dump Records")
                         for id, record in TestRecord,items():
-                           print " id: " + id
-                           print "   Record:" + str(reecord)
+                           print(" id: " + id)
+                           print("   Record:" + str(reecord))
 
                     elif 'GetOutput' in input_data['Type']:
 
@@ -944,7 +944,7 @@
     config_file_path = "RestServer_config"
 
     if not os.path.exists(config_file_path):
-        print '[INFO] The config file does not exist'
+        print('[INFO] The config file does not exist')
         sys.exit(0)
 
     ip = 'na'
@@ -1018,15 +1018,15 @@
         # Point to certificate files
 
         if not os.path.exists(pub):
-            print '[INFO] The public certificate does not exist'
+            print('[INFO] The public certificate does not exist')
             sys.exit(0)
 
         if not os.path.exists(priv):
-            print '[INFO] The private key does not exist'
+            print('[INFO] The private key does not exist')
             sys.exit(0)            
 
         if not os.path.exists(intermediate):
-            print '[INFO] The intermediate certificate does not exist'
+            print('[INFO] The intermediate certificate does not exist')
             sys.exit(0)
 
         
@@ -1037,7 +1037,7 @@
     if auth:
         # Read in and build user dictionary
         if not os.path.exists(users):
-          print '[INFO] The users file does not exist: ' + users
+          print('[INFO] The users file does not exist: ' + users)
           sys.exit(0)
         userpassdict = {}
         user_file = open(users, 'r')
diff --git a/ansible-server/src/main/ansible-server/startAnsibleServer.sh b/ansible-server/src/main/ansible-server/startAnsibleServer.sh
old mode 100644
new mode 100755
index 193fe77..2853aca
--- a/ansible-server/src/main/ansible-server/startAnsibleServer.sh
+++ b/ansible-server/src/main/ansible-server/startAnsibleServer.sh
@@ -2,5 +2,5 @@
 exec &> >(tee -a "/var/log/ansible-server.log")
 
 cd /opt/onap/ccsdk
-exec /usr/bin/python RestServer.py
+exec /usr/bin/python3 RestServer.py
 
diff --git a/ansible-server/src/main/docker/Dockerfile b/ansible-server/src/main/docker/Dockerfile
deleted file mode 100644
index fd2037c..0000000
--- a/ansible-server/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Base ubuntu with added packages needed for open ecomp
-FROM onap/ccsdk-alpine-image:${ccsdk.distribution.version}
-
-LABEL maintainer="SDN-C Team (sdnc@lists.openecomp.org)"
-
-#ENV http_proxy=http://anonymous:password@one.proxy.att.com:8080
-#ENV https_proxy=http://anonymous:password@one.proxy.att.com:8080
-
-## add more pkgs
-RUN apk update
-RUN apk add vim
-RUN apk add curl
-RUN apk add ansible
-
-
-# copy files needed
-COPY opt /opt/
-
-WORKDIR /opt/onap/ccsdk
-
-#ENTRYPOINT exec startAnsibleServer.sh
-#CMD ["/bin/bash"]
-EXPOSE 8000
-
diff --git a/dependencies/pom.xml b/dependencies/pom.xml
index c942bfe..65930c1 100755
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -76,7 +76,6 @@
         <dependency>
             <groupId>org.onap.logging-analytics</groupId>
             <artifactId>logging-filter-base</artifactId>
-            <version>1.5.0</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
diff --git a/dgbuilder/tools/getRpcsClassFromYang.sh b/dgbuilder/tools/getRpcsClassFromYang.sh
index 15b74df..3944ed2 100755
--- a/dgbuilder/tools/getRpcsClassFromYang.sh
+++ b/dgbuilder/tools/getRpcsClassFromYang.sh
@@ -26,8 +26,8 @@
 inputProps=""
 if [ "$className" != "" ]
 then
-	#java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.PrintYangToProp $className 2>/dev/null|grep '*' |cut -d'*' -f2|sed -e "s/^[ \t]*//g"|sed -e "s/^/\t\t\"/g"|sed -e "s/$/\",/g"
-	inputProps=$(java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.PrintYangToProp $className 2>${toolsDir}/tmpws/logs/err.log)
+	#java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.provider.PrintYangToProp $className 2>/dev/null|grep '*' |cut -d'*' -f2|sed -e "s/^[ \t]*//g"|sed -e "s/^/\t\t\"/g"|sed -e "s/$/\",/g"
+	inputProps=$(java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.provider.PrintYangToProp $className 2>${toolsDir}/tmpws/logs/err.log)
 fi
 className=$(jar -tvf ${jarFile}|grep "org/opendaylight/yang/gen/"|grep -w "${rpcVal}Output"|grep -v grep|awk '{print $NF}'|sed -e 's/\//./g'|sed -e 's/.class$//g')
 #echo $inputProps
@@ -35,8 +35,8 @@
 outputProps=""
 if [ "$className" != "" ]
 then
-	#java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.PrintYangToProp $className 2>/dev/null|grep '*' |cut -d'*' -f2|sed -e "s/^[ \t]*//g"|sed -e "s/^/\t\t\"/g"|sed -e "s/$/\",/g"
-	outputProps=$(java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.PrintYangToProp $className 2>${toolsDir}/tmpws/logs/err.log)
+	#java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.provider.PrintYangToProp $className 2>/dev/null|grep '*' |cut -d'*' -f2|sed -e "s/^[ \t]*//g"|sed -e "s/^/\t\t\"/g"|sed -e "s/$/\",/g"
+	outputProps=$(java -cp $CLASSPATH org.onap.ccsdk.sli.core.sli.provider.PrintYangToProp $className 2>${toolsDir}/tmpws/logs/err.log)
 fi
 if [ -z "$allProps" ]
 then
diff --git a/dgbuilder/tools/printYangProps.sh b/dgbuilder/tools/printYangProps.sh
index e34d84c..0ee3fc1 100755
--- a/dgbuilder/tools/printYangProps.sh
+++ b/dgbuilder/tools/printYangProps.sh
@@ -5,4 +5,4 @@
 	echo "Usage $0 className_without_the_dot_class_ext"
 	exit
 fi
- java org.onap.ccsdk.sli.core.sli.PrintYangToProp $1 
+ java org.onap.ccsdk.sli.core.sli.provider.PrintYangToProp $1
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index ecab776..72b394b 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -118,10 +118,11 @@
 
 *Fixed Security Issues*
 
+        * In default deployment CCSDK (cds-ui) exposes HTTP port 30497 outside of cluster. [`OJSI-196 <https://jira.onap.org/browse/OJSI-196>`_]
+
 *Known Security Issues*
 
         * In default deployment CCSDK (netbox-nginx) exposes HTTP port 30420 outside of cluster. [`OJSI-160 <https://jira.onap.org/browse/OJSI-160>`_]
-        * In default deployment CCSDK (cds-ui) exposes HTTP port 30497 outside of cluster. [`OJSI-196 <https://jira.onap.org/browse/OJSI-196>`_]
         * In default deployment CCSDK (cds-blueprints-processor-http) exposes HTTP port 30499 outside of cluster. [`OJSI-197 <https://jira.onap.org/browse/OJSI-197>`_]
 
 *Known Vulnerabilities in Used Modules*