foreman_packages 1.0.3 → 1.0.4
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.
@@ -78,7 +78,7 @@ class ForemanPackages::SypackagesController < ApplicationController
|
|
78
78
|
@sypackage.destroy
|
79
79
|
|
80
80
|
respond_to do |format|
|
81
|
-
format.html { redirect_to
|
81
|
+
format.html { redirect_to foreman_packages_sypackages_url }
|
82
82
|
format.json { head :no_content }
|
83
83
|
end
|
84
84
|
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
class ForemanPackages::Sypackage < ActiveRecord::Base
|
2
2
|
require "fileutils"
|
3
|
-
|
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
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
mount_uploader :filename, ForemanPackages::AttachmentUploader
|
6
|
+
after_create :create_dir
|
7
|
+
after_update :create_dir
|
8
|
+
|
9
|
+
validates :filename, :name #, :contract_id, :presence => true
|
9
10
|
#after_destory :destory_dir
|
10
11
|
def create_dir
|
11
12
|
#目前用 "/home/stdtnt/app/"代替 "/etc/puppet/environments/production/modules/packages"
|
@@ -23,20 +24,30 @@ class ForemanPackages::Sypackage < ActiveRecord::Base
|
|
23
24
|
if !File.exist?(root_dir_name + "manifests")
|
24
25
|
Dir::mkdir(root_dir_name + "manifests")
|
25
26
|
end
|
26
|
-
|
27
|
-
#生成files下welcome.conf文件
|
28
|
-
files_welcome_File = File.new(root_dir_name + "files/welcome.conf", "w+")
|
29
|
-
files_welcome_File.close
|
30
|
-
#生成manifests下init.pp文件
|
31
|
-
main_init_File = File.new(root_dir_name +"manifests/init.pp", "w+")
|
32
|
-
if main_init_File
|
33
|
-
main_init_File.syswrite(self.create_content)
|
34
|
-
else
|
35
|
-
puts "Unable to open file!"
|
36
|
-
end
|
37
|
-
main_init_File.close
|
38
27
|
end
|
39
28
|
|
29
|
+
if File.exist?(root_dir_name + "/files")
|
30
|
+
if File.exist?(root_dir_name + "/files/welcome.conf")
|
31
|
+
#生成files下welcome.conf文件
|
32
|
+
files_welcome_File = File.new(root_dir_name + "/files/welcome.conf", "w+")
|
33
|
+
files_welcome_File.close
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
if File.exist?(root_dir_name + "/manifests")
|
38
|
+
if File.exist?(root_dir_name + "/manifests/init.pp")
|
39
|
+
FileUtils.rm_r (root_dir_name + "/manifests/init.pp")
|
40
|
+
end
|
41
|
+
#生成manifests下init.pp文件
|
42
|
+
main_init_File = File.new(root_dir_name +"/manifests/init.pp", "w+")
|
43
|
+
if main_init_File
|
44
|
+
main_init_File.syswrite(self.create_content)
|
45
|
+
else
|
46
|
+
puts "Unable to open file!"
|
47
|
+
end
|
48
|
+
main_init_File.close
|
49
|
+
end
|
50
|
+
|
40
51
|
#self.change_dir
|
41
52
|
|
42
53
|
end
|
@@ -50,25 +61,22 @@ class ForemanPackages::Sypackage < ActiveRecord::Base
|
|
50
61
|
dir_exist_status = File.exist?(root_dir_name )
|
51
62
|
if dir_exist_status
|
52
63
|
#使用fileUtils.rm_r 删除该文件夹及其以下所有内容
|
53
|
-
|
64
|
+
if ForemanPackages::Sypackage.all.size == 0
|
65
|
+
FileUtils.rm_r root_dir_name
|
66
|
+
end
|
54
67
|
end
|
55
68
|
end
|
56
69
|
|
57
|
-
|
58
|
-
|
59
|
-
|
70
|
+
def create_content
|
71
|
+
user_content = "class packages {" + "\n" + "\s\s" + "package{'" + self.name + "':" + "\n\s\s\s\s" + "ensure => '" + self.ensure + "'," + "\n\s\s" +"}" + "\n"
|
60
72
|
|
61
|
-
file_content = "\s\s" + "file{'"+ self.file_path + "':" + "\n\s\s\s\s" + "ensure => '" + self.file_ensure + "'," + "\n\s\s\s\s" + "source => '" + self.file_source + "mode => '" + self.file_mode + "'," + "\n\s\s\s\s" + "onwer => '" + self.file_onwer + "group => '" + self.file_group + "'," + "\n\s\s\s\s" + "notify=> Service['" + self.file_notify + "']," + "\n\s\s\s\s" + "require=> Package['" + self.file_require + "']," + "\n\s\s" +"}" + "\n\s\s"
|
62
73
|
|
74
|
+
file_content = "\s\s" + "file{'"+ self.file_path + "':" + "\n\s\s\s\s" + "ensure => '" + self.file_ensure + "'," + "\n\s\s\s\s" + "source => '" + self.file_source + "mode => '" + self.file_mode + "'," + "\n\s\s\s\s" + "onwer => '" + self.file_onwer + "group => '" + self.file_group + "'," + "\n\s\s\s\s" + "notify=> Service['" + self.file_notify + "']," + "\n\s\s\s\s" + "require=> Package['" + self.file_require + "']," + "\n\s\s" +"}" + "\n\s\s"
|
63
75
|
|
64
|
-
service_content = "\s\s" + "service{'"+ self.service_name + "':" + "\n\s\s\s\s" + "ensure => '" + self.service_ensure + "'," + "\n\s\s\s\s" + "enable => '" + self.service_enable + "hasstatus => '" + self.service_hasstatus + "'," + "\n\s\s\s\s" + "hasrestart => '" + self.service_hasrestart + "," + "\n\s\s" +"}" + "\n\s\s"
|
65
|
-
rs = user_content + file_content + service_content + "\n" + "}"
|
66
|
-
return rs
|
67
|
-
end
|
68
76
|
|
77
|
+
service_content = "\s\s" + "service{'"+ self.service_name + "':" + "\n\s\s\s\s" + "ensure => '" + self.service_ensure + "'," + "\n\s\s\s\s" + "enable => '" + self.service_enable + "hasstatus => '" + self.service_hasstatus + "'," + "\n\s\s\s\s" + "hasrestart => '" + self.service_hasrestart + "," + "\n\s\s" +"}" + "\n\s\s"
|
78
|
+
rs = user_content + file_content + service_content + "\n" + "}"
|
79
|
+
return rs
|
80
|
+
end
|
69
81
|
|
70
|
-
def change_dir
|
71
|
-
upload_dir = "/home/stdtnt/workspaces/foreman/public/uploads/sypackage/filename/" + self.id.to_s
|
72
|
-
root_file_dir_name = "/home/stdtnt/app/packages/files/"
|
73
|
-
end
|
74
82
|
end
|