Neutron的context携带哪些数据
来源:互联网 发布:麦克风淘宝 编辑:程序博客网 时间:2024/05/01 07:54
(一) 从代码看,携带以下信息:
安全上下文,请求信息;用来表示“正在执行一定动作的用户”
还包含db session
从类定义看所携带具体信息:
class ContextBase(common_context.RequestContext): ... def to_dict(self): return {'user_id': self.user_id, 'tenant_id': self.tenant_id, 'project_id': self.project_id, 'is_admin': self.is_admin, 'read_deleted': self.read_deleted, 'roles': self.roles, 'timestamp': str(self.timestamp), 'request_id': self.request_id, 'tenant': self.tenant, 'user': self.user, 'tenant_name': self.tenant_name, 'project_name': self.tenant_name, 'user_name': self.user_name, } ...class Context(ContextBase): @property def session(self): if self._session is None: self._session = db_api.get_session() return self._session
所有neutron API,如create_network
def create_network(self, context, network):
(三) 抓一下context对象
1. 添加LOG
/opt/stack/neutron/neutron/plugins/ml2/plugin.py
def create_network(self, context, network): LOG.info(_("**debug** %s, %s"), context.to_dict(), network)
2. devstack环境中,停掉neutron-server
$ ps -eLf | grep neutron-serverbengo 7884 2672 7884 0 1 18:35 pts/0 00:00:00 grep --color=auto neutron-serverbengo 10246 2672 10246 0 1 17:04 pts/0 00:00:21 python /usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini$ sudo kill $pid
debug = Falseuse_stderr = Falselog_file = server.loglog_dir = /var/log/neutron
4. 启动neutron-server
$ python /usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini &
5. 在neutron-client创建network
$ neutron net-create test-04
log文件中:
2014-01-17 17:04:55.702 INFO neutron.plugins.ml2.plugin [req-87d27c81-c30c-43ea-baa1-dead845e9a2a demo e70c0a66ca274efc9ca32a5d0532c298] **debug** {'project_name': u'demo', 'tenant_name': u'demo', 'timestamp': '2014-01-17 09:04:55.614450', 'is_admin': False, 'user': u'bcfca75777ed447297dee807677ee99e', 'tenant': u'e70c0a66ca274efc9ca32a5d0532c298', 'user_id': u'bcfca75777ed447297dee807677ee99e', 'roles': [u'anotherrole', u'Member'], 'tenant_id': u'e70c0a66ca274efc9ca32a5d0532c298', 'read_deleted': 'no', 'request_id': 'req-87d27c81-c30c-43ea-baa1-dead845e9a2a', 'project_id': u'e70c0a66ca274efc9ca32a5d0532c298', 'user_name': u'demo'}, {u'network': {'router:external': <object object at 0x7f7d81508140>, u'name': u'test-04', 'provider:physical_network': <object object at 0x7f7d81508140>, u'admin_state_up': True, 'tenant_id': u'e70c0a66ca274efc9ca32a5d0532c298', 'segments': <object object at 0x7f7d81508140>, 'provider:network_type': <object object at 0x7f7d81508140>, 'shared': False, 'provider:segmentation_id': <object object at 0x7f7d81508140>}}
6. 解析、整形
(1) import json
json.dumps(xxx)
(2) 用 $ echo ‘xxx’ | python -mjson.tool解析
context:
{ "is_admin": false, "project_id": "e70c0a66ca274efc9ca32a5d0532c298", "project_name": "demo", "read_deleted": "no", "request_id": "req-5e88df50-e4ef-4ee2-be09-ee7d9ce25236", "roles": [ "anotherrole", "Member" ], "tenant": "e70c0a66ca274efc9ca32a5d0532c298", "tenant_id": "e70c0a66ca274efc9ca32a5d0532c298", "tenant_name": "demo", "timestamp": "2014-01-18 01:20:38.758066", "user": "bcfca75777ed447297dee807677ee99e", "user_id": "bcfca75777ed447297dee807677ee99e", "user_name": "demo"}
0 0
- Neutron的context携带哪些数据
- neutron的context包含哪些内容
- Intent携带额外的数据的方法
- Intent携带额外的数据的方法
- intent携带数据的集中方式
- 启动其他程序Intent携带的数据
- 页面之间的跳转并携带数据
- Redirecting携带数据
- 跳转Activity携带数据
- 关于Ajax提交携带数据认证的问题
- sigqueue函数 进程间通信 信号的发送携带数据
- 安卓开发:两个活动之间携带数据的跳转
- sigqueue函数 进程间通信 信号的发送携带数据
- Intent携带数据切换Activity
- 携带cookie进行数据请求
- 36.activity返回携带数据
- activity跳转时携带数据:
- Android启动一个新的activity并携带数据,返回数据给上一个activity
- yii的单元测试
- Linux编译ccache的使用
- libPods.a的神秘面纱--使用CocoaPods来做iOS程序的包依赖管理
- java面试题
- Eclipse快捷键大全
- Neutron的context携带哪些数据
- nil/Nil/NULL/NSNull的区别
- C#中Thread.Sleep()的作用及用法
- Sip相关介绍
- scope="prototype"
- C语言打印九九乘法表
- poj1276
- 电商运营请甩开大步走
- Service和Thread的区别?