foreman_packages 1.0.10 → 1.1.0

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 (44) hide show
  1. data/app/assets/javascripts/application.js +14 -0
  2. data/app/assets/javascripts/jquery.fileupload.js +904 -0
  3. data/app/controllers/foreman_packages/syattachments_controller.rb +93 -0
  4. data/app/controllers/foreman_packages/sypackagemodels_controller.rb +90 -0
  5. data/app/controllers/foreman_packages/sypackages_controller.rb +16 -13
  6. data/app/models/foreman_packages/syattachment.rb +10 -0
  7. data/app/models/foreman_packages/sypackage.rb +69 -72
  8. data/app/models/foreman_packages/sypackagemodel.rb +83 -0
  9. data/app/uploaders/foreman_packages/avatar_uploader.rb +16 -0
  10. data/app/views/foreman_packages/syattachments/_form.html.erb +19 -0
  11. data/app/views/foreman_packages/syattachments/_syattachment.html.erb +3 -0
  12. data/app/views/foreman_packages/syattachments/_syattachment_td.html.erb +9 -0
  13. data/app/views/foreman_packages/syattachments/edit.html.erb +1 -0
  14. data/app/views/foreman_packages/syattachments/index.html.erb +22 -0
  15. data/app/views/foreman_packages/syattachments/new.html.erb +1 -0
  16. data/app/views/foreman_packages/syattachments/show.html.erb +30 -0
  17. data/app/views/foreman_packages/sypackagemodels/_form.html.erb +24 -0
  18. data/app/views/foreman_packages/sypackagemodels/_list.html.erb +41 -0
  19. data/app/views/foreman_packages/sypackagemodels/edit.html.erb +1 -0
  20. data/app/views/foreman_packages/sypackagemodels/index.html.erb +5 -0
  21. data/app/views/foreman_packages/sypackagemodels/new.html.erb +1 -0
  22. data/app/views/foreman_packages/sypackagemodels/show.html.erb +118 -0
  23. data/app/views/foreman_packages/sypackages/_form.html.erb +82 -87
  24. data/app/views/foreman_packages/sypackages/_sypackage.html.erb +3 -0
  25. data/app/views/foreman_packages/sypackages/_sypackage_td.html.erb +19 -0
  26. data/app/views/foreman_packages/sypackages/create.js.erb +2 -0
  27. data/app/views/foreman_packages/sypackages/destroy.js.erb +1 -0
  28. data/app/views/foreman_packages/sypackages/edit.js.erb +3 -0
  29. data/app/views/foreman_packages/sypackages/new.js.erb +3 -0
  30. data/app/views/foreman_packages/sypackages/show.html.erb +1 -1
  31. data/app/views/foreman_packages/sypackages/update.js.erb +3 -0
  32. data/config/routes.rb +3 -9
  33. data/db/migrate/20150921011935_create_sypackages.rb +1 -0
  34. data/db/migrate/20150921023709_add_filename_to_sypackage.rb +1 -1
  35. data/db/migrate/20150921050518_add_file_cache_to_sypackage.rb +1 -1
  36. data/db/migrate/20150921050519_create_sypackagemodels.rb +11 -0
  37. data/db/migrate/20150921050522_change_filename_to_sypackage.rb +8 -0
  38. data/db/migrate/20150921050530_create_syattachments.rb +11 -0
  39. data/lib/foreman_packages/engine.rb +14 -18
  40. data/lib/foreman_packages/version.rb +1 -1
  41. metadata +32 -5
  42. data/app/uploaders/attachment_uploader.rb +0 -15
  43. data/app/uploaders/avatar_uploader.rb +0 -57
  44. data/app/views/foreman_packages/sypackages/upload.html.erb +0 -4
