foreman_packages 1.0.10 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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 %>