wsme and pecan in ironic

产业园区如何高效对接企业技术需求与高校科研成果?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

和openstack中的其他模块一样,ironic也大量使用开源或成熟的Python类库,创建pecan项目之后,在config.py中我们知道:

'root': 'ironic.api.controllers.root.RootController',

即入口在RooController中,首先我们就会发现wsme的引入

wsme: Web Services Made Easy

本身的目的也是让写WSGI的项目更加容易,配上pecan的框架就更加强大了,

阅读pecan的官方文档https://pecan.readthedocs.org/en/latest/routing.html

WSME的官方文档:https://pythonhosted.org/WSME/

都有expose方法,只有被expose()装饰的方法才会暴漏给rest call。

wsme.types包替我们做了很多类型校验的工作,而wsmeext.pecan则可以理解为pecan使用wsme的一个适配器,可以更加方便的使用“

wsmeext.pecan.wsexpose(return_type, *arg_types, **options)
”

详情见http://wsme.readthedocs.org/en/latest/integrate.html,此处还有很多其他框架或库与wsme的适配器

要在pecan中使用wsme,配置很简单,在pecan项目的confiy.py中添加(ironic)

# WSME Configurations
# See https://wsme.readthedocs.org/en/latest/integrate.html#configuration
wsme = {
    'debug': False,
}

pecan中有几个特殊的方法_lookup(), _default(), and _route()

在RootController中我们可以看到_route()方法的使用,添加默人的route路径到“/v1”

通过RootController,进入:

    nodes = node.NodesController()
    ports = port.PortsController()
    chassis = chassis.ChassisController()
    drivers = driver.DriversController()

我们可以看到    @wsme.validate(types.uuid_or_name, [NodePatchType]), 可以看到在/ironic/api/controllers/v1/types.py中定义了很多user define的类,并

重载了方法validate,用于验证input/output数据是否为定义类型


根据pecan的文档,ironic对外提供的rest为:

/v1/nodes/

/v1/nodes/{uuid}/states

/v1/nodes/{uuid}/states/console

/v1/nodes/ports

/v1/nodes/{uuid}/vendor_passthru

/v1/nodes/{uuid}/management/boot_device

/v1/nodes/{uuid}/maintence

/v1/ports/

/v1/drivers/

/v1/drivers/{name}/vendor_passthru

/v1/chassis/

/v1/chassis/{chassisuuid}/nodes

详细定义在:http://docs.openstack.org/developer/ironic/webapi/v1.html

https://media.readthedocs.org/pdf/pecan/latest/pecan.pdf

对于嵌套的controller,比如chassis嵌套nodes,nodes controller嵌套了states,management等,drivers controller嵌套了vendor_passthru等

如果父controller,比如chassis,nodes,drivers 对应的controller包含get_one或者get方法(先check get_one),那么PeCan会将其参数传给子controller

这也就是嵌套的controller情况下诸如 /v1/chassis/{chassisuuid}/nodes等rest call 是如何形成的






国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

边云协同智能进化:大模型与小模型的动态训练与高效部署策略

本文深入探讨了边云协同架构下大模型与小模型的动态训练与高效部署策略。通过物流分拣、医疗影像等实战案例,展示了如何利用边云协作框架实现AI模型的智能进化,显著提升处理效率与准确性。重点解析了动态任务分配、增量学习和知识蒸馏等关键技术,为分布式训练场景提供优化方案。

work3的博客 191

python pecan api开发_python学习之pecan框架

Pecan框架基础知识介绍:一. 文件中需要包含一个config.py文件,该文件用于标注pecan程序的起点等配置信息:app = {'root': 'webdemo.api.controllers.root.RootController','modules': ['webdemo.api'],'debug': True,}modules:其中包含的python包,是app.py文件所在的包,即...

weixin_39603132的博客 911

用Multisim仿真AD630锁定放大器:从2012年电赛A题实战到避坑指南

本文详细介绍了如何使用Multisim仿真AD630锁定放大器,从2012年电赛A题实战出发,提供完整的电路搭建、参数优化及避坑指南。重点解析AD630的开关调制架构和双相位检测的工程实现,帮助读者在强噪声背景下有效提取微弱信号,提升电子设计竞赛和工程实践中的信号处理能力。

weixin_42549451的博客 203

通过demo学习OpenStack开发所需的基础知识 -- API服务(3)