@@ -0,0 +1,93 @@
1
+ class ForemanPackages::SyattachmentsController < ApplicationController
2
+ # GET /syattachments
3
+ # GET /syattachments.json
4
+ def index
5
+ @syattachments = ForemanPackages::Syattachment.all
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.json { render json: @syattachments }
10
+ end
11
+ end
12
+
13
+ # GET /syattachments/1
14
+ # GET /syattachments/1.json
15
+ def show
16
+ @syattachment = ForemanPackages::Syattachment.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.json { render json: @syattachment }
21
+ end
22
+ end
23
+
24
+ # GET /syattachments/new
25
+ # GET /syattachments/new.json
26
+ def new
27
+ #packagemodel = ForemanPackages::Sypackagemodel.find(params[:sypackagemodel_id])
28
+ #@syattachment = attachmentmodel.syattachments.new
29
+ #
30
+ packagemodel = ForemanPackages::Sypackagemodel.find(params[:sypackagemodel_id])
31
+ @syattachment = packagemodel.syattachments.new
32
+ respond_to do |format|
33
+ format.html # new.html.erb
34
+ format.json { render json: @syattachment }
35
+ end
36
+ end
37
+
38
+ # GET /syattachments/1/edit
39
+ def edit
40
+ @syattachment = ForemanPackages::Syattachment.find(params[:id])
41
+ end
42
+
43
+ # POST /syattachments
44
+ # POST /syattachments.json
45
+ def create
46
+ @syattachment = ForemanPackages::Syattachment.new(params[:foreman_packages_syattachment])
47
+
48
+ if params[:foreman_packages_syattachment][:link].present?
49
+ @syattachment.filename = params[:foreman_packages_syattachment][:link].original_filename
50
+ end
51
+ respond_to do |format|
52
+ if @syattachment.save
53
+ #format.html { redirect_to @syattachment, notice: 'Sypackagemodel was successfully created.' }
54
+ #format.json { render json: @syattachment, status: :created, location: @syattachment }
55
+ format.html { redirect_to @syattachment.foreman_packages_sypackagemodel }
56
+ format.json { head :no_content }
57
+ else
58
+ format.html { render action: "new" }
59
+ format.json { render json: @syattachment.errors, status: :unprocessable_entity }
60
+ end
61
+ end
62
+ end
63
+
64
+ # PUT /syattachments/1
65
+ # PUT /syattachments/1.json
66
+ def update
67
+ @syattachment = ForemanPackages::Syattachment.find(params[:id])
68
+ if params[:foreman_packages_syattachment][:link].present?
69
+ @syattachment.filename = params[:foreman_packages_syattachment][:link].original_filename
70
+ end
71
+ respond_to do |format|
72
+ if @syattachment.update_attributes(params[:foreman_packages_syattachment])
73
+ format.html { redirect_to @syattachment, notice: 'syattachment was successfully updated.' }
74
+ format.json { head :no_content }
75
+ else
76
+ format.html { render action: "edit" }
77
+ format.json { render json: @syattachment.errors, status: :unprocessable_entity }
78
+ end
79
+ end
80
+ end
81
+
82
+ # DELETE /syattachments/1
83
+ # DELETE /syattachments/1.json
84
+ def destroy
85
+ @syattachment = ForemanPackages::Syattachment.find(params[:id])
86
+ @syattachment.destroy
87
+
88
+ respond_to do |format|
89
+ format.html { redirect_to foreman_packages_syattachments_url }
90
+ format.json { head :no_content }
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,90 @@
1
+ class ForemanPackages::SypackagemodelsController < ApplicationController
2
+ # GET /sypackagemodels
3
+ # GET /sypackagemodels.json
4
+ def index
5
+ @sypackagemodels = ForemanPackages::Sypackagemodel.all.paginate(:page => params[:page])
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.json { render json: @sypackagemodels }
10
+ end
11
+ end
12
+
13
+ # GET /sypackagemodels/1
14
+ # GET /sypackagemodels/1.json
15
+ def show
16
+ @sypackagemodel = ForemanPackages::Sypackagemodel.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.json { render json: @sypackagemodel }
21
+ end
22
+ end
23
+
24
+ # GET /sypackagemodels/new
25
+ # GET /sypackagemodels/new.json
26
+ def new
27
+ @sypackagemodel = ForemanPackages::Sypackagemodel.new
28
+ respond_to do |format|
29
+ format.html # new.html.erb
30
+ format.json { render json: @sypackagemodel }
31
+ end
32
+ end
33
+
34
+ # GET /sypackagemodels/1/edit
35
+ def edit
36
+ @sypackagemodel = ForemanPackages::Sypackagemodel.find(params[:id])
37
+ # sygroup_time = @sypackagemodel.sygroups.size
38
+ # if sygroup_time == 0
39
+ # 5.times { @sypackagemodel.sygroups.build}
40
+ # else
41
+ # 5.times { @sypackagemodel.sygroups.build}
42
+ # end
43
+ end
44
+
45
+ # POST /sypackagemodels
46
+ # POST /sypackagemodels.json
47
+ def create
48
+ @sypackagemodel = ForemanPackages::Sypackagemodel.new(params[:foreman_packages_sypackagemodel])
49
+
50
+ respond_to do |format|
51
+ if @sypackagemodel.save
52
+ format.html { redirect_to @sypackagemodel, notice: 'Sypackagemodel was successfully created.' }
53
+ format.json { render json: @sypackagemodel, status: :created, location: @sypackagemodel }
54
+ else
55
+ format.html { render action: "new" }
56
+ format.json { render json: @sypackagemodel.errors, status: :unprocessable_entity }
57
+ end
58
+ end
59
+ end
60
+
61
+ # PUT /sypackagemodels/1
62
+ # PUT /sypackagemodels/1.json
63
+ def update
64
+ @sypackagemodel = ForemanPackages::Sypackagemodel.find(params[:id])
65
+
66
+ respond_to do |format|
67
+ if @sypackagemodel.update_attributes(params[:foreman_packages_sypackagemodel])
68
+ format.html { redirect_to @sypackagemodel, notice: 'Sypackagemodel was successfully updated.' }
69
+ format.json { head :no_content }
70
+ else
71
+ format.html { render action: "edit" }
72
+ format.json { render json: @sypackagemodel.errors, status: :unprocessable_entity }
73
+ end
74
+ end
75
+ end
76
+
77
+ # DELETE /sypackagemodels/1
78
+ # DELETE /sypackagemodels/1.json
79
+ def destroy
80
+ @sypackagemodel = ForemanPackages::Sypackagemodel.find(params[:id])
81
+ @sypackagemodel.destroy
82
+ @sypackagemodel.destory_dir
83
+ respond_to do |format|
84
+ format.html { redirect_to foreman_packages_sypackagemodels_url }
85
+ format.json { head :no_content }
86
+ end
87
+
88
+
89
+ end
90
+ end
@@ -24,11 +24,10 @@ class ForemanPackages::SypackagesController < ApplicationController
24
24
  # GET /sypackages/new
