Merge "[UI] Support UI partial control"
authorNaga Sugguna <ns156u@att.com>
Tue, 3 Sep 2019 15:44:16 +0000 (15:44 +0000)
committerGerrit Code Review <gerrit@akraino.org>
Tue, 3 Sep 2019 15:44:16 +0000 (15:44 +0000)
bluval/bluval-rec.yaml
docker/docker/Dockerfile [new file with mode: 0644]
docker/docker/Makefile [new file with mode: 0644]
docker/docker/pip-requirements.txt [new file with mode: 0644]
tests/docker/docker_bench/docker_bench.resource [moved from tests/security/docker/docker_bench.resource with 90% similarity]
tests/docker/docker_bench/docker_bench.robot [moved from tests/security/docker/docker_bench.robot with 87% similarity]
tests/os/ltp/ltp.robot [new file with mode: 0644]
tests/os/ltp/variables.resource [new file with mode: 0644]

index bde9b47..3c9a81b 100644 (file)
@@ -20,6 +20,7 @@ blueprint:
     layers:
         - hardware
         - os
+        - docker
         - k8s
     # Any hardware some basic tests
     hardware: &hardware_dummy
@@ -30,6 +31,10 @@ blueprint:
         -
             name: cyclictest
             what: cyclictest
+    docker: &docker_base
+        -
+            name: docker_bench
+            what: docker_bench
     k8s: &k8s
         -
             name: conformance
