class AutoJenkins::Job

Attributes

auth[RW]
info[RW]
is_set[RW]
jurl[RW]
name[RW]

Public Class Methods

new(name, jurl, auth, token=nil) click to toggle source
# File lib/autojenkins.rb, line 151
def initialize(name, jurl, auth, token=nil)
    @name = name
    @jurl = jurl
    @auth = auth
    @info = false

    if name
        @e_name = URI.escape(@name)
        @info = Helpers._get_request(@jurl, 'JOBINFO', URI.escape(name), auth)
    end

    @is_set = @info ? true : false
end

Public Instance Methods

_able_job(action) click to toggle source
# File lib/autojenkins.rb, line 202
def _able_job(action)
    res = Helpers._get_request(@jurl, '_ABLE', [@e_name, action], @auth, post_args={'data' => ""})
    return true
end
copy(jobname, enable=false) click to toggle source
# File lib/autojenkins.rb, line 215
def copy(jobname, enable=false)
    config = get_config()
    return create_job(jobname, config, enable)
end
create_job(jobname, config, enable=false) click to toggle source
# File lib/autojenkins.rb, line 220
def create_job(jobname, config, enable=false)
    sts = Helpers._get_request(@jurl, 'NEWJOB', [URI.escape(jobname)],
            @auth, post_args=config, content_type="application/xml")

    newjob = Job.new(jobname, @jurl, @auth)

    unless enable
        newjob.disable()
    end

    return newjob
end
delete() click to toggle source
# File lib/autojenkins.rb, line 171
def delete()
    res = Helpers._get_request(@jurl, 'DELETE',
          [@e_name], @auth, post_args="delete=true")
    return true
end
disable() click to toggle source
# File lib/autojenkins.rb, line 207
def disable()
    return _able_job('disable')
end
enable() click to toggle source
# File lib/autojenkins.rb, line 211
def enable()
    return _able_job('enable')
end
get_build(buildnum) click to toggle source
# File lib/autojenkins.rb, line 177
def get_build(buildnum)
    res = Helpers._get_request(@jurl, 'BUILD', 
        [@e_name, buildnum], @auth)

    build = Build.new()
    begin
        build.branch = res['actions'][1]['lastBuiltRevision']['branch'][0]['name']
        build.revision = res['actions'][1]['lastBuiltRevision']['branch'][0]['SHA1']
    rescue
    end

    build.status = res['result']
    build.name = res['fullDisplayName']
    build.duration = res['duration']
    build.building = res['building']
    build.url = res['url']
    build.node = res['builtOn']

    return build
end
get_config() click to toggle source
# File lib/autojenkins.rb, line 233
def get_config()
    if @is_set
        config_xml = Helpers._get_request(@jurl, 'CONFIG', [URI.escape(@name)], @auth)
        return config_xml
    end
    return ""
end
info_items() click to toggle source
# File lib/autojenkins.rb, line 198
def info_items()
    return @info.keys
end
is_set?() click to toggle source
# File lib/autojenkins.rb, line 241
def is_set?()
    return @is_set
end
launch(token) click to toggle source
# File lib/autojenkins.rb, line 165
def launch(token)
    res = Helpers._get_request(@jurl, 'LAUNCH',
          [@e_name, token], @auth)
    return true
end
method_missing(name) click to toggle source
# File lib/autojenkins.rb, line 245
def method_missing(name)

    name.to_s =~ /^get_(.*)$/
    match = $1

    unless match.nil?
        if @info.has_key? $1
            return @info[$1]
        end
    end

    return nil
end