25
25
  # GET /sypackages/new.json
26
26
  def new
27
- @sypackage = ForemanPackages::Sypackage.new
28
-
27
+ packagemodel = ForemanPackages::Sypackagemodel.find(params[:sypackagemodel_id])
28
+ @sypackage = packagemodel.sypackages.new
29
29
  respond_to do |format|
30
- format.html # new.html.erb
31
- format.json { render json: @sypackage }
30
+ format.js
32
31
  end
33
32
  end
34
33
 
@@ -41,13 +40,17 @@ class ForemanPackages::SypackagesController < ApplicationController
41
40
  # POST /sypackages.json
42
41
  def create
43
42
  @sypackage = ForemanPackages::Sypackage.new(params[:foreman_packages_sypackage])
44
- if params[:foreman_packages_sypackage][:filename].present?
45
- @sypackage.filename = params[:foreman_packages_sypackage][:filename].original_filename
43
+ puts ">>>>>>>>>>>>>>>>>"
44
+ puts @sypackage
45
+ puts "<<<<<<<<<<<<<<<<<<"
46
+ puts params[:foreman_packages_sypackage]
47
+ puts "++++++++++++++++++++++++++++++++++++"
48
+ if params[:foreman_packages_sypackage][:avatar].present?
49
+ @sypackage.avatar = params[:foreman_packages_sypackage][:avatar].original_filename
46
50
  end
47
51
  respond_to do |format|
48
52
  if @sypackage.save
49
- format.html { redirect_to @sypackage, notice: 'ForemanPackages::Sypackage was successfully created.' }
50
- format.json { render json: @sypackage, status: :created, location: @sypackage }
53
+ format.js
51
54
  else
52
55
  format.html { render action: "new" }
53
56
  format.json { render json: @sypackage.errors, status: :unprocessable_entity }
@@ -59,11 +62,12 @@ class ForemanPackages::SypackagesController < ApplicationController
59
62
  # PUT /sypackages/1.json
60
63
  def update
61
64
  @sypackage = ForemanPackages::Sypackage.find(params[:id])
