CORD-1750 Upgrade OFDPA to OFDPA 3.0 EA4

Change-Id: Ieb79e766f037d7981fefcde6936b303021488b83
diff --git a/roles/fabric-switch/tasks/main.yml b/roles/fabric-switch/tasks/main.yml
index 041f954..97327bc 100644
--- a/roles/fabric-switch/tasks/main.yml
+++ b/roles/fabric-switch/tasks/main.yml
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
 ---
 - name: Generate DPID
   shell: ifconfig ma1 | grep HWaddr | awk '{ print "0x0000"$5 }' | sed s/://g
@@ -26,20 +25,20 @@
     controller_ip: "onos-fabric"
 
 - name: Verify Openflow Agent
-  shell: which ofdpa | wc -w
+  shell: which ofagentapp | wc -w
   register: ofdpa_exists
   changed_when: false
 
 - name: Openflow Agent Version
-  command: ofdpa --version
+  command: ofagentapp --version
   register: ofdpa_version
   changed_when: false
   when: ofdpa_exists.stdout != "0"
 
-# Note: This is the version number of OFDPA 3.0 EA0
+# Note: This is the version number of OFDPA 3.0 EA4
 - name: Version 2.0.4.0 Openflow Agent
   include: ofdpa.yml
-  when: ofdpa_exists.stdout == "0" or ofdpa_version.stdout.find('version 2.0.4.0') == -1
+  when: ofdpa_exists.stdout == "0" or ofdpa_version.stderr.find('version 2.0.4.0') == -1
 
 - name: Utilities Scripts
   template:
@@ -49,10 +48,8 @@
     group: root
     mode: "0755"
   with_items:
-    - purge
     - killit
     - connect
-    - reset
   register: utils
 
 - name: Authorize SSH Key
diff --git a/roles/fabric-switch/tasks/ofdpa.yml b/roles/fabric-switch/tasks/ofdpa.yml
index 48b0eff..ace1f2b 100644
--- a/roles/fabric-switch/tasks/ofdpa.yml
+++ b/roles/fabric-switch/tasks/ofdpa.yml
@@ -13,13 +13,26 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
 ---
 - name: Openflow Agent Debian Archive
   get_url:
-    url: https://github.com/onfsdn/atrium-docs/raw/master/16A/ONOS/builds/ofdpa-3.0-ea0_3.0.0.0%2Baccton1.0-1_amd64.deb
+    url: https://github.com/onfsdn/atrium-docs/blob/master/16A/ONOS/builds/ofdpa_3.0.4.0+accton1.0~1-1_amd64.deb?raw=true
     validate_certs: false
-    dest: /mnt/onl/data/ofdpa-3.0-ea0_3.0.0.0+accton1.0-1_amd64.deb
+    checksum: "sha256:e0b10051b2032454132c6634a0896883e1548e0c39b847ff10933e559b95a729"
+    dest: /mnt/onl/data/ofdpa_3.0.4.0+accton1.0~1-1_amd64.deb
+
+# We want to kill old agents and stop the old OFDPA service before removing
+- name: OpenFlow Agent Is Not Running
+  command: killall ofagentapp
+  failed_when: false
+  tags:
+   - skip_ansible_lint # there's no harm to run killall if process is not running
+
+- name: Old OFDPA Is Not Running
+  command: killall -9 brcm-indigo-ofdpa-ofagent
+  failed_when: false
+  tags:
+   - skip_ansible_lint # there's no harm to run killall if process is not running
 
 - name: Verify Service Exists
   stat:
@@ -32,7 +45,14 @@
   service: name=ofdpa state=stopped
   when: ofdpa_stat.stat.exists
 
-- name: Verify Distributeion Release File
+- name: OFDPA 3.0 EA0 Is Not Present
+  apt:
+    name: ofdpa-3.0-ea0
+    state: absent
+    force: yes
+    purge: yes
+
+- name: Verify Distribution Release File
   stat:
     path: /etc/lsb-release
   register: lsb_stat
@@ -45,11 +65,6 @@
   changed_when: false
   failed_when: false
 
-- name: Openflow Agent
-  apt: deb="/mnt/onl/data/ofdpa-3.0-ea0_3.0.0.0+accton1.0-1_amd64.deb" force=true
+- name: Openflow Agent Installed
+  apt: deb="/mnt/onl/data/ofdpa_3.0.4.0+accton1.0~1-1_amd64.deb" force=true
   when: not lsb_stat.stat.exists or dist.stdout == "0"
-
-- name: OpenFlow Agent Started
-  service: name=ofdpa state=started
-  when: not lsb_stat.stat.exists or dist.stdout == "0"
-