foreman_packages 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
@@ -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
|