fluent-plugin-http-pull 0.7.0 → 0.8.1

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.
@@ -0,0 +1,25 @@
1
+ # 1. Generate a Private Key
2
+
3
+ ```
4
+ openssl genrsa -aes128 -out server.key 2048
5
+ Enter pass phrase : 3939
6
+ ```
7
+
8
+ # 2. Generate a CSR (Certificate Signing Request)
9
+
10
+ ```
11
+ openssl req -new -key server.key -out server.csr
12
+ ```
13
+
14
+ # 3. Remove Passphrase from Key
15
+
16
+ ```
17
+ cp server.key server.key.org
18
+ openssl rsa -in server.key.org -out server.key
19
+ ```
20
+
21
+ # 4. Generating a Self-Signed Certificate
22
+
23
+ ```
24
+ openssl x509 -req -days 36500 -in server.csr -signkey server.key -out server.crt
25
+ ```
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDLDCCAhQCCQCv3Q6dwIpcDDANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJK
3
+ UDEOMAwGA1UECAwFVG9reW8xDjAMBgNVBAcMBVRva3lvMRQwEgYDVQQKDAtIYXRz
4
+ dW5lTWlrdTESMBAGA1UEAwwJbG9jYWxob3N0MCAXDTE4MDUyNzA0MDcyN1oYDzIx
5
+ MTgwNTAzMDQwNzI3WjBXMQswCQYDVQQGEwJKUDEOMAwGA1UECAwFVG9reW8xDjAM
6
+ BgNVBAcMBVRva3lvMRQwEgYDVQQKDAtIYXRzdW5lTWlrdTESMBAGA1UEAwwJbG9j
7
+ YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv1ChrQuEuVEA
8
+ 2KdEfWbfZ2b+vj7g878AIrVCR6cuc5YzLb79lvJ8lWr9SzuGsiNir+z/1up/dnPf
9
+ kdnAK9zm3rnAVkgGGM0WG+uEwOhXRe1yGb2PNMDzj0XzfE77QI6b+SyiHG6FpDrD
10
+ sztI9GfyU+dJNxP8ygyJ5Xq7XKlOZ7emW9ceq0I4eNEXmuCriS5zHJr+G61plnX5
11
+ vANmalVumKH0nkKAjQxxvs8jlUVO2KESUPq8sSiO1ijBw+aTOTY5qryRCRlNzvzb
12
+ uCE8e2FPKogbmO/O9wyL1vW2q9RQFFvg06X6Qf46oQGrisAua8HE7Ny5LoDXaB7N
13
+ lM9dNZ8M/QIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCouD3GnuDy3j/aliTIDIMh
14
+ nOHV6maXlJZYki26/HFdaLiLwM1+ghgMtVpRd/JY3w4H7tAz2x7Db5ZKvrCupdpN
15
+ rUvCYAk24ZE34s7WktS+OondzSjLCuVseHUBVHIDbpH9yGHRwZ4fm7jaVXq5wpJy
16
+ 8zKGMBZJH7omNyeV3ulC8GemmzZNpsdy1eS1ajLf8tGUOEBW3E1h+485E4/BqOKz
17
+ uGCx8zUgmNxvUt0yUNfYcBWHL+BOr5UWwpQ/qAqx9Hubs8nD1JZNgKpILlSYjMRV
18
+ graRRhUHs95AjppvzmCds8jdAQJXgzJ0ZLiRqsKZX2WllJSvrSOZXBlrNdB5tSHa
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,16 @@
1
+ -----BEGIN CERTIFICATE REQUEST-----
2
+ MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMQ4wDAYD
3
+ VQQHDAVUb2t5bzEUMBIGA1UECgwLSGF0c3VuZU1pa3UxEjAQBgNVBAMMCWxvY2Fs
4
+ aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9Qoa0LhLlRANin
5
+ RH1m32dm/r4+4PO/ACK1QkenLnOWMy2+/ZbyfJVq/Us7hrIjYq/s/9bqf3Zz35HZ
6
+ wCvc5t65wFZIBhjNFhvrhMDoV0Xtchm9jzTA849F83xO+0COm/ksohxuhaQ6w7M7
7
+ SPRn8lPnSTcT/MoMieV6u1ypTme3plvXHqtCOHjRF5rgq4kucxya/hutaZZ1+bwD
8
+ ZmpVbpih9J5CgI0Mcb7PI5VFTtihElD6vLEojtYowcPmkzk2Oaq8kQkZTc7827gh
9
+ PHthTyqIG5jvzvcMi9b1tqvUUBRb4NOl+kH+OqEBq4rALmvBxOzcuS6A12gezZTP
10
+ XTWfDP0CAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAnwC2nOl/tFm47UpXmx1PF
11
+ OKLM9JD2P6r5Snp3R5u814FFIwgXJwz6+WTCQLqls28r4OTLK/W3me/m5L4GO/0U
12
+ bUsVpYrAmfEbh7DSh1J3KFf7eVTbRpxfj9SvTWXnge2yOnXjDld4iZiqA8azSGi6
13
+ YNY5K4AOw9s+y/LBYrLAm5Xa8WkPmF4Ufbf1ErpbvLGl38csJHpi4SZpXG5eVdDS
14
+ EJGJG8Tjf+EM8+VeTZ0ct63bkt9TnBgYcHurhuFRJX1thz3epkA4uQi5a8ZDcLe4
15
+ LHrHr12SyXuXFJrCT4th2itZjxRY9y8Vr5CFHtcaC7vbUVJDmX2pFRRQAD+4493/
16
+ -----END CERTIFICATE REQUEST-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEAv1ChrQuEuVEA2KdEfWbfZ2b+vj7g878AIrVCR6cuc5YzLb79
3
+ lvJ8lWr9SzuGsiNir+z/1up/dnPfkdnAK9zm3rnAVkgGGM0WG+uEwOhXRe1yGb2P
4
+ NMDzj0XzfE77QI6b+SyiHG6FpDrDsztI9GfyU+dJNxP8ygyJ5Xq7XKlOZ7emW9ce
5
+ q0I4eNEXmuCriS5zHJr+G61plnX5vANmalVumKH0nkKAjQxxvs8jlUVO2KESUPq8
6
+ sSiO1ijBw+aTOTY5qryRCRlNzvzbuCE8e2FPKogbmO/O9wyL1vW2q9RQFFvg06X6
7
+ Qf46oQGrisAua8HE7Ny5LoDXaB7NlM9dNZ8M/QIDAQABAoIBAQCmtMkc88OEg8w7
8
+ /Y0VxNV40eu6tSnp245vsAiATXKRr9kKzLlGlifvP1pV+xnFEkaFS/wnNxE4k4HG
9
+ IrtsvUHD5JJv3LTLWbIhRBnaytp5iY16Vo56BoR1XRvtPxl6yImrF7RvF/OGBtrO
10
+ zCMnLYigihJnVxhYq5Jhj4/CD5nNj11L+1A6wb28HHNLYvMh8QSp5+QriZ5Ehugb
11
+ a99Y5d/5JoAaDDZpUpmtOMp11pfhM3pRNa55qvckPuCTAT5xcEJbxGpIKWDK+8OL
12
+ a83mASrSPp7QRIEpKlQaQF9DoFqBZgKHYsCFebFopA5lBtqO0GlYaXJQCk3tRp5b
13
+ /JyBJzK1AoGBAN3tjqcqFKJXfAb9ovtlfjX1KMxZ2ZWwc+CeYzfNTcT42uYdqfSq
14
+ 7d1RXdfZbJEpLsd+HMeUfIg/R5XWI2jIXa3Qj19LsTpOUZi6o7ceTZZgp2fCYloA
15
+ reyAEo5zxCVNjwVYrso5hFHe8nns039qkmytZCwgRuR9PEYusGnmF8rDAoGBANyv
16
+ 5Aq5btqfrxv+CYmC8Wu2ghFScsxRP++IHEx7wMWfqKztTX0WbMO40/NVmRF/Ntoy
17
+ 65YtixY+DpnqRD8Sd1CjfwcfqGsPLfpnVkEq2xUPmx2TIAnY1/drap70jJm1mOyd
18
+ yWxKQYwdX0ZOAPvQi+snrVQRYADuw7mCcqtTos0/AoGAG2KQAtKvfyTaeiZcMTdh
19
+ 7piU8zp3HgCLHAGPbrhXy2GF6XVpnnZlKbU7pkH/Ip55VkaamIobH9jnJXcqIWjw
20
+ Hl2pA3JcqTw212jYgOUtX8wHfEdBSafhzlgzcf6ZCp1ac6dw0iVszYl8VE1D/+oP
21
+ rXdr8AH/nXxSrrpeLIMnFm8CgYEAnjnN+pJxFHahCiTdmaY0idHU965xeGRYvtiL
22
+ 0Zp44DhUq4eIo0LMwJdn/3NDx/O51D/mAUquCkh8F4aLX91RhpNypBzil7/Oa1Zj
23
+ 1V1wrmz9/fpaYjUCwvZU/5q+pAY7moqWu/mRfXAhuzp6IhGn//X2o+vBNWn7Eqqg
24
+ pI3Wj+kCgYArJJZOj3srjNij++FWtgBmP7/gTdIJNybkpa01ub5vBYDmi77uj0oD
25
+ zDCZMwsJ/nRJBJ4a1U7B5VSy36UJN1JvY4xriR+yaOb0ttNb+pEzjSENchsqwcez
26
+ 8ogUa3vR+xMXy/wQVZrMm00cQktzQbTZI23aNIWKsevJI28wXcBbLQ==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,30 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: AES-128-CBC,4BBDC20C90C15D774E6E07EDEA6BC54A
4
+
5
+ /rzYRt/Z0PCttHRYiKVFxMlPjKoOlQSEiRPJKTgAGLYDsZKv4DQL9EN5cVMoSCz4
6
+ N+90H4d6ycDa+o/G2U1g79LjKa6REzelSDIjnHDOBT06c1i7859IGZLQNjcI81mW
7
+ q38exdgm4VXB9qIjHEbjM0lj6dRlbx7ebfqrNcpm42q/7QgWljjyjVTwfTz4T8CI
8
+ CPe+d7d8ukr/CCehtcP3aLOQN6rZ3fVuROdzuQ3lUEdcswbe11RTKZvmMsBLOZ2i
9
+ ws4ot/JgXkHjO1oRJk1AUq0i16p3AfQdo/jCVvverMVuuruDxBu5uMefgj03sR8G
10
+ Anh3Og8F76JGGgN6HDZmPCuW7MIt7UjV4mBCbARcNVWFEcsnYbeLqcKD6J11IbOm
11
+ niXEgWMS+b+YNCYdkbwVhAHftCvRUAaRN1kcPNuc7cX5oEXTILfYzw3cdxiugwNN
12
+ 7/USXcgmH8R23sDMnZI8gJTjDmynTW8X0ftXLGPmkc6oDZGk6NfRoH9bi+Vue9kj
13
+ rjz27Gs/4j7v5s2KigMeTSqx8tCMj0TVmvE4tYjyp9R7xB5lZ4+/uPB9JRoImpAA
14
+ 5MbgrnPYvyw4vchBs8CBHVG/cy0K75aKX7Efw5oUZ/NObm6cHb8EYU5ODBy08erb
15
+ 40INhJDcop+YG5ElO06RzEp1CyDM/S9d3L7NatVyDS3Vkd7SKsxoqrNOJ4X+UNeO
16
+ swyfmzsXkBvV5bTAql2PPnS1fNrdsTCS1khf2Hbb1OUywAAD2IvakhTANasOcLEU
17
+ sU5Wvdqu3EEhiLsTUi0LAXU/vH1WxD0VKQiUpVSpo95Xlrz21QEFOcrEKeCByjIj
18
+ AKbYgQDI6p/6OcYIT7q7hG5BKGbskDSz+p3Bu/q68VTMzjHTtJwTj0W+46+nyu9U
19
+ Mc5DCUScNXyz8wdrZhbUh12HgyY98Yze87hJ5YKCuo2P6ylm6PNFDctRjMoBTDrX
20
+ xLvKWhH0sp8ZTi2MZVdENzuR/w9OuCstkKDvApfFdyhsqSdwW40moa4YfjQVLhgb
21
+ ZsKwZodz7fhGYkzGP8aizRJWr3gXLiwwBy+Ko20aVU+8hQmcT6OUV/B5gINY0m7/
22
+ Bxeqjiijg7AyCO3ilh3w3LpCOr4Uk9bGQnCMHgi15vH8w9W/akbWRSxCchSwWbBX
23
+ fZG8KXSH7h9QNwq19MfHSnDd0mwt7M+oFO3EmZUDHKca5OuVWDEn3JXavQo8jRwT
24
+ yWSWFeeits6RIw/XN6c4EKtG+Y0wR1hAxlqPUq40vgEGwTBY4iLbPbgr3v6wXi0x
25
+ C054QfBigmx4yNATIB+DGGpEi3EGhfwfSaw7W7gmSL3W9XzKqr4JQBe6azMYWFGF
26
+ COZe6FqnKEUJq/5HqChWNvhHl8kic72sjD/fIIadSAVEZ1/e4XegL7GQ7dckyGV6
27
+ zKZhtLI+jfiFc5Lcr8wPwvoxb3ez1mAq9MOl77mQGMRDSq+JTnUeG5COt6Gjka9Q
28
+ 9iqaePPF+rRz65jfYS9FJWI6eL1WyPXu61mbjhkWcnC8GTSBeVNsSXl27m1QIKUv
29
+ ftiF57yNlZzxf4wWzbqsRZHbwcC/pEXMwHK415am3yL0sJE8bqtGcz+V6CXXKrFV
30
+ -----END RSA PRIVATE KEY-----
@@ -1,39 +1,39 @@
1
- require 'webrick'
2
- require 'webrick/httpproxy'
3
-
4
- class StubProxy
5
- def initialize
6
- create_proxy
7
- end
8
-
9
- def start
10
- @thread = Thread.new { @proxy.start }
11
- end
12
-
13
- def shutdown
14
- @proxy.shutdown
15
-
16
- # wait until webrick was shutting down
17
- while true
18
- break if @thread.status == false
19
-
20
- # issue webrick shutdown once more
21
- @proxy.shutdown
22
- sleep 1
23
- end
24
-
25
- # then exit thread
26
- @thread.exit
27
- end
28
-
29
- private
30
- def create_proxy
31
- @log_file = File.open("stub_proxy.log", "a+")
32
- @log = WEBrick::Log.new @log_file
33
- @access_log = [
34
- [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
35
- ]
36
-
37
- @proxy = WEBrick::HTTPProxyServer.new :Port => 4040, :Logger => @log, :AccessLog => @access_log
38
- end
39
- end
1
+ require 'webrick'
2
+ require 'webrick/httpproxy'
3
+
4
+ class StubProxy
5
+ def initialize
6
+ create_proxy
7
+ end
8
+
9
+ def start
10
+ @thread = Thread.new { @proxy.start }
11
+ end
12
+
13
+ def shutdown
14
+ @proxy.shutdown
15
+
16
+ # wait until webrick was shutting down
17
+ while true
18
+ break if @thread.status == false
19
+
20
+ # issue webrick shutdown once more
21
+ @proxy.shutdown
22
+ sleep 1
23
+ end
24
+
25
+ # then exit thread
26
+ @thread.exit
27
+ end
28
+
29
+ private
30
+ def create_proxy
31
+ @log_file = File.open("stub_proxy.log", "a+")
32
+ @log = WEBrick::Log.new @log_file
33
+ @access_log = [
34
+ [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
35
+ ]
36
+
37
+ @proxy = WEBrick::HTTPProxyServer.new :Port => 4040, :Logger => @log, :AccessLog => @access_log
38
+ end
39
+ end
@@ -1,119 +1,134 @@
1
- require 'webrick'
2
-
3
- class DeleteService < WEBrick::HTTPServlet::AbstractServlet
4
- def service(req, res)
5
- if req.request_method != "DELETE"
6
- res.status = 405
7
- else
8
- res.status = 200
9
- res['Content-Type'] = 'application/json'
10
- res.body = '{ "status": "OK" }'
11
- end
12
- end
13
- end
14
-
15
- class StubServer
16
- def initialize
17
- create_server
18
-
19
- # mount handler
20
- @server.mount_proc '/', &method(:ok)
21
- @server.mount_proc '/not_exist', &method(:not_exist)
22
- @server.mount_proc '/timeout', &method(:timeout)
23
- @server.mount_proc '/internal_error', &method(:internal_error)
24
- @server.mount_proc '/redirect', &method(:redirect)
25
- @server.mount_proc '/protected', &method(:protected)
26
- @server.mount_proc '/custom_header', &method(:custom_header)
27
-
28
- @server.mount_proc '/method_post', &method(:method_post)
29
- @server.mount '/method_delete', DeleteService
30
- end
31
-
32
- def start
33
- @thread = Thread.new { @server.start }
34
- end
35
-
36
- def shutdown
37
- @server.shutdown
38
-
39
- # wait until webrick was shutting down
40
- while true
41
- break if @thread.status == false
42
-
43
- # issue webrick shutdown once more
44
- @server.shutdown
45
- sleep 1
46
- end
47
-
48
- # then exit thread
49
- @thread.exit
50
- end
51
-
52
- private
53
- def create_server
54
- @log_file = File.open("stub_server.log", "a+")
55
- @log = WEBrick::Log.new @log_file
56
- @access_log = [
57
- [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
58
- ]
59
-
60
- @server = WEBrick::HTTPServer.new :Port => 3939, :Logger => @log, :AccessLog => @access_log
61
- end
62
-
63
- def ok(req, res)
64
- res.status = 200
65
- res['Content-Type'] = 'application/json'
66
- res.body = '{ "status": "OK" }'
67
- end
68
-
69
- def not_exist(req, res)
70
- res.status = 404
71
- res.body = ''
72
- end
73
-
74
- def timeout(req, res)
75
- sleep 3
76
-
77
- res.status = 200
78
- res['Content-Type'] = 'application/json'
79
- res.body = '{ "status": "OK" }'
80
- end
81
-
82
- def internal_error(req, res)
83
- res.status = 500
84
- res.body = ''
85
- end
86
-
87
- def redirect(req, res)
88
- res.set_redirect WEBrick::HTTPStatus::TemporaryRedirect, "http://127.0.0.1:3939/"
89
- end
90
-
91
- def protected(req, res)
92
- WEBrick::HTTPAuth.basic_auth(req, res, 'protected') do |user, password|
93
- user == 'HatsuneMiku' && password == '3939'
94
- end
95
-
96
- res.status = 200
97
- res['Content-Type'] = 'application/json'
98
- res.body = '{ "status": "OK" }'
99
- end
100
-
101
- def custom_header(req, res)
102
- res.header["HATSUNE-MIKU"] = req["HATSUNE-MIKU"] if req["HATSUNE-MIKU"]
103
-
104
- res.status = 200
105
- res['Content-Type'] = 'application/json'
106
- res.body = '{ "status": "OK" }'
107
- end
108
-
109
- def method_post(req, res)
110
- if req.request_method != "POST"
111
- res.status = 405
112
- else
113
- res.status = 200
114
- res['Content-Type'] = 'application/json'
115
- res.body = '{ "status": "OK" }'
116
- end
117
- end
118
- end
119
-
1
+ require 'webrick'
2
+ require 'webrick/https'
3
+
4
+ class DeleteService < WEBrick::HTTPServlet::AbstractServlet
5
+ def service(req, res)
6
+ if req.request_method != "DELETE"
7
+ res.status = 405
8
+ else
9
+ res.status = 200
10
+ res['Content-Type'] = 'application/json'
11
+ res.body = '{ "status": "OK" }'
12
+ end
13
+ end
14
+ end
15
+
16
+ class StubServer
17
+ def initialize(port=3939, ssl_enable=false)
18
+ @port = port
19
+ @ssl_enable = ssl_enable
20
+
21
+ create_server
22
+
23
+ # mount handler
24
+ @server.mount_proc '/', &method(:ok)
25
+ @server.mount_proc '/not_exist', &method(:not_exist)
26
+ @server.mount_proc '/timeout', &method(:timeout)
27
+ @server.mount_proc '/internal_error', &method(:internal_error)
28
+ @server.mount_proc '/redirect', &method(:redirect)
29
+ @server.mount_proc '/protected', &method(:protected)
30
+ @server.mount_proc '/custom_header', &method(:custom_header)
31
+
32
+ @server.mount_proc '/method_post', &method(:method_post)
33
+ @server.mount '/method_delete', DeleteService
34
+ end
35
+
36
+ def start
37
+ @thread = Thread.new { @server.start }
38
+ end
39
+
40
+ def shutdown
41
+ @server.shutdown
42
+
43
+ # wait until webrick was shutting down
44
+ while true
45
+ break if @thread.status == false
46
+
47
+ # issue webrick shutdown once more
48
+ @server.shutdown
49
+ sleep 1
50
+ end
51
+
52
+ # then exit thread
53
+ @thread.exit
54
+ end
55
+
56
+ private
57
+ def create_server
58
+ @log_file = File.open("stub_server.log", "a+")
59
+ @log = WEBrick::Log.new @log_file
60
+ @access_log = [
61
+ [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
62
+ ]
63
+
64
+
65
+ if @ssl_enable
66
+ ssl_basepath = File.join(File.dirname(__FILE__), ".ssl")
67
+ @server = WEBrick::HTTPServer.new :Port => @port,
68
+ :SSLEnable => true,
69
+ :Logger => @log, :AccessLog => @access_log,
70
+ :SSLPrivateKey => OpenSSL::PKey::RSA.new(File.open(File.join(ssl_basepath, "server.key")).read),
71
+ :SSLCertificate => OpenSSL::X509::Certificate.new(File.open(File.join(ssl_basepath, "server.crt")).read),
72
+ :SSLCertName => [["CN", "localhost"]]
73
+ else
74
+ @server = WEBrick::HTTPServer.new :Port => @port,
75
+ :Logger => @log, :AccessLog => @access_log
76
+ end
77
+ end
78
+
79
+ def ok(req, res)
80
+ res.status = 200
81
+ res['Content-Type'] = 'application/json'
82
+ res.body = '{ "status": "OK" }'
83
+ end
84
+
85
+ def not_exist(req, res)
86
+ res.status = 404
87
+ res.body = ''
88
+ end
89
+
90
+ def timeout(req, res)
91
+ sleep 3
92
+
93
+ res.status = 200
94
+ res['Content-Type'] = 'application/json'
95
+ res.body = '{ "status": "OK" }'
96
+ end
97
+
98
+ def internal_error(req, res)
99
+ res.status = 500
100
+ res.body = ''
101
+ end
102
+
103
+ def redirect(req, res)
104
+ res.set_redirect WEBrick::HTTPStatus::TemporaryRedirect, "http://127.0.0.1:3939/"
105
+ end
106
+
107
+ def protected(req, res)
108
+ WEBrick::HTTPAuth.basic_auth(req, res, 'protected') do |user, password|
109
+ user == 'HatsuneMiku' && password == '3939'
110
+ end
111
+
112
+ res.status = 200
113
+ res['Content-Type'] = 'application/json'
114
+ res.body = '{ "status": "OK" }'
115
+ end
116
+
117
+ def custom_header(req, res)
118
+ res.header["HATSUNE-MIKU"] = req["HATSUNE-MIKU"] if req["HATSUNE-MIKU"]
119
+
120
+ res.status = 200
121
+ res['Content-Type'] = 'application/json'
122
+ res.body = '{ "status": "OK" }'
123
+ end
124
+
125
+ def method_post(req, res)
126
+ if req.request_method != "POST"
127
+ res.status = 405
128
+ else
129
+ res.status = 200
130
+ res['Content-Type'] = 'application/json'
131
+ res.body = '{ "status": "OK" }'
132
+ end
133
+ end
134
+ end