foreman_packages 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. data/LICENSE +619 -0
  2. data/README.md +38 -0
  3. data/Rakefile +47 -0
  4. data/app/controllers/foreman_packages/hosts_controller.rb +11 -0
  5. data/app/controllers/foreman_packages/packages_controller.rb +84 -0
  6. data/app/helpers/concerns/foreman_packages/hosts_helper_extensions.rb +13 -0
  7. data/app/helpers/packages_helper.rb +4 -0
  8. data/app/models/concerns/foreman_packages/host_extensions.rb +19 -0
  9. data/app/models/package.rb +81 -0
  10. data/app/overrides/dashboard/index/sample_override.html.erb.deface +4 -0
  11. data/app/uploaders/attachment_uploader.rb +16 -0
  12. data/app/uploaders/avatar_uploader.rb +57 -0
  13. data/app/views/dashboard/_foreman_packages_widget.html.erb +2 -0
  14. data/app/views/foreman_packages/hosts/hosts/new_action.html.erb +1 -0
  15. data/app/views/foreman_packages/hosts/new_action.html.erb +1 -0
  16. data/app/views/foreman_packages/layouts/layouts/new_layout.html.erb +0 -0
  17. data/app/views/foreman_packages/layouts/new_layout.html.erb +0 -0
  18. data/app/views/foreman_packages/packages/_form.html.erb +109 -0
  19. data/app/views/foreman_packages/packages/_list.html.erb +69 -0
  20. data/app/views/foreman_packages/packages/edit.html.erb +1 -0
  21. data/app/views/foreman_packages/packages/index.html.erb +5 -0
  22. data/app/views/foreman_packages/packages/new.html.erb +1 -0
  23. data/app/views/foreman_packages/packages/show.html.erb +77 -0
  24. data/app/views/foreman_packages/packages/upload.html.erb +4 -0
  25. data/config/routes.rb +9 -0
  26. data/db/migrate/20150921011935_create_foreman_packages_packages.rb +24 -0
  27. data/lib/foreman_packages/engine.rb +95 -0
  28. data/lib/foreman_packages/version.rb +3 -0
  29. data/lib/foreman_packages.rb +4 -0
  30. data/lib/tasks/foreman_packages_tasks.rake +49 -0
  31. data/locale/Makefile +62 -0
  32. data/locale/en/foreman_packages.po +19 -0
  33. data/locale/foreman_packages.pot +19 -0
  34. data/locale/gemspec.rb +2 -0
  35. data/test/factories/foreman_packages_factories.rb +5 -0
  36. data/test/test_plugin_helper.rb +6 -0
  37. data/test/unit/foreman_packages_test.rb +11 -0
  38. metadata +117 -0
