diff options
-rw-r--r-- | doc/user/keystoneproxy/multivimproxy.txt | 184 | ||||
-rw-r--r-- | doc/user/keystoneproxy/test.json | 10 | ||||
-rw-r--r-- | multivimbroker/assembly.xml | 8 | ||||
-rw-r--r-- | multivimbroker/docker/Dockerfile | 23 | ||||
-rw-r--r-- | multivimbroker/docker/build_image.sh | 32 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/forwarder/base.py | 1 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/pub/config/config.py | 24 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/pub/msapi/extsys.py | 27 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/pub/utils/restcall.py | 17 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/pub/utils/syscomm.py | 18 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/swagger/multivim.identity.swagger.json | 2 | ||||
-rw-r--r-- | multivimbroker/pom.xml | 48 | ||||
-rwxr-xr-x | multivimbroker/run.sh | 28 | ||||
-rw-r--r-- | pom.xml | 30 | ||||
-rw-r--r-- | version.properties | 28 |
15 files changed, 408 insertions, 72 deletions
diff --git a/doc/user/keystoneproxy/multivimproxy.txt b/doc/user/keystoneproxy/multivimproxy.txt new file mode 100644 index 0000000..ecfabb9 --- /dev/null +++ b/doc/user/keystoneproxy/multivimproxy.txt @@ -0,0 +1,184 @@ +prepare environment: +system: centos7-64bit, 8GB RAM, 4 CPU + +docker images: +docker pull onapmulticloud/common-services-msb +docker pull onapmulticloud/common-services-extsys +docker pull onapmulticloud/common-services-drivermanager +docker pull onapmulticloud/gso-service-gateway +docker pull onapmulticloud/gso-service-manager +docker pull onapmulticloud/gso-gui-portal + +# login onap and pull those two images +docker login -u docker -p docker nexus3.onap.org:10001 +docker pull nexus3.onap.org:10001/onapmulticloud/multivim-broker:r1 +docker pull nexus3.onap.org:10001/onapmulticloud/multivim-vio-driver:r1 + + +run msb docker server + +docker run -t --name i-msb -p 80:80 onapmulticloud/common-services-msb + +Run other docker server: + Assign the host ip to MSB_ADDR. If server cannot connect to msb server, please check iptables rule on host may block this connection. + +docker run -t -e MSB_ADDR=$HOST_IP:80 onapmulticloud/gso-service-gateway +docker run -t -e MSB_ADDR=$HOST_IP:80 onapmulticloud/common-services-extsys +docker run -t -e MSB_ADDR=$HOST_IP:80 onapmulticloud/common-services-drivermanager +docker run -t -e MSB_ADDR=$HOST_IP:80 onapmulticloud/gso-gui-portal +docker run -t -e MSB_ADDR=$HOST_IP:80 onapmulticloud/gso-service-manage +docker run -t --name multivim-driver-vio-test -e MSB_ADDR=$HOST_IP:80 nexus3.onap.org:10001/onapmulticloud/multivim-vio-driver:r1 +docker run -t --name multivim-broker-test -e MSB_ADDR= $HOST_IP:80 nexus3.onap.org:10001/onapmulticloud/multivim-broker:r1 + + +Login Dashboard + +Access: http://$HOST_IP/openoui/microservices/index.html + +Register your openstack enviroment in extsys server +Choose 'extsys' —> 'vim Managent' —> 'post vim' + + +Request body Example: +{ + "id": "", + "name": "vmware-vio", + "vendor": "vmware", + "version": "4.0", + "description": "test", + "type": "vmware", # It must be ‘vmware’ so will use multvim-proxy service to execute requests + "createTime": "", + "category": "", + "url": "https://10.154.2.225:5000/v3", # keystone auth_url + "userName": "admin", + "password": "vmware", + "domain": "default", + "tenant": "admin" +} + +response example: + +Response: +{ + "name": "vmware-vio", + "vendor": "vmware", + "version": "4.0", + "description": "test", + "type": "vmware", + "createTime": "2017-08-14 21:28:05", + "vimId": "a5b17aaa-a142-4a50-b425-f1e6eab7136d", # vimid + "userName": "admin", + "password": "vmware", + "domain": "default", + "tenant": "admin" +} + + + +2 Testing Examples + +2.1 Get auth token + +you need to input <vimid> in url path. + +curl -X POST -d @test.json -H 'Content-Type:application/json' http://$HOST_IP/api/multivim/v1/<vimid>/identity/auth/tokens + +test.json content example: + +{ + "auth": + { + "scope": {"project": {"id": “<project-id>”}}, + "identity": + { + "password": {"user": {"domain": {"name": “<doman-name>”}, "password": “<user-password>”, "name": “<user-name>”}}, "methods": ["password"] + } + } +} + + +Response: +There are a large amounts of data including service endpoint, user information, etc. For our testing We take nova and identity service endpoint address and auth token which is in response header named “X-Subject-Token”. + +Identity endpoint: + http://$HOST_IP/api/multivim-vio/v1/<vimid>/identity + +Nova endpoint: + http://$HOST_IP/api/multivim-vio/v1/<vimid>/compute/<user-tenantid> + + +2.2 List projects + +Use identity’s endpoint: http://$HOST_IP/api/multivim-vio/v1/<vimid>/identity/ + +curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multivim-vio/v1/<vimid>/identity/projects + + +2.3 Get os Hypervisor + +Use nova’s endpoint: http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<user-tenantid> + + +curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/os-hypervisors/detail + + +2.4 List instance of user’s project + +curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers + + +2.5 Show instance detail + +you need to input <server-id> in url path. + +curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multivim-vio/v1/vimid/nova/tenantid/servers/<server-id> + + +2.6 Shutdown instance + +you need to input <server-id> in url path + +curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers/<server-id>/action + + +2.7 Start instance + +you need to input <server-id> in url path + +curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers/<server-id>/action + + +2.8 Suspend instance + +you need to input <server-id> in url path + +curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers/<server-id>/action + + +2.9 Resume instance + +you need to input <server-id> in url path + +curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers/<server-id>/action + + +2.10 Pause instance + +you need to input <server-id> in url path + +curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers/<server-id>/action + + + +2.11 Unpasue instance + +you need to input <server-id> in url path + +curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token:<token> -H 'Content-Type:application/json' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers/<server-id>/action + + +2.12 Reboot instance + +you need to input <server-id> in url path + +curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token:<token> -H 'Content-Type:application/json' http://$HOST_IP/api/multivim-vio/v1/<vimid>/nova/<tenantid>/servers/<server-id>/action diff --git a/doc/user/keystoneproxy/test.json b/doc/user/keystoneproxy/test.json new file mode 100644 index 0000000..cd19378 --- /dev/null +++ b/doc/user/keystoneproxy/test.json @@ -0,0 +1,10 @@ +{ + "auth": + { + "scope": {"project": {"id": "622b0f38ec9e4ce1ab5c3aad7765d045"}}, + "identity": + { + "password": {"user": {"domain": {"name": "Default"}, "password": "vmware", "name": "admin"}}, "methods": ["password"] + } + } +} diff --git a/multivimbroker/assembly.xml b/multivimbroker/assembly.xml index 58117d8..2fa7ebd 100644 --- a/multivimbroker/assembly.xml +++ b/multivimbroker/assembly.xml @@ -38,6 +38,14 @@ </includes> </fileSet> <fileSet> + <directory>docker</directory> + <outputDirectory>/docker</outputDirectory> + <includes> + <include>*.sh</include> + <include>Dockerfile</include> + </includes> + </fileSet> + <fileSet> <directory>.</directory> <outputDirectory>/</outputDirectory> <includes> diff --git a/multivimbroker/docker/Dockerfile b/multivimbroker/docker/Dockerfile new file mode 100644 index 0000000..4cd71c0 --- /dev/null +++ b/multivimbroker/docker/Dockerfile @@ -0,0 +1,23 @@ +FROM python:2 + +ENV MSB_ADDR "127.0.0.1" +ENV MSB_PORT "80" +ENV AAI_ADDR "aai.api.simpledemo.openecomp.org" +ENV AAI_PORT "8443" +ENV AAI_SCHEMA_VERSION "v11" +ENV AAI_USERNAME "AAI" +ENV AAI_PASSWORD "AAI" + +EXPOSE 9001 + +# COPY ./ /opt/multivimbroker/ +RUN apt-get update && \ + apt-get install -y unzip && \ + cd /opt/ && \ + wget -O multicloud-framework.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.multicloud.framework&a=multicloud-framework&e=zip&v=LATEST" && \ + unzip -q -o -B multicloud-framework.zip && \ + rm -f multicloud-framework.zip && \ + pip install -r /opt/multivimbroker/requirements.txt + +WORKDIR /opt/multivimbroker +CMD /bin/sh -c /opt/multivimbroker/run.sh
\ No newline at end of file diff --git a/multivimbroker/docker/build_image.sh b/multivimbroker/docker/build_image.sh new file mode 100644 index 0000000..73a8db6 --- /dev/null +++ b/multivimbroker/docker/build_image.sh @@ -0,0 +1,32 @@ +#!/bin/bash +DIRNAME=`dirname $0` +DOCKER_BUILD_DIR=`cd $DIRNAME/; pwd` +echo "DOCKER_BUILD_DIR=${DOCKER_BUILD_DIR}" +cd ${DOCKER_BUILD_DIR} + +BUILD_ARGS="--no-cache" +ORG="onap" +VERSION="1.0.0-SNAPSHOT" +PROJECT="multicloud" +IMAGE="framework" +DOCKER_REPOSITORY="nexus3.onap.org:10003" +IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}" + +if [ $HTTP_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}" +fi +if [ $HTTPS_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}" +fi + +function build_image { + docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest . +} + +function push_image { + docker push ${IMAGE_NAME}:${VERSION} + docker push ${IMAGE_NAME}:latest +} + +build_image +push_image
\ No newline at end of file diff --git a/multivimbroker/multivimbroker/forwarder/base.py b/multivimbroker/multivimbroker/forwarder/base.py index c96461a..7477842 100644 --- a/multivimbroker/multivimbroker/forwarder/base.py +++ b/multivimbroker/multivimbroker/forwarder/base.py @@ -53,7 +53,6 @@ class BaseHandler(object): try: url = getMultivimDriver(vimid, full_path=full_path) - except exceptions.VimBrokerException as e: logging.exception("vimbroker exception: %s" % e) return HttpResponse(e.content, status=e.status_code) diff --git a/multivimbroker/multivimbroker/pub/config/config.py b/multivimbroker/multivimbroker/pub/config/config.py index 5f340ea..72932dd 100644 --- a/multivimbroker/multivimbroker/pub/config/config.py +++ b/multivimbroker/multivimbroker/pub/config/config.py @@ -15,8 +15,17 @@ import os MSB_SERVICE_IP = '127.0.0.1' MSB_SERVICE_PORT = '10080' + # [ESR] -ESR_GET_VIM_URI = "/api/extsys/v1/vims" +# ESR_GET_VIM_URI = "/api/extsys/v1/vims" + +# [A&AI] +AAI_ADDR = "aai.api.simpledemo.openecomp.org" +AAI_PORT = "8443" +AAI_SERVICE_URL = 'https://%s:%s/aai' % (AAI_ADDR, AAI_PORT) +AAI_SCHEMA_VERSION = "v11" +AAI_USERNAME = 'AAI' +AAI_PASSWORD = 'AAI' # [IMAGE LOCAL PATH] ROOT_PATH = os.path.dirname( @@ -27,19 +36,12 @@ REDIS_HOST = '127.0.0.1' REDIS_PORT = '6379' REDIS_PASSWD = '' -# [mysql] -DB_IP = "127.0.0.1" -DB_PORT = 3306 -DB_NAME = "multivimbroker" -DB_USER = "root" -DB_PASSWD = "password" - # [register] -REG_TO_MSB_WHEN_START = True +REG_TO_MSB_WHEN_START = False REG_TO_MSB_REG_URL = "/api/microservices/v1/services" REG_TO_MSB_REG_PARAM = { - "serviceName": "multivim", - "version": "v1", + "serviceName": "multicloud", + "version": "v0", "url": "/api/multicloud/v0", "protocol": "REST", "visualRange": "1", diff --git a/multivimbroker/multivimbroker/pub/msapi/extsys.py b/multivimbroker/multivimbroker/pub/msapi/extsys.py index 75959a4..2058801 100644 --- a/multivimbroker/multivimbroker/pub/msapi/extsys.py +++ b/multivimbroker/multivimbroker/pub/msapi/extsys.py @@ -13,26 +13,29 @@ import json import logging from multivimbroker.pub.exceptions import VimBrokerException -from multivimbroker.pub.utils.restcall import req_by_msb -from multivimbroker.pub.config.config import ESR_GET_VIM_URI +from multivimbroker.pub.utils.restcall import get_res_from_aai logger = logging.getLogger(__name__) -def get_vims(): - ret = req_by_msb(ESR_GET_VIM_URI, "GET") - if ret[0] != 0: - logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) - raise VimBrokerException( - status_code=404, content="Failed to query VIMs from extsys.") - return json.JSONDecoder().decode(ret[1]) +def split_vim_to_owner_region(vim_id): + split_vim = vim_id.split('_') + cloud_owner = split_vim[0] + cloud_region = "".join(split_vim[1:]) + return cloud_owner, cloud_region def get_vim_by_id(vim_id): - ret = req_by_msb("%s/%s" % (ESR_GET_VIM_URI, vim_id), "GET") + cloud_owner, cloud_region = split_vim_to_owner_region(vim_id) + ret = get_res_from_aai("/cloud-infrastructure/cloud-regions/cloud-region" + "/%s/%s" % (cloud_owner, cloud_region)) if ret[0] != 0: - logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + logger.error("Status code is %s, detail is %s." % (ret[2], ret[1])) raise VimBrokerException( status_code=404, content="Failed to query VIM with id (%s) from extsys." % vim_id) - return json.JSONDecoder().decode(ret[1]) + ret = json.JSONDecoder().decode(ret[1]) + ret['type'] = ret['cloud-type'] + ret['version'] = ret['cloud-region-version'] + ret['vimId'] = vim_id + return ret diff --git a/multivimbroker/multivimbroker/pub/utils/restcall.py b/multivimbroker/multivimbroker/pub/utils/restcall.py index b25b389..ccdbada 100644 --- a/multivimbroker/multivimbroker/pub/utils/restcall.py +++ b/multivimbroker/multivimbroker/pub/utils/restcall.py @@ -16,7 +16,10 @@ import urllib2 import uuid import httplib2 - +from multivimbroker.pub.config.config import AAI_SCHEMA_VERSION +from multivimbroker.pub.config.config import AAI_SERVICE_URL +from multivimbroker.pub.config.config import AAI_USERNAME +from multivimbroker.pub.config.config import AAI_PASSWORD from multivimbroker.pub.config.config import MSB_SERVICE_IP, MSB_SERVICE_PORT rest_no_auth, rest_oneway_auth, rest_bothway_auth = 0, 1, 2 @@ -100,6 +103,18 @@ def req_by_msb(resource, method, content='', headers=None): rest_no_auth, resource, method, content, headers) +def get_res_from_aai(resource, content=''): + headers = { + 'X-FromAppId': 'MultiCloud', + 'X-TransactionId': '9001', + 'content-type': 'application/json', + 'accept': 'application/json' + } + base_url = "%s/%s" % (AAI_SERVICE_URL, AAI_SCHEMA_VERSION) + return call_req(base_url, AAI_USERNAME, AAI_PASSWORD, rest_no_auth, + resource, "GET", content, headers) + + def combine_url(base_url, resource): full_url = None if base_url.endswith('/') and resource.startswith('/'): diff --git a/multivimbroker/multivimbroker/pub/utils/syscomm.py b/multivimbroker/multivimbroker/pub/utils/syscomm.py index 0d0419a..cdc6480 100644 --- a/multivimbroker/multivimbroker/pub/utils/syscomm.py +++ b/multivimbroker/multivimbroker/pub/utils/syscomm.py @@ -37,25 +37,21 @@ def findMultivimDriver(vim=None): if vim and vim["type"] == "openstack": if vim["version"] == "kilo": - multivimdriver = "multivim-kilo" + multivimdriver = "multicloud-kilo" elif vim["version"] == "newton": - multivimdriver = "multivim-newton" + multivimdriver = "multicloud-newton" else: # if vim type is openstack, use latest "newton" version as default - multivimdriver = "multivim-newton" + multivimdriver = "multicloud-newton" elif vim and vim["type"] == "vmware": - multivimdriver = "multivim-vio" + multivimdriver = "multicloud-vio" else: raise exceptions.NotFound("Not support VIM type") return multivimdriver def getMultivimDriver(vimid, full_path=""): - - multivim = "multivim" + multcloud = "multicloud" vim = get_vim_by_id(vimid) - if vim["type"] and vim["version"]: - pass - - multivimdriver = findMultivimDriver(vim=vim) - return re.sub(multivim, multivimdriver, full_path) + multclouddriver = findMultivimDriver(vim=vim) + return re.sub(multcloud, multclouddriver, full_path) diff --git a/multivimbroker/multivimbroker/swagger/multivim.identity.swagger.json b/multivimbroker/multivimbroker/swagger/multivim.identity.swagger.json index 923924e..a81b431 100644 --- a/multivimbroker/multivimbroker/swagger/multivim.identity.swagger.json +++ b/multivimbroker/multivimbroker/swagger/multivim.identity.swagger.json @@ -4,7 +4,7 @@ "version": "1.0.0", "title": "MultiVIM Service rest API" }, - "basePath": "/openoapi/multivim/v1/", + "basePath": "/api/multicloud/v0/", "tags": [ { "name": "MultiVIM services" diff --git a/multivimbroker/pom.xml b/multivimbroker/pom.xml index 57a49fc..cd80d6c 100644 --- a/multivimbroker/pom.xml +++ b/multivimbroker/pom.xml @@ -11,7 +11,9 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project + xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>org.onap.oparent</groupId> <artifactId>oparent</artifactId> @@ -23,28 +25,28 @@ <artifactId>multicloud-framework</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> - <name>multicloud/framework</name> + <name>multicloud-framework</name> <description>multivim broker</description> <build> - <plugins> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <configuration> - <appendAssemblyId>false</appendAssemblyId> - <descriptors> - <descriptor>assembly.xml</descriptor> - </descriptors> - </configuration> - <executions> - <execution> - <id>make-assembly</id> - <phase>package</phase> - <goals> - <goal>single</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> + <plugins> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <appendAssemblyId>false</appendAssemblyId> + <descriptors> + <descriptor>assembly.xml</descriptor> + </descriptors> + </configuration> + <executions> + <execution> + <id>make-assembly</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> </build> -</project> +</project>
\ No newline at end of file diff --git a/multivimbroker/run.sh b/multivimbroker/run.sh index 3fb6e80..48b8476 100755 --- a/multivimbroker/run.sh +++ b/multivimbroker/run.sh @@ -1,13 +1,17 @@ #!/bin/bash -# Copyright (c) 2017 Wind River Systems, Inc. -# -# 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. - -nohup python manage.py runserver 127.0.0.1:9001 > /dev/null & + +sed -i "s/MSB_SERVICE_IP =.*/MSB_SERVICE_IP = \"${MSB_ADDR}\"/g" multivimbroker/pub/config/config.py +sed -i "s/MSB_SERVICE_PORT =.*/MSB_SERVICE_PORT = \"${MSB_PORT}\"/g" multivimbroker/pub/config/config.py +sed -i "s/AAI_ADDR =.*/AAI_ADDR = \"${AAI_ADDR}\"/g" multivimbroker/pub/config/config.py +sed -i "s/AAI_PORT =.*/AAI_PORT = \"${AAI_PORT}\"/g" multivimbroker/pub/config/config.py +sed -i "s/AAI_SCHEMA_VERSION =.*/AAI_SCHEMA_VERSION = \"${AAI_SCHEMA_VERSION}\"/g" multivimbroker/pub/config/config.py +sed -i "s/AAI_USERNAME =.*/AAI_USERNAME = \"${AAI_USERNAME}\"/g" multivimbroker/pub/config/config.py +sed -i "s/AAI_PASSWORD =.*/AAI_PASSWORD = \"${AAI_PASSWORD}\"/g" multivimbroker/pub/config/config.py + +nohup python manage.py runserver 0.0.0.0:9001 2>&1 & + +while [ ! -f logs/runtime_multivimbroker.log ]; do + sleep 1 +done + +tail -F logs/runtime_multivimbroker.log @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- + Copyright 2017 VMware Inc. + + 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. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>org.onap.oparent</groupId> + <artifactId>oparent</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>org.onap.multicloud.framework</groupId> + <artifactId>multicloud-framework</artifactId> + <version>1.0.0-SNAPSHOT</version> + <packaging>pom</packaging> + <name>multicloud-framework</name> + <description>multivim broker</description> +</project> diff --git a/version.properties b/version.properties new file mode 100644 index 0000000..639c1f7 --- /dev/null +++ b/version.properties @@ -0,0 +1,28 @@ +#!/bin/bash +# Copyright (c) 2017 VMware, Inc. +# +# 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. + +# Versioning variables +# Note that these variables cannot be structured (e.g. : version.release or version.snapshot etc... ) +# because they are used in Jenkins, whose plug-in doesn't support + +major=1 +minor=1 +patch=0 + +base_version=${major}.${minor}.${patch} + +# Release must be completed with git revision # in Jenkins +release_version=${base_version} +snapshot_version=${base_version}-SNAPSHOT |