62
- @sypackage.filename = params[:foreman_packages_sypackage][:filename].original_filename
65
+ if params[:foreman_packages_sypackage][:avatar].present?
66
+ @sypackage.avatar = params[:foreman_packages_sypackage][:avatar].original_filename
67
+ end
63
68
  respond_to do |format|
64
69
  if @sypackage.update_attributes(params[:foreman_packages_sypackage])
65
- format.html { redirect_to @sypackage, notice: 'Sypackage was successfully updated.' }
66
- format.json { head :no_content }
70
+ format.js
67
71
  else
68
72
  format.html { render action: "edit" }
69
73
  format.json { render json: @sypackage.errors, status: :unprocessable_entity }
@@ -78,8 +82,7 @@ class ForemanPackages::SypackagesController < ApplicationController
78
82
  @sypackage.destroy
79
83
 
80
84
  respond_to do |format|
81
- format.html { redirect_to foreman_packages_sypackages_url }
82
- format.json { head :no_content }
85
+ format.js
83
86
  end
84
87
  end
85
88
  end
@@ -0,0 +1,10 @@
1
+ class ForemanPackages::Syattachment < ActiveRecord::Base
2
+ require 'carrierwave'
3
+
4
+ attr_accessible :link, :filename, :sypackagemodel_id, :link_cache
5
+ belongs_to :foreman_packages_sypackagemodel, class_name: "ForemanPackages::Sypackagemodel",foreign_key: "sypackagemodel_id"
6
+
7
+ mount_uploader :link, ForemanPackages::AvatarUploader
8
+ attr_accessor :uploader_secure_token
9
+
10
+ end
@@ -1,90 +1,87 @@
1
1
  class ForemanPackages::Sypackage < ActiveRecord::Base
2
2
  require "fileutils"
3
- attr_accessible :name, :ensure, :file_path, :file_ensure, :file_source, :file_mode, :file_onwer, :file_group, :file_notify, :file_require, :service_name, :service_ensure, :service_enable, :service_hasstatus, :service_hasrestart, :filename, :file_cache
3
+ require 'carrierwave'
4
4
 
5
- mount_uploader :filename, ForemanPackages::AttachmentUploader
6
- after_create :create_dir
7
- after_update :create_dir
8
-
9
- #validates :filename, :name , :ensure, :presence => true
10
- validate :name, :filename, :presence => true
11
- validates :name, :uniqueness => true
12
- #after_destory :destory_dir
13
- def create_dir
14
- #目前用 "/home/stdtnt/app/"代替 "/etc/puppet/environments/production/modules/packages"
15
- #该处需要注意权限问题,当前用户是否具有该目录的操作权限
16
- root_dir_name = "/etc/puppet/environments/production/modules/packages/"
17
- #self.destory_dir #默认删除该目录,然后重新创建
18
- dir_exist_status = File.exist?(root_dir_name) #判断该目录是否存在
19
- if !dir_exist_status
20
- #创建目录结构
21
- Dir::mkdir(root_dir_name)
22
- if !File.exist?(root_dir_name + "files")
23
- Dir::mkdir(root_dir_name + "files")
24
- end
5
+ attr_accessible :name, :ensure, :file_path, :file_ensure, :file_source, :file_mode, :file_onwer, :file_group, :file_notify, :file_require, :service_name, :service_ensure, :service_enable, :service_hasstatus, :service_hasrestart, :avatar, :sypackagemodel_id, :avatar_cache
6
+ belongs_to :foreman_packages_sypackagemodel, class_name: "ForemanPackages::Sypackagemodel",foreign_key: "sypackagemodel_id"
25
7
 
26
- if !File.exist?(root_dir_name + "manifests")
27
- Dir::mkdir(root_dir_name + "manifests")
28
- end
29
- end
30
-
31
- if File.exist?(root_dir_name + "/files")
32
- if File.exist?(root_dir_name + "/files/welcome.conf")
33
- #生成files下welcome.conf文件
34
- files_welcome_File = File.new(root_dir_name + "/files/welcome.conf", "w+")
35
- files_welcome_File.close
36
- end
37
- end
38
-
39
- if File.exist?(root_dir_name + "/manifests")
40
- if File.exist?(root_dir_name + "/manifests/init.pp")
41
- FileUtils.rm_r (root_dir_name + "/manifests/init.pp")
42
- end
43
- #生成manifests下init.pp文件
44
- main_init_File = File.new(root_dir_name +"/manifests/init.pp", "w+")
45
- if main_init_File
46
- main_init_File.syswrite(self.create_content)
47
- else
48
- puts "Unable to open file!"
49
- end
50
- main_init_File.close
51
- end
52
-
53
- #self.change_dir
54
-
55
- end
8
+ mount_uploader :avatar, ForemanPackages::AvatarUploader
9
+ attr_accessor :uploader_secure_token
56
10
 