上一篇文章我们了解了一个巨啰嗦的框架:Paste + PasteDeploy + Routes + WebOb。后来OpenStack社区的人受不了这么啰嗦的代码了,决定换一个框架,他们最终选中了Pecan。Pecan框架相比上一篇文章的啰嗦框架有如下好处: 不用自己写WSGI application了 请求路由很容易就可以实现了 总...

weixin_34242509的博客 404

群晖Lucky套件高级玩法-——更新证书同步更新群晖自带证书

群晖Lucky套件高级玩法-——更新证书同步更新群晖自带证书

wojuzi的博客 2455

Eplan P8自动线号生成全攻略:从电位定义点到连接编号的完整流程

本文详细解析了Eplan P8自动线号生成的全流程,从电位定义点的创建配置到连接编号的标准化管理,帮助电气设计人员提升图纸规范性和工作效率。重点介绍了自动编号方案的定义与调整技巧,以及企业级标准化实施建议,是掌握Eplan P8自动线号功能的实用指南。

weixin_29254029的博客 510

理解裸机部署过程ironic

部署物理机跟部署虚拟机的概念在nova来看是一样,都是nova通过创建虚拟机的方式来触发,只是底层nova-scheduler和nova-compute的驱动不一样。虚拟机的底层驱动采用的libvirt的虚拟化技术,而物理机是采用Ironic技术,ironic可以看成一组Hypervisor API的集合,其功能与libvirt类似。 操作系统安装过程 Linux系统启动过程 bootl...

weixin_30813225的博客 1157

STM32CubeMX最新版下载安装全攻略(附官网访问问题解决方案)

本文提供了STM32CubeMX最新版的详细下载与安装指南,并针对国内开发者常见的官网访问缓慢、注册验证邮件延迟等问题,给出了实用的解决方案和备选策略。通过清晰的步骤解析,帮助用户快速部署这一强大的STM32图形化配置工具,从而高效启动嵌入式开发项目。

weixin_28256233的博客 196

python 64式: 第18式、python项目通用rest api框架搭建与编写

1 用PasteScript创建项目 1.1 安装PasteScript 安装命令: pip install PasteScript 查看可用的模板 [root@localhost test_project]# paster create --list-templates      Available templates:   basic_package:  A basic setuptools...

qingyuanluofeng的专栏 964

基于BQ24610的24V电池充电板

转自我的博客 本文的主要目的在于传播基本的阅读datasheet的能力,以及PCB设计需要注意的基本问题。 本次需要设计的是24V动力锂电池充电电路。 原理图设计 参考官方参考电路 为了快速设计电路,自然是参考官方参考电路,选择Typical Application。 做细微的参数调整 由于我们的需求是给24V的电池充电,所以需要稍微修改一下原理图,接下来需...

greedyhao的博客 1万+

MIPI CSI-2

来源:公众号瓜大三哥版权归三哥所有1 MIPI简介2 MIPI CSI-2简介2.1 MIPI CSI-2 的层次结构2.2 CSI-2协议层2.3 打包/解包层2.4 ...

OpenFPGA的博客 2113

通过demo学习OpenStack开发所需的基础知识 -- API服务(4)

上一篇文章说到,我们将以实例的形式来继续讲述这个API服务的开发知识,这里会使用Pecan和WSME两个库。 设计REST API 要开发REST API服务,我们首先需要设计一下这个服务。设计包括要实现的功能,以及接口的具体规范。我们这里要实现的是一个简单的用户管理接口,包括增删改查等功能。如果读者对REST API不熟悉,可以先从Wi...

weixin_34342905的博客 381

102、栅极驱动芯片选型与设计

文章摘要 本文分享了栅极驱动芯片选型与设计的实战经验。通过一次因驱动芯片选型不当导致的炸管事故,作者总结了栅极驱动芯片选型的五个关键参数:峰值驱动电流、驱动电压范围、传播延迟匹配、欠压锁定和隔离等级。文章详细分析了自举电路设计中的常见陷阱,以及栅极电阻对开关特性的影响,并强调了PCB布局布线的重要性。最后,作者提供了七条实用建议,包括避免通用型驱动芯片、关注CMTI参数、使用插件电阻等。核心观点是:栅极驱动设计需要综合考虑参数匹配、电路布局和实际调试,示波器实测波形是验证设计的唯一标准。

