以下代码来自trove/datastore
该目录下一共有4个文件__init__,views,models,service 大概关系(主要是wsgi吧,没仔细学过,简单的从代码上做推测),
service接收api发来的请求,然后将请求的内容作为参数发给models里面做处理,
models处理完之后,
再转给views,最后由service通过wsgi的方式反馈。 以下是trove/datastore/service的代码 from trove.common import wsgi
from trove.datastore import models, views
from trove.flavor import views as flavor_views class DatastoreController(wsgi.Controller): def show(self, req, tenant_id, id): 这个应该是根据id来查询数据库和数据库版本
datastore = models.Datastore.load(id) 首先是根据id查找出数据库
datastore_versions = (models.DatastoreVersions.load(datastore.id)) 根据数据库的id载入其版本情况
return wsgi.Result(views.
DatastoreView(datastore, datastore_versions, 将数据库和数据库版本作为参数提交给view,view会返回一个字典类型,其中包括
req).data(), 200) id,name,links def index(self, req, tenant_id): 索引
context = req.environ[wsgi.CONTEXT_KEY] 接受上下文
only_active = True 将只返回active的数据库设置为true
if context.is_admin: 如果是admin用户的话,则返回所有状态的数据库
only_active = False
datastores = models.Datastores.load(only_active) 查找数据库
datastores_versions = models.DatastoreVersions.load_all(only_active) 查找所有的版本
return wsgi.Result(views.
DatastoresView(datastores, datastores_versions,
req).data(), 200) def version_show(self, req, tenant_id, datastore, id): 显示数据库版本
datastore = models.Datastore.load(datastore)
datastore_version = models.DatastoreVersion.load(datastore, id)
return wsgi.Result(views.DatastoreVersionView(datastore_version,
req).data(), 200) def version_show_by_uuid(self, req, tenant_id, uuid): 根据uuid显示
datastore_version = models.DatastoreVersion.load_by_uuid(uuid)
return wsgi.Result(views.DatastoreVersionView(datastore_version,
req).data(), 200) def version_index(self, req, tenant_id, datastore): 版本索引
context = req.environ[wsgi.CONTEXT_KEY]
only_active = True
if context.is_admin:
only_active = False
datastore_versions = models.DatastoreVersions.load(datastore,
only_active)
return wsgi.Result(views.
DatastoreVersionsView(datastore_versions,
req).data(), 200) def list_associated_flavors(self, req, tenant_id, datastore, 列出具有相关的flavor
version_id):
"""
All nova flavors are returned for a datastore-version unless
one or more entries are found in datastore_version_metadata,
in which case only those are returned.
"""
context = req.environ[wsgi.CONTEXT_KEY]
flavors = (models.DatastoreVersionMetadata.
list_datastore_version_flavor_associations(
context, datastore, version_id))
return wsgi.Result(flavor_views.FlavorsView(flavors, req).data(), 200)

更多信息:http://www.cnblogs.com/S-tec-songjian/

此文章属博客园用户S-tec原创作品,受国家《著作权法》保护,未经许可,任何单位及个人不得做营利性使用;若仅做个人学习、交流等非营利性使用,应当指明作者姓名、作品名称,原文地址,并且不得侵犯作者依法享有的其他权利。

												

最新文章

  1. Django models对象的select_related方法(减少查询次数)
  2. NYOJ题目98成绩转换
  3. ECharts使用心得总结(二)
  4. CSS3基础01
  5. struts2的result的type属性
  6. scp跨主机拷贝工具
  7. 1046 Shortest Distance (20)
  8. 学无止境,学习AJAX(二)
  9. 九张图让你的PPT立刻高大上
  10. 做个无边框winform窗体,并美化界面
  11. AIM Tech Round 3 (Div. 2)D. Recover the String(贪心+字符串)
  12. centos7安装图形化界面
  13. 介绍一种非常好用汇总数据的方式GROUPING SETS
  14. WebLogic11g-集群相关概念
  15. iOS监听模式系列之推送消息通知
  16. Winform Chart 控件读取datatable后显示图表
  17. (转)Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例
  18. 【jquery采坑】Ajax配合form的submit提交(微擎表单提交,ajax验证,submit提交)
  19. localstorage和vue结合使用
  20. c/c++ 判断两个实型的关系

热门文章

  1. WebService使用DataSetSurrogate压缩Dataset的序列化和解压反序列化传输 (转)
  2. Oracle左连接,右连接
  3. Web API中使用Dependency Resolver
  4. C#接口总结
  5. String类重写
  6. [转]Building a Basic Fuzzer with GDB: The Five Minute GDB Scripting Tutorial
  7. Python之FTP多线程下载文件之分块多线程文件合并
  8. java并发之固定对象与实例
  9. 工作流--JBPM简介及开发环境搭建
  10. jprofiler8使用小贴士