diff --git a/docker/docker/Dockerfile b/docker/docker/Dockerfile
new file mode 100644 (file)
index 0000000..82c7040
--- /dev/null
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2019 AT&T, ENEA AB, Nokia and others                         #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License");            #
+# you maynot use this file except in compliance with the License.            #
+#                                                                            #
+# You may obtain a copy of the License at                                    #
+#       http://www.apache.org/licenses/LICENSE-2.0                           #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+##############################################################################
+
+# ref: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds
+FROM python:3.6-alpine3.9 as build
+
+# Install dependencies
+COPY pip-requirements.txt /wheels/requirements/pip-requirements.txt
+RUN apk --no-cache add --update \
+        gcc \
+        git \
+        libc-dev \
+        libffi \
+        libffi-dev \
+        make \
+        openssl-dev
+
+# Build binaries
+WORKDIR /wheels
+RUN pip3 install wheel
+RUN pip3 wheel -r /wheels/requirements/pip-requirements.txt
+RUN git clone https://gerrit.akraino.org/r/validation /opt/akraino/validation
+RUN git clone https://github.com/docker/docker-bench-security.git /opt/akraino/docker-bench-security
+
+# Copy binaries in the final container and install requirements
+FROM python:3.6-alpine3.9
+COPY --from=build /wheels /wheels
+COPY --from=build /opt/akraino/validation /opt/akraino/validation
+COPY --from=build /opt/akraino/docker-bench-security /opt/akraino/docker-bench-security
+
+RUN pip3 install -r /wheels/requirements/pip-requirements.txt \
+                 -f /wheels && \
+     rm -rf /wheels && \
+     rm -rf /root/.cache/pip/*
+
+# Install blueval dependencies
+RUN pip install -r /opt/akraino/validation/bluval/requirements.txt
diff --git a/docker/docker/Makefile b/docker/docker/Makefile
new file mode 100644 (file)
index 0000000..a5b4099
--- /dev/null
@@ -0,0 +1,23 @@
+##############################################################################
+# Copyright (c) 2019 AT&T, ENEA AB, Nokia and others                         #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License");            #
+# you maynot use this file except in compliance with the License.            #
+#                                                                            #
+# You may obtain a copy of the License at                                    #
+#       http://www.apache.org/licenses/LICENSE-2.0                           #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+##############################################################################
+
+.PHONY: all
+all: .push_image .push_manifest
+
+.PHONY: build
+build: .build
+
+include ../build.mk
diff --git a/docker/docker/pip-requirements.txt b/docker/docker/pip-requirements.txt
new file mode 100644 (file)
index 0000000..af1d9bf
--- /dev/null
@@ -0,0 +1,2 @@
+robotframework
+robotframework-sshlibrary
@@ -26,7 +26,7 @@ Library            String
 
 *** Variables ***
 ${REPORTDIR}       ${LOG_PATH}${/}${SUITE_NAME.replace(' ','_')}
-${SRCDIR}          ./docker-bench-security
+${SRCDIR}          /opt/akraino/docker-bench-security
 ${DESTDIR}         /tmp/docker-bench-security
 ${NODEDIR}         /tmp/docker-bench-security-run
 ${SSH_OPTS}        -o StrictHostKeyChecking=no
@@ -37,11 +37,6 @@ Open Connection And Log In
     Open Connection        ${HOST}
     Login With Public Key  ${USERNAME}  ${SSH_KEYFILE}
 
-Download Docker Bench Software
-    Remove Docker Bench Software
-    Run Process            git  clone
-    ...                    https://github.com/docker/docker-bench-security.git  ${SRCDIR}
-
 Upload Test Software To Nodes
     Put Directory          ${SRCDIR}  ${DESTDIR}  recursive=True
     Get Node Addresses
@@ -66,9 +61,6 @@ Copy Test Software To All Nodes
     \   Execute Command   ssh ${SSH_OPTS} ${node} "mkdir -p ${NODEDIR}"
     \   Execute Command   scp ${SSH_OPTS} -rp ${DESTDIR}/. ${node}:${NODEDIR}
 
-Remove Docker Bench Software
-    Remove Directory       ${SRCDIR}  recursive=True
-
 Remove Test Software From Nodes
     :FOR  ${node}  IN  @{nodes}
     \   Execute Command   ssh ${SSH_OPTS} ${node} "rm -rf ${NODEDIR}"
similarity index 87%
rename from tests/security/docker/docker_bench.robot
rename to tests/docker/docker_bench/docker_bench.robot
index 591c6cc..e0a915c 100644 (file)
@@ -22,10 +22,8 @@ Documentation     Runs the Docker Bench for Security script which checks for
 ...               containers in production.
 Library           BuiltIn
 Resource          docker_bench.resource
-Suite Setup       Run Keywords  Open Connection And Log In
-...                             Download Docker Bench Software
-Suite Teardown    Run Keywords  Remove Docker Bench Software
-...                             Close All Connections
+Suite Setup       Open Connection And Log In
+Suite Teardown    Close All Connections
 Test Setup        Upload Test Software To Nodes
 Test Teardown     Remove Test Software From Nodes
 
diff --git a/tests/os/ltp/ltp.robot b/tests/os/ltp/ltp.robot
new file mode 100644 (file)
index 0000000..8418bc8
--- /dev/null
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2019 AT&T Intellectual Property.                             #
+# Copyright (c) 2019 Nokia.                                                  #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License");            #
+# you maynot use this file except in compliance with the License.            #
+#                                                                            #
+# You may obtain a copy of the License at                                    #
+#       http://www.apache.org/licenses/LICENSE-2.0                           #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+##############################################################################
+
+*** Settings ***
+Documentation     Validation, robustness and stability of Linux
+Library           SSHLibrary
+Library           OperatingSystem
+Library           BuiltIn
+Library           Process
+Resource          variables.resource
+Suite Setup       Open Connection And Log In
+Suite Teardown    Close All Connections
+
+*** Variables ***
+${LOG}            ${LOG_PATH}${/}${SUITE_NAME.replace(' ','_')}.log
+
+
+*** Test Cases ***
+#Run whole ltp test suite
+#    [Documentation]         Wait ~5hrs to complete 2536 tests
+#    ${result}=              Run Process       ./runltp     shell=yes     cwd=/opt/ltp     stdout=${LOG}
+#    Append To File          ${LOG}  ${result}${\n}
+#    Sleep                   2s
+#    Should Contain          ${result.stdout}   failed   0
+
+#Run ltp syscalls test suite
+#    [Documentation]         Wait ~45m for syscalls to complete
+#    ${result}=              Run Process       ./runltp -f syscalls      shell=yes     cwd=/opt/ltp     stdout=${LOG}
+#    Append To File          ${LOG}  ${result}${\n}
+#    Sleep                   2s
+#    Should Contain          ${result.stdout}   failed   0
+
+Run ltp syscalls madvise
+    [Documentation]         Wait ~1m for madvise01-10 to complete
+    ${result}=              Run Process       ./runltp -f syscalls -s madvise     shell=yes     cwd=/opt/ltp     stdout=${LOG}
+    Append To File          ${LOG}  ${result}${\n}
+    Sleep                   2s
+    Should Contain          ${result.stdout}   failed   0
+
+*** Keywords ***
+Open Connection And Log In
+  Open Connection       ${HOST}
+  Login                 ${ROOTUSER}     ${ROOTPSWD}
+
diff --git a/tests/os/ltp/variables.resource b/tests/os/ltp/variables.resource
new file mode 100644 (file)
index 0000000..6f46166
--- /dev/null
@@ -0,0 +1,23 @@
+##############################################################################
+# Copyright (c) 2019 AT&T Intellectual Property.                             #
+# Copyright (c) 2019 Nokia.                                                  #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License");            #
+# you maynot use this file except in compliance with the License.            #
+#                                                                            #
+# You may obtain a copy of the License at                                    #
+#       http://www.apache.org/licenses/LICENSE-2.0                           #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+##############################################################################
+
+*** Variables ***
+# Manual test: robot  ltp.robot
+
+${HOST}        aknode109    # cluster's master node address
+${ROOTUSER}    root         # Required root user to log in to the host
+${ROOTPSWD}    root_passwd  # Required root password to log in to the host