VOL-1665: BBSim Radius Authentication Test Case

BBSim specific Test Case for Radius Authentication
Consists of verifying that all 16 ONUs have authenticated
- Restart Onos AAA application whcih is know to return exception
  upon executing aaa-users command
- Address comments from review

Change-Id: I5f7fb231067f77a1f2e52ecde7328f702b333fd1
diff --git a/tests/atests/common/volthaMngr.py b/tests/atests/common/volthaMngr.py
index f94322d..84e937f 100755
--- a/tests/atests/common/volthaMngr.py
+++ b/tests/atests/common/volthaMngr.py
@@ -23,6 +23,7 @@
 import subprocess
 import testCaseUtils
 import logging
+import time
 
 
 class VolthaMngr(object):
@@ -31,7 +32,7 @@
     This class implements voltha startup/shutdown callable helper functions
     """
 
-    DEFAULT_ADAPTER = 'ponsim'
+    DEFAULT_SIMTYPE = 'ponsim'
 
     def __init__(self):
         self.dirs = dict()
@@ -45,24 +46,24 @@
     def v_set_log_dirs(self, root_dir, voltha_dir, log_dir):
         testCaseUtils.config_dirs(self, log_dir, root_dir, voltha_dir)
 
-    def start_all_pods(self, adapter=DEFAULT_ADAPTER):
-        proc1 = subprocess.Popen([testCaseUtils.get_dir(self, 'root') + '/build.sh', 'start', adapter],
+    def start_all_pods(self, simtype=DEFAULT_SIMTYPE):
+        proc1 = subprocess.Popen([testCaseUtils.get_dir(self, 'root') + '/build.sh', 'start', simtype],
                                  stdout=subprocess.PIPE,
                                  stderr=subprocess.PIPE)
         output = proc1.communicate()[0]
         print(output)
         proc1.stdout.close()
 
-    def stop_all_pods(self, adapter=DEFAULT_ADAPTER):
-        proc1 = subprocess.Popen([testCaseUtils.get_dir(self, 'root') + '/build.sh', 'stop', adapter],
+    def stop_all_pods(self, simtype=DEFAULT_SIMTYPE):
+        proc1 = subprocess.Popen([testCaseUtils.get_dir(self, 'root') + '/build.sh', 'stop', simtype],
                                  stdout=subprocess.PIPE,
                                  stderr=subprocess.PIPE)
         output = proc1.communicate()[0]
         print(output)
         proc1.stdout.close()
         
-    def reset_kube_adm(self, adapter=DEFAULT_ADAPTER):
-        proc1 = subprocess.Popen([testCaseUtils.get_dir(self, 'root') + '/build.sh', 'clear', adapter],
+    def reset_kube_adm(self, simtype=DEFAULT_SIMTYPE):
+        proc1 = subprocess.Popen([testCaseUtils.get_dir(self, 'root') + '/build.sh', 'clear', simtype],
                                  stdout=subprocess.PIPE,
                                  stderr=subprocess.PIPE)
         output = proc1.communicate()[0]
@@ -129,6 +130,20 @@
                   'http://localhost:30120/onos/v1/network/configuration/apps/ -d @%s/tests/atests/build/aaa_json'
                   % testCaseUtils.get_dir(self, 'voltha'))
 
+    def activate_aaa_app_in_onos(self):
+        logging.info('Activating AAA Application on Onos')
+        testCaseUtils.send_command_to_onos_cli(testCaseUtils.get_dir(self, 'log'),
+                                               'voltha_aaa_application_activate.log', 'app activate aaa')
+        statusLines = testCaseUtils.get_fields_from_grep_command(self, 'Activated', 'voltha_aaa_application_activate.log')
+        assert statusLines, 'AAA Application failed to be Activated'
+
+    def deactivate_aaa_app_in_onos(self):
+        logging.info('Deactivating AAA Application on Onos')
+        testCaseUtils.send_command_to_onos_cli(testCaseUtils.get_dir(self, 'log'),
+                                               'voltha_aaa_application_deactivate.log', 'app deactivate aaa')
+        statusLines = testCaseUtils.get_fields_from_grep_command(self, 'Deactivated', 'voltha_aaa_application_deactivate.log')
+        assert statusLines, 'AAA Application failed to be Deactivated'
+
 
 def get_all_running_pods():
     allRunningPods = []
@@ -152,15 +167,18 @@
     return allRunningPods
 
 
-def voltha_initialize(root_dir, voltha_dir, log_dir, adapter):
+def voltha_initialize(root_dir, voltha_dir, log_dir, simtype):
     voltha = VolthaMngr()
     voltha.v_set_log_dirs(root_dir, voltha_dir, log_dir)
-    voltha.stop_all_pods(adapter)
-    voltha.reset_kube_adm(adapter)
-    voltha.start_all_pods(adapter)
+    voltha.stop_all_pods(simtype)
+    voltha.reset_kube_adm(simtype)
+    voltha.start_all_pods(simtype)
     voltha.alter_onos_net_cfg()
     voltha.collect_pod_logs()
     voltha.discover_freeradius_pod_name()
     voltha.discover_freeradius_ip_addr()
     voltha.prepare_current_freeradius_ip()
     voltha.alter_freeradius_ip_in_onos_aaa_application_configuration()
+    voltha.deactivate_aaa_app_in_onos()
+    time.sleep(5)
+    voltha.activate_aaa_app_in_onos()