#-*- coding: utf-8 -*- import sys from api import connect from api import keystone # 创建预约操作 reload(sys) sys.setdefaultencoding('utf8') conn=connect.Conn() k1=keystone.Keystone(conn) project_obj=k1.create_project(name=bytes('fdasfaf'.encode('utf8'))) user=k1.conn.identity.find_user('abc') role=k1.conn.identity.find_role('member') print(user.id,role.id,project_obj.id) from openstack import utils base_path='/projects' url = utils.urljoin(base_path, project_obj.id, 'users', user.id, 'roles', role.id) print(url) k1.conn.session.put(url) project_obj.assign_role_to_user(session=conn.session,user=user,role=role) # if project_obj: # #role_add # # project_obj = k1.delete_project(name=bytes('fdasfaf'.encode('utf8'))) # # write_db # else: # print('error:%s'%'项目已存在')
from api import connect from api import Openstack import json op = Openstack.Openstack(connect.Conn()) def get_extnetworks(): extnetworks_list = [] res = op.network_request( 'networks?router:external=True&fields=id&fields=name', 'GET') networks = json.loads(res.read()) for network in networks.get('networks', []): extnetworks_dict = {} extnetworks_dict['id'] = network.get('id', None) extnetworks_dict['name'] = network.get('name', None) extnetworks_list.append(extnetworks_dict) return extnetworks_list def get_port_device(network_id, is_extnetwork=False): ports_id_list = [] if is_extnetwork: res = op.network_request( 'ports?network_id=%s&device_owner=network:router_gateway&fields=device_id' % network_id, 'GET') else: res = op.network_request( 'ports?network_id=%s&device_owner=network:router_interface&fields=device_id' % network_id, 'GET') data = json.loads(res.read()) for port in data.get('ports', []):