X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FRO.git;a=blobdiff_plain;f=Makefile;h=33deb4e96b10c768cf4c6b5680defca488195961;hp=b5e6960f3b499073afcab9b7cc9fa95e7d94ebb5;hb=b23558cd09fb8595ab71ff11e9b1921335b96f37;hpb=06e6c396413630640cafae3488442a0869f1642d diff --git a/Makefile b/Makefile index b5e6960f..33deb4e9 100644 --- a/Makefile +++ b/Makefile @@ -1,48 +1,122 @@ +# 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 -all: pypackage debpackage + +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: - mkdir -p build - cp *.py build/ - #cd build; mv openmanod.py openmanod - cp openmano build/ - cp openmanod.cfg build/ +# 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 openmano.service build/ - cp -r vnfs build/ - cp -r scenarios build/ - cp -r instance-scenarios build/ - cp -r scripts build/ - cd build/scripts; mv service-openmano.sh service-openmano; mv openmano-report.sh openmano-report - cp -r database_utils 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/openmanolinkervimconn.py - cd build; for i in `ls vimconn_*.py |sed "s/\.py//"` ; do echo "import $$i" >> openmanolinkervimconn.py; done - python build/openmanolinkervimconn.py - rm -f build/openmanolinkervimconn.py + 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: prepare - python -m py_compile build/*.py +build: connectors prepare + python -m py_compile build/osm_ro/*.py +# cd build && tox -e flake8 -pypackage: build - cd build; ./setup.py sdist - #cp build/dist/* /root/artifacts/... +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 -debpackage: build - echo "Nothing to be done yet" - #fpm -s python -t deb build/setup.py +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/ -snappackage: +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 --force --insert-bashrc --install-openvim --init-openvim + . ./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 -clean: - rm -rf build - #find build -name '*.pyc' -delete - #find build -name '*.pyo' -delete