11
+ #validates :filename, :name , :ensure, :presence => true
12
+ # validate :name, :filename, :presence => true
13
+ # validates :name, :uniqueness => true
57
14
 
58
- def destory_dir
59
- #目前用 "/home/stdtnt/app/"代替 "/etc/puppet/environments/production/modules/users"
60
- #该处需要注意权限问题,当前用户是否具有该目录的操作权限
61
- root_dir_name = "/etc/puppet/environments/production/modules/packages"
62
- #判断该目录是否存在
63
- dir_exist_status = File.exist?(root_dir_name )
64
- if dir_exist_status
65
- #使用fileUtils.rm_r 删除该文件夹及其以下所有内容
66
- if ForemanPackages::Sypackage.all.size == 0
67
- FileUtils.rm_r root_dir_name
68
- end
69
- end
15
+ after_create :create_dir
16
+ after_update :create_dir
17
+ after_destroy :create_dir
18
+ def create_dir
19
+ #该处需要注意权限问题,当前用户是否具有该目录的操作权限
20
+ root_dir_name = "/etc/puppet/environments/production/modules/" + self.foreman_packages_sypackagemodel.name
21
+
22
+ dir_exist_status = File.exist?(root_dir_name )
23
+ if dir_exist_status
24
+ #FileUtils.rm_r root_dir_name
25
+ end #默认删除该目录,然后重新创建,主要目的防止文件或文件夹被误删除
26
+
27
+ #创建目录结构
28
+ Dir::mkdir(root_dir_name)
29
+ if !File.exist?(root_dir_name + "/files")
30
+ Dir::mkdir(root_dir_name + "/files")
31
+ end
32
+
33
+ if !File.exist?(root_dir_name + "/manifests")
34
+ Dir::mkdir(root_dir_name + "/manifests")
35
+ end
36
+
37
+ if File.exist?(root_dir_name + "/files")
38
+ if File.exist?(root_dir_name + "/files/welcome.conf")
39
+ #生成files下welcome.conf文件
40
+ files_welcome_File = File.new(root_dir_name + "/files/welcome.conf", "w+")
41
+ files_welcome_File.close
42
+ end
43
+ end
44
+
45
+ if File.exist?(root_dir_name + "/manifests")
46
+ if File.exist?(root_dir_name + "/manifests/init.pp")
47
+ FileUtils.rm_r (root_dir_name + "/manifests/init.pp")
48
+ end
49
+ #生成manifests下init.pp文件
50
+ main_init_File = File.new(root_dir_name +"/manifests/init.pp", "w+")
51
+ if main_init_File
52
+ main_init_File.syswrite(self.create_content)
53
+ else
54
+ puts "Unable to open file!"
55
+ end
56
+ main_init_File.close
70
57
  end
58
+ end
59
+
60
+ def destory_dir
61
+ #该处需要注意权限问题,当前用户是否具有该目录的操作权限
62
+ root_dir_name = "/etc/puppet/environments/production/modules/" + self.foreman_packages_sypackagemodel.name
63
+ #判断该目录是否存在
64
+ dir_exist_status = File.exist?(root_dir_name )
65
+ if dir_exist_status
66
+ FileUtils.rm_r root_dir_name
67
+ end
68
+ end
71
69
 
72
70
  def create_content
73
71
  title_content = "class packages {"
74
- ForemanPackages::Sypackage.all.each do |package|
72
+ if self.foreman_packages_sypackagemodel.sypackages.size > 0
73
+ self.foreman_packages_sypackagemodel.sypackages.each do |package|
74
+ user_content = "\n" + "\s\s" + "package{'" + package.name + "':" + "\n\s\s\s\s" + "ensure => '" + package.ensure + "'," + "\n\s\s" +"}" + "\n"
75
75
 