@@ -0,0 +1,24 @@
1
+ class CreateForemanPackagespackages < ActiveRecord::Migration
2
+ def change
3
+ create_table :foreman_packages_packages do |t|
4
+ t.string :name
5
+ t.string :ensure
6
+ t.string :file_path
7
+ t.string :file_ensure
8
+ t.string :file_source
9
+ t.string :file_mode
10
+ t.string :file_onwer
11
+ t.string :file_group
12
+ t.string :file_notify
13
+ t.string :file_require
14
+ t.string :service_name
15
+ t.string :service_ensure
16
+ t.string :service_enable
17
+ t.string :service_hasstatus
18
+ t.string :service_hasrestart
19
+ t.string :filename
20
+ t.string :file_cache
21
+ t.timestamps
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,95 @@
1
+ require 'deface'
2
+
3
+ module ForemanPackages
4
+ class Engine < ::Rails::Engine
5
+ engine_name 'foreman_packages'
6
+
7
+ config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"]
8
+ config.autoload_paths += Dir["#{config.root}/app/helpers/concerns"]
9
+ config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
10
+ config.autoload_paths += Dir["#{config.root}/app/overrides"]
11
+
12
+ # Add any db migrations
13
+ initializer 'foreman_packages.load_app_instance_data' do |app|
14
+ app.config.paths['db/migrate'] += ForemanPackages::Engine.paths['db/migrate'].existent
15
+ end
16
+
17
+ initializer 'foreman_packages.register_plugin', after: :finisher_hook do |_app|
18
+ Foreman::Plugin.register :foreman_packages do
19
+ requires_foreman '>= 1.4'
20
+
21
+ # Add permissions
22
+ security_block :foreman_packages do
23
+ permission :view_foreman_packages, :'foreman_packages/packages' => [:index]
24
+ permission :view_foreman_packages, :'foreman_packages/packages' => [:show]
25
+ permission :view_foreman_packages, :'foreman_packages/packages' => [:new]
26
+ permission :view_foreman_packages, :'foreman_packages/packages' => [:edit]
27
+ permission :view_foreman_packages, :'foreman_packages/packages' => [:create]
28
+ permission :view_foreman_packages, :'foreman_packages/packages' => [:update]
29
+ permission :view_foreman_packages, :'foreman_packages/packages' => [:destroy]
30
+ end
31
+
32
+ # Add a new role called 'Discovery' if it doesn't exist
33
+ role 'ForemanPackages', [:view_foreman_packages]
34
+
35
+ # add menu entry
36
+ menu :top_menu, :template,
37
+ url_hash: { controller: :'foreman_packages/hosts', action: :new_action },
38
+ caption: 'ForemanPackages',
39
+ parent: :hosts_menu,
40
+ after: :hosts
41
+ sub_menu :top_menu, :forema_package_menu, :caption=> N_('PackageManage'), :after=> :forema_user_menu do
42
+ menu :top_menu, :level1, :caption=>N_('Package List'), :url_hash => { :controller => 'foreman_packages/packages', :action => :index }
43
+ menu :top_menu, :level1, :caption=>N_('New Package'), :url_hash => { :controller => 'foreman_packages/packages', :action => :new }
44
+ # menu :top_menu, :level2, :url_hash => {:controller=> :example, :action=>:index}
45
+ # menu :top_menu, :level3, :url_hash => {:controller=> :example, :action=>:index}
46
+ # sub_menu :top_menu, :inner_level, :caption=> N_('Inner level') do
47
+ # menu :top_menu, :level41, :url_hash => {:controller=> :example, :action=>:index}
48
+ # menu :top_menu, :level42, :url_hash => {:controller=> :example, :action=>:index}
49
+ # end
50
+ # menu :top_menu, :level5, :url_hash => {:controller=> :example, :action=>:index}
51
+ end
52
+ # add dashboard widget
53
+ widget 'foreman_packages_widget', name: N_('Foreman plugin template widget'), sizex: 4, sizey: 1
54
+ end
55
+ end
56
+
57
+ # Precompile any JS or CSS files under app/assets/
58
+ # If requiring files from each other, list them explicitly here to avoid precompiling the same
59
+ # content twice.
60
+ assets_to_precompile =
61
+ Dir.chdir(root) do
62
+ Dir['app/assets/javascripts/**/*', 'app/assets/stylesheets/**/*'].map do |f|
63
+ f.split(File::SEPARATOR, 4).last
64
+ end
65
+ end
66
+ initializer 'foreman_packages.assets.precompile' do |app|
67
+ app.config.assets.precompile += assets_to_precompile
68
+ end
69
+ initializer 'foreman_packages.configure_assets', group: :assets do
70
+ SETTINGS[:foreman_packages] = { assets: { precompile: assets_to_precompile } }
71
+ end
72
+
73
+ # Include concerns in this config.to_prepare block
74
+ config.to_prepare do
75
+ begin
76
+ Host::Managed.send(:include, ForemanPackages::HostExtensions)
77
+ HostsHelper.send(:include, ForemanPackages::HostsHelperExtensions)
78
+ rescue => e
79
+ Rails.logger.warn "ForemanPackages: skipping engine hook (#{e})"
80
+ end
81
+ end
82
+
83
+ rake_tasks do
84
+ Rake::Task['db:seed'].enhance do
85
+ ForemanPackages::Engine.load_seed
86
+ end
87
+ end
88
+
89
+ initializer 'foreman_packages.register_gettext', after: :load_config_initializers do |_app|
90
+ locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
91
+ locale_domain = 'foreman_packages'
92
+ Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,3 @@
1
+ module ForemanPackages
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,4 @@
1
+ require 'foreman_packages/engine'
2
+
3
+ module ForemanPackages
4
+ end
@@ -0,0 +1,49 @@
1
+ # Tasks
2
+ namespace :foreman_packages do
3
+ namespace :example do
4
+ desc 'Example Task'
5
+ task task: :environment do
6
+ # Task goes here
7
+ end
8
+ end
9
+ end
10
+
11
+ # Tests
12
+ namespace :test do
13
+ desc 'Test ForemanPackages'
14
+ Rake::TestTask.new(:foreman_packages) do |t|
15
+ test_dir = File.join(File.dirname(__FILE__), '../..', 'test')
16
+ t.libs << ['test', test_dir]
17
+ t.pattern = "#{test_dir}/**/*_test.rb"
18
+ t.verbose = true
19
+ end
20
+ end
21
+
22
+ namespace :foreman_packages do
23
+ task :rubocop do
24
+ begin
25
+ require 'rubocop/rake_task'
26
+ RuboCop::RakeTask.new(:rubocop_foreman_packages) do |task|
27
+ task.patterns = ["#{ForemanPackages::Engine.root}/app/**/*.rb",
28
+ "#{ForemanPackages::Engine.root}/lib/**/*.rb",
29
+ "#{ForemanPackages::Engine.root}/test/**/*.rb"]
30
+ end
31
+ rescue
32
+ puts 'Rubocop not loaded.'
33
+ end
34
+
35
+ Rake::Task['rubocop_foreman_packages'].invoke
36
+ end
37
+ end
38
+
39
+ Rake::Task[:test].enhance do
40
+ Rake::Task['test:foreman_packages'].invoke
41
+ end
42
+
43
+ load 'tasks/jenkins.rake'
44
+ if Rake::Task.task_defined?(:'jenkins:unit')
45
+ Rake::Task['jenkins:unit'].enhance do
46
+ Rake::Task['test:foreman_packages'].invoke
47
+ Rake::Task['foreman_packages:rubocop'].invoke
48
+ end
49
+ end
data/locale/Makefile ADDED
@@ -0,0 +1,62 @@
1
+ #
2
+ # Makefile for PO merging and MO generation. More info in the README.
3
+ #
4
+ # make all-mo (default) - generate MO files
5
+ # make check - check translations using translate-tool
6
+ # make tx-update - download and merge translations from Transifex
7
+ # make clean - clean everything
8
+ #
9
+ DOMAIN = foreman_packages
10
+ VERSION = $(shell ruby -e 'require "rubygems";spec = Gem::Specification::load(Dir.glob("../*.gemspec")[0]);puts spec.version')
11
+ POTFILE = $(DOMAIN).pot
12
+ MOFILE = $(DOMAIN).mo
13
+ POFILES = $(shell find . -name '*.po')
14
+ MOFILES = $(patsubst %.po,%.mo,$(POFILES))
15
+ POXFILES = $(patsubst %.po,%.pox,$(POFILES))
16
+
17
+ %.mo: %.po
18
+ mkdir -p $(shell dirname $@)/LC_MESSAGES
19
+ msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
20
+
21
+ # Generate MO files from PO files
22
+ all-mo: $(MOFILES)
23
+
24
+ # Check for malformed strings
25
+ %.pox: %.po
26
+ msgfmt -c $<
27
+ pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
28
+ -t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
29
+ cat $@
30
+ ! grep -q msgid $@
31
+
32
+ check: $(POXFILES)
33
+ msgfmt -c ${POTFILE}
34
+
35
+ # Merge PO files
36
+ update-po:
37
+ for f in $(shell find ./ -name "*.po") ; do \
38
+ msgmerge -N --backup=none -U $$f ${POTFILE} ; \
39
+ done
40
+
41
+ # Unify duplicate translations
42
+ uniq-po:
43
+ for f in $(shell find ./ -name "*.po") ; do \
44
+ msguniq $$f -o $$f ; \
45
+ done
46
+
47
+ tx-pull:
48
+ tx pull -f
49
+ for f in $(POFILES) ; do \
50
+ sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
51
+ done
52
+ -git commit -a -m "i18n - pulling from tx"
53
+
54
+ reset-po:
55
+ # merging po files is unnecessary when using transifex.com
56
+ git checkout -- ../locale/*/*po
57
+
58
+ tx-update: tx-pull reset-po $(MOFILES)
59
+ # amend mo files
60
+ git add ../locale/*/LC_MESSAGES
61
+ git commit -a --amend -m "i18n - pulling from tx"
62
+ -echo Changes commited!
@@ -0,0 +1,19 @@
1
+ # foreman_packages
2
+ #
3
+ # This file is distributed under the same license as foreman_packages.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: version 0.0.1\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
+ "PO-Revision-Date: 2014-08-20 08:54+0100\n"
12
+ "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
+ "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+
@@ -0,0 +1,19 @@
1
+ # foreman_packages
2
+ #
3
+ # This file is distributed under the same license as foreman_packages.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: version 0.0.1\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
+ "PO-Revision-Date: 2014-08-20 08:46+0100\n"
12
+ "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
+ "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
19
+
data/locale/gemspec.rb ADDED
@@ -0,0 +1,2 @@
1
+ # Matches foreman_packages.gemspec
2
+ _('TODO: Description of ForemanPackages.')
@@ -0,0 +1,5 @@
1
+ FactoryGirl.define do
2
+ factory :host do
3
+ name 'foreman_packages'
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ # This calls the main test_helper in Foreman-core
2
+ require 'test_helper'
3
+
4
+ # Add plugin to FactoryGirl's paths
5
+ FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
6
+ FactoryGirl.reload
@@ -0,0 +1,11 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class ForemanPackagesTest < ActiveSupport::TestCase
4
+ setup do
5
+ User.current = User.find_by_login 'admin'
6
+ end
7
+
8
+ test 'the truth' do
9
+ assert true
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreman_packages
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - jijianbo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-09-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rubocop
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rdoc
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: 创建packages,/etc/puppet/environments/production/modules/users
47
+ email:
48
+ - jijianbo@shinyinfo.com.cn
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - app/models/concerns/foreman_packages/host_extensions.rb
54
+ - app/models/package.rb
55
+ - app/overrides/dashboard/index/sample_override.html.erb.deface
56
+ - app/helpers/concerns/foreman_packages/hosts_helper_extensions.rb
57
+ - app/helpers/packages_helper.rb
58
+ - app/uploaders/attachment_uploader.rb
59
+ - app/uploaders/avatar_uploader.rb
60
+ - app/views/dashboard/_foreman_packages_widget.html.erb
61
+ - app/views/foreman_packages/layouts/layouts/new_layout.html.erb
62
+ - app/views/foreman_packages/layouts/new_layout.html.erb
63
+ - app/views/foreman_packages/packages/new.html.erb
64
+ - app/views/foreman_packages/packages/show.html.erb
65
+ - app/views/foreman_packages/packages/index.html.erb
66
+ - app/views/foreman_packages/packages/_form.html.erb
67
+ - app/views/foreman_packages/packages/edit.html.erb
68
+ - app/views/foreman_packages/packages/_list.html.erb
69
+ - app/views/foreman_packages/packages/upload.html.erb
70
+ - app/views/foreman_packages/hosts/new_action.html.erb
71
+ - app/views/foreman_packages/hosts/hosts/new_action.html.erb
72
+ - app/controllers/foreman_packages/hosts_controller.rb
73
+ - app/controllers/foreman_packages/packages_controller.rb
74
+ - config/routes.rb
75
+ - db/migrate/20150921011935_create_foreman_packages_packages.rb
76
+ - lib/foreman_packages/engine.rb
77
+ - lib/foreman_packages/version.rb
78
+ - lib/foreman_packages.rb
79
+ - lib/tasks/foreman_packages_tasks.rake
80
+ - locale/gemspec.rb
81
+ - locale/foreman_packages.pot
82
+ - locale/en/foreman_packages.po
83
+ - locale/Makefile
84
+ - LICENSE
85
+ - Rakefile
86
+ - README.md
87
+ - test/factories/foreman_packages_factories.rb
88
+ - test/unit/foreman_packages_test.rb
89
+ - test/test_plugin_helper.rb
90
+ homepage: https://github.com/stdtnt/foreman-users
91
+ licenses: []
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 1.8.23
111
+ signing_key:
112
+ specification_version: 3
113
+ summary: 创建packages,/etc/puppet/environments/production/modules/users
114
+ test_files:
115
+ - test/factories/foreman_packages_factories.rb
116
+ - test/unit/foreman_packages_test.rb
117
+ - test/test_plugin_helper.rb