module PluginPackager
# MCollective Agent Plugin package
class AgentDefinition
- attr_accessor :path, :packagedata, :metadata, :target_path, :vendor, :iteration, :preinstall
+ attr_accessor :path, :packagedata, :metadata, :target_path, :vendor, :revision, :preinstall
attr_accessor :plugintype, :dependencies, :postinstall, :mcname, :mcversion
- def initialize(path, name, vendor, preinstall, postinstall, iteration, dependencies, mcdependency, plugintype)
+ def initialize(configuration, mcdependency, plugintype)
@plugintype = plugintype
- @path = path
+ @path = configuration[:target]
@packagedata = {}
- @iteration = iteration || 1
- @preinstall = preinstall
- @postinstall = postinstall
- @vendor = vendor || "Puppet Labs"
- @dependencies = dependencies || []
+ @revision = configuration[:revision] || 1
+ @preinstall = configuration[:preinstall]
+ @postinstall = configuration[:postinstall]
+ @vendor = configuration[:vendor] || "Puppet Labs"
+ @dependencies = configuration[:dependency] || []
@target_path = File.expand_path(@path)
@metadata, mcversion = PluginPackager.get_metadata(@path, "agent")
@mcname = mcdependency[:mcname] || "mcollective"
@mcversion = mcdependency[:mcversion] || mcversion
+ @metadata[:version] = (configuration[:version] || @metadata[:version])
@dependencies << {:name => "#{@mcname}-common", :version => @mcversion}
-
- @metadata[:name] = (name || @metadata[:name]).downcase.gsub(/\s+|_/, "-")
+ @metadata[:name] = (configuration[:pluginname] || @metadata[:name]).downcase.gsub(/\s+|_/, "-")
identify_packages
end
else
return nil
end
- agent[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :iteration => @iteration}
+ agent[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :revision => @revision}
agent
end
client[:files] += Dir.glob(File.join(clientdir, "*")) if PluginPackager.check_dir_present clientdir
client[:files] += Dir.glob(File.join(aggregatedir, "*")) if PluginPackager.check_dir_present aggregatedir
- client[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :iteration => @iteration}
+ client[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :revision => @revision}
client[:files].empty? ? nil : client
end