X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=RO%2Ftest%2Ftest_osconnector.py;fp=RO%2Ftest%2Ftest_osconnector.py;h=0000000000000000000000000000000000000000;hb=e4d1a3d01fee5d5e234bd3e2d9b26ec0ae4eef44;hp=3619ae4401d0c6eae579b4ee6c774cd227dd0233;hpb=ee6a62063244ab492bc4d09cc5fe89388a5d1ea6;p=osm%2FRO.git diff --git a/RO/test/test_osconnector.py b/RO/test/test_osconnector.py deleted file mode 100755 index 3619ae44..00000000 --- a/RO/test/test_osconnector.py +++ /dev/null @@ -1,274 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -## -# Copyright 2015 Telefonica Investigacion y Desarrollo, S.A.U. -# This file is part of openmano -# All Rights Reserved. -# -# 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. -# -# For those usages not covered by the Apache License, Version 2.0 please -# contact with: nfvlabs@tid.es -## - -''' -test_osconnector.py makes a test over osconnector.py (openstack connector) -credentiasl must be provided with environment bash variables or arguments -''' -__author__="Alfonso Tierno, Gerardo Garcia" -__date__ ="$22-jun-2014 11:19:29$" - - -import os -import sys -import getopt -#import yaml -#from jsonschema import validate as js_v, exceptions as js_e - -#load osconnector, insert openmano directory in the path -r=sys.argv[0].rfind('/') -if r<0: - osconnector_path=".." -else: - osconnector_path=sys.argv[0][:r+1]+".." -sys.path.insert(0, osconnector_path) -#sys.path.insert(0, '/home/atierno/workspace/openmano/openmano') -import osconnector - -version="0.1" - -def usage(): - print("Usage: ", sys.argv[0], "[options]") - print(" -v|--version openstack version (by default 2)") - print(" -u|--username USER user to authenticate (by default bash:OS_USERNAME)") - print(" -p|--password PASSWD password to authenticate (by default bash:OS_PASSWORD)") - print(" -U|--auth_url URL url of authentication over keystone (by default bash:OS_AUTH_URL)") - print(" -t|--tenant_name TENANT password to authenticate (by default bash:OS_TENANT_NAME)") - print(" -i|--image IMAGE use this local path or url for loading image (by default cirros)") - print(" --skip-admin-tests skip tests that requires administrative permissions, like create tenants") - print(" -h|--help shows this help") - return - -def delete_items(): - global myvim - global rollback_list - print("Making rollback, deleting items") - for i in range(len(rollback_list)-1, -1, -1): - item,name,id_ = rollback_list[i] - if item=="creds": - print("changing credentials {}='{}'".format(name, id_)).ljust(50), - else: - print("deleting {} '{}'".format(item, name)).ljust(50), - sys.stdout.flush() - if item=="flavor": - result,message=myvim.delete_tenant_flavor(id_) - elif item=="image": - result,message=myvim.delete_tenant_image(id_) - elif item=="tenant": - result,message=myvim.delete_tenant(id_) - elif item=="user": - result,message=myvim.delete_user(id_) - elif item=="network": - result,message=myvim.delete_tenant_network(id_) - elif item=="vm": - result,message=myvim.delete_tenant_vminstance(id_) - elif item=="creds": - try: - myvim[name]=id_ - result=1 - except Exception as e: - result=-1 - message= " " + str(type(e))[6:-1] + ": "+ str(e) - else: - print("Internal error unknown item rollback {},{},{}".format(item,name,id_)) - continue - if result<0: - print(" Fail") - print(" VIM response:", message) - continue - else: - print(" Ok") - -if __name__=="__main__": - global myvim - global rollback_list - #print("(c) Copyright Telefonica" - rollback_list=[] - try: - opts, args = getopt.getopt(sys.argv[1:], "hv:u:U:p:t:i:", - ["username=", "help", "version=", "password=", "tenant=", "url=","skip-admin-tests",'image=']) - except getopt.GetoptError as err: - # print(help information and exit: - print("Error:", err) # will print something like "option -a not recognized") - usage() - sys.exit(2) - - creds = {} - creds['version'] = os.environ.get('OS_VERSION', '2') - creds['username'] = os.environ.get('OS_USERNAME') - creds['password'] = os.environ.get('OS_PASSWORD') - creds['auth_url'] = os.environ.get('OS_AUTH_URL') - creds['tenant_name'] = os.environ.get('OS_TENANT_NAME') - skip_admin_tests=False - image_path="http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img" - for o, a in opts: - if o in ("-h", "--help"): - usage() - sys.exit() - elif o in ("-v", "--version"): - creds['version']=a - elif o in ("-u", "--username"): - creds['username']=a - elif o in ("-p", "--password"): - creds['password']=a - elif o in ("-U", "--auth_url"): - creds['auth_url']=a - elif o in ("-t", "--tenant_name"): - creds['tenant_name']=a - elif o in ("-i", "--image"): - image_path=a - elif o=="--skip-admin-tests": - skip_admin_tests=True - else: - assert False, "Unhandled option" - - if creds['auth_url']==None: - print("you must provide openstack url with -U or bash OS_AUTH_URL") - sys.exit() - print("creds:", creds) - - - try: - print('load osconnector class'.ljust(50)) - sys.stdout.flush() - try: - myvim=osconnector.osconnector(uuid=None, name='test-openstack', tenant=creds['tenant_name'], - url=creds['auth_url'], url_admin=None, - user=creds['username'], passwd=creds['password'], - debug = False, config={'network_vlan_ranges':'physnet_sriov'} ) - print(" Ok") - except Exception as e: - print(" Fail") - print(str(type(e))[6:-1] + ": "+ str(e)) - exit(-1) - - if not skip_admin_tests: - tenant_name="tos-tenant" - print("creating new tenant '{}'".format(tenant_name)).ljust(50), - sys.stdout.flush() - result,new_tenant=myvim.new_tenant(tenant_name, "test tenant_description, trying a long description to get the limit. 2 trying a long description to get the limit. 3. trying a long description to get the limit.") - if result<0: - print(" Fail") - print(" you can skip tenant creation with param'--skip-admin-tests'") - print(" VIM response:", new_tenant) - exit(-1) - else: - print(" Ok", new_tenant) - rollback_list.append(("tenant",tenant_name,new_tenant)) - - user_name="tos-user" - print("creating new user '{}'".format(user_name).ljust(50), end="") - sys.stdout.flush() - result,new_user=myvim.new_user(user_name, user_name, tenant_id=new_tenant) - if result<0: - print(" Fail") - print(" VIM response:", new_user) - exit(-1) - else: - print(" Ok", new_user) - rollback_list.append(("user",user_name,new_user)) - - name="tos-fl1" - print("creating new flavor '{}'".format(name)).ljust(50), - sys.stdout.flush() - flavor={} - flavor['name']=name - result,new_flavor1=myvim.new_tenant_flavor(flavor, True) - if result<0: - print(" Fail") - print(" VIM response:", new_flavor1) - exit(-1) - else: - print(" Ok", new_flavor1) - rollback_list.append(("flavor",name,new_flavor1)) - - name="tos-cirros" - print("creating new image '{}'".format(name).ljust(50)) - sys.stdout.flush() - image={} - image['name']=name - image['location']=image_path #"/home/atierno/cirros-0.3.3-x86_64-disk.img" - result,new_image1=myvim.new_tenant_image(image) - if result<0: - print(" Fail") - print(" VIM response:", new_image1) - exit(-1) - else: - print(" Ok", new_image1) - rollback_list.append(("image",name, new_image1)) - - if not skip_admin_tests: - try: - print('changing credentials to new tenant'.ljust(50)) - sys.stdout.flush() - myvim['tenant'] =tenant_name - myvim['user']=user_name - myvim['passwd']=user_name - print(" Ok") - rollback_list.append(("creds", "tenant", creds["tenant_name"])) - rollback_list.append(("creds", "user", creds["username"])) - rollback_list.append(("creds", "passwd", creds["password"])) - except Exception as e: - print(" Fail") - print(" Error setting osconnector to new tenant:", str(type(e))[6:-1] + ": "+ str(e)) - exit(-1) - - name="tos-net-bridge" - print("creating new net '{}'".format(name)).ljust(50), - sys.stdout.flush() - result,new_net1=myvim.new_tenant_network(name, "bridge") - if result<0: - print(" Fail") - print(" VIM response:", new_net1) - exit(-1) - else: - print(" Ok", new_net1) - rollback_list.append(("network",name, new_net1)) - - name="tos-vm-cloud" - print("creating new VM '{}'".format(name).ljust(50)) - sys.stdout.flush() - result,new_vm1=myvim.new_tenant_vminstance(name, "vm-cloud-description", False,new_image1,new_flavor1, - [{"net_id":new_net1, "type":"virtio"}] ) - if result<0: - print(" Fail") - print(" VIM response:", new_vm1) - exit(-1) - else: - print(" Ok", new_vm1) - rollback_list.append(("vm",name, new_vm1)) - - - print('DONE Ok') - print("Type ENTER to delete items") - input('> ') - exit() - - except KeyboardInterrupt: - print(" Canceled!") - except SystemExit: - pass - if len(rollback_list): - delete_items() -