kanamei-keystone 0.0.17 → 0.0.18
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/keystone.rb +1 -1
- data/lib/keystone/base.rb +27 -4
- data/lib/keystone/batch/base.rb +1 -2
- data/lib/keystone/core_ext/array.rb +1 -0
- data/lib/keystone/core_ext/dir.rb +4 -0
- data/lib/keystone/mail.rb +7 -5
- data/lib/keystone/mail/send.rb +70 -63
- data/lib/keystone/os/osx.rb +12 -0
- data/lib/keystone/os/unix.rb +12 -3
- data/lib/keystone/string_util.rb +1 -1
- metadata +2 -2
data/lib/keystone.rb
CHANGED
data/lib/keystone/base.rb
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
module Keystone
|
2
|
+
|
3
|
+
#
|
4
|
+
# ログレベルに関してのローカルルール(ログ確認に関して)
|
5
|
+
# debug 対応不要
|
6
|
+
# info 対応不要
|
7
|
+
# warn 複数個で営業時間内対応
|
8
|
+
# notice 1つで営業時間内対応
|
9
|
+
# error 1つで営業時間内対応
|
10
|
+
# alert 複数個で即時対応
|
11
|
+
# critical 1つで即時対応
|
12
|
+
#
|
2
13
|
module Base
|
3
14
|
def log(log_type,message, is_base_info = true)
|
4
15
|
if is_base_info
|
@@ -8,10 +19,6 @@ module Keystone
|
|
8
19
|
end
|
9
20
|
end
|
10
21
|
|
11
|
-
def info(message)
|
12
|
-
log(:INFO,message)
|
13
|
-
end
|
14
|
-
|
15
22
|
def error(message)
|
16
23
|
if message.is_a? Exception
|
17
24
|
log(:ERROR,"#{message.message}")
|
@@ -23,10 +30,26 @@ module Keystone
|
|
23
30
|
end
|
24
31
|
end
|
25
32
|
|
33
|
+
def info(message)
|
34
|
+
log(:INFO,message)
|
35
|
+
end
|
36
|
+
|
26
37
|
def warn(message)
|
27
38
|
log(:WARN,message)
|
28
39
|
end
|
29
40
|
|
41
|
+
def notice(message)
|
42
|
+
log(:NOTICE,message)
|
43
|
+
end
|
44
|
+
|
45
|
+
def alert(message)
|
46
|
+
log(:ALERT,message)
|
47
|
+
end
|
48
|
+
|
49
|
+
def critical(message)
|
50
|
+
log(:CRIT,message)
|
51
|
+
end
|
52
|
+
|
30
53
|
def debug(message)
|
31
54
|
if $DEBUG
|
32
55
|
log(:DEBUG,message)
|
data/lib/keystone/batch/base.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
require 'digest/md5'
|
3
2
|
require "optparse"
|
4
3
|
|
@@ -197,7 +196,7 @@ module Keystone::Batch
|
|
197
196
|
===== environment =====
|
198
197
|
#{host.dump}
|
199
198
|
BODY
|
200
|
-
Keystone::Mail::Send.send(mail_from,mail_to,title,body,smtp_addr
|
199
|
+
Keystone::Mail::Send.send(mail_from,mail_to,title,body,{:smtp_addr=>smtp_addr,:smtp_port=>smtp_port})
|
201
200
|
else
|
202
201
|
warn "ERROR_MAIL_TO not defined.if you want error mail automatically,set this value."
|
203
202
|
end
|
data/lib/keystone/mail.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
module Keystone
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
module Keystone::Mail
|
2
|
+
autoload :Message, 'keystone/mail/message'
|
3
|
+
autoload :MessageIso2022jp, 'keystone/mail/message_iso2022jp'
|
4
|
+
autoload :MessageSjis, 'keystone/mail/message_sjis'
|
5
|
+
autoload :Receive, 'keystone/mail/receive'
|
6
|
+
autoload :MessageFactory, 'keystone/mail/message_factory'
|
7
|
+
autoload :Send, 'keystone/mail/send'
|
6
8
|
end
|
data/lib/keystone/mail/send.rb
CHANGED
@@ -1,76 +1,83 @@
|
|
1
|
-
#
|
2
|
-
# 普通なことをしたいならTMailを使いましょう
|
3
|
-
#
|
4
|
-
|
5
1
|
require 'net/smtp'
|
6
|
-
|
2
|
+
|
3
|
+
if __FILE__ ==$0
|
4
|
+
$: << '../..'
|
5
|
+
require 'keystone'
|
6
|
+
end
|
7
7
|
|
8
8
|
module Keystone
|
9
9
|
module Mail
|
10
10
|
class Send
|
11
|
-
|
12
|
-
@smtp_addr,@smtp_port=smtp_addr,smtp_port
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.send(from,to,title,body,smtp_addr="127.0.0.1",smtp_port=25)
|
16
|
-
from_addr,from_addr_4_header = create_addr_and_header(from)
|
17
|
-
title.gsub!(/(\r|\n)/,"")
|
18
|
-
|
19
|
-
subject_header = ""
|
20
|
-
title.split(//).split_by(10).each do |subject|
|
21
|
-
st = subject.join('')
|
22
|
-
st = Kconv.tojis(st)
|
23
|
-
st = st.split(//,1).pack('m'); st = st.chomp
|
24
|
-
subject_header += " =?ISO-2022-JP?B?#{st}?=\n"
|
25
|
-
end
|
26
|
-
|
27
|
-
if to.class.to_s == 'Array'
|
28
|
-
tomany = to.join(',')
|
29
|
-
else
|
30
|
-
tomany = to.to_s;
|
31
|
-
end
|
11
|
+
attr_accessor :message, :smtp_addr, :smtp_port, :retry_cnt
|
32
12
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
13
|
+
#
|
14
|
+
# 普通なことをしたいならTMailを使いましょう
|
15
|
+
# class Send
|
16
|
+
def initialize(message=nil,opt={})
|
17
|
+
@smtp_addr, @smtp_port, @retry_cnt = "127.0.0.1", 25, 0
|
18
|
+
@message = message
|
19
|
+
@message = Keystone::Mail::MessageFactory.create(opt) if @message == nil
|
20
|
+
debug "@message=#{@message}"
|
21
|
+
set_option(opt)
|
22
|
+
end
|
40
23
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
24
|
+
#
|
25
|
+
# from could be String or Array
|
26
|
+
# opt
|
27
|
+
# :smtp_addr
|
28
|
+
# :smtp_port
|
29
|
+
# :retry
|
30
|
+
# :mail_from_text
|
31
|
+
# :encoding
|
32
|
+
#
|
33
|
+
def self.send(from, to, subject, body, opt={})
|
34
|
+
queue = self.new(nil,opt)
|
35
|
+
queue.message.mail_to = to
|
36
|
+
queue.message.mail_from = from
|
37
|
+
queue.message.subject = subject
|
38
|
+
queue.message.body = body
|
39
|
+
queue.send
|
47
40
|
end
|
48
41
|
|
49
|
-
def send
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
addr_4_header = addr_data[0].dup
|
65
|
-
addr_4_header = Kconv.tojis(addr_4_header)
|
66
|
-
addr_4_header = addr_4_header.split(//,1).pack('m'); addr_4_header = addr_4_header.chomp
|
67
|
-
addr_4_header = "=?ISO-2022-JP?B?#{addr_4_header}?=<#{addr}>"
|
68
|
-
else
|
69
|
-
# TODO exception
|
70
|
-
raise 'addr_data must be String or Array'
|
42
|
+
def send
|
43
|
+
src = @message.to_src
|
44
|
+
debug src
|
45
|
+
try_cnt = 0
|
46
|
+
begin
|
47
|
+
m = Net::SMTPSession.new(@smtp_addr, @smtp_port)
|
48
|
+
m.start()
|
49
|
+
m.sendmail(src ,@message.mail_from ,@message.mail_to)
|
50
|
+
m.finish
|
51
|
+
rescue => e
|
52
|
+
debug "try_cnt:#{try_cnt}"
|
53
|
+
try_cnt += 1
|
54
|
+
sleep 1
|
55
|
+
retry if @retry_cnt >= try_cnt
|
56
|
+
raise e
|
71
57
|
end
|
72
|
-
|
58
|
+
end
|
59
|
+
|
60
|
+
def set_option(opt)
|
61
|
+
@smtp_addr = opt[:smtp_addr] if opt.key?(:smtp_addr)
|
62
|
+
@smtp_port = opt[:smtp_port] if opt.key?(:smtp_port)
|
63
|
+
@retry_cnt = Integer(opt[:retry_cnt]) if opt.key?(:retry_cnt)
|
73
64
|
end
|
74
65
|
end
|
75
66
|
end
|
76
|
-
end
|
67
|
+
end
|
68
|
+
|
69
|
+
if __FILE__ ==$0
|
70
|
+
require 'rubygems'
|
71
|
+
require 'pit'
|
72
|
+
|
73
|
+
config = Pit.get("keystone_test")
|
74
|
+
|
75
|
+
Keystone::Mail::Send.send(
|
76
|
+
config["mailfrom01"],
|
77
|
+
config["mailto01"],
|
78
|
+
"件名かんさいーーーーでんきほーーーあんky−−−かいいい−−かいいい−−かいいいいいいいい終わり",
|
79
|
+
"body日本語",
|
80
|
+
{:mail_from_text=>"メール送信者名ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー終わり",:retry_cnt=>3,:encoding=>:sjis}
|
81
|
+
)
|
82
|
+
end
|
83
|
+
|
data/lib/keystone/os/osx.rb
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
module Keystone
|
2
2
|
module Os
|
3
3
|
class Osx < Darwin
|
4
|
+
def ip_address
|
5
|
+
ifconfig = `/sbin/ifconfig`
|
6
|
+
ips = []
|
7
|
+
|
8
|
+
# TODO mac
|
9
|
+
ifconfig.gsub(/inet (\d+\.\d+\.\d+\.\d+) netmask/){|ip|
|
10
|
+
if $1 != '127.0.0.1'
|
11
|
+
ips << $1
|
12
|
+
end
|
13
|
+
}
|
14
|
+
return ips
|
15
|
+
end
|
4
16
|
end
|
5
17
|
end
|
6
18
|
end
|
data/lib/keystone/os/unix.rb
CHANGED
@@ -14,19 +14,28 @@ module Keystone
|
|
14
14
|
return ips
|
15
15
|
end
|
16
16
|
|
17
|
+
def bin_or_usrbin(cmd,option="")
|
18
|
+
cmd_option = "#{cmd} #{option}"
|
19
|
+
begin;return `/bin/#{cmd_option}` if File.exists?("/bin/#{cmd}");rescue;end
|
20
|
+
begin;return `/usr/bin/#{cmd_option}` if File.exists?("/usr/bin/#{cmd}");rescue;end
|
21
|
+
begin;return `/sbin/#{cmd_option}` if File.exists?("/sbin/#{cmd}");rescue;end
|
22
|
+
begin;return `/usr/sbin/#{cmd_option}`.chomp;rescue;end
|
23
|
+
end
|
24
|
+
|
17
25
|
def hostname
|
18
|
-
|
26
|
+
bin_or_usrbin("hostname")
|
19
27
|
end
|
20
28
|
|
21
29
|
def disk
|
22
|
-
|
30
|
+
bin_or_usrbin("df","-h")
|
23
31
|
end
|
24
32
|
|
25
33
|
def process_list
|
26
|
-
|
34
|
+
bin_or_usrbin("ps","-aux")
|
27
35
|
end
|
28
36
|
|
29
37
|
def netstat
|
38
|
+
bin_or_usrbin("netstat","-an")
|
30
39
|
`/usr/sbin/netstat -an`.chomp
|
31
40
|
end
|
32
41
|
end
|
data/lib/keystone/string_util.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kanamei-keystone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kanamei
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-05-16 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|