diff --git a/TestON/docker/Dockerfile b/TestON/docker/Dockerfile
index 5ad5d52..2c43893 100644
--- a/TestON/docker/Dockerfile
+++ b/TestON/docker/Dockerfile
@@ -51,9 +51,14 @@
     mkdir -p /var/run/sshd && \
     mkdir -p /var/log/supervisor && \
     useradd -m jenkins && \
+    chmod 777 /tmp && \
     chsh -s /bin/bash jenkins && \
     echo jenkins:jenkins | chpasswd
 
+RUN curl -sS --fail "https://repo1.maven.org/maven2/org/onosproject/onos-releases/2.5.4/onos-admin-2.5.4.tar.gz" | tar zx && \
+    mv onos-admin-2.5.4/* /usr/local/bin/ && \
+    rm -r onos-admin-2.5.4
+
 ENV PYTHONPATH=${TREX_EXT_LIBS}:${TREX_LIBS}
 # TODO: should we parametrize those?
 ENV OC1=localhost
diff --git a/TestON/tests/USECASE/SegmentRouting/QOS/QOS.py b/TestON/tests/USECASE/SegmentRouting/QOS/QOS.py
index 1b20ce8..6f05db0 100644
--- a/TestON/tests/USECASE/SegmentRouting/QOS/QOS.py
+++ b/TestON/tests/USECASE/SegmentRouting/QOS/QOS.py
@@ -83,4 +83,5 @@
         main.step("Teardown")
         trex.teardown()
         up4.teardown()
+        run.saveOnosDiagsIfFailure(main)
         run.cleanup(main)
diff --git a/TestON/tests/USECASE/SegmentRouting/QOSNonMobile/dependencies/QOSNonMobileTest.py b/TestON/tests/USECASE/SegmentRouting/QOSNonMobile/dependencies/QOSNonMobileTest.py
index 9a52313..45e9d8c 100644
--- a/TestON/tests/USECASE/SegmentRouting/QOSNonMobile/dependencies/QOSNonMobileTest.py
+++ b/TestON/tests/USECASE/SegmentRouting/QOSNonMobile/dependencies/QOSNonMobileTest.py
@@ -175,6 +175,7 @@
 
         main.step("Teardown")
         trex.teardown()
+        run.saveOnosDiagsIfFailure(main)
         run.cleanup(main)
 
     def __cleanupTrafficSelector(self, traffic_selector):
diff --git a/TestON/tests/USECASE/SegmentRouting/UP4/UP4.py b/TestON/tests/USECASE/SegmentRouting/UP4/UP4.py
index 1395671..456a6b5 100644
--- a/TestON/tests/USECASE/SegmentRouting/UP4/UP4.py
+++ b/TestON/tests/USECASE/SegmentRouting/UP4/UP4.py
@@ -62,6 +62,8 @@
 
         main.step("Stop scapy and p4rt client")
         up4.teardown()
+
+        run.saveOnosDiagsIfFailure(main)
         run.cleanup(main)
 
     def CASE2(self, main):
@@ -256,6 +258,8 @@
         main.step("Stop scapy and p4rt client")
         up4.teardown()
         bess_host.stopScapy()
+
+        run.saveOnosDiagsIfFailure(main)
         run.cleanup(main)
 
     def CASE3(self, main):
@@ -380,6 +384,8 @@
             onfail="ONOS instances have different number of flows: (%d, %d, %d)" % (
                 onos_0_flow_count, onos_1_flow_count, onos_2_flow_count)
         )
+
+        run.saveOnosDiagsIfFailure(main)
         run.cleanup(main)
 
     def CASE4(self, main):
@@ -432,6 +438,14 @@
         )
 
         onosPod = main.params["UP4_delete_pod"]
+
+        # Save ONOS diags of the POD we are killing otherwise we lose ONOS logs
+        main.ONOSbench.onosDiagnosticsK8s(
+            [onosPod],
+            main.logdir,
+            "-CASE%d-%s_BeforeKill" % (main.CurrentTestCaseNumber, onosPod)
+        )
+
         # Exit from previous port forwarding, because we need to restore
         # port-forwarding after ONOS reboot.
         kubectl_0.clearBuffer()
@@ -575,4 +589,5 @@
 
         run.checkFlows(main, minFlowCount=initial_flow_count)
 
+        run.saveOnosDiagsIfFailure(main)
         run.cleanup(main)
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 3aba8fc..59466be 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -2005,3 +2005,9 @@
         utilities.assert_equals( expect=True, actual=logging,
                                  onpass="Reset log levels",
                                  onfail="Failed to reset log levels" )
+
+    @staticmethod
+    def saveOnosDiagsIfFailure( main ):
+        if main.FALSE in main.stepResultsList:
+            # Some step has failed
+            Testcaselib.saveOnosDiagnostics( main )
