meroku 0.1.36 → 2.0.0
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 +4 -4
- data/.env.example +2 -0
- data/.gitignore +10 -0
- data/.travis.yml +5 -0
- data/Gemfile +6 -0
- data/Guardfile +58 -0
- data/LICENSE.txt +21 -0
- data/README.md +16 -0
- data/Rakefile +10 -0
- data/bin/meroku +6 -0
- data/exe/meroku +6 -2
- data/lib/meroku.rb +24 -15
- data/lib/meroku/infrastructure.rb +24 -0
- data/lib/meroku/version.rb +1 -1
- data/meroku.gemspec +40 -0
- metadata +111 -81
- data/lib/meroku/app.rb +0 -12
- data/lib/meroku/app/collaborator.rb +0 -18
- data/lib/meroku/application_record.rb +0 -8
- data/lib/meroku/apps_controller.rb +0 -112
- data/lib/meroku/cli.rb +0 -8
- data/lib/meroku/cli/certs.rb +0 -30
- data/lib/meroku/cli/certs.rb~ +0 -14
- data/lib/meroku/cli/cli.rb +0 -97
- data/lib/meroku/cli/config.rb +0 -111
- data/lib/meroku/cli/domains.rb +0 -69
- data/lib/meroku/cli/keys.rb +0 -38
- data/lib/meroku/cli/remote.rb +0 -13
- data/lib/meroku/cli/remote.rb~ +0 -12
- data/lib/meroku/cli/server.rb +0 -163
- data/lib/meroku/cli/server.rb~ +0 -4
- data/lib/meroku/config.rb +0 -6
- data/lib/meroku/configs_controller.rb +0 -62
- data/lib/meroku/core_ext.rb +0 -30
- data/lib/meroku/domain.rb +0 -6
- data/lib/meroku/domains_controller.rb +0 -83
- data/lib/meroku/error.rb +0 -6
- data/lib/meroku/key.rb +0 -11
- data/lib/meroku/keys_controller.rb +0 -82
- data/lib/meroku/sanitychecks.rb +0 -19
- data/lib/meroku/user.rb +0 -23
- data/lib/meroku/util.rb +0 -434
data/lib/meroku/cli/keys.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
module Meroku
|
2
|
-
module CLI
|
3
|
-
|
4
|
-
require 'action_view'
|
5
|
-
include ActionView::Helpers::TextHelper
|
6
|
-
class Keys < Thor
|
7
|
-
include Meroku::Util
|
8
|
-
include ActionView::Helpers::TextHelper
|
9
|
-
|
10
|
-
desc "add", "Upload your public key (~/.ssh/id_rsa.pub) to meroku"
|
11
|
-
def add
|
12
|
-
require 'rest-client'
|
13
|
-
require 'rack'
|
14
|
-
require 'action_view'
|
15
|
-
|
16
|
-
if !public_key_exists?
|
17
|
-
puts "Public key not found at ~/.ssh/id_rsa.pub"
|
18
|
-
puts "see https://git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key"
|
19
|
-
return
|
20
|
-
end
|
21
|
-
key = IO.read("#{Dir.home}/.ssh/id_rsa.pub")
|
22
|
-
resp = RestClient.post 'https://www.meroku.com/meroku/keys.json', { key: key, authentication: { token: cli_token } }
|
23
|
-
puts "Added #{truncate(JSON.parse(resp)["data"]["key"])}. (#{resp.code} #{Rack::Utils::HTTP_STATUS_CODES[resp.code]})"
|
24
|
-
rescue RestClient::Exception => e
|
25
|
-
out_str = "ERROR"
|
26
|
-
|
27
|
-
if valid_json?(e.response) && JSON.parse(e.response)["errors"].size >= 1
|
28
|
-
out_str += " "
|
29
|
-
out_str += JSON.parse(e.response)["errors"].map { |e| e.join(' ') }.to_sentence
|
30
|
-
end
|
31
|
-
out_str += " (#{e.to_s}) "
|
32
|
-
puts out_str
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
data/lib/meroku/cli/remote.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'action_view'
|
2
|
-
include ActionView::Helpers::TextHelper
|
3
|
-
|
4
|
-
class Remote < Thor
|
5
|
-
include ::Meroku::Util
|
6
|
-
|
7
|
-
desc "add APPNAME", "adds a git remote for app named APPNAME"
|
8
|
-
def add(name)
|
9
|
-
`git remote remove meroku 2>&1 >/dev/null`
|
10
|
-
`git remote add meroku u#{cli_user_id}@www.meroku.com:#{name}.git 2>&1 >/dev/null`
|
11
|
-
puts "Added git remote meroku ( u#{cli_user_id}@www.meroku.com:#{name}.git )"
|
12
|
-
end
|
13
|
-
end
|
data/lib/meroku/cli/remote.rb~
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
class Remote < Thor
|
4
|
-
include ::Meroku::Util
|
5
|
-
|
6
|
-
desc "add APPNAME", "adds a git remote for app named APPNAME"
|
7
|
-
def add(name)
|
8
|
-
`git remote remove meroku 2>&1 >/dev/null`
|
9
|
-
`git remote add meroku u#{cli_user_id}@www.meroku.com:#{name}.git 2>&1 >/dev/null`
|
10
|
-
puts "Added git remote meroku ( u#{cli_user_id}@www.meroku.com:#{name}.git )"
|
11
|
-
end
|
12
|
-
end
|
data/lib/meroku/cli/server.rb
DELETED
@@ -1,163 +0,0 @@
|
|
1
|
-
module Meroku
|
2
|
-
module CLI
|
3
|
-
require 'action_view'
|
4
|
-
include ActionView::Helpers::TextHelper
|
5
|
-
|
6
|
-
class Server < Thor
|
7
|
-
include Meroku::Sanitychecks
|
8
|
-
include Meroku::Util
|
9
|
-
|
10
|
-
desc "_downall", "Wip"
|
11
|
-
def _downall()
|
12
|
-
admin_secrets_required
|
13
|
-
ec2_client.terminate_instances({ instance_ids: [ production_servers.first ] }) if !production_servers.empty?
|
14
|
-
end
|
15
|
-
|
16
|
-
desc "revert", "Puts server in state it was in when it was started and installed"
|
17
|
-
def revert()
|
18
|
-
puts `ssh -o 'StrictHostKeyChecking=no' -i ~/crypto/meroku/meroku.id_rsa ubuntu@34.239.241.218 'cd ~/meroku/ && git pull'`
|
19
|
-
puts `ssh -o 'StrictHostKeyChecking=no' -i ~/crypto/meroku/meroku.id_rsa ubuntu@34.239.241.218 'sudo ~/meroku/rails_app/script/revert'`
|
20
|
-
end
|
21
|
-
|
22
|
-
desc "backup", "Backup databases in production server"
|
23
|
-
def backup()
|
24
|
-
admin_secrets_required
|
25
|
-
timestamp=Time.now.to_i
|
26
|
-
aws_exports="AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=#{ENV['AWS_ACCESS_KEY_ID']} AWS_SECRET_ACCESS_KEY=#{ENV['AWS_SECRET_ACCESS_KEY']}"
|
27
|
-
|
28
|
-
if production_servers.empty?
|
29
|
-
puts "Not doing backup - No production servers"
|
30
|
-
return
|
31
|
-
end
|
32
|
-
|
33
|
-
# DBs
|
34
|
-
ssh3("34.239.241.218","PGPASSWORD=bitnami pg_dumpall -U postgres -f /tmp/#{timestamp}.postgres")
|
35
|
-
ssh3("34.239.241.218","mysqldump -uroot -pbitnami --flush-privileges --all-databases > /tmp/#{timestamp}.mysql")
|
36
|
-
ssh3("34.239.241.218","gzip -fv -9 /tmp/#{timestamp}.postgres /tmp/#{timestamp}.mysql")
|
37
|
-
ssh("34.239.241.218","#{aws_exports} aws s3 cp /tmp/#{timestamp}.postgres.gz s3://meroku-database-backups/")
|
38
|
-
ssh("34.239.241.218","#{aws_exports} aws s3 cp /tmp/#{timestamp}.postgres.gz s3://meroku-database-backups/postgres.gz")
|
39
|
-
ssh("34.239.241.218","#{aws_exports} aws s3 cp /tmp/#{timestamp}.mysql.gz s3://meroku-database-backups/")
|
40
|
-
ssh("34.239.241.218","#{aws_exports} aws s3 cp /tmp/#{timestamp}.mysql.gz s3://meroku-database-backups/mysql.gz")
|
41
|
-
|
42
|
-
# HOME DIRS
|
43
|
-
ssh3("34.239.241.218","sudo rm -f /tmp/home_dirs.tgz || true; sudo tar --exclude='/home/bitnami' -zcvf /tmp/home_dirs.gz /home/*")
|
44
|
-
ssh("34.239.241.218","#{aws_exports} aws s3 cp /tmp/home_dirs.gz s3://meroku-database-backups/")
|
45
|
-
ssh("34.239.241.218","#{aws_exports} aws s3 cp s3://meroku-database-backups/home_dirs.gz s3://meroku-database-backups/#{timestamp}.home_dirs.gz")
|
46
|
-
|
47
|
-
# CLEANUP
|
48
|
-
ssh("34.239.241.218","sudo rm -f /tmp/*.mysql.gz /tmp/*.postgres.gz /tmp/home_dirs.gz")
|
49
|
-
end
|
50
|
-
|
51
|
-
desc "activate", "Assigns production elastic ip to standby node"
|
52
|
-
def activate()
|
53
|
-
admin_secrets_required
|
54
|
-
# Terminate server with production ip
|
55
|
-
if !production_servers.empty?
|
56
|
-
ec2_client.terminate_instances({ instance_ids: [ production_servers.first ] })
|
57
|
-
end
|
58
|
-
|
59
|
-
standby_servers = unused_servers
|
60
|
-
abort "Too many unused servers (#{standby_servers.size})" if standby_servers.size > 1
|
61
|
-
|
62
|
-
ec2_client.associate_address(
|
63
|
-
{
|
64
|
-
allocation_id: 'eipalloc-139f7823', # this is eip 34.239.241.218
|
65
|
-
instance_id: standby_servers.first
|
66
|
-
}
|
67
|
-
)
|
68
|
-
puts "Associated 34.239.241.218 with #{standby_servers.first}"
|
69
|
-
puts 'ping 34.239.241.218 -c 20'
|
70
|
-
puts `ping 34.239.241.218 -c 20`
|
71
|
-
puts `ssh -i ~/crypto/meroku/meroku.id_rsa -o "StrictHostKeyChecking=no" -v ubuntu@34.239.241.218 pwd`
|
72
|
-
# remove the next 3 lines later
|
73
|
-
ssh3("34.239.241.218","cat meroku/rails_app/tmp/pids/server.pid")
|
74
|
-
ssh3("34.239.241.218","kill -9 `cat meroku/rails_app/tmp/pids/server.pid`")
|
75
|
-
ssh3("34.239.241.218","cd meroku/rails_app; RAILS_SERVE_STATIC_FILES=1 SECRET_KEY_BASE=fixme rails s -e production -d -b 0.0.0.0 && sleep 5")
|
76
|
-
ssh3("34.239.241.218","sudo ls -la /opt/bitnami/nginx/conf/vhosts/") # for debugging
|
77
|
-
end
|
78
|
-
|
79
|
-
desc "install", "installs software needed to meroku work"
|
80
|
-
def install()
|
81
|
-
admin_secrets_required
|
82
|
-
ip = server_being_built
|
83
|
-
|
84
|
-
ssh2(ip,"sudo apt-add-repository ppa:git-core/ppa -y")
|
85
|
-
ssh2(ip,"sudo apt-get update -y")
|
86
|
-
ssh2(ip,"sudo apt-get install -yqq libyaml-dev libsqlite3-dev sqlite3 libgmp-dev libgdbm-dev")
|
87
|
-
ssh2(ip,"sudo apt-get install -yqq libncurses5-dev bison pkg-config libffi-dev")
|
88
|
-
ssh2(ip,"sudo apt-get install -yqq libgmp-dev libreadline6-dev libssl-dev libpq-dev libmysqlclient-dev jq awscli")
|
89
|
-
#ssh2(ip,"sudo apt-get install -yqq nodejs")
|
90
|
-
ssh2(ip,"sudo npm install -g yarn")
|
91
|
-
|
92
|
-
ssh2(ip,"sudo apt-get install git-core -y")
|
93
|
-
ssh2(ip,"sudo rm /opt/bitnami/git/bin/git")
|
94
|
-
ssh2(ip,"sudo ln -s /usr/bin/git /opt/bitnami/git/bin/git")
|
95
|
-
|
96
|
-
ssh2(ip,"sudo addgroup meroku;")
|
97
|
-
ssh2(ip,"sudo apt-get install emacs24-nox -y")
|
98
|
-
ssh2(ip,"git clone --quiet https://github.com/meroku/meroku.git")
|
99
|
-
|
100
|
-
ssh2(ip,"sudo mkdir /opt/githooks; sudo chmod 777 /opt/githooks")
|
101
|
-
ssh2(ip,'cp ~/meroku/misc/githook_post-receive /opt/githooks/post-receive')
|
102
|
-
ssh2(ip,'cp ~/meroku/misc/start_app /opt/githooks/start_app')
|
103
|
-
|
104
|
-
ssh2(ip,"sudo chmod 777 /opt/githooks/* ")
|
105
|
-
ssh2(ip,"sudo ln -s /usr/bin/install /bin/install")
|
106
|
-
|
107
|
-
aws_exports="AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=#{ENV['AWS_ACCESS_KEY_ID']} AWS_SECRET_ACCESS_KEY=#{ENV['AWS_SECRET_ACCESS_KEY']}"
|
108
|
-
|
109
|
-
# postgres / mysql restore happens here
|
110
|
-
ssh3(ip,"#{aws_exports} aws s3 cp s3://meroku-database-backups/postgres.gz /tmp/")
|
111
|
-
ssh3(ip,"#{aws_exports} aws s3 cp s3://meroku-database-backups/mysql.gz /tmp/")
|
112
|
-
ssh3(ip,"cd /tmp/ && gunzip postgres.gz && gunzip mysql.gz")
|
113
|
-
ssh3(ip,"PGPASSWORD=bitnami psql -U postgres -f /tmp/postgres")
|
114
|
-
ssh3(ip,"mysql -uroot -pbitnami < /tmp/mysql")
|
115
|
-
ssh3(ip,"sudo rm -f /tmp/mysql /tmp/postgres")
|
116
|
-
|
117
|
-
ssh2(ip,"sudo mkdir /opt/bitnami/nginx/keys/; ")
|
118
|
-
puts `scp -i ~/crypto/meroku/meroku.id_rsa ~/crypto/meroku/meroku_site_fullchain.pem ubuntu@#{ip}:/home/bitnami/`
|
119
|
-
ssh2(ip, 'sudo mv ~/meroku_site_fullchain.pem /opt/bitnami/nginx/keys/; ')
|
120
|
-
puts `scp -i ~/crypto/meroku/meroku.id_rsa ~/crypto/meroku/meroku_site_privkey.pem ubuntu@#{ip}:/home/bitnami/`
|
121
|
-
ssh2(ip,'sudo mv ~/meroku_site_privkey.pem /opt/bitnami/nginx/keys/; ')
|
122
|
-
|
123
|
-
ssh2(ip,"sudo cp meroku/misc/gemrc /etc/gemrc")
|
124
|
-
ssh2(ip,"cd meroku/rails_app; NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install")
|
125
|
-
|
126
|
-
ssh3(ip,"cd meroku/rails_app; RAILS_ENV=production rake nginx:rebuild")
|
127
|
-
|
128
|
-
# create unix users
|
129
|
-
ssh3(ip,"cd meroku/rails_app; RAILS_ENV=production rake unix_users:rebuild")
|
130
|
-
# create unix users directories
|
131
|
-
ssh3(ip,"#{aws_exports} aws s3 cp s3://meroku-database-backups/home_dirs.gz /tmp/")
|
132
|
-
ssh3(ip,"#{aws_exports} cd /; sudo tar xzvf /tmp/home_dirs.gz")
|
133
|
-
ssh3(ip,"sudo rm -f /tmp/home_dirs.gz")
|
134
|
-
|
135
|
-
ssh3(ip,"cd meroku/rails_app; RAILS_ENV=production rake rvm:rebuild")
|
136
|
-
|
137
|
-
ssh3(ip,"cd meroku/rails_app; SECRET_KEY_BASE=fixme rake assets:precompile")
|
138
|
-
ssh3(ip,"cd meroku/rails_app; RAILS_SERVE_STATIC_FILES=1 SECRET_KEY_BASE=fixme rails s -e production -d -b 0.0.0.0 && sleep 5")
|
139
|
-
|
140
|
-
|
141
|
-
# start customer rails apps here wipwip
|
142
|
-
ssh3(ip,"cd meroku/rails_app; RAILS_ENV=production rake meroku:start_apps")
|
143
|
-
|
144
|
-
ssh3(ip,"sudo /opt/bitnami/ctlscript.sh stop apache")
|
145
|
-
ssh3(ip,"sudo /opt/bitnami/ctlscript.sh restart nginx")
|
146
|
-
ssh3(ip,"sudo ls -la /opt/bitnami/nginx/conf/vhosts/")
|
147
|
-
end
|
148
|
-
|
149
|
-
desc "start", "spins up an ubuntu server"
|
150
|
-
long_desc <<-LONGDESC
|
151
|
-
Spins up an ubuntu server with name tag "meroku",
|
152
|
-
with the production ip not yet assigned
|
153
|
-
LONGDESC
|
154
|
-
def start()
|
155
|
-
admin_secrets_required
|
156
|
-
terminate_unused_servers
|
157
|
-
instance_id = ec2_start_instance
|
158
|
-
ec2_tag_instance(instance_id)
|
159
|
-
ec2_await_boot(instance_id)
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
data/lib/meroku/cli/server.rb~
DELETED
data/lib/meroku/config.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
|
2
|
-
module Meroku
|
3
|
-
|
4
|
-
class ConfigsController < ApplicationController
|
5
|
-
skip_before_action :verify_authenticity_token, only: [:create, :destroy]
|
6
|
-
before_action :authenticate, only: [ :create, :index, :destroy ]
|
7
|
-
|
8
|
-
def index
|
9
|
-
configs = Meroku::App.last.configs.map { |x| "#{x.name}: #{x.value || 'nil'}" }.join("\n")
|
10
|
-
render json: {
|
11
|
-
"data": "#{configs}\n"
|
12
|
-
}
|
13
|
-
end
|
14
|
-
|
15
|
-
def create
|
16
|
-
@config = Meroku::Config.where(name: params["name"], app_id: @app_.id).try(:first)
|
17
|
-
if @config
|
18
|
-
# if variable exists, update its value
|
19
|
-
@config.update_attributes(value: params["value"])
|
20
|
-
else
|
21
|
-
# if it doesn't exist, create record
|
22
|
-
@config = Meroku::Config.new(
|
23
|
-
name: params["name"],
|
24
|
-
value: params["value"],
|
25
|
-
app_id: @app_.id
|
26
|
-
)
|
27
|
-
end
|
28
|
-
respond_to do |format|
|
29
|
-
if @config.save
|
30
|
-
format.json { render json: { data: @config } }
|
31
|
-
else
|
32
|
-
format.json { render json: { :errors => @config.errors }, status: :unprocessable_entity }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
## PATCH/PUT /keys/1
|
38
|
-
## PATCH/PUT /keys/1.json
|
39
|
-
#def update
|
40
|
-
# respond_to do |format|
|
41
|
-
# if @key.update(key_params)
|
42
|
-
# format.html { redirect_to @key, notice: 'Key was successfully updated.' }
|
43
|
-
# format.json { render :show, status: :ok, location: @key }
|
44
|
-
# else
|
45
|
-
# format.html { render :edit }
|
46
|
-
# format.json { render json: @key.errors, status: :unprocessable_entity }
|
47
|
-
# end
|
48
|
-
# end
|
49
|
-
#end
|
50
|
-
|
51
|
-
# DELETE /keys/1
|
52
|
-
# DELETE /keys/1.json
|
53
|
-
def destroy
|
54
|
-
@config = Meroku::Config.find_by_name(params["name"])
|
55
|
-
@config.destroy
|
56
|
-
respond_to do |format|
|
57
|
-
format.json { render json: { data: @config } }
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
end
|
data/lib/meroku/core_ext.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
class Array
|
2
|
-
# File activesupport/lib/active_support/core_ext/array/conversions.rb, line 59
|
3
|
-
def to_sentence(options = {})
|
4
|
-
options.assert_valid_keys(:words_connector, :two_words_connector, :last_word_connector, :locale)
|
5
|
-
|
6
|
-
default_connectors = {
|
7
|
-
:words_connector => ', ',
|
8
|
-
:two_words_connector => ' and ',
|
9
|
-
:last_word_connector => ', and '
|
10
|
-
}
|
11
|
-
if defined?(I18n)
|
12
|
-
i18n_connectors = I18n.translate(:'support.array', locale: options[:locale], default: {})
|
13
|
-
default_connectors.merge!(i18n_connectors)
|
14
|
-
end
|
15
|
-
options = default_connectors.merge!(options)
|
16
|
-
|
17
|
-
case length
|
18
|
-
when 0
|
19
|
-
''
|
20
|
-
when 1
|
21
|
-
self[0].to_s.dup
|
22
|
-
when 2
|
23
|
-
"#{self[0]}#{options[:two_words_connector]}#{self[1]}"
|
24
|
-
else
|
25
|
-
"#{self[0...-1].join(options[:words_connector])}#{options[:last_word_connector]}#{self[-1]}"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
|
data/lib/meroku/domain.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
|
2
|
-
module Meroku
|
3
|
-
|
4
|
-
class DomainsController < ApplicationController
|
5
|
-
#before_action :set_domain, only: [:show, :edit, :update, :destroy]
|
6
|
-
skip_before_action :verify_authenticity_token, only: [:create, :destroy]
|
7
|
-
before_action :authenticate, only: [ :create, :index, :destroy ]
|
8
|
-
|
9
|
-
## GET /keys
|
10
|
-
## GET /keys.json
|
11
|
-
def index
|
12
|
-
@domain_names = @app_.domains.pluck(:domain)
|
13
|
-
render json: { "data": @domain_names }
|
14
|
-
end
|
15
|
-
|
16
|
-
## GET /keys/1
|
17
|
-
## GET /keys/1.json
|
18
|
-
#def show
|
19
|
-
#end
|
20
|
-
#
|
21
|
-
## GET /keys/new
|
22
|
-
#def new
|
23
|
-
# @key = Key.new
|
24
|
-
#end
|
25
|
-
#
|
26
|
-
## GET /keys/1/edit
|
27
|
-
#def edit
|
28
|
-
#end
|
29
|
-
#
|
30
|
-
# POST /keys
|
31
|
-
# POST /keys.json
|
32
|
-
def create
|
33
|
-
@domain = Meroku::Domain.new(
|
34
|
-
domain: params["domain"],
|
35
|
-
app_id: @app_.id
|
36
|
-
)
|
37
|
-
respond_to do |format|
|
38
|
-
if @domain.save
|
39
|
-
Meroku::Util.nginx_rebuild()
|
40
|
-
format.json { render json: { data: @domain } }
|
41
|
-
else
|
42
|
-
format.json { render json: { :errors => @domain.errors }, status: :unprocessable_entity }
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
#
|
47
|
-
## PATCH/PUT /keys/1
|
48
|
-
## PATCH/PUT /keys/1.json
|
49
|
-
#def update
|
50
|
-
# respond_to do |format|
|
51
|
-
# if @key.update(key_params)
|
52
|
-
# format.html { redirect_to @key, notice: 'Key was successfully updated.' }
|
53
|
-
# format.json { render :show, status: :ok, location: @key }
|
54
|
-
# else
|
55
|
-
# format.html { render :edit }
|
56
|
-
# format.json { render json: @key.errors, status: :unprocessable_entity }
|
57
|
-
# end
|
58
|
-
# end
|
59
|
-
#end
|
60
|
-
|
61
|
-
# DELETE /keys/1
|
62
|
-
# DELETE /keys/1.json
|
63
|
-
def destroy
|
64
|
-
@domain = Meroku::Domain.find_by_domain(params["domain"])
|
65
|
-
@domain.destroy
|
66
|
-
Meroku::Util.nginx_rebuild()
|
67
|
-
respond_to do |format|
|
68
|
-
format.json { render json: { data: @domain } }
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
private
|
73
|
-
## Use callbacks to share common setup or constraints between actions.
|
74
|
-
#def set_key
|
75
|
-
# @key = Key.find(params[:id])
|
76
|
-
#end
|
77
|
-
#
|
78
|
-
## Never trust parameters from the scary internet, only allow the white list through.
|
79
|
-
#def key_params
|
80
|
-
# params.require(:key).permit(:key, :original_filename, :user_id)
|
81
|
-
#end
|
82
|
-
end
|
83
|
-
end
|
data/lib/meroku/error.rb
DELETED