neutron的context包含哪些内容

(一) 从代码看,携带以下信息:

安全上下文,请求信息;用来表示“正在执行一定动作的用户”

 还包含db session

从类定义看所携带具体信息:

[python]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. class ContextBase(common_context.RequestContext):  
  2.     ...  
  3.     def to_dict(self):  
  4.         return {'user_id'self.user_id,  
  5.                 'tenant_id'self.tenant_id,  
  6.                 'project_id'self.project_id,  
  7.                 'is_admin'self.is_admin,  
  8.                 'read_deleted'self.read_deleted,  
  9.                 'roles'self.roles,  
  10.                 'timestamp': str(self.timestamp),  
  11.                 'request_id'self.request_id,  
  12.                 'tenant'self.tenant,  
  13.                 'user'self.user,  
  14.                 'tenant_name'self.tenant_name,  
  15.                 'project_name'self.tenant_name,  
  16.                 'user_name'self.user_name,  
  17.                 }  
  18.       ...  
  19.   
  20. class Context(ContextBase):  
  21.     @property  
  22.     def session(self):  
  23.         if self._session is None:  
  24.             self._session = db_api.get_session()  
  25.         return self._session  


(二) Neutron在哪里用context

所有neutron API,如create_network

    def create_network(self, context, network):


(三) 抓一下context对象

1. 添加LOG

/opt/stack/neutron/neutron/plugins/ml2/plugin.py

[python]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. def create_network(self, context, network):  
  2.     LOG.info(_("**debug** %s, %s"), context.to_dict(), network)  

2. devstack环境中,停掉neutron-server

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. $ ps -eLf | grep neutron-server  
  2. bengo     7884  2672  7884  0    1 18:35 pts/0    00:00:00 grep --color=auto neutron-server  
  3. bengo    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  
  4.   
  5. $ sudo kill $pid  


3. devstack中为配置log,配置/etc/neutron/neuron.conf

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. debug = False  
  2. use_stderr = False  
  3. log_file = server.log  
  4. log_dir = /var/log/neutron  

4. 启动neutron-server

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. $ 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文件中:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 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:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. {  
  2.     "is_admin"false,   
  3.     "project_id""e70c0a66ca274efc9ca32a5d0532c298",   
  4.     "project_name""demo",   
  5.     "read_deleted""no",   
  6.     "request_id""req-5e88df50-e4ef-4ee2-be09-ee7d9ce25236",   
  7.     "roles": [  
  8.         "anotherrole",   
  9.         "Member"  
  10.     ],   
  11.     "tenant""e70c0a66ca274efc9ca32a5d0532c298",   
  12.     "tenant_id""e70c0a66ca274efc9ca32a5d0532c298",   
  13.     "tenant_name""demo",   
  14.     "timestamp""2014-01-18 01:20:38.758066",   
  15.     "user""bcfca75777ed447297dee807677ee99e",   
  16.     "user_id""bcfca75777ed447297dee807677ee99e",   
  17.     "user_name""demo"  
  18. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值