使用Ruby验证Jenkins插件表单
发布时间:2020-12-16 19:01:37 所属栏目:百科 来源:网络整理
导读:我正在使用 Ruby开发一个Jenkins插件.您应该能够配置连接到服务器的每个节点,以便在节点失去与主服务器的连接时将电子邮件发送到指定的地址. EmailNodeProperty添加一个字段以输入电子邮件地址: # # Save an email property for every node#class EmailNode
我正在使用
Ruby开发一个Jenkins插件.您应该能够配置连接到服务器的每个节点,以便在节点失去与主服务器的连接时将电子邮件发送到指定的地址. EmailNodeProperty添加一个字段以输入电子邮件地址:
# # Save an email property for every node # class EmailNodeProperty < Jenkins::Slaves::NodeProperty require 'java' import 'hudson.util.FormValidation' display_name "Email notification" attr_accessor :email def initialize(attrs = {}) @email = attrs['email'] end def doCheckEmail value puts " ENP.doCheckEmail:#{value}" end end 配置节点时,会有一个名为email的字段,您可以在其中输入电子邮件地址.我希望在您输入地址时验证此字段. 保存配置时,会创建一个EmailNodeProperty,从而可以访问该电子邮件地址. 当节点失去连接时,将调用MyComputerListener的离线: class MyComputerListener include Jenkins::Slaves::ComputerListener include Jenkins::Plugin::Proxy def online(computer,listener) end def offline(computer) #Do nothing when the Master shuts down if computer.to_s.match('Master') == nil list = computer.native.getNode().getNodeProperties() proxy = list.find {"EmailNodeProperty"} if proxy.is_a?(Jenkins::Plugin::Proxy) rubyObject = proxy.getTarget() email = rubyObject.email #<= Accesses the email from EmailNodeProperty [...] end end end end MyComputerListener找到电子邮件地址并发送电子邮件. 有人知道是否有可能在Ruby中验证表单?根据Jenkins wiki,这是应该实现的(FIELD应该被交换为字段名称,所以我想它应该是doCheckEmail): public FormValidation doCheckFIELD(@QueryParameter String value) { if(looksOk(value)) return FormValidation.ok(); else return FormValidation.error("There's a problem here"); } 你会如何在Ruby中做到这一点?该方法应该在哪里实施?在EmailNodeProperty或MyComputerListener中?你如何处理QueryParameter? @会使它成为Ruby中的一个intstance变量. (什么是Queryparameter?) 任何帮助将非常感激! /了Jonatan 解决方法
这在今天根本不存在,我们非常需要添加它.这已经在
Thursday morning’s hack session中已经提出了几次,所以它在TODO列表中很高.但截至
ruby-runtime plugin 0.10年,这是不可能的.抱歉让你失望.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |