wco_models 3.1.0.150 → 3.1.0.152

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e4caf3551289f4e93e12b347077fe099d408423f006c898c6f0a52de21ba83b9
4
- data.tar.gz: 6c791312ee20c155590aab0f4979df3f00494cc5b67e3569bdfae0d041547ff1
3
+ metadata.gz: f5d5b1cf16d12082c6fcd8ffd3d9ae8fef4292c97037c1a8de4a20c0f02a19e1
4
+ data.tar.gz: 7638d870fac8f5f138ed527a950088b8565afd03a80a56b78768f24e9248b682
5
5
  SHA512:
6
- metadata.gz: 88fefaaff4c84e73dce70b323bd1700d44c0bf247f0fc302e81b26029a366dfa57a79cd349d0bcce2f46dc7f85457ad900939e61dd0859f48bc09aad8e3f97ce
7
- data.tar.gz: 3cbd9b1eff2acc6511c74f383b6f35c8c4f30725ebe0fc79e0db3263ed532e92430975a63f71715a32a8ece1fbd81203684d85b8e7bde877a5277816a660d65f
6
+ metadata.gz: c4216429fb7f42bc863364edd7dc164305436b3c5ac832565cfccaaf88faf8b2aca62f4351c99b27958ca8f64b892c4f91de51c63c140b057d019037f3148831
7
+ data.tar.gz: b3db0b20fcb09447fac2d5dadee3d0f966b06a8715ba95291578ecad10e56f41fb95283b987d702ad63a3b120a690c84fa838f86928b299af7341b02a753fed2
@@ -6,8 +6,8 @@ class Wco::Log
6
6
  include Mongoid::Paranoia
7
7
  store_in collection: 'wco_logs'
8
8
 
9
- field :label, type: :string
10
- field :message, type: :string
9
+ field :label, type: :string ## can be the stream: 'stdout' or 'stderr'
10
+ field :message, type: :string ## can be json
11
11
 
12
12
  belongs_to :obj, polymorphic: true, optional: true
13
13
 
@@ -17,6 +17,15 @@ module Wco::Utils
17
17
  out.with_indifferent_access
18
18
  end
19
19
 
20
+ def self.included(base)
21
+ base.extend(ClassMethods)
22
+ end
23
+ module ClassMethods
24
+ def list
25
+ [[nil,nil]] + all.map { |a| [ a, a.id ] }
26
+ end
27
+ end
28
+
20
29
  private
21
30
 
22
31
  def set_slug
@@ -3,18 +3,25 @@ class WcoHosting::Appliance
3
3
  include Mongoid::Document
4
4
  include Mongoid::Timestamps
5
5
  include Mongoid::Paranoia
6
+ include Wco::Utils
6
7
  store_in collection: 'wco_appliances'
7
8
 
8
9
  has_many :logs, as: :obj, class_name: 'Wco::Log'
10
+ has_many :files, class_name: 'WcoHosting::File'
11
+
12
+ field :rc_json, type: Object, default: '{}'
13
+ def rc
14
+ OpenStruct.new JSON.parse rc_json
15
+ end
9
16
 
10
17
  belongs_to :leadset, class_name: 'Wco::Leadset', inverse_of: :appliances
11
18
  belongs_to :subscription, class_name: 'Wco::Subscription' # , inverse_of: :appliance
12
19
 
13
- field :service_name
14
- before_validation :set_service_name, on: :create, unless: ->{ service_name }
15
- def set_service_name
16
- self[:service_name] = host.gsub(".", "_")
17
- end
20
+ # field :service_name
21
+ # before_validation :set_service_name, on: :create, unless: ->{ service_name }
22
+ # def set_service_name
23
+ # self[:service_name] = host.gsub(".", "_")
24
+ # end
18
25
 
19
26
 
20
27
  belongs_to :environment, class_name: 'WcoHosting::Environment', inverse_of: :appliances, optional: true
@@ -23,9 +30,9 @@ class WcoHosting::Appliance
23
30
  end
24
31
 
25
32
  field :subdomain
26
- field :domain
33
+ belongs_to :domain, class_name: 'WcoHosting::Domain'
27
34
  def host
28
- "#{subdomain}.#{domain}"
35
+ "#{subdomain}.#{domain.name}"
29
36
  end
30
37
 
31
38
  field :n_retries, type: :integer, default: 3
@@ -34,9 +41,7 @@ class WcoHosting::Appliance
34
41
  def tmpl
35
42
  appliance_tmpl
36
43
  end
37
- def kind
38
- tmpl.kind
39
- end
44
+ delegate :kind, to: :appliance_tmpl
40
45
 
41
46
  belongs_to :serverhost, class_name: 'WcoHosting::Serverhost', optional: true
42
47
 
@@ -48,7 +53,7 @@ class WcoHosting::Appliance
48
53
  field :state, default: STATE_PENDING
49
54
 
50
55
  def to_s
51
- service_name
56
+ appliance_tmpl # kind
52
57
  end
53
58
  end
54
59
 
@@ -4,6 +4,7 @@ class WcoHosting::ApplianceTmpl
4
4
  include Mongoid::Document
5
5
  include Mongoid::Timestamps
6
6
  include Mongoid::Paranoia
7
+ include Wco::Utils
7
8
  store_in collection: 'wco_appliance_tmpls'
8
9
 
9
10
  field :kind, type: :string
@@ -24,12 +25,13 @@ class WcoHosting::ApplianceTmpl
24
25
  # ac.instance_variable_set( :@tmpl, self )
