wco_models 3.1.0.151 → 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: 1e824b16145363e5d17b5d92ec49ad8eed54b66493576073881120a6b45da2c3
4
- data.tar.gz: b317c3d100065b7bb886493af60a8ca0588150b896243a6228ad721a0a820c0a
3
+ metadata.gz: f5d5b1cf16d12082c6fcd8ffd3d9ae8fef4292c97037c1a8de4a20c0f02a19e1
4
+ data.tar.gz: 7638d870fac8f5f138ed527a950088b8565afd03a80a56b78768f24e9248b682
5
5
  SHA512:
6
- metadata.gz: babbbaad0b95c6aa87a58c0e15dadd69e532d258190292c5a532af6ecc7aaeb469e49f672eb62c4e339186a51faa9675d930e6d871e9ac814b282d8f1cdf1fe3
7
- data.tar.gz: 57c2329932c5d2e763732b19f543228f521871443b7b1cbec198f3adea9d10d9df7edb532e919a01cd04d44d16b66cea6097f7f60deb3229b4377c31aea030fb
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,21 +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'
9
- field :stdout, type: :string, default: ''
10
- field :stderr, type: :string, default: ''
10
+ has_many :files, class_name: 'WcoHosting::File'
11
11
 
12
+ field :rc_json, type: Object, default: '{}'
13
+ def rc
14
+ OpenStruct.new JSON.parse rc_json
15
+ end
12
16
 
13
17
  belongs_to :leadset, class_name: 'Wco::Leadset', inverse_of: :appliances
14
18
  belongs_to :subscription, class_name: 'Wco::Subscription' # , inverse_of: :appliance
15
19
 
16
- field :service_name
17
- before_validation :set_service_name, on: :create, unless: ->{ service_name }
18
- def set_service_name
19
- self[:service_name] = host.gsub(".", "_")
20
- 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
21
25
 
22
26
 
23
27
  belongs_to :environment, class_name: 'WcoHosting::Environment', inverse_of: :appliances, optional: true
@@ -26,9 +30,9 @@ class WcoHosting::Appliance
26
30
  end
27
31
 
28
32
  field :subdomain
29
- field :domain
33
+ belongs_to :domain, class_name: 'WcoHosting::Domain'
30
34
  def host
31
- "#{subdomain}.#{domain}"
35
+ "#{subdomain}.#{domain.name}"
32
36
  end
33
37
 
34
38
  field :n_retries, type: :integer, default: 3
@@ -37,9 +41,7 @@ class WcoHosting::Appliance
37
41
  def tmpl
38
42
  appliance_tmpl
39
43
  end
40
- def kind
41
- tmpl.kind
42
- end
44
+ delegate :kind, to: :appliance_tmpl
43
45
 
44
46
  belongs_to :serverhost, class_name: 'WcoHosting::Serverhost', optional: true
45
47
 
@@ -51,7 +53,7 @@ class WcoHosting::Appliance
51
53
  field :state, default: STATE_PENDING
52
54
 
53
55
  def to_s
54
- service_name
56
+ appliance_tmpl # kind
55
57
  end
56
58
  end
57
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
@@ -75,9 +76,7 @@ class WcoHosting::ApplianceTmpl
75
76
  has_many :appliances, class_name: 'WcoHosting::Appliance'
76
77
  has_many :subscriptions, as: :product, class_name: 'Wco::Subscription'
77
78
  has_many :prices, as: :product, class_name: 'Wco::Price'
78
-
79
- # has_and_belongs_to_many :leadsets, class_name: 'Wco::Leadset'
80
- # has_many :appliance_tmpl_leadsets, class_name: 'WcoHosting::ApplianceTmplLeadset'
79
+ has_and_belongs_to_many :task_tmpls, class_name: 'WcoHosting::TaskTmpl'
81
80
 
82
81
  field :product_id # stripe
83
82
 
@@ -91,9 +90,6 @@ class WcoHosting::ApplianceTmpl
91
90
  self.product_id = stripe_product.id
92
91
  end
93
92
 
94
- def self.list
95
- [[nil,nil]] + all.map { |a| [ a.kind, a.id ] }
96
- end
97
93
  def to_s
98
94
  "#{kind}-#{version}"
99
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
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.151
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-04-05 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