예제 #1
0
#-*- 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'%'项目已存在')
예제 #2
0
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', []):