Fixes and enhancements to ATT workflow test

Change-Id: I11d08b4ec26336419ce966016cbeefc59a680226
diff --git a/src/test/cord-api/Framework/DHCP.robot b/src/test/cord-api/Framework/DHCP.robot
index fbf62b5..67525e6 100644
--- a/src/test/cord-api/Framework/DHCP.robot
+++ b/src/test/cord-api/Framework/DHCP.robot
@@ -16,6 +16,7 @@
 Documentation     Library to DHCP Requests from an RG (source host)
 Library           OperatingSystem
 Library           SSHLibrary
+Resource          utils/utils.robot
 
 *** Keywords ***
 Send Dhclient Request
@@ -41,3 +42,9 @@
     ${result}=    Read Until    ${prompt}
     SSHLibrary.Close Connection
     [Return]    ${result}
+
+IPv4 Address Assigned to DHCP Client
+    [Arguments]    ${ip}    ${user}    ${pass}    ${iface}
+    [Documentation]    Check if the sepcified interface has an IPv4 address assigned
+    ${output}=    Run Command On Remote System    ${ip}    ifconfig ${iface}    ${user}    ${pass}
+    Should Match Regexp    ${output}    \\b([0-9]{1,3}\\.){3}[0-9]{1,3}\\b
diff --git a/src/test/cord-api/Framework/Subscriber.robot b/src/test/cord-api/Framework/Subscriber.robot
index e4791f0..c925675 100644
--- a/src/test/cord-api/Framework/Subscriber.robot
+++ b/src/test/cord-api/Framework/Subscriber.robot
@@ -17,6 +17,7 @@
 Library           OperatingSystem
 Library           SSHLibrary
 Library           restApi.py
+Resource          ../../Framework/utils/utils.robot
 
 *** Keywords ***
 Send EAPOL Message
@@ -24,14 +25,12 @@
     [Documentation]    SSH's into the RG (src) and executes a particular auth request via wpa_supplicant client. Requested packet should exist on src.
     ${conn_id}=    SSHLibrary.Open Connection    ${ip}    prompt=${prompt}    timeout=${prompt_timeout}
     SSHLibrary.Login    ${user}    ${pass}
-    SSHLibrary.Write    sudo wpa_supplicant -B -i ${iface} -Dwired -c /etc/wpa_supplicant/${conf_file}
+    SSHLibrary.Write    rm -f wpa.log
+    SSHLibrary.Write    sudo wpa_supplicant -B -i ${iface} -Dwired -c /etc/wpa_supplicant/${conf_file} -f wpa.log
     Read Until    [sudo] password for ${user}:
     SSHLibrary.Write    ${pass}
-    ${result}=    Read Until    wpa_supplicant
-    Log To Console    \n\n ${result}\n
+    Wait Until Keyword Succeeds    30s    2s    Remote File Should Contain    ${conn_id}    wpa.log    authentication completed successfully
     SSHLibrary.Close Connection
-    Should Contain    ${result}    Successfully initialized wpa_supplicant
-    [Return]    ${result}
 
 Delete IP Addresses from Interface on Remote Host
     [Arguments]    ${ip}    ${user}    ${pass}    ${interface}    ${prompt}=$    ${prompt_timeout}=60s
@@ -137,4 +136,4 @@
     Read Until    [sudo] password for ${user}:
     SSHLibrary.Write    ${pass}
     ${result}=    Read Until    ${prompt}
-    SSHLibrary.Close Connection
\ No newline at end of file
+    SSHLibrary.Close Connection
diff --git a/src/test/cord-api/Framework/utils/utils.robot b/src/test/cord-api/Framework/utils/utils.robot
index 0bfcd13..c9e3c79 100644
--- a/src/test/cord-api/Framework/utils/utils.robot
+++ b/src/test/cord-api/Framework/utils/utils.robot
@@ -26,7 +26,6 @@
 Run Command On Remote System
     [Arguments]    ${ip}    ${cmd}    ${user}    ${pass}    ${prompt}=$    ${prompt_timeout}=60s
     [Documentation]    SSH's into a remote host, executes command, and logs+returns output
-    BuiltIn.Log    Attempting to execute command "${cmd}" on remote system "${system}"
     ${conn_id}=    SSHLibrary.Open Connection    ${ip}    prompt=${prompt}    timeout=${prompt_timeout}
     SSHLibrary.Login    ${user}    ${pass}
     ${output}=    SSHLibrary.Execute Command    ${cmd}
@@ -204,3 +203,10 @@
     [Arguments]    ${ip}    ${user}    ${pass}    ${process}
     ${rc}=    Run Sudo Command On Remote System    ${ip}    sudo kill $(ps aux | grep '${process}' | awk '{print $2}'); echo $?    ${user}    ${pass}
     Should Contain    ${rc}    0
+
+Remote File Should Contain
+    [Arguments]    ${conn_id}    ${file_name}    ${pattern}
+    SSHLibrary.Switch Connection    ${conn_id}
+    SSHLibrary.Get File    ${file_name}    /tmp/
+    ${content}=    OperatingSystem.Get File    /tmp/${file_name}
+    Should Contain    ${content}    ${pattern}