forcast 0.0.110
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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/COPYRIGHTS +11 -0
- data/Gemfile +22 -0
- data/Gemfile.lock +166 -0
- data/PENDIENTES +39 -0
- data/README.md +35 -0
- data/Rakefile +7 -0
- data/VERSION +1 -0
- data/bin/console +14 -0
- data/bin/rake +28 -0
- data/bin/setup +8 -0
- data/forcast.gemspec +73 -0
- data/lib/forcast.rb +5 -0
- data/lib/forcast/controllers/all.rb +2 -0
- data/lib/forcast/controllers/application/all.rb +12 -0
- data/lib/forcast/controllers/application/crud.rb +91 -0
- data/lib/forcast/controllers/application/database.rb +34 -0
- data/lib/forcast/controllers/application/error.rb +18 -0
- data/lib/forcast/controllers/application/exception_handler.rb +25 -0
- data/lib/forcast/controllers/application/json.rb +83 -0
- data/lib/forcast/controllers/application/locale.rb +30 -0
- data/lib/forcast/controllers/application/log.rb +22 -0
- data/lib/forcast/controllers/application/login.rb +41 -0
- data/lib/forcast/controllers/application/meta.rb +61 -0
- data/lib/forcast/controllers/application/model.rb +17 -0
- data/lib/forcast/controllers/application/permitirtodo.rb +27 -0
- data/lib/forcast/controllers/application/utils.rb +28 -0
- data/lib/forcast/controllers/controller/all.rb +8 -0
- data/lib/forcast/controllers/controller/asociar.rb +121 -0
- data/lib/forcast/controllers/controller/busqueda.rb +151 -0
- data/lib/forcast/controllers/controller/definitor/definitor.rb +322 -0
- data/lib/forcast/controllers/controller/definitor/definitor_page.rb +40 -0
- data/lib/forcast/controllers/controller/definitor_all.rb +2 -0
- data/lib/forcast/controllers/controller/filtro.rb +48 -0
- data/lib/forcast/controllers/controller/login/controllers/base_controller.rb +135 -0
- data/lib/forcast/controllers/controller/login/controllers/login_controller.rb +38 -0
- data/lib/forcast/controllers/controller/login/login.rb +71 -0
- data/lib/forcast/controllers/controller/login_all.rb +1 -0
- data/lib/forcast/controllers/controller/paper_trail/paper_trail.rb +21 -0
- data/lib/forcast/controllers/controller/paper_trail_all.rb +1 -0
- data/lib/forcast/controllers/controller/relacion.rb +157 -0
- data/lib/forcast/controllers/controller/rule_engine/action_engine.rb +92 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/action_logs_controller.rb +12 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/actions_controller.rb +10 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/pollings_controller.rb +13 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/rule_logs_controller.rb +12 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/rules_controller.rb +19 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/webhooks_controller.rb +27 -0
- data/lib/forcast/controllers/controller/rule_engine/polling_engine.rb +76 -0
- data/lib/forcast/controllers/controller/rule_engine/rule_controller.rb +27 -0
- data/lib/forcast/controllers/controller/rule_engine/rule_engine.rb +88 -0
- data/lib/forcast/controllers/controller/rule_engine/webhook_engine.rb +38 -0
- data/lib/forcast/controllers/controller/rule_engine_all.rb +5 -0
- data/lib/forcast/jobs/all.rb +2 -0
- data/lib/forcast/jobs/jobs_assets.rb +25 -0
- data/lib/forcast/jobs/jobs_wrapper.rb +25 -0
- data/lib/forcast/jobs/rule_engine/jobs_actions.rb +73 -0
- data/lib/forcast/jobs/rule_engine/jobs_pollings.rb +77 -0
- data/lib/forcast/jobs/rule_engine/jobs_webhooks.rb +54 -0
- data/lib/forcast/migrations/0_migracion_general.rb +44 -0
- data/lib/forcast/migrations/paper_trail/versions.rb +61 -0
- data/lib/forcast/migrations/rule_engine/action_logs.rb +15 -0
- data/lib/forcast/migrations/rule_engine/actions.rb +15 -0
- data/lib/forcast/migrations/rule_engine/pollings.rb +26 -0
- data/lib/forcast/migrations/rule_engine/rule_logs.rb +22 -0
- data/lib/forcast/migrations/rule_engine/rules.rb +27 -0
- data/lib/forcast/migrations/rule_engine/webhooks.rb +25 -0
- data/lib/forcast/models/all.rb +8 -0
- data/lib/forcast/models/asociar.rb +74 -0
- data/lib/forcast/models/busqueda.rb +17 -0
- data/lib/forcast/models/login/authorization.rb +37 -0
- data/lib/forcast/models/login/json_web_token.rb +15 -0
- data/lib/forcast/models/login/login.rb +26 -0
- data/lib/forcast/models/login_all.rb +2 -0
- data/lib/forcast/models/meta.rb +19 -0
- data/lib/forcast/models/modelo.rb +125 -0
- data/lib/forcast/models/models/meta.rb +6 -0
- data/lib/forcast/models/paper_trail/paper_trail.rb +13 -0
- data/lib/forcast/models/paper_trail_all.rb +1 -0
- data/lib/forcast/models/permitirtodo.rb +57 -0
- data/lib/forcast/models/rule_engine/action_engine.rb +19 -0
- data/lib/forcast/models/rule_engine/models/action.rb +41 -0
- data/lib/forcast/models/rule_engine/models/action_log.rb +40 -0
- data/lib/forcast/models/rule_engine/models/polling.rb +43 -0
- data/lib/forcast/models/rule_engine/models/rule.rb +44 -0
- data/lib/forcast/models/rule_engine/models/rule_log.rb +39 -0
- data/lib/forcast/models/rule_engine/models/webhook.rb +43 -0
- data/lib/forcast/models/rule_engine/polling_engine.rb +113 -0
- data/lib/forcast/models/rule_engine/rule.rb +62 -0
- data/lib/forcast/models/rule_engine/rule_engine.rb +137 -0
- data/lib/forcast/models/rule_engine/rule_scope.rb +35 -0
- data/lib/forcast/models/rule_engine/webhook_engine.rb +55 -0
- data/lib/forcast/models/rule_engine_all.rb +6 -0
- data/lib/forcast/routes/concerns/asociar.rb +15 -0
- data/lib/forcast/routes/concerns/buscar.rb +6 -0
- data/lib/forcast/routes/concerns/definitor.rb +3 -0
- data/lib/forcast/routes/concerns/modelo.rb +6 -0
- data/lib/forcast/routes/database.rb +4 -0
- data/lib/forcast/routes/login.rb +4 -0
- data/lib/forcast/routes/paper_trail/paper_trail.rb +3 -0
- data/lib/forcast/routes/rule_engine/rule.rb +5 -0
- data/lib/forcast/tasks/.giosaveZr0hbs +21 -0
- data/lib/forcast/tasks/.keep +0 -0
- data/lib/forcast/tasks/all.rb +16 -0
- data/lib/forcast/tasks/diagramas.rake +32 -0
- data/lib/forcast/tasks/documentation/documentation.rb +100 -0
- data/lib/forcast/tasks/env.rake +10 -0
- data/lib/forcast/tasks/git.rake +22 -0
- data/lib/forcast/tasks/indy/indy.rb +28 -0
- data/lib/forcast/tasks/logs.rake +13 -0
- data/lib/forcast/tasks/process.rake +18 -0
- data/lib/forcast/tasks/schema.rake +17 -0
- data/lib/forcast/tasks/schema/recips/action.rb +18 -0
- data/lib/forcast/tasks/schema/recips/controller.rb +29 -0
- data/lib/forcast/tasks/schema/recips/definitor.rb +38 -0
- data/lib/forcast/tasks/schema/recips/model.rb +43 -0
- data/lib/forcast/tasks/schema/recips/project.rb +19 -0
- data/lib/forcast/tasks/schema/recips/route.rb +9 -0
- data/lib/forcast/tasks/schema/recips/tmp/controller.rb +0 -0
- data/lib/forcast/tasks/schema/recips/tmp/model.rb +0 -0
- data/lib/forcast/tasks/schema/recips/tmp/model/.keep +0 -0
- data/lib/forcast/tasks/schema/rule_engine/rule_engine.rb +98 -0
- data/lib/forcast/tasks/schema/schema.rb +346 -0
- data/lib/forcast/tasks/test.rake +129 -0
- data/lib/forcast/tasks/utils.rake +68 -0
- data/lib/forcast/tasks/yard.rake +18 -0
- data/lib/forcast/utils/all.rb +4 -0
- data/lib/forcast/utils/email.rb +49 -0
- data/lib/forcast/utils/email/forcast/utils/email/layout/default.html.erb +3 -0
- data/lib/forcast/utils/email/forcast/utils/email/layout/default.text.erb +5 -0
- data/lib/forcast/utils/firebase.rb +60 -0
- data/lib/forcast/utils/firebase_database.rb +117 -0
- data/lib/forcast/utils/measure.rb +44 -0
- data/lib/forcast/utils/qvo.rb +141 -0
- data/lib/forcast/utils/server.rb +296 -0
- data/lib/forcast/utils/telegram.rb +82 -0
- data/lib/forcast/utils/thing.rb +180 -0
- data/lib/forcast/version.rb +15 -0
- data/lib/lib/backup.rb +42 -0
- data/lib/lib/deploy.sh +40 -0
- data/lib/lib/forcast_servidor_rails.sh +11 -0
- data/lib/lib/pg_generator.sh +10 -0
- data/lib/lib/production.rb +66 -0
- data/lib/lib/production/production.rb +30 -0
- data/lib/lib/systemctl_maker.rb +88 -0
- data/lib/lib/update.rb +100 -0
- data/production.rb +31 -0
- metadata +301 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
module FORCAST
|
|
2
|
+
module Telegram
|
|
3
|
+
class Send
|
|
4
|
+
attr_accessor :headers
|
|
5
|
+
attr_accessor :url
|
|
6
|
+
attr_accessor :json_send
|
|
7
|
+
attr_accessor :metodo
|
|
8
|
+
attr_accessor :chat_id
|
|
9
|
+
|
|
10
|
+
def initialize(chat_id)
|
|
11
|
+
self.chat_id = chat_id.to_s
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def getUpdates
|
|
15
|
+
json_recived = constructor do
|
|
16
|
+
self.metodo = :get
|
|
17
|
+
self.url = "/getUpdates"
|
|
18
|
+
self.json_send = {}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
#Mostrar usuarios
|
|
23
|
+
def sendMessage(message)
|
|
24
|
+
json_recived = constructor do
|
|
25
|
+
self.metodo = :post
|
|
26
|
+
self.url = "/sendMessage?"
|
|
27
|
+
self.url += "chat_id="+self.chat_id.to_s
|
|
28
|
+
self.url += "&text="+message
|
|
29
|
+
self.url += "&parse_mode=HTML"
|
|
30
|
+
self.json_send = {}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def sendPhoto(url_imagen,message)
|
|
36
|
+
json_recived = constructor do
|
|
37
|
+
self.metodo = :post
|
|
38
|
+
self.url = "/sendPhoto?"
|
|
39
|
+
self.url += "chat_id="+self.chat_id.to_s
|
|
40
|
+
self.url += "&photo="+url_imagen
|
|
41
|
+
self.url += "&caption="+message
|
|
42
|
+
self.url += "&parse_mode=HTML"
|
|
43
|
+
self.json_send = {}
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def constructor
|
|
49
|
+
yield
|
|
50
|
+
self.headers = {}
|
|
51
|
+
resp = SERVIDORTELEGRAM.conexion(self.metodo, self.headers, self.url, self.json_send)
|
|
52
|
+
puts resp
|
|
53
|
+
return true if resp[1].blank?
|
|
54
|
+
json_recived = {}
|
|
55
|
+
logger.info "[TELEGRAM] "+resp[1].to_s
|
|
56
|
+
if resp[0] && self.valid_json?(resp[1])
|
|
57
|
+
json_recived = JSON.parse(resp[1])
|
|
58
|
+
unless json_recived.is_a?(Array)
|
|
59
|
+
unless json_recived["error"].nil?
|
|
60
|
+
logger.info "[TELEGRAM] "+json_recived["error"].to_s
|
|
61
|
+
return false
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
return json_recived
|
|
65
|
+
else
|
|
66
|
+
return false
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def valid_json?(json)
|
|
71
|
+
begin
|
|
72
|
+
JSON.parse(json)
|
|
73
|
+
return true
|
|
74
|
+
rescue JSON::ParserError => e
|
|
75
|
+
puts e
|
|
76
|
+
return false
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
require "forcast/utils/server"
|
|
2
|
+
|
|
3
|
+
module Forcast
|
|
4
|
+
module Utils
|
|
5
|
+
module Server
|
|
6
|
+
class Thing
|
|
7
|
+
attr_accessor :headers
|
|
8
|
+
attr_accessor :url
|
|
9
|
+
attr_accessor :json_send
|
|
10
|
+
attr_accessor :metodo
|
|
11
|
+
def initialize
|
|
12
|
+
self.headers = eval(File.read(Rails.root.join("tmp/cache/loginthings.txt")))
|
|
13
|
+
end
|
|
14
|
+
def auth_login_things
|
|
15
|
+
app = Rails.application.class.parent.to_s
|
|
16
|
+
url = "/auth/login"
|
|
17
|
+
json_send = { :username => ENV[app+'_serverthings_user'], :password => ENV[app+'_serverthings_pass'] }
|
|
18
|
+
headers_send = {}
|
|
19
|
+
response = SERVIDORTHINGS.conexion(:post,{},url,json_send)[1]
|
|
20
|
+
#p response
|
|
21
|
+
json_recived = JSON.parse(response) if valid_json?(response)
|
|
22
|
+
if json_recived.include?("token")
|
|
23
|
+
@headers_send = {"X-Authorization" => "Bearer "+ json_recived["token"]}
|
|
24
|
+
else
|
|
25
|
+
return false
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
def dorpc_device_things(id,metodo,parametros)
|
|
29
|
+
constructor do
|
|
30
|
+
self.metodo = :post
|
|
31
|
+
self.url = "/plugins/rpc/twoway/"
|
|
32
|
+
self.url += id.to_s
|
|
33
|
+
self.json_send = {"method" => metodo, "params" => parametros}
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
def keys_telemetry_device_things(id)
|
|
37
|
+
constructor do
|
|
38
|
+
self.metodo = :get
|
|
39
|
+
self.url = "/plugins/telemetry/DEVICE/"
|
|
40
|
+
self.url += id
|
|
41
|
+
self.url += "/keys/timeseries"
|
|
42
|
+
self.json_send = {}
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
def attributes_telemetry_device_things(id)
|
|
46
|
+
constructor do
|
|
47
|
+
self.metodo = :get
|
|
48
|
+
self.url = "/plugins/telemetry/DEVICE/"
|
|
49
|
+
self.url += id
|
|
50
|
+
self.url += "/keys/attributes"
|
|
51
|
+
self.json_send = {}
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
def attributes_device_things(id,devices)
|
|
55
|
+
constructor do
|
|
56
|
+
self.metodo = :get
|
|
57
|
+
self.url = "/plugins/telemetry/DEVICE/"
|
|
58
|
+
self.url += id.to_s
|
|
59
|
+
self.url += "/values/attributes?keys="
|
|
60
|
+
devices.each do |device|
|
|
61
|
+
self.url += device + ','
|
|
62
|
+
end
|
|
63
|
+
self.url = url[0...-1]
|
|
64
|
+
self.json_send = {}
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
def last_telemetry_device_things(id,parametros)
|
|
68
|
+
constructor do
|
|
69
|
+
self.metodo = :get
|
|
70
|
+
self.url = "/plugins/telemetry/DEVICE/"
|
|
71
|
+
self.url += id
|
|
72
|
+
self.url += "/values/timeseries?keys="
|
|
73
|
+
parametros.each do |obis|
|
|
74
|
+
self.url += obis + ','
|
|
75
|
+
end
|
|
76
|
+
self.url = url[0...-1]
|
|
77
|
+
self.json_send = {}
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def create_device_things(name, device_type: 'default')
|
|
82
|
+
json_received = constructor do
|
|
83
|
+
self.metodo = :post
|
|
84
|
+
self.url = '/device'
|
|
85
|
+
self.json_send = { name: name, type: device_type }
|
|
86
|
+
end
|
|
87
|
+
p json_received
|
|
88
|
+
if json_received.include?('id')
|
|
89
|
+
data = {}
|
|
90
|
+
data['token'] = get_token_device_things(json_received['id']['id'])
|
|
91
|
+
return false unless data['token']
|
|
92
|
+
|
|
93
|
+
data['id'] = json_received['id']['id']
|
|
94
|
+
return data
|
|
95
|
+
else
|
|
96
|
+
return false
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def get_token_device_things(id)
|
|
101
|
+
json_recived = constructor do
|
|
102
|
+
self.metodo = :get
|
|
103
|
+
self.url = "/device/"+id.to_s+"/credentials"
|
|
104
|
+
self.json_send = {}
|
|
105
|
+
end
|
|
106
|
+
if json_recived.include?("credentialsId")
|
|
107
|
+
return json_recived["credentialsId"]
|
|
108
|
+
else
|
|
109
|
+
return false
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def delete_device_things(id_things)
|
|
114
|
+
json_recived = constructor do
|
|
115
|
+
self.metodo = :delete
|
|
116
|
+
self.url = "/device/"+id_things.to_s
|
|
117
|
+
self.json_send = {}
|
|
118
|
+
end
|
|
119
|
+
p json_recived
|
|
120
|
+
if json_recived.include?("errorCode")
|
|
121
|
+
return false
|
|
122
|
+
else
|
|
123
|
+
return true
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
def constructor
|
|
127
|
+
yield
|
|
128
|
+
if SERVIDORTHINGS
|
|
129
|
+
response = SERVIDORTHINGS.conexion(self.metodo, self.headers, self.url, self.json_send)[1]
|
|
130
|
+
json_recived = {}
|
|
131
|
+
json_recived = JSON.parse(response) if self.valid_json?(response)
|
|
132
|
+
return json_recived
|
|
133
|
+
else
|
|
134
|
+
puts "Servidor SERVIDORTHINGS no definido"
|
|
135
|
+
return
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
def valid_json?(json)
|
|
139
|
+
begin
|
|
140
|
+
JSON.parse(json)
|
|
141
|
+
return true
|
|
142
|
+
rescue JSON::ParserError => e
|
|
143
|
+
puts e
|
|
144
|
+
return false
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
def self.sync_login
|
|
148
|
+
p "LOGIN THINGS"
|
|
149
|
+
app = Rails.application.class.parent.to_s
|
|
150
|
+
servidorthings = Forcast::Utils::Server::Server.new do |config|
|
|
151
|
+
config.headers.merge!(eval(ENV[app+'_serverthings_headers']))
|
|
152
|
+
config.dns = ENV[app+'_serverthings_dns']
|
|
153
|
+
config.connect = ENV[app+'_serverthings_connect']
|
|
154
|
+
config.read = ENV[app+'_serverthings_read']
|
|
155
|
+
config.write = ENV[app+'_serverthings_write']
|
|
156
|
+
config.data = ENV[app+'_serverthings_data']
|
|
157
|
+
end
|
|
158
|
+
usuario = ENV[app+'_serverthings_user']
|
|
159
|
+
password = ENV[app+'_serverthings_pass']
|
|
160
|
+
url = "/auth/login"
|
|
161
|
+
json_send = {:username => usuario, :password => password}
|
|
162
|
+
headers_send = {}
|
|
163
|
+
response = servidorthings.conexion(:post,{},url,json_send)[1]
|
|
164
|
+
begin
|
|
165
|
+
json_recived = JSON.parse(response)
|
|
166
|
+
rescue JSON::ParserError => e
|
|
167
|
+
json_recived = {}
|
|
168
|
+
end
|
|
169
|
+
if json_recived.include?("token")
|
|
170
|
+
headers = {"X-Authorization" => "Bearer "+ json_recived["token"]}.to_s
|
|
171
|
+
else
|
|
172
|
+
headers = "PRUEBA HEADERS"
|
|
173
|
+
end
|
|
174
|
+
File.write(Rails.root.join("tmp/cache/loginthings.txt"),headers)
|
|
175
|
+
p "DONE LOGIN"
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Forcast
|
|
2
|
+
module VERSION
|
|
3
|
+
MAJOR = 0
|
|
4
|
+
MINOR = 1
|
|
5
|
+
TINY = 0
|
|
6
|
+
# Set PRE to nil unless it's a pre-release (beta, rc, etc.)
|
|
7
|
+
PRE = nil
|
|
8
|
+
|
|
9
|
+
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".").freeze
|
|
10
|
+
|
|
11
|
+
def self.to_s
|
|
12
|
+
STRING
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/lib/backup.rb
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
require 'optparse'
|
|
4
|
+
require 'date'
|
|
5
|
+
|
|
6
|
+
arg1, *FILES = ARGV
|
|
7
|
+
@base_path = Dir.pwd
|
|
8
|
+
|
|
9
|
+
repos = [Hash.new]
|
|
10
|
+
|
|
11
|
+
repos.push({folder_development: 'adminbodega'
|
|
12
|
+
})
|
|
13
|
+
repos.push({folder_development: 'operario'
|
|
14
|
+
})
|
|
15
|
+
repos.push({folder_development: 'clientebodega'
|
|
16
|
+
})
|
|
17
|
+
repos.push({folder_development: 'server'
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
def backup (folder)
|
|
21
|
+
folder_development = folder[:folder_development]
|
|
22
|
+
Dir.chdir("#{@base_path}")
|
|
23
|
+
date = Date.today.strftime('%d-%m-%Y')
|
|
24
|
+
system("mkdir -p backup/#{date}")
|
|
25
|
+
system("cp -TR #{folder_development} backup/#{date}/#{folder_development}")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def restore (folder)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
case arg1
|
|
35
|
+
|
|
36
|
+
when "backup"
|
|
37
|
+
FILES.each do |arg|
|
|
38
|
+
backup(repos[arg.to_i])
|
|
39
|
+
end
|
|
40
|
+
else
|
|
41
|
+
puts "Nada"
|
|
42
|
+
end
|
data/lib/lib/deploy.sh
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
#RVM
|
|
4
|
+
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
|
5
|
+
\curl -sSL https://get.rvm.io | bash -s stable --ruby=jruby --gems=rails,puma
|
|
6
|
+
#Ruby
|
|
7
|
+
source /usr/local/rvm/scripts/rvm
|
|
8
|
+
rvm install 2.3.0
|
|
9
|
+
rvm use 2.3.0
|
|
10
|
+
rvm --default use 2.3.0
|
|
11
|
+
#Foreman
|
|
12
|
+
sudo apt install ruby-foreman
|
|
13
|
+
gem install foreman
|
|
14
|
+
gem install bundler
|
|
15
|
+
#Add Universe
|
|
16
|
+
sudo add-apt-repository universe
|
|
17
|
+
|
|
18
|
+
#node
|
|
19
|
+
sudo apt install nodejs npm
|
|
20
|
+
sudo apt install npm
|
|
21
|
+
|
|
22
|
+
#NVM
|
|
23
|
+
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
|
|
24
|
+
nvm install v10.0.0
|
|
25
|
+
#graphviz erd model
|
|
26
|
+
sudo apt-get install graphviz
|
|
27
|
+
|
|
28
|
+
#Postgresql
|
|
29
|
+
sudo apt-get install postgresql postgresql-contrib
|
|
30
|
+
sudo apt-get install libpq-dev
|
|
31
|
+
gem install pg -v '1.1.4'
|
|
32
|
+
|
|
33
|
+
#Redis-Server
|
|
34
|
+
sudo apt-get install build-essential tcl
|
|
35
|
+
cd /tmp
|
|
36
|
+
curl -O http://download.redis.io/redis-stable.tar.gz
|
|
37
|
+
tar xzvf redis-stable.tar.gz
|
|
38
|
+
cd redis-stable
|
|
39
|
+
make
|
|
40
|
+
sudo make install
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
user=$1
|
|
2
|
+
password=$2
|
|
3
|
+
echo "Create DB" &&
|
|
4
|
+
sudo -i -u postgres -H sh -c "createuser $user;
|
|
5
|
+
createdb $user;
|
|
6
|
+
psql -c 'ALTER USER $user WITH ENCRYPTED PASSWORD '\'$password''\'' ';
|
|
7
|
+
psql -c 'ALTER DATABASE $user OWNER TO $user';
|
|
8
|
+
psql -c 'GRANT ALL PRIVILEGES ON DATABASE $user to $user';
|
|
9
|
+
psql -c '\l';" &&
|
|
10
|
+
echo "Base de datos creada correctamente"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
require 'optparse'
|
|
4
|
+
arg1, *FILES = ARGV
|
|
5
|
+
@base_path = Dir.pwd
|
|
6
|
+
|
|
7
|
+
@base_remote_path = '/home/LBG/'
|
|
8
|
+
@remote_ip = '186.64.120.100'
|
|
9
|
+
@remote_port = 22222
|
|
10
|
+
@remote_user = 'root'
|
|
11
|
+
@remote_password = 'NpdlP1oT4976KIL8ea'
|
|
12
|
+
|
|
13
|
+
repos = [Hash.new]
|
|
14
|
+
repos.push({folder_development: 'adminbodega',
|
|
15
|
+
folder_production: 'adminbodega'
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
repos.push({folder_development: 'operario',
|
|
19
|
+
folder_production: 'operario'
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
repos.push({folder_development: 'clientebodega',
|
|
23
|
+
folder_production: 'clientebodega'
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
repos.push({folder_development: 'server',
|
|
27
|
+
folder_production: 'server'
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
def deploy (folder)
|
|
31
|
+
folder_development = folder[:folder_development]
|
|
32
|
+
folder_production = folder[:folder_production]
|
|
33
|
+
Dir.chdir("#{@base_path}/production")
|
|
34
|
+
system("rm -R #{folder_production}")
|
|
35
|
+
system("mkdir #{folder_production}")
|
|
36
|
+
Dir.chdir("#{@base_path}/#{folder_development}")
|
|
37
|
+
system("ruby production.rb")
|
|
38
|
+
system("cp -R production/ #{@base_path}/production/#{folder_production}")
|
|
39
|
+
#system("cp server.sh #{@base_path}/production/#{folder_production}/production")
|
|
40
|
+
scp(folder_production)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def scp (folder)
|
|
44
|
+
|
|
45
|
+
Dir.chdir("#{@base_path}/production")
|
|
46
|
+
commrm = "sshpass -p #{@remote_password} ssh -p #{@remote_port} #{@remote_user}@#{@remote_ip} 'rm -r #{@base_remote_path}#{folder}' "
|
|
47
|
+
puts commrm
|
|
48
|
+
system(commrm)
|
|
49
|
+
comm = "sshpass -p #{@remote_password} scp -P #{@remote_port} -r #{folder} #{@remote_user}@#{@remote_ip}:#{@base_remote_path}"
|
|
50
|
+
puts comm
|
|
51
|
+
system(comm)
|
|
52
|
+
commsystem = "sshpass -p #{@remote_password} ssh -p #{@remote_port} #{@remote_user}@#{@remote_ip} '#{@base_remote_path}restart.sh' "
|
|
53
|
+
puts commsystem
|
|
54
|
+
system(commsystem)
|
|
55
|
+
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
case arg1
|
|
59
|
+
|
|
60
|
+
when "deploy"
|
|
61
|
+
FILES.each do |arg|
|
|
62
|
+
deploy(repos[arg.to_i])
|
|
63
|
+
end
|
|
64
|
+
else
|
|
65
|
+
puts "Nada"
|
|
66
|
+
end
|