25
26
  # rendered_str = ac.render_to_string("wco_hosting/scripts/nginx_site.conf")
26
27
  # Wco::Log.puts! rendered_str, 'add_nginx_site rendered_str', obj: @obj
27
-
28
28
  # file = Tempfile.new('prefix')
29
29
  # file.write rendered_str
30
30
  # file.close
31
31
  # end
32
32
 
33
+ field :stdout, type: :string, default: ''
34
+ field :stderr, type: :string, default: ''
33
35
 
34
36
  field :image
35
37
  # validates :image, presence: true
@@ -74,9 +76,7 @@ class WcoHosting::ApplianceTmpl
74
76
  has_many :appliances, class_name: 'WcoHosting::Appliance'
75
77
  has_many :subscriptions, as: :product, class_name: 'Wco::Subscription'
76
78
  has_many :prices, as: :product, class_name: 'Wco::Price'
77
-
78
- # has_and_belongs_to_many :leadsets, class_name: 'Wco::Leadset'
79
- # has_many :appliance_tmpl_leadsets, class_name: 'WcoHosting::ApplianceTmplLeadset'
79
+ has_and_belongs_to_many :task_tmpls, class_name: 'WcoHosting::TaskTmpl'
80
80
 
81
81
  field :product_id # stripe
82
82
 
@@ -90,7 +90,6 @@ class WcoHosting::ApplianceTmpl
90
90
  self.product_id = stripe_product.id
91
91
  end
92
92
 
93
-
94
93
  def to_s
95
94
  "#{kind}-#{version}"
96
95
  end
@@ -3,6 +3,7 @@ class WcoHosting::Environment
3
3
  include Mongoid::Document
4
4
  include Mongoid::Timestamps
5
5
  include Mongoid::Paranoia
6
+ include Wco::Utils
6
7
  store_in collection: 'wco_environments'
7
8
 
8
9
  belongs_to :leadset, class_name: 'Wco::Leadset', inverse_of: :environments
@@ -16,6 +17,7 @@ class WcoHosting::Environment
16
17
  ## variable @env in execution environments
17
18
  field :env_json, type: Object, default: '{}'
18
19
 
20
+
19
21
  def to_s
20
22
  name
21
23
  end
@@ -0,0 +1,16 @@
1
+
2
+ class WcoHosting::File
3
+ include Mongoid::Document
4
+ include Mongoid::Timestamps
5
+ include Mongoid::Paranoia
6
+ store_in collection: 'wco_hosting_files'
7
+
8
+ belongs_to :serverhost, class_name: 'WcoHosting::Serverhost'
9
+ belongs_to :appliance, class_name: 'WcoHosting::Appliance'
10
+
11
+ field :path, type: :string
12
+ field :template_erb, type: :string
13
+ field :pre_exe, type: :string
14
+ field :post_exe, type: :string
15
+
16
+ end
@@ -10,6 +10,7 @@ class WcoHosting::Runner
10
10
 
11
11
  TASK_REDEPLOY_ECS_TASK_DEFINITION = 'redeploy-ecs-task-definition'
12
12
  TASK_REDEPLOY_ECS_TASK = 'redeploy-ecs-task'
13
+ TASK_SYNC_ECS_TASK = 'sync-ecs-task'
13
14
  TASKS = []
14
15
 
15
16
  def self.do_exec cmd
@@ -28,6 +28,7 @@ class WcoHosting::Serverhost
28
28
  # field :ssh_key
29
29
 
30
30
  has_many :appliances, class_name: 'WcoHosting::Appliance'
31
+ has_many :files, class_name: 'WcoHosting::File'
31
32
 
32
33
  def create_appliance app
33
34
  # puts! app, 'Serverhost#create_appliance'
@@ -5,4 +5,7 @@ class WcoHosting::Task
5
5
  include Mongoid::Paranoia
6
6
  store_in collection: 'wco_tasks'
7
7
 
8
+ belongs_to :task_tmpl, class_name: 'WcoHosting::TaskTmpl'
9
+ belongs_to :appliance_tmpl, class_name: 'WcoHosting::ApplianceTmpl'
10
+
8
11
  end
@@ -8,4 +8,13 @@ class WcoHosting::TaskTmpl
8
8
  field :slug
9
9
  validates :slug, presence: true
10
10
 
11
+ has_many :tasks, class_name: 'WcoHosting::Task'
12
+ has_and_belongs_to_many :appliance_tmpls, class_name: 'WcoHosting::ApplianceTmpl'
13
+
14
+ def to_s
15
+ slug
16
+ end
17
+ def self.list
18
+ [[nil,nil]] + all.map { |t| [t, t.id] }
19
+ end
11
20
  end
@@ -8,6 +8,8 @@
8
8
  = f.text_field :name
9
9
  = f.label :slug
10
10
  = f.text_field :slug
11
+ %label deleted_at
12
+ = f.text_field :deleted_at
11
13
  -# .col-md-2
12
14
  -# .field
13
15
  -# = f.label :premium_tier
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wco_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.150
4
+ version: 3.1.0.152
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Pudeyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-31 00:00:00.000000000 Z
11
+ date: 2024-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -475,6 +475,7 @@ files:
475
475
  - app/models/wco_hosting/appliance_tmpl.rb
476
476
  - app/models/wco_hosting/domain.rb
477
477
  - app/models/wco_hosting/environment.rb
478
+ - app/models/wco_hosting/file.rb
478
479
  - app/models/wco_hosting/runner.rb
479
480
  - app/models/wco_hosting/serverhost.rb
480
481
  - app/models/wco_hosting/subdomain.rb