2401_88858637的博客 44

【Python Web】Pecan学习:框架原理分析和示例

Pecan学习:基础入门WSGIPecan WSGI 在正式了解Pecan之前,需要介绍WSGI的基本原理: WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和web application,当前运行在WSGI

小哲的博客 2794

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pecan入门

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34121282的博客 482

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

pecan源码阅读(二)

config文件 新建pecan工程的默认config.py文件(上一篇博文讲过,该文件是从scaffolds中的模板copy的) // 启动的默认的host和port server = { 'port': '8080', 'host': '0.0.0.0' } // app的配置 app = { // root项很重要,指定开始路由的处理器 'root': 'peca...

qq527631128的博客 670

pecan源码阅读(一)

pecan源码阅读(一)pecan源码目录创建pecan工程运行pecan工程 pecan源码目录 创建pecan工程 pecan create test 创建pecan工程用到了bin下的pecan脚本 // bin/pecan #!/usr/bin/env python if __name__ == '__main__': from pecan.commands import Co...

qq527631128的博客 613

ironic pecan hooks

查阅ironic的源代码时,看到: pecan.request.rpcapi.change_node_power_state(pecan.request.context,rpc_node.uuid, target,topic) 比较奇怪的是pecan.request.rpcapi对应的是哪个类,虽然知道对应的是rpcapi.ConductorAPI(),但不知道为什么 关于pecan

dingdingwolf的专栏 1170

WCF和WebService的区别

WebService和WCF的到底有什么区别 WebService:严格来说是行业标准,也就是WebService规范,也称作WS-*规范,既不是框架,也不是技术。它有一套完成的规范体系标准,而且在持续不断的更新完善中。它使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微软的Web服务实现称为ASP.NETWebService.它使用Soap简单对象访问协议来实现分布式环境里应用...

大头之家 5553

Ironic相关的项目

接触ironic的时候,在ironic的wiki页面:https://wiki.openstack.org/wiki/Ironic 会看到一堆的项目,感觉ironic是个很大的项目,可能会产生疑问, 是否每一个部分都需要了解,参与开发的话,哪些模块进行contribute比较合适? 下面是Ironic相关的几个主要项目。 1. ironic 这个是ironic项目的主体,主要是ironic-api 和 ironic-conductor两部分。 各个vendor的driver归类到任何一个部分.

Evan 464

使用框架对json体做参数验证

使用框架对json体做参数验证title: 使用框架对json体做参数验证 date: 2017-09-25 15:50:49 tags: [openstack, json] categories: [openstack, json]comments: true在API接口开发过程中,大多文档对接口的属性有严格要求,这需要接收端对Json信息体做参数校验,屏蔽不合理的入参。记录下目前接触到的对

rtmdk的博客 1721

tripleo之Ironic_python_agent的学习(一)

我们知道当前ironic的deploy模块是通过打开一个iSCSI设备,ironic-conductro来OS的镜像文件写到iSCSI的设备上。 ironic-python-agent  认为deploy还可以直接访问硬件,提供以下功能:

Hcloud 3371

Pecan

什么是peacn   Pecan是一个轻量级的基于Python的Web框架,   Pecan的目标并不是要成为一个“full stack”的框架,   因此Pecan本身不支持类似Session和Databases. Pecan项目创建 创建项目:pecan create test_project 部署: python setup.py develop 开启服务: 进入含有con...

weixin_30572613的博客 364

学习WSGI框架pecan(五)使用_lookup实现路由处理

截止到上篇文章 学习WSGI框架pecan(四)注册路由方法二 我们已经有了两种方法去注册一个路由,今天我们第三种方法。OpenStack Neutron组件就是用这种方法实现的。 ...

meisanggou的博客 1013

WSGI学习系列WSME

Introduction   Web Services Made Easy (WSME) simplifies the writing of REST web services by providing simple yet powerful typing,   removing the need to directly manipulate the request and the respo...

weixin_30565199的博客 238

pecan快速教程

https://gtcsq.readthedocs.io/en/latest/py_doc/pecan_note.html 转载于:https://www.cnblogs.com/shaohef/p/9502521.html

weixin_30480651的博客 392
上一篇: using curl to debug rest call
下一篇: ironic workflow---debug and changing (1)
dingdingwolf
博客等级 码龄16年 7粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值