superhosting 0.0.1 → 0.0.2
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 +8 -8
- data/.gitignore +1 -0
- data/.travis.yml +13 -0
- data/Gemfile.lock +43 -7
- data/LICENSE.txt +4 -1
- data/Vagrantfile +6 -3
- data/bin/sx +6 -2
- data/bootstrap/etc/sx/default_model +1 -0
- data/bootstrap/etc/sx/models/base/container/docker/command +1 -0
- data/bootstrap/etc/sx/models/base/container/docker/user.erb +1 -0
- data/bootstrap/etc/sx/models/base/container/docker/volume.erb +2 -0
- data/bootstrap/etc/sx/models/bitrix_l/inherit +3 -0
- data/bootstrap/etc/sx/models/bitrix_m/inherit +3 -0
- data/bootstrap/etc/sx/models/bitrix_xl/inherit +3 -0
- data/bootstrap/etc/sx/models/common_bitrix/abstract +1 -0
- data/bootstrap/etc/sx/models/common_bitrix/container/mux +1 -0
- data/bootstrap/etc/sx/models/common_bitrix/inherit +1 -0
- data/bootstrap/etc/sx/models/common_bitrix/site/php/admin_value +2 -0
- data/bootstrap/etc/sx/models/common_bitrix/site/php/flag +1 -0
- data/bootstrap/etc/sx/models/common_bitrix/site/php/value +6 -0
- data/bootstrap/etc/sx/models/common_fcgi/abstract +1 -0
- data/bootstrap/etc/sx/models/common_fcgi/container/config.rb +6 -0
- data/bootstrap/etc/sx/models/common_fcgi/container/config_templates/supervisord.conf.erb +16 -0
- data/bootstrap/etc/sx/models/common_fcgi/container/docker/image +1 -0
- data/bootstrap/etc/sx/models/common_fcgi/container/docker/user.erb +1 -0
- data/bootstrap/etc/sx/models/common_fcgi/container/system_users +1 -0
- data/bootstrap/etc/sx/models/common_fcgi/site/config.rb +4 -0
- data/bootstrap/etc/sx/models/common_fcgi/site/config_templates/nginx_vhost.erb +21 -0
- data/bootstrap/etc/sx/models/common_joomla/abstract +1 -0
- data/bootstrap/etc/sx/models/common_joomla/site/php/flag +1 -0
- data/bootstrap/etc/sx/models/common_joomla/site/php/value +2 -0
- data/bootstrap/etc/sx/models/common_joomla_v2/abstract +1 -0
- data/bootstrap/etc/sx/models/common_joomla_v2/container/mux +1 -0
- data/bootstrap/etc/sx/models/common_joomla_v2/inherit +2 -0
- data/bootstrap/etc/sx/models/common_joomla_v3/abstract +1 -0
- data/bootstrap/etc/sx/models/common_joomla_v3/container/mux +1 -0
- data/bootstrap/etc/sx/models/common_joomla_v3/inherit +2 -0
- data/bootstrap/etc/sx/models/common_l/abstract +1 -0
- data/bootstrap/etc/sx/models/common_l/container/docker/blkio_weight +1 -0
- data/bootstrap/etc/sx/models/common_l/container/docker/cpu_period +1 -0
- data/bootstrap/etc/sx/models/common_l/container/docker/cpu_quota +1 -0
- data/bootstrap/etc/sx/models/common_l/container/docker/cpu_shares +1 -0
- data/bootstrap/etc/sx/models/common_l/container/docker/memory +1 -0
- data/bootstrap/etc/sx/models/common_l/container/docker/memory_swap +1 -0
- data/bootstrap/etc/sx/models/common_m/abstract +1 -0
- data/bootstrap/etc/sx/models/common_m/container/docker/blkio_weight +1 -0
- data/bootstrap/etc/sx/models/common_m/container/docker/cpu_period +1 -0
- data/bootstrap/etc/sx/models/common_m/container/docker/cpu_quota +1 -0
- data/bootstrap/etc/sx/models/common_m/container/docker/cpu_shares +1 -0
- data/bootstrap/etc/sx/models/common_m/container/docker/memory +1 -0
- data/bootstrap/etc/sx/models/common_m/container/docker/memory_swap +1 -0
- data/bootstrap/etc/sx/models/common_mail/abstract +1 -0
- data/bootstrap/etc/sx/models/common_mail/container/config.rb +12 -0
- data/bootstrap/etc/sx/models/common_mail/container/config_templates/postfwd_rules.erb +12 -0
- data/bootstrap/etc/sx/models/common_mail/container/config_templates/ssmtp.conf.erb +6 -0
- data/bootstrap/etc/sx/models/common_mail/container/mail/daily_limit +1 -0
- data/bootstrap/etc/sx/models/common_mail/container/mail/enabled +1 -0
- data/bootstrap/etc/sx/models/common_mail/container/mail/hourly_limit +1 -0
- data/bootstrap/etc/sx/models/common_php_l/abstract +1 -0
- data/bootstrap/etc/sx/models/common_php_l/container/mail/daily_limit +1 -0
- data/bootstrap/etc/sx/models/common_php_l/container/mail/hourly_limit +1 -0
- data/bootstrap/etc/sx/models/common_php_l/inherit +1 -0
- data/bootstrap/etc/sx/models/common_php_l/site/php/pm +1 -0
- data/bootstrap/etc/sx/models/common_php_l/site/php/pm_max_children +1 -0
- data/bootstrap/etc/sx/models/common_php_l/site/php/pm_max_spare_servers +1 -0
- data/bootstrap/etc/sx/models/common_php_l/site/php/pm_min_spare_servers +1 -0
- data/bootstrap/etc/sx/models/common_php_l/site/php/pm_start_servers +1 -0
- data/bootstrap/etc/sx/models/common_php_m/abstract +1 -0
- data/bootstrap/etc/sx/models/common_php_m/inherit +1 -0
- data/bootstrap/etc/sx/models/common_php_m/site/php/pm_max_children +1 -0
- data/bootstrap/etc/sx/models/common_php_s/abstract +1 -0
- data/bootstrap/etc/sx/models/common_php_s/inherit +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/abstract +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/container/mail/daily_limit +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/container/mail/hourly_limit +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/inherit +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/site/php/pm +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_max_children +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_max_spare_servers +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_min_spare_servers +1 -0
- data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_start_servers +1 -0
- data/bootstrap/etc/sx/models/common_php_xs/abstract +1 -0
- data/bootstrap/etc/sx/models/common_php_xs/container/mail/daily_limit +1 -0
- data/bootstrap/etc/sx/models/common_php_xs/container/mail/hourly_limit +1 -0
- data/bootstrap/etc/sx/models/common_php_xs/inherit +1 -0
- data/bootstrap/etc/sx/models/common_php_xs/site/php/pm_max_children +1 -0
- data/bootstrap/etc/sx/models/common_s/abstract +1 -0
- data/bootstrap/etc/sx/models/common_s/container/docker/blkio_weight +1 -0
- data/bootstrap/etc/sx/models/common_s/container/docker/cpu_period +1 -0
- data/bootstrap/etc/sx/models/common_s/container/docker/cpu_quota +1 -0
- data/bootstrap/etc/sx/models/common_s/container/docker/cpu_shares +1 -0
- data/bootstrap/etc/sx/models/common_s/container/docker/memory +1 -0
- data/bootstrap/etc/sx/models/common_s/container/docker/memory_swap +1 -0
- data/bootstrap/etc/sx/models/common_symfony/abstract +1 -0
- data/bootstrap/etc/sx/models/common_symfony/container/mux +1 -0
- data/bootstrap/etc/sx/models/common_symfony/container/system_users +1 -0
- data/bootstrap/etc/sx/models/common_symfony/inherit +1 -0
- data/bootstrap/etc/sx/models/common_symfony/site/php/flag +3 -0
- data/bootstrap/etc/sx/models/common_symfony/site/php/user +1 -0
- data/bootstrap/etc/sx/models/common_symfony/site/use_apache +1 -0
- data/bootstrap/etc/sx/models/common_xl/abstract +1 -0
- data/bootstrap/etc/sx/models/common_xl/container/docker/blkio_weight +1 -0
- data/bootstrap/etc/sx/models/common_xl/container/docker/cpu_shares +1 -0
- data/bootstrap/etc/sx/models/common_xl/container/docker/memory +1 -0
- data/bootstrap/etc/sx/models/common_xl/container/docker/memory_swap +1 -0
- data/bootstrap/etc/sx/models/common_xs/abstract +1 -0
- data/bootstrap/etc/sx/models/common_xs/container/docker/blkio_weight +1 -0
- data/bootstrap/etc/sx/models/common_xs/container/docker/cpu_period +1 -0
- data/bootstrap/etc/sx/models/common_xs/container/docker/cpu_quota +1 -0
- data/bootstrap/etc/sx/models/common_xs/container/docker/cpu_shares +1 -0
- data/bootstrap/etc/sx/models/common_xs/container/docker/memory +1 -0
- data/bootstrap/etc/sx/models/common_xs/container/docker/memory_swap +1 -0
- data/bootstrap/etc/sx/models/fcgi_l/inherit +3 -0
- data/bootstrap/etc/sx/models/fcgi_m/inherit +3 -0
- data/bootstrap/etc/sx/models/fcgi_s/inherit +3 -0
- data/bootstrap/etc/sx/models/fcgi_xl/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v2_l/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v2_m/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v2_s/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v2_xs/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v3_l/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v3_m/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v3_s/inherit +3 -0
- data/bootstrap/etc/sx/models/joomla_v3_xs/inherit +3 -0
- data/bootstrap/etc/sx/models/symfony_l/inherit +3 -0
- data/bootstrap/etc/sx/models/symfony_m/inherit +3 -0
- data/bootstrap/etc/sx/models/symfony_xl/inherit +3 -0
- data/bootstrap/etc/sx/models/test/container/config.rb +4 -0
- data/bootstrap/etc/sx/models/test/container/config_templates/supervisord.conf.erb +16 -0
- data/bootstrap/etc/sx/models/test/container/docker/blkio_weight +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/command +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/cpu_period +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/cpu_quota +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/cpu_shares +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/image +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/memory +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/memory_swap +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/user.erb +1 -0
- data/bootstrap/etc/sx/models/test/container/docker/volume.erb +2 -0
- data/bootstrap/etc/sx/models/test/container/system_users +1 -0
- data/bootstrap/etc/sx/models/test/site/config.rb +4 -0
- data/bootstrap/etc/sx/models/test/site/config_templates/nginx_vhost.erb +21 -0
- data/bootstrap/etc/sx/models/test_with_mux/container/mux +1 -0
- data/bootstrap/etc/sx/models/test_with_mux/inherit +1 -0
- data/bootstrap/etc/sx/muxs/base/docker/command +1 -0
- data/bootstrap/etc/sx/muxs/php-5.3/container/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/php-5.3/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/php-5.3/inherit +2 -0
- data/bootstrap/etc/sx/muxs/php-5.5/container/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/php-5.5/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/php-5.5/inherit +2 -0
- data/bootstrap/etc/sx/muxs/php-5.6/container/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/php-5.6/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/php-5.6/inherit +2 -0
- data/bootstrap/etc/sx/muxs/php/abstract +1 -0
- data/bootstrap/etc/sx/muxs/php/docker/pid +1 -0
- data/bootstrap/etc/sx/muxs/php/docker/privileged +1 -0
- data/bootstrap/etc/sx/muxs/php/docker/volume +3 -0
- data/bootstrap/etc/sx/muxs/php/site/config.rb +10 -0
- data/bootstrap/etc/sx/muxs/php/site/config_templates/apache_vhost.erb +26 -0
- data/bootstrap/etc/sx/muxs/php/site/config_templates/nginx_vhost.erb +39 -0
- data/bootstrap/etc/sx/muxs/php/site/config_templates/php_fpm_pool.erb +22 -0
- data/bootstrap/etc/sx/muxs/php/site/php/pm +1 -0
- data/bootstrap/etc/sx/muxs/php/site/php/pm_max_children +1 -0
- data/bootstrap/etc/sx/muxs/php/site/use_apache +1 -0
- data/bootstrap/etc/sx/muxs/test/container/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/test/docker/command +1 -0
- data/bootstrap/etc/sx/muxs/test/docker/image +1 -0
- data/bootstrap/etc/sx/muxs/test/inherit +1 -0
- data/bootstrap/etc/sx/password_strength +1 -0
- data/bootstrap/etc/sx/smtp_hostname +1 -0
- data/dockerfile/almost_base +19 -0
- data/dockerfile/base +18 -0
- data/dockerfile/mux +6 -0
- data/lib/superhosting.rb +39 -5
- data/lib/superhosting/base.rb +15 -21
- data/lib/superhosting/cli/base.rb +56 -40
- data/lib/superhosting/cli/cmd/admin_add.rb +5 -0
- data/lib/superhosting/cli/cmd/admin_container_list.rb +4 -0
- data/lib/superhosting/cli/cmd/admin_list.rb +11 -0
- data/lib/superhosting/cli/cmd/admin_passwd.rb +4 -0
- data/lib/superhosting/cli/cmd/container_admin_list.rb +4 -0
- data/lib/superhosting/cli/cmd/container_inspect.rb +11 -0
- data/lib/superhosting/cli/cmd/container_list.rb +18 -0
- data/lib/superhosting/cli/cmd/container_reconfigure.rb +11 -0
- data/lib/superhosting/cli/cmd/container_rename.rb +16 -0
- data/lib/superhosting/cli/cmd/model_list.rb +11 -0
- data/lib/superhosting/cli/cmd/{container_reconfig.rb → model_reconfigure.rb} +1 -1
- data/lib/superhosting/cli/cmd/model_tree.rb +30 -0
- data/lib/superhosting/cli/cmd/model_update.rb +11 -0
- data/lib/superhosting/cli/cmd/mux_reconfigure.rb +11 -0
- data/lib/superhosting/cli/cmd/repair.rb +8 -0
- data/lib/superhosting/cli/cmd/site_container.rb +15 -0
- data/lib/superhosting/cli/cmd/site_inspect.rb +11 -0
- data/lib/superhosting/cli/cmd/site_list.rb +35 -0
- data/lib/superhosting/cli/cmd/site_name.rb +15 -0
- data/lib/superhosting/cli/cmd/site_reconfigure.rb +11 -0
- data/lib/superhosting/cli/cmd/site_rename.rb +4 -0
- data/lib/superhosting/cli/cmd/user_add.rb +11 -5
- data/lib/superhosting/cli/cmd/user_change.rb +12 -6
- data/lib/superhosting/cli/cmd/user_list.rb +7 -0
- data/lib/superhosting/cli/cmd/user_passwd.rb +9 -0
- data/lib/superhosting/composite_mapper.rb +12 -0
- data/lib/superhosting/composite_mapper/base.rb +17 -0
- data/lib/superhosting/composite_mapper/container.rb +9 -0
- data/lib/superhosting/composite_mapper/site.rb +13 -0
- data/lib/superhosting/config/net_status.yml +122 -0
- data/lib/superhosting/config_executor.rb +12 -0
- data/lib/superhosting/{script_executor → config_executor}/base.rb +6 -5
- data/lib/superhosting/config_executor/container.rb +69 -0
- data/lib/superhosting/config_executor/site.rb +18 -0
- data/lib/superhosting/controller/admin.rb +84 -4
- data/lib/superhosting/controller/admin/container.rb +62 -2
- data/lib/superhosting/controller/base.rb +18 -0
- data/lib/superhosting/controller/container.rb +185 -122
- data/lib/superhosting/controller/container/admin.rb +25 -3
- data/lib/superhosting/controller/container/states.rb +296 -0
- data/lib/superhosting/controller/model.rb +62 -0
- data/lib/superhosting/controller/mux.rb +88 -0
- data/lib/superhosting/controller/mysql.rb +2 -2
- data/lib/superhosting/controller/site.rb +217 -72
- data/lib/superhosting/controller/site/alias.rb +32 -6
- data/lib/superhosting/controller/site/states.rb +41 -0
- data/lib/superhosting/controller/user.rb +233 -4
- data/lib/superhosting/docker_api.rb +170 -6
- data/lib/superhosting/helper/cmd.rb +40 -0
- data/lib/superhosting/helper/config.rb +80 -0
- data/lib/superhosting/helper/file.rb +56 -0
- data/lib/superhosting/helper/i18n.rb +13 -0
- data/lib/superhosting/helper/logger.rb +136 -0
- data/lib/superhosting/helper/states.rb +69 -0
- data/lib/superhosting/helpers.rb +5 -21
- data/lib/superhosting/mapper_inheritance/base.rb +16 -0
- data/lib/superhosting/mapper_inheritance/model.rb +96 -0
- data/lib/superhosting/mapper_inheritance/mux.rb +49 -0
- data/lib/superhosting/patches/path_mapper/dir_node.rb +23 -0
- data/lib/superhosting/patches/path_mapper/file_node.rb +47 -0
- data/lib/superhosting/patches/path_mapper/null_node.rb +35 -0
- data/lib/superhosting/patches/string/punycode.rb +21 -0
- data/lib/superhosting/version.rb +1 -1
- data/provision/bootstrap.sh +11 -0
- data/provision/docker.sh +25 -0
- data/provision/pam_docker.sh +5 -0
- data/{bootstrap.sh → provision/vagrant.sh} +5 -8
- data/superhosting.gemspec +14 -3
- metadata +368 -12
- data/lib/superhosting/script_executor/container.rb +0 -36
- data/lib/superhosting/script_executor/site.rb +0 -13
|
@@ -2,7 +2,25 @@ module Superhosting
|
|
|
2
2
|
module Cli
|
|
3
3
|
module Cmd
|
|
4
4
|
class ContainerList < Base
|
|
5
|
+
option :state,
|
|
6
|
+
:long => '--state',
|
|
7
|
+
:boolean => true
|
|
5
8
|
|
|
9
|
+
option :json,
|
|
10
|
+
:long => '--json',
|
|
11
|
+
:boolean => true
|
|
12
|
+
|
|
13
|
+
def self.after_action(data, config)
|
|
14
|
+
data.each do |k,v|
|
|
15
|
+
if config[:state]
|
|
16
|
+
self.info("#{k} #{v[:state]}")
|
|
17
|
+
elsif config[:json]
|
|
18
|
+
self.info(name: k, state: v[:state])
|
|
19
|
+
else
|
|
20
|
+
self.info(k)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
6
24
|
end
|
|
7
25
|
end
|
|
8
26
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Superhosting
|
|
2
|
+
module Cli
|
|
3
|
+
module Cmd
|
|
4
|
+
class ModelTree < Base
|
|
5
|
+
class << self
|
|
6
|
+
def has_required_param?
|
|
7
|
+
true
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def after_action(data, config)
|
|
11
|
+
def show_tree(node, type='model')
|
|
12
|
+
node.each do |k, hash|
|
|
13
|
+
self.info("#{"#{type}: " if type == 'mux'}#{k.name}")
|
|
14
|
+
self.indent_step
|
|
15
|
+
%w(mux model).each do |type|
|
|
16
|
+
(hash[type] || []).each {|v| show_tree(v, type) } if !hash[type].nil? and !hash[type].empty?
|
|
17
|
+
end
|
|
18
|
+
self.indent_step_back
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
old = self.indent
|
|
23
|
+
show_tree(data)
|
|
24
|
+
self.indent = old
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Superhosting
|
|
2
|
+
module Cli
|
|
3
|
+
module Cmd
|
|
4
|
+
class SiteList < Base
|
|
5
|
+
option :container_name,
|
|
6
|
+
:short => '-c NAME',
|
|
7
|
+
:long => '--container NAME',
|
|
8
|
+
:required => false
|
|
9
|
+
|
|
10
|
+
option :state,
|
|
11
|
+
:long => '--state',
|
|
12
|
+
:boolean => true
|
|
13
|
+
|
|
14
|
+
option :json,
|
|
15
|
+
:long => '--json',
|
|
16
|
+
:boolean => true
|
|
17
|
+
|
|
18
|
+
def self.after_action(data, config)
|
|
19
|
+
data.each do |k,v|
|
|
20
|
+
output = []
|
|
21
|
+
output << v[:container] unless config[:container_name]
|
|
22
|
+
output << k
|
|
23
|
+
output << v[:state] if config[:state]
|
|
24
|
+
|
|
25
|
+
if config[:json]
|
|
26
|
+
self.info(name: k, state: v[:state], aliases: v[:aliases], container: v[:container])
|
|
27
|
+
else
|
|
28
|
+
self.info(output.join(' '))
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -2,19 +2,25 @@ module Superhosting
|
|
|
2
2
|
module Cli
|
|
3
3
|
module Cmd
|
|
4
4
|
class UserAdd < Base
|
|
5
|
-
option :
|
|
6
|
-
:
|
|
5
|
+
option :ftp_only,
|
|
6
|
+
:short => '-f',
|
|
7
|
+
:long => '--ftp-only',
|
|
7
8
|
:boolean => true
|
|
8
9
|
|
|
9
|
-
option :
|
|
10
|
-
:
|
|
11
|
-
:
|
|
10
|
+
option :ftp_dir,
|
|
11
|
+
:short => '-d',
|
|
12
|
+
:long => '--ftp-dir DIR'
|
|
12
13
|
|
|
13
14
|
option :container_name,
|
|
14
15
|
:short => '-c NAME',
|
|
15
16
|
:long => '--container NAME',
|
|
16
17
|
:required => true
|
|
17
18
|
|
|
19
|
+
option :generate,
|
|
20
|
+
:short => '-g',
|
|
21
|
+
:long => '--generate',
|
|
22
|
+
:boolean => true
|
|
23
|
+
|
|
18
24
|
def self.has_required_param?
|
|
19
25
|
true
|
|
20
26
|
end
|
|
@@ -2,18 +2,24 @@ module Superhosting
|
|
|
2
2
|
module Cli
|
|
3
3
|
module Cmd
|
|
4
4
|
class UserChange < Base
|
|
5
|
-
option :
|
|
6
|
-
:
|
|
5
|
+
option :ftp_only,
|
|
6
|
+
:short => '-f',
|
|
7
|
+
:long => '--ftp-only',
|
|
7
8
|
:boolean => true
|
|
8
9
|
|
|
9
|
-
option :
|
|
10
|
-
:
|
|
11
|
-
:
|
|
10
|
+
option :ftp_dir,
|
|
11
|
+
:short => '-d',
|
|
12
|
+
:long => '--ftp-dir DIR'
|
|
12
13
|
|
|
13
14
|
option :container_name,
|
|
14
15
|
:short => '-c NAME',
|
|
15
16
|
:long => '--container NAME',
|
|
16
|
-
|
|
17
|
+
:required => true
|
|
18
|
+
|
|
19
|
+
option :generate,
|
|
20
|
+
:short => '-g',
|
|
21
|
+
:long => '--generate',
|
|
22
|
+
:boolean => true
|
|
17
23
|
|
|
18
24
|
def self.has_required_param?
|
|
19
25
|
true
|
|
@@ -2,7 +2,14 @@ module Superhosting
|
|
|
2
2
|
module Cli
|
|
3
3
|
module Cmd
|
|
4
4
|
class UserList < Base
|
|
5
|
+
option :container_name,
|
|
6
|
+
:short => '-c NAME',
|
|
7
|
+
:long => '--container NAME',
|
|
8
|
+
:required => true
|
|
5
9
|
|
|
10
|
+
def self.after_action(data, config)
|
|
11
|
+
self.info(data)
|
|
12
|
+
end
|
|
6
13
|
end
|
|
7
14
|
end
|
|
8
15
|
end
|
|
@@ -7,9 +7,18 @@ module Superhosting
|
|
|
7
7
|
:long => '--generate',
|
|
8
8
|
:boolean => true
|
|
9
9
|
|
|
10
|
+
option :container_name,
|
|
11
|
+
:short => '-c NAME',
|
|
12
|
+
:long => '--container NAME',
|
|
13
|
+
:required => true
|
|
14
|
+
|
|
10
15
|
def self.has_required_param?
|
|
11
16
|
true
|
|
12
17
|
end
|
|
18
|
+
|
|
19
|
+
def self.after_action(data, config)
|
|
20
|
+
self.info(data)
|
|
21
|
+
end
|
|
13
22
|
end
|
|
14
23
|
end
|
|
15
24
|
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module Superhosting
|
|
2
|
+
module CompositeMapper
|
|
3
|
+
def self.new(etc_mapper:, lib_mapper:, web_mapper:)
|
|
4
|
+
klass = case type = etc_mapper.parent.name
|
|
5
|
+
when 'containers' then Container
|
|
6
|
+
when 'sites' then Site
|
|
7
|
+
else raise NetStatus::Exception, { error: :logical_error, code: :mapper_type_not_supported, data: { name: type } }
|
|
8
|
+
end
|
|
9
|
+
klass.new(etc_mapper: etc_mapper, lib_mapper: lib_mapper, web_mapper: web_mapper)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Superhosting
|
|
2
|
+
module CompositeMapper
|
|
3
|
+
class Base
|
|
4
|
+
attr_accessor :etc, :lib, :web
|
|
5
|
+
|
|
6
|
+
def initialize(etc_mapper:, lib_mapper:, web_mapper:)
|
|
7
|
+
self.etc = etc_mapper
|
|
8
|
+
self.lib = lib_mapper
|
|
9
|
+
self.web = web_mapper
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def method_missing(m, *args, &block)
|
|
13
|
+
self.etc.send(m, *args, &block)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
en:
|
|
2
|
+
net_status:
|
|
3
|
+
no_model_given: 'No model given.'
|
|
4
|
+
docker_command_not_found: "No container/docker/command specified in model."
|
|
5
|
+
unable_to_run_docker_container: 'Unable to run docker container.'
|
|
6
|
+
option_admin_mail_required: 'Admin mail required.'
|
|
7
|
+
|
|
8
|
+
invalid_container_name: "Invalid site name '%{name}' only '%{regex}' are allowed."
|
|
9
|
+
container_is_not_running: "Container '%{name}' isn\'t running."
|
|
10
|
+
container_is_running: "Container '%{name}' is already running."
|
|
11
|
+
container_does_not_exists: "Container '%{name}' doesn't exists."
|
|
12
|
+
container_exists: "Container '%{name}' already exists."
|
|
13
|
+
container_is_not_available: "Container '%{name}' is not available."
|
|
14
|
+
|
|
15
|
+
invalid_site_name: "Invalid site name '%{name}' only '%{regex}' are allowed."
|
|
16
|
+
site_does_not_exists: "Site '%{name}' doesn't exists."
|
|
17
|
+
site_exists: "Site '%{name}' already exists."
|
|
18
|
+
site_is_not_available: "Site '%{name}' is not available."
|
|
19
|
+
container_site_name_conflict: "Conflict between containers sites: '%{site1}' and '%{site2}'."
|
|
20
|
+
|
|
21
|
+
alias_does_not_exists: "Alias '%{name}' doesn't exists."
|
|
22
|
+
alias_exists: "Alias '%{name}' already exists."
|
|
23
|
+
|
|
24
|
+
invalid_user_name: "Invalid user name '%{name}' only '%{regex}' are allowed."
|
|
25
|
+
user_does_not_exists: "User '%{name}' doesn't exists."
|
|
26
|
+
user_exists: "User '%{name}' already exists."
|
|
27
|
+
|
|
28
|
+
admin_does_not_exists: "Admin '%{name}' doesn't exists."
|
|
29
|
+
admin_exists: "Admin '%{name}' already exists."
|
|
30
|
+
|
|
31
|
+
mux_is_running: "Mux '%{name}' is already running."
|
|
32
|
+
mux_is_not_running: "Mux '%{name}' isn\'t running."
|
|
33
|
+
mux_does_not_exists: "Mux '%{name}' doesn't exists."
|
|
34
|
+
|
|
35
|
+
option_ftp_only_is_required: "Option 'ftp-only' is required if specified 'ftp-dir'."
|
|
36
|
+
incorrect_ftp_dir: "Incorrect ftp-dir '%{dir}'."
|
|
37
|
+
|
|
38
|
+
model_does_not_exists: "Model '%{name}' doesn't exists."
|
|
39
|
+
model_does_not_used: "Model '%{name}' doesn't used."
|
|
40
|
+
base_model_should_not_be_abstract: "Base model '%{name}' should not be abstract."
|
|
41
|
+
mux_does_not_exists: "Mux '%{name}' doesn't exists."
|
|
42
|
+
base_mux_should_not_be_abstract: "Base mux '%{name}' should not be abstract."
|
|
43
|
+
mapper_type_not_supported: "Mapper type '%{name}' not supported."
|
|
44
|
+
|
|
45
|
+
no_docker_image_specified_in_model_or_mux: "No container/docker/image specified in model|mux '%{name}'."
|
|
46
|
+
|
|
47
|
+
erb_error: "Erb has executed with error: '%{error}'."
|
|
48
|
+
file_does_not_exists: "File '%{path}' does not exist."
|
|
49
|
+
can_not_pass_an_absolute_path: "Can't pass an absolute path '%{path}'."
|
|
50
|
+
|
|
51
|
+
command_with_error: "Command output:\n %{error}."
|
|
52
|
+
|
|
53
|
+
invalid_cli_option: "%{message}"
|
|
54
|
+
|
|
55
|
+
missing_translation: "Missing translation for code: '%{code}'"
|
|
56
|
+
|
|
57
|
+
debug:
|
|
58
|
+
user:
|
|
59
|
+
added: "User '%{name}': ADDED"
|
|
60
|
+
deleted: "User '%{name}': DELETED"
|
|
61
|
+
updated: "User '%{name}': UPDATED"
|
|
62
|
+
failed: "User '%{name}': FAILED"
|
|
63
|
+
ok: "User '%{name}': OK"
|
|
64
|
+
group:
|
|
65
|
+
added: "Group '%{name}': ADDED"
|
|
66
|
+
deleted: "Group '%{name}': DELETED"
|
|
67
|
+
failed: "Group '%{name}': FAILED"
|
|
68
|
+
ok: "Group '%{name}': OK"
|
|
69
|
+
file:
|
|
70
|
+
created: "File '%{path}': CREATED"
|
|
71
|
+
renamed: "File '%{path}' > '%{to}': RENAMED"
|
|
72
|
+
modified: "File '%{path}': MODIFIED"
|
|
73
|
+
deleted: "File '%{path}': DELETED"
|
|
74
|
+
failed: "File '%{path}': FAILED"
|
|
75
|
+
ok: "File '%{path}': OK"
|
|
76
|
+
directory:
|
|
77
|
+
created: "Directory '%{path}': CREATED"
|
|
78
|
+
renamed: "Directory '%{path}' > '%{to}': RENAMED"
|
|
79
|
+
deleted: "Directory '%{path}': DELETED"
|
|
80
|
+
failed: "Directory '%{path}': FAILED"
|
|
81
|
+
ok: "Directory '%{path}': OK"
|
|
82
|
+
symlink:
|
|
83
|
+
created: "Symlink '%{path}' to '%{path_to}': CREATED"
|
|
84
|
+
deleted: "Symlink '%{path}': DELETED"
|
|
85
|
+
failed: "Symlink '%{path}': FAILED"
|
|
86
|
+
ok: "Symlink '%{path}': OK"
|
|
87
|
+
container:
|
|
88
|
+
added: "Container '%{name}': ADDED"
|
|
89
|
+
removed: "Container '%{name}': REMOVED"
|
|
90
|
+
stopped: "Container '%{name}': STOPPED"
|
|
91
|
+
killed: "Container '%{name}': KILLED"
|
|
92
|
+
started: "Container '%{name}': STARTED"
|
|
93
|
+
restarted: "Container '%{name}': RESTARTED"
|
|
94
|
+
paused: "Container '%{name}': PAUSED"
|
|
95
|
+
unpaused: "Container '%{name}': UNPAUSED"
|
|
96
|
+
failed: "Container '%{name}': FAILED"
|
|
97
|
+
ok: "Container '%{name}': OK"
|
|
98
|
+
command:
|
|
99
|
+
failed: "Command: '%{command}': executing... FAILED"
|
|
100
|
+
ok: "Command: '%{command}': executing... OK"
|
|
101
|
+
|
|
102
|
+
transition: "Transition '%{name}'..."
|
|
103
|
+
transition_undo: "Transition '%{name}' (undo)..."
|
|
104
|
+
|
|
105
|
+
failed: "FAILED"
|
|
106
|
+
ok: "OK"
|
|
107
|
+
|
|
108
|
+
deleting_old_configs: 'Deleting old configs...'
|
|
109
|
+
|
|
110
|
+
change_state:
|
|
111
|
+
ok: "State of '%{obj}' change from '%{from}' to '%{to}' OK"
|
|
112
|
+
failed: "State of '%{obj}' change from '%{from}' to '%{to}' FAILED"
|
|
113
|
+
|
|
114
|
+
chown_r:
|
|
115
|
+
failed: "Command: chown -r '%{user}' '%{group}' '%{path}'... FAILED"
|
|
116
|
+
ok: "Command: chown -r '%{user}' '%{group}' '%{path}'... OK"
|
|
117
|
+
chown:
|
|
118
|
+
failed: "Command: chown '%{user}' '%{group}' '%{path}'... FAILED"
|
|
119
|
+
ok: "Command: chown '%{user}' '%{group}' '%{path}'... OK"
|
|
120
|
+
chmod:
|
|
121
|
+
failed: "Command: chmod '%{mode}' '%{path}'... FAILED"
|
|
122
|
+
ok: "Command: chmod '%{mode}' '%{path}'... OK"
|