# Copyright 2018 Telefonica S.A. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not 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 test clean SHELL := /bin/bash BRANCH ?= master all: # lib-openvim # osm-im $(MAKE) clean_build build $(MAKE) clean_build package clean: clean_build rm -rf .build openvim IM clean_build: rm -rf build find osm_ro -name '*.pyc' -delete find osm_ro -name '*.pyo' -delete prepare: # ip install --user --upgrade setuptools mkdir -p build/ # VER1=$(shell git describe | sed -e 's/^v//' |cut -d- -f1); \ # VER2=$(shell git describe | cut -d- -f2); \ # VER3=$(shell git describe | cut -d- -f3); \ # echo "$$VER1.dev$$VER2+$$VER3" > build/RO_VERSION cp tox.ini build/ cp MANIFEST.in build/ cp requirements.txt build/ cp README.rst build/ cp setup.py build/ cp stdeb.cfg build/ cp -r osm_ro build/ cp openmano build/ cp openmanod build/ cp -r vnfs build/osm_ro cp -r scenarios build/osm_ro cp -r instance-scenarios build/osm_ro cp -r scripts build/osm_ro cp -r database_utils build/osm_ro cp LICENSE build/osm_ro connectors: prepare # python-novaclient is required for that rm -f build/osm_ro/openmanolinkervimconn.py cd build/osm_ro; for i in `ls vimconn_*.py |sed "s/\.py//"` ; do echo "import $$i" >> openmanolinkervimconn.py; done python build/osm_ro/openmanolinkervimconn.py 2>&1 rm -f build/osm_ro/openmanolinkervimconn.py build: connectors prepare python -m py_compile build/osm_ro/*.py # cd build && tox -e flake8 lib-openvim: $(shell git clone https://osm.etsi.org/gerrit/osm/openvim) LIB_BRANCH=$(shell git -C openvim branch -a|grep -oP 'remotes/origin/\K$(BRANCH)'); \ [ -z "$$LIB_BRANCH" ] && LIB_BRANCH='master'; \ echo "BRANCH: $(BRANCH)"; \ echo "LIB_OPENVIM_BRANCH: $$LIB_BRANCH"; \ git -C openvim checkout $$LIB_BRANCH make -C openvim clean lite osm-im: $(shell git clone https://osm.etsi.org/gerrit/osm/IM) make -C IM clean all package: prepare # apt-get install -y python-stdeb cd build && python setup.py --command-packages=stdeb.command sdist_dsc --with-python2=True cd build && cp osm_ro/scripts/python-osm-ro.postinst deb_dist/osm-ro*/debian/ cd build/deb_dist/osm-ro* && dpkg-buildpackage -rfakeroot -uc -us mkdir -p .build cp build/deb_dist/python-*.deb .build/ snap: echo "Nothing to be done yet" install: lib-openvim osm-im dpkg -i IM/deb_dist/python-osm-im*.deb dpkg -i openvim/.build/python-lib-osm-openvim*.deb dpkg -i .build/python-osm-ro*.deb cd .. && \ OSMLIBOVIM_PATH=`python -c 'import lib_osm_openvim; print lib_osm_openvim.__path__[0]'` || FATAL "lib-osm-openvim was not properly installed" && \ OSMRO_PATH=`python -c 'import osm_ro; print osm_ro.__path__[0]'` || FATAL "osm-ro was not properly installed" && \ USER=root DEBIAN_FRONTEND=noninteractive $$OSMRO_PATH/database_utils/install-db-server.sh --updatedb || FATAL "osm-ro db installation failed" && \ USER=root DEBIAN_FRONTEND=noninteractive $$OSMLIBOVIM_PATH/database_utils/install-db-server.sh -u mano -p manopw -d mano_vim_db --updatedb || FATAL "lib-osm-openvim db installation failed" service osm-ro restart develop: prepare # pip install -r requirements.txt cd build && ./setup.py develop test: . ./test/basictest.sh -f --insert-bashrc --install-openvim --init-openvim . ./test/basictest.sh -f reset add-openvim ./test/test_RO.py deploy -n mgmt -t osm -i cirros034 -d local-openvim --timeout=30 --failfast ./test/test_RO.py vim -t osm -d local-openvim --timeout=30 --failfast build-docker-from-source: docker build -t osm/openmano -f docker/Dockerfile-local . run-docker: docker-compose -f docker/openmano-compose.yml up stop-docker: docker-compose -f docker/openmano-compose.yml down