76
- user_content = "\n" + "\s\s" + "package{'" + package.name + "':" + "\n\s\s\s\s" + "ensure => '" + package.ensure + "'," + "\n\s\s" +"}" + "\n"
76
+ file_content = "\s\s" + "file{'"+ package.file_path + "':" + "\n\s\s\s\s" + "ensure => '" + package.file_ensure + "'," + "\n\s\s\s\s" + "source => '" + package.file_source + "mode => '" + package.file_mode + "'," + "\n\s\s\s\s" + "onwer => '" + package.file_onwer + "group => '" + package.file_group + "'," + "\n\s\s\s\s" + "notify=> Service['" + package.file_notify + "']," + "\n\s\s\s\s" + "require=> Package['" + package.file_require + "']," + "\n\s\s" +"}" + "\n\s\s"
77
77
 
78
- file_content = "\s\s" + "file{'"+ package.file_path + "':" + "\n\s\s\s\s" + "ensure => '" + package.file_ensure + "'," + "\n\s\s\s\s" + "source => '" + package.file_source + "mode => '" + package.file_mode + "'," + "\n\s\s\s\s" + "onwer => '" + package.file_onwer + "group => '" + package.file_group + "'," + "\n\s\s\s\s" + "notify=> Service['" + package.file_notify + "']," + "\n\s\s\s\s" + "require=> Package['" + package.file_require + "']," + "\n\s\s" +"}" + "\n\s\s"
79
-
80
- service_content = "service{'"+ package.service_name + "':" + "\n\s\s\s\s" + "ensure => '" + package.service_ensure + "'," + "\n\s\s\s\s" + "enable => '" + package.service_enable + "hasstatus => '" + package.service_hasstatus + "'," + "\n\s\s\s\s" + "hasrestart => '" + package.service_hasrestart + "," + "\n\s\s" +"}" + "\n\s\s"
81
-
82
- title_content += user_content + file_content + service_content
83
- end
78
+ service_content = "service{'"+ package.service_name + "':" + "\n\s\s\s\s" + "ensure => '" + package.service_ensure + "'," + "\n\s\s\s\s" + "enable => '" + package.service_enable + "hasstatus => '" + package.service_hasstatus + "'," + "\n\s\s\s\s" + "hasrestart => '" + package.service_hasrestart + "," + "\n\s\s" +"}" + "\n\s\s"
84
79
 
80
+ title_content += user_content + file_content + service_content
81
+ end
82
+ end
85
83
 
86
84
  rs = title_content + "\n" + "}"
87
85
  return rs
88
86
  end
89
-
90
87
  end
@@ -0,0 +1,83 @@
1
+ class ForemanPackages::Sypackagemodel < ActiveRecord::Base
2
+ require "fileutils"
3
+ attr_accessible :name, :remark
4
+
5
+ has_many :sypackages, class_name: "ForemanPackages::Sypackage",foreign_key: "sypackagemodel_id", :dependent => :destroy
6
+ has_many :syattachments, class_name: "ForemanPackages::Syattachment",foreign_key: "sypackagemodel_id", :dependent => :destroy
7
+
8
+
9
+
10
+ after_create :create_dir
11
+ after_update :create_dir
12
+ after_destroy :destory_dir
13
+ def create_dir
14
+ #该处需要注意权限问题,当前用户是否具有该目录的操作权限
15
+ root_dir_name = "/etc/puppet/environments/production/modules/" + self.name
16
+
17
+ dir_exist_status = File.exist?(root_dir_name )
18
+ if dir_exist_status
19
+ #FileUtils.rm_r root_dir_name
20
+ end #默认删除该目录,然后重新创建,主要目的防止文件或文件夹被误删除
21
+
22
+ #创建目录结构
23
+ Dir::mkdir(root_dir_name)
24
+ if !File.exist?(root_dir_name + "/files")
25
+ Dir::mkdir(root_dir_name + "/files")
26
+ end
27
+
28
+ if !File.exist?(root_dir_name + "/manifests")
29
+ Dir::mkdir(root_dir_name + "/manifests")
30
+ end
31
+
32
+ if File.exist?(root_dir_name + "/files")
33
+ if File.exist?(root_dir_name + "/files/welcome.conf")
34
+ #生成files下welcome.conf文件
35
+ files_welcome_File = File.new(root_dir_name + "/files/welcome.conf", "w+")
36
+ files_welcome_File.close
37
+ end
38
+ end
39
+
40
+ if File.exist?(root_dir_name + "/manifests")
41
+ if File.exist?(root_dir_name + "/manifests/init.pp")
42
+ FileUtils.rm_r (root_dir_name + "/manifests/init.pp")
43
+ end
44
+ #生成manifests下init.pp文件
45
+ main_init_File = File.new(root_dir_name +"/manifests/init.pp", "w+")
46
+ if main_init_File
47
+ main_init_File.syswrite(self.create_content)
48
+ else
49
+ puts "Unable to open file!"
50
+ end
51
+ main_init_File.close
52
+ end
53
+ end
54
+
55
+ def destory_dir
56
+ #该处需要注意权限问题,当前用户是否具有该目录的操作权限
57
+ root_dir_name = "/etc/puppet/environments/production/modules/" + self.name
58
+ #判断该目录是否存在
59
+ dir_exist_status = File.exist?(root_dir_name )
60
+ if dir_exist_status
61
+ FileUtils.rm_r root_dir_name
62
+ end
63
+ end
64
+
65
+ def create_content
66
+ title_content = "class packages {"
67
+ if self.sypackages.size > 0
68
+ self.sypackages.each do |package|
69
+ user_content = "\n" + "\s\s" + "package{'" + package.name + "':" + "\n\s\s\s\s" + "ensure => '" + package.ensure + "'," + "\n\s\s" +"}" + "\n"
70
+
71
+ file_content = "\s\s" + "file{'"+ package.file_path + "':" + "\n\s\s\s\s" + "ensure => '" + package.file_ensure + "'," + "\n\s\s\s\s" + "source => '" + package.file_source + "mode => '" + package.file_mode + "'," + "\n\s\s\s\s" + "onwer => '" + package.file_onwer + "group => '" + package.file_group + "'," + "\n\s\s\s\s" + "notify=> Service['" + package.file_notify + "']," + "\n\s\s\s\s" + "require=> Package['" + package.file_require + "']," + "\n\s\s" +"}" + "\n\s\s"
72
+
73
+ service_content = "service{'"+ package.service_name + "':" + "\n\s\s\s\s" + "ensure => '" + package.service_ensure + "'," + "\n\s\s\s\s" + "enable => '" + package.service_enable + "hasstatus => '" + package.service_hasstatus + "'," + "\n\s\s\s\s" + "hasrestart => '" + package.service_hasrestart + "," + "\n\s\s" +"}" + "\n\s\s"
74
+
75
+ title_content += user_content + file_content + service_content
76
+ end
77
+ end
78
+
79
+ rs = title_content + "\n" + "}"
80
+ return rs
81
+ end
82
+
83
+ end
@@ -0,0 +1,16 @@
1
+ # encoding: utf-8
2
+ require 'carrierwave'
3
+ class ForemanPackages::AvatarUploader < CarrierWave::Uploader::Base
4
+ #使用minimagick处理压缩图片,确保安装magickimage这个东东,ubuntu可以sudo apt-get install magickimage
5
+
6
+ # Choose what kind of storage to use for this uploader:
7
+ storage :file
8
+ # storage :fog
9
+
10
+ # Override the directory where uploaded files will be stored.
11
+ # This is a sensible default for uploaders that are meant to be mounted:
12
+ def store_dir #定义上传到哪个文件夹下
13
+ "/etc/puppet/environments/production/modules/#{model.foreman_packages_sypackagemodel.name}/files"
14
+ end
15
+
16
+ end
@@ -0,0 +1,19 @@
1
+ <%= javascript 'syattachments', 'syattachment_edit', 'syattachment_edit_interfaces', 'class_edit', 'compute_resource', 'lookup_keys'%>
2
+
3
+ <%= form_for @syattachment do |f| %>
4
+ <%= base_errors_for @syattachment %>
5
+ <div class="row clearfix">
6
+ <div class="row">
7
+ <div class="form-group col-md-6">
8
+ <%= f.file_field :link %>
9
+ <%= f.hidden_field :link_cache %>
10
+ </div>
11
+ </div>
12
+ </div>
13
+
14
+ <div class="actions">
15
+ <%= f.hidden_field :sypackagemodel_id, value: @syattachment.sypackagemodel_id %>
16
+ <%= f.submit "提交", class: "btn btn-success" %>
17
+ <%= link_to '返回', foreman_packages_syattachments_path, class: "btn btn-primary" %>
18
+ </div>
19
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <tr id="syattachment-<%= syattachment.id %>">
2
+ <%= render partial: "foreman_packages/syattachments/syattachment_td", locals: { syattachment: syattachment } %>
3
+ </tr>
@@ -0,0 +1,9 @@
1
+ <td><%= syattachment.filename %></td>
2
+ <td><%= syattachment.link %></td>
3
+ <td><%= syattachment.created_at.strftime "%Y-%m-%m" %></td>
4
+ <td>
5
+ <%= link_to '查看', syattachment %>
6
+ <%= link_to '编辑', edit_foreman_packages_syattachment_path(syattachment), class: "btn btn-xs btn-warning" %>
7
+ <%= link_to '删除', syattachment, method: :delete, data: { confirm: '确定删除?' }, class: "btn btn-xs btn-danger" %>
8
+
9
+ </td>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,22 @@
1
+ <h1 class="clearfix">
2
+ <span class="pull-left">
3
+ 图档列表
4
+ </span>
5
+ </h1>
6
+
7
+ <table class="table table-striped table-hover attachments">
8
+ <thead>
9
+ <tr>
10
+ <th>名称</th>
11
+ <th>位置</th>
12
+ <th>创建于</th>
13
+ <th>操作</th>
14
+ </tr>
15
+ </thead>
16
+
17
+ <tbody>
18
+ <% @syattachments.each do |syattachment| %>
19
+ <%= render partial: 'foreman_packages/syattachments/syattachment', locals: { syattachment: syattachment } %>
20
+ <% end %>
21
+ </tbody>
22
+ </table>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,30 @@
1
+
2
+ <div class="container">
3
+ <div class="row">
4
+ <h1 class="clearfix">
5
+ <%= link_to '返回模板', @syattachment.foreman_packages_sypackagemodel, class: "btn btn-primary pull-right mr1" %>
6
+ <%= link_to '列表', foreman_packages_syattachments_path, class: "btn btn-primary pull-right mr1" %>
7
+ <%= link_to '编辑', edit_foreman_packages_syattachment_path(@syattachment), class: "btn btn-warning pull-right mr1" %>
8
+ </h1>
9
+ </div>
10
+
11
+ <div class="row col-md-12">
12
+ <table class="table table-striped table-bordered">
13
+ <thead></thead>
14
+ <tbody>
15
+ <tr>
16
+ <td><strong>名称</strong></td>
17
+ <td><%= @syattachment.filename %></td>
18
+ </tr>
19
+ <tr>
20
+ <td><strong>保存位置</strong></td>
21
+ <td><%= @syattachment.link %></td>
22
+ </tr>
23
+ <tr>
24
+ <td><strong>创建于</strong></td>
25
+ <td><%= @syattachment.created_at.strftime "%Y-%m-%m" %></td>
26
+ </tr>
27
+ </tbody>
28
+ </table>
29
+ </div>
30
+ </div>
@@ -0,0 +1,24 @@
1
+ <%= javascript 'sypackagemodels', 'sypackagemodel_edit', 'sypackagemodel_edit_interfaces', 'class_edit', 'compute_resource', 'lookup_keys'%>
2
+
3
+ <%= form_for @sypackagemodel, :html => {:data => {:id => @sypackagemodel.try(:id), :submit => 'progress_bar'}} do |f| %>
4
+ <%= base_errors_for @sypackagemodel %>
5
+ <div class="row clearfix">
6
+ <div class="row">
7
+ <div class="form-group col-md-3">
8
+ <label>name</label>
9
+ <%= f.text_field :name, :size => "col-md-3", placeholder: "填写模块名", class: "form-control" %>
10
+ </div>
11
+
12
+ <div class="form-group col-md-3">
13
+ <label>remark</label>
14
+ <%= f.text_field :remark, :size => "col-md-3", placeholder: "remark", class: "form-control" %>
15
+ </div>
16
+ </div>
17
+ <div class="row">
18
+ <div class="actions">
19
+ <%= f.submit "提交", class: "btn btn-success" %>
20
+ <%= link_to '返回', foreman_packages_sypackagemodels_path, class: "btn btn-primary" %>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <% end %>