Skip to content

Commit

Permalink
global configureation saves
Browse files Browse the repository at this point in the history
  • Loading branch information
elvanja committed Oct 2, 2013
1 parent ef62bd5 commit 5b8eaf2
Show file tree
Hide file tree
Showing 7 changed files with 79 additions and 83 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ work
# exclude Idea files
.idea
*.iml

*.log
44 changes: 0 additions & 44 deletions models/gitlab_web_hook_configuration.rb

This file was deleted.

35 changes: 9 additions & 26 deletions models/gitlab_web_hook_root_action.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
require 'jruby/core_ext'
require 'jenkins/rack'

require_relative 'unprotected_root_action'
require_relative 'api'
require_relative 'unprotected_root_action'
require_relative 'gitlab_web_hook_root_action_descriptor'

include Java

java_import Java.java.util.logging.Logger

class GitlabWebHookRootAction < Jenkins::Model::UnprotectedRootAction
include Jenkins::Model
include Jenkins::Model::DescribableNative
include Jenkins::RackSupport

Expand All @@ -16,37 +19,17 @@ class GitlabWebHookRootAction < Jenkins::Model::UnprotectedRootAction
icon nil # we don't need the link in the main navigation
url_path "gitlab"

attr_reader :conf_param

#def initialize(attributes = {})
# LOGGER.info "=========== GitlabWebHookRootAction INIT ==================="
# LOGGER.info attributes.inspect
#
# attributes.each do |k, v|
# instance_variable_set "@#{k}", v
# end
#end
attr_accessor :conf_param

def call(env)
LOGGER.info "=========== GitlabWebHookRootAction ENV ==================="
LOGGER.info conf_param
LOGGER.info getDescriptor.inspect
LOGGER.info env.inspect
GitlabWebHook::Api.new.call(env)
end

#java_signature 'boolean configure(StaplerRequest, JSONObject) rotten'
#def configure(req, json)
# LOGGER.info "11 rotten =================================="
# LOGGER.info req.inspect
# LOGGER.info json.inspect
# LOGGER.info "12 rotten =================================="
# req.bindJSON(this, json)
# LOGGER.info "13 rotten =================================="
# save
# LOGGER.info "14 rotten =================================="
# true
#end
describe_as Java.hudson.model.Descriptor, :with => GitlabWebHookRootActionDescriptor
end

#GitlabWebHookRootAction.add_method_annotation("configure", java.lang.Override => {})

Jenkins::Plugin.instance.register_extension(GitlabWebHookRootAction)
64 changes: 64 additions & 0 deletions models/gitlab_web_hook_root_action_descriptor.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
include Java

java_import Java.hudson.BulkChange
java_import Java.hudson.model.listeners.SaveableListener

java_import Java.java.util.logging.Logger
java_import Java.java.util.logging.Level

class GitlabWebHookRootActionDescriptor < Jenkins::Model::DefaultDescriptor
LOGGER = Logger.getLogger(GitlabWebHookRootActionDescriptor.class.name)

attr_reader :conf_param

def initialize(*)
super
load
LOGGER.info "=========== GitlabWebHookRootActionDescriptor initialize ==================="
LOGGER.info "conf_param: #{conf_param}"
end

def configure(req, form)
LOGGER.info "=========== GitlabWebHookRootActionDescriptor configure ==================="
parse(form)
LOGGER.info "form: #{form.inspect}"
LOGGER.info "conf_param: #{conf_param}"
LOGGER.info "getId: #{getId()}"
LOGGER.info "getConfigFile: #{getConfigFile()}"
save
true
end

def parse(form)
@conf_param = form["conf_param"]
end

# @see hudson.model.Descriptor#save()
def save
return if BulkChange.contains(self)

begin
File.open(configFile.file.canonicalPath, 'wb') { |f| f.write(to_xml) }
SaveableListener.fireOnChange(self, configFile)
rescue IOError => e
LOGGER.log(Level::SEVERE, "Failed to save #{configFile}: #{e.message}", e)
end
end

# @see hudson.model.Descriptor#load()
def load
return unless configFile.file.exists()
from_xml(File.read(configFile.file.canonicalPath))
end

def to_xml
"<?xml version='1.0' encoding='UTF-8'?>
<#{id} plugin=\"gitlab-hook\">
<conf_param>#{@conf_param}</conf_param>
</#{id}>"
end

def from_xml(xml)
@conf_param = xml.scan(/<conf_param>(.*)<\/conf_param>/).flatten.first
end
end
2 changes: 2 additions & 0 deletions start_jenkins.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
#!/bin/bash

export JAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxPermSize=128m"
jpi server
11 changes: 0 additions & 11 deletions views/gitlab_web_hook_configuration/global.erb

This file was deleted.

4 changes: 2 additions & 2 deletions views/gitlab_web_hook_root_action/global.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
f = taglib("/lib/form")

f.section(:title => "Gitlab Rotten Web Hook Configuration") do
#f.entry :title => 'Rotten egg global param', :field => :conf_param, :description => 'Enter if you dare :-)' do
f.entry :title => 'Rotten egg global param', :field => :conf_param, :description => 'Enter if you dare :-), :help => "help"' do
#f.entry :title => 'Rotten egg global param', :field => :conf_param, :description => 'Enter if you dare :-), :help => "help"' do
f.entry :title => 'Rotten egg global param', :field => :conf_param, :description => 'Enter if you dare :-)' do
f.textbox :clazz => 'required'
end
end
Expand Down

0 comments on commit 5b8eaf2

Please sign in to comment.