Pip standerdization and tox replacement
[osm/RO.git] / Dockerfile-local
index 8430fa9..72b28ce 100644 (file)
@@ -19,7 +19,8 @@ LABEL authors="Alfonso Tierno"
 
 RUN apt-get update && apt-get install -y git python3 python3-pip \
     && python3 -m pip install --upgrade pip \
-    && DEBIAN_FRONTEND=noninteractive apt-get -y install libmysqlclient-dev mysql-client \
+    && DEBIAN_FRONTEND=noninteractive apt-get -y install libssl-dev libmysqlclient-dev mysql-client \
+    build-essential libffi-dev cargo \
     && DEBIAN_FRONTEND=noninteractive python3 -m pip install -U networking-l2gw  \
     && DEBIAN_FRONTEND=noninteractive python3 -m pip install -U progressbar pyvmomi pyvcloud==19.1.1  \
     && DEBIAN_FRONTEND=noninteractive apt-get -y install genisoimage
@@ -27,74 +28,64 @@ RUN apt-get update && apt-get install -y git python3 python3-pip \
 # This is not needed, because package dependency will install anyway.
 # But done here in order to harry up image generation using cache
 RUN DEBIAN_FRONTEND=noninteractive  apt-get -y install python3-neutronclient python3-openstackclient \
-    python3-requests python3-netaddr python3-argcomplete
+    python3-requests python3-netaddr python3-argcomplete curl  \
+    && DEBIAN_FRONTEND=noninteractive curl -Lo /tmp/libzenohc.so https://github.com/eclipse-fog05/fog05/releases/download/v0.1.0/libzenohc.so \
+    && mv /tmp/libzenohc.so /usr/local/lib/libzenohc.so \
+    && DEBIAN_FRONTEND=noninteractive python3 -m pip install -U jsonrpclib-pelix cvprac "azure==4.0.0" boto \
+    pyone "oca @ git+https://github.com/python-oca/python-oca#egg=oca" \
+    pyangbind sphinx zenoh==0.3.0 yaks==0.3.0.post1 fog05-sdk==0.2.0 fog05==0.2.0 "cryptography>=2.5"
+
 
 #    DEBIAN_FRONTEND=noninteractive apt-get -y install python-openstacksdk python-openstackclient && \
 # TODO py3   DEBIAN_FRONTEND=noninteractive add-apt-repository -y cloud-archive:rocky && apt-get update && apt-get install -y python3-networking-l2gw \
 
 #    DEBIAN_FRONTEND=noninteractive apt-get -y install python-cffi  libssl-dev libffi-dev python-mysqldb && \
-#    DEBIAN_FRONTEND=noninteractive pip2 install -U azure && \
-#    DEBIAN_FRONTEND=noninteractive pip2 install -U fog05rest && \
 #    && DEBIAN_FRONTEND=noninteractive apt-get -y install software-properties-common && \
 #    DEBIAN_FRONTEND=noninteractive apt-get -y install wget tox && \
-#    DEBIAN_FRONTEND=noninteractive pip2 install untangle && \
-#    DEBIAN_FRONTEND=noninteractive pip2 install pyone && \
-#    DEBIAN_FRONTEND=noninteractive pip2 install -e git+https://github.com/python-oca/python-oca#egg=oca && \
 
 COPY . /root/RO
 
-RUN /root/RO/RO/osm_ro/scripts/install-osm-im.sh --develop && \
-    /root/RO/RO/osm_ro/scripts/install-lib-osm-openvim.sh --develop && \
-    mkdir -p /var/log/osm && \
-    python3 -m pip install -e /root/RO/RO && \
-    python3 -m pip install -e /root/RO/RO-client && \
+RUN python3 -m pip install -e /root/RO/RO-plugin && \
+    python3 -m pip install -e /root/RO/NG-RO && \
     python3 -m pip install -e /root/RO/RO-VIM-vmware && \
     python3 -m pip install -e /root/RO/RO-VIM-openstack && \
     python3 -m pip install -e /root/RO/RO-VIM-openvim && \
     python3 -m pip install -e /root/RO/RO-VIM-aws && \
+    python3 -m pip install -e /root/RO/RO-VIM-azure && \
     python3 -m pip install -e /root/RO/RO-VIM-fos && \
     python3 -m pip install -e /root/RO/RO-SDN-dynpac && \
-    python3 -m pip install -e /root/RO/RO-SDN-tapi && \
+    python3 -m pip install -e /root/RO/RO-SDN-ietfl2vpn && \
+    python3 -m pip install -e /root/RO/RO-SDN-onos_vpls && \
+    python3 -m pip install -e /root/RO/RO-SDN-onos_openflow && \
+    python3 -m pip install -e /root/RO/RO-SDN-odl_openflow && \
+    python3 -m pip install -e /root/RO/RO-SDN-floodlight_openflow && \
+    python3 -m pip install -e /root/RO/RO-SDN-arista_cloudvision && \
+    python3 -m pip install -e /root/RO/RO-SDN-juniper_contrail && \
     rm -rf /root/.cache && \
     apt-get clean && \
     rm -rf /var/lib/apt/lists/*
 
-VOLUME /var/log/osm
-
 EXPOSE 9090
 
-# Two mysql databases are needed (DB and DB_OVIM). Can be hosted on same or separated containers
-# These ENV must be provided
-# RO_DB_HOST: host of the main
-# RO_DB_OVIM_HOST: ...        if empty RO_DB_HOST is assumed
-# RO_DB_ROOT_PASSWORD: this has to be provided first time for creating database. It will create and init only if empty!
-# RO_DB_OVIM_ROOT_PASSWORD: ...  if empty RO_DB_ROOT_PASSWORD is assumed
-# RO_DB_USER:    default value 'mano'
-# RO_DB_OVIM_USER:       default value 'mano'
-# RO_DB_PASSWORD:        default value 'manopw'
-# RO_DB_OVIM_PASSWORD:        default value 'manopw'
-# RO_DB_PORT:             default value '3306'
-# RO_DB_OVIM_PORT:        default value '3306'
-# RO_DB_NAME:             default value 'mano_db'
-# RO_DB_OVIM_NAME:        default value 'mano_vim_db'
-# RO_LOG_FILE:            default log to stderr if not defined
-
-ENV RO_DB_HOST="" \
-    RO_DB_OVIM_HOST="" \
-    RO_DB_ROOT_PASSWORD="" \
-    RO_DB_OVIM_ROOT_PASSWORD="" \
-    RO_DB_USER=mano \
-    RO_DB_OVIM_USER=mano \
-    RO_DB_PASSWORD=manopw \
-    RO_DB_OVIM_PASSWORD=manopw \
-    RO_DB_PORT=3306 \
-    RO_DB_OVIM_PORT=3306 \
-    RO_DB_NAME=mano_db \
-    RO_DB_OVIM_NAME=mano_vim_db \
-    OPENMANO_TENANT=osm \
-    RO_LOG_LEVEL=DEBUG
-
-CMD RO-start.sh
+ENV OSMRO_NG              True
+
+# database
+ENV OSMRO_DATABASE_DRIVER mongo
+ENV OSMRO_DATABASE_URI    mongodb://mongo:27017
+# ENV OSMRO_DATABASE_COMMONKEY  xxx
+# ENV OSMRO_DATABASE_USER  xxx
+# ENV OSMRO_DATABASE_PASSWORD  xxx
+
+# message
+ENV OSMRO_MESSAGE_DRIVER  kafka
+ENV OSMRO_MESSAGE_HOST    kafka
+ENV OSMRO_MESSAGE_PORT    9092
+
+# logs
+ENV OSMRO_LOG_LEVEL       DEBUG
+
+CMD ["python3", "-u", "-m", "osm_ng_ro.ro_main"]
 
 # HEALTHCHECK --start-period=30s --interval=10s --timeout=5s --retries=12 \
-#  CMD curl --silent --fail localhost:9090/openmano/tenants || exit 1
+#  CMD curl --silent --fail http://localhost:9090/ro || exit 1
+