mkit 0.4.0 → 0.4.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '03388845cec9ae0e648bd0692ce1f3b0608127bfd3f4da3019ca78fa8c188d1c'
4
- data.tar.gz: 9aa7ded98a1198a4f3dc81a313cd4eddee05df42ec0da5e3e48eb53ab639fd3f
3
+ metadata.gz: fbf4273a9458c659131f42dff9f804d23632b282bb6ee04d803c8e8623262fa1
4
+ data.tar.gz: f9c7cdff9a122c90c714fd16de80bfc07f19ded8d88806d2b7e7f3af2f7dc246
5
5
  SHA512:
6
- metadata.gz: 55978a84196d4bd5f72ef0f8fa745d5f74a24d4e6ecb62d4b52bc5076b8b1a63a9e3fdfc2c80a07f8b8d6a7d19fae99b6d2b2f7365a2258678d46380c60e4803
7
- data.tar.gz: c1c2dea9ae37f80db6a8bca1c63b3556e5642b84d882e96fd323f483df767600ee5b58e72ba930af6ec086641d41eeee0252bfec567fff182cfc4fcfe45157fc
6
+ metadata.gz: e0975eb515e8b4b91006953f293206b02b1b377a3668b8478af9dfa84f9a58216cbbe83928c8458bb3d9676543cb748dedfa00c26f65279ffe59f15f847cab5d
7
+ data.tar.gz: d790f9aa1edcac942df9a72317295c9c091eb88ec029d2584c0275bbd7740fe94272504a984a3248d0aa1d77949e7343ee189fa0018b5724ecfd0de44308a567
@@ -14,7 +14,7 @@ module MKIt
14
14
 
15
15
  error do |e|
16
16
  MKItLogger.debug e
17
- error 500, e.message
17
+ error 500, "Internal server error: #{e.message}"
18
18
  end
19
19
  end
20
20
  end
@@ -34,37 +34,39 @@ class Service < ActiveRecord::Base
34
34
  config = yaml["service"]
35
35
  raise MKIt::ServiceAlreadyExists.new unless Service.find_by_name(config.name).nil?
36
36
 
37
- srv = Service.new(
38
- name: config.name,
39
- version: 1,
40
- image: config.image,
41
- command: config.command,
42
- status: MKIt::Status::CREATING
43
- )
44
-
45
- # reserve pool ip
46
- srv.lease = Pool.find_by_name(MKIt::Utils.me).reserve_for(srv)
47
-
48
- srv.dns_host = DnsHost.new(
49
- service: srv,
50
- name: srv.name,
51
- ip: srv.lease.ip
52
- )
53
-
54
- # create service network
55
- srv.deploy_network
56
-
57
- # configure
58
- srv.configure(config)
59
- #
60
- srv.status = MKIt::Status::CREATED
61
- srv.save
62
- data = { service_id: srv.id, version: srv.version }
63
- # create pod
64
- (1..srv.min_replicas).each { |i|
65
- MkitJob.publish(topic: :create_pod_saga, service_id: srv.id, data: data)
66
- }
67
- srv
37
+ ActiveRecord::Base.transaction do
38
+ srv = Service.new(
39
+ name: config.name,
40
+ version: 1,
41
+ image: config.image,
42
+ command: config.command,
43
+ status: MKIt::Status::CREATING
44
+ )
45
+
46
+ # reserve pool ip
47
+ srv.lease = Pool.find_by_name(MKIt::Utils.me).reserve_for(srv)
48
+
49
+ srv.dns_host = DnsHost.new(
50
+ service: srv,
51
+ name: srv.name,
52
+ ip: srv.lease.ip
53
+ )
54
+
55
+ # create service network
56
+ srv.deploy_network
57
+
58
+ # configure
59
+ srv.configure(config)
60
+ #
61
+ srv.status = MKIt::Status::CREATED
62
+ srv.save!
63
+ data = { service_id: srv.id, version: srv.version }
64
+ # create pod
65
+ (1..srv.min_replicas).each { |i|
66
+ MkitJob.publish(topic: :create_pod_saga, service_id: srv.id, data: data)
67
+ }
68
+ srv
69
+ end
68
70
  end
69
71
 
70
72
  def configure(config)
@@ -111,19 +113,21 @@ class Service < ActiveRecord::Base
111
113
  end
112
114
 
113
115
  def update!(yaml)
114
- config = yaml["service"]
115
- raise MKIt::ServiceNameMismatch.new unless config.name == self.name
116
- self.version+=1
117
- self.configure(config)
118
-
119
- # start new pod, destroy old pod...
120
- self.pod.each { |pod| MkitJob.publish(topic: :destroy_pod, pod_id: pod.id, data: {}) }
121
- # create pod
122
- data = { service_id: self.id, version: self.version }
123
- (1..self.min_replicas).each { |i|
124
- MkitJob.publish(topic: :create_pod_saga, service_id: self.id, data: data)
125
- }
126
- self.save
116
+ ActiveRecord::Base.transaction do
117
+ config = yaml["service"]
118
+ raise MKIt::ServiceNameMismatch.new unless config.name == self.name
119
+ self.version+=1
120
+ self.configure(config)
121
+
122
+ # start new pod, destroy old pod...
123
+ self.pod.each { |pod| MkitJob.publish(topic: :destroy_pod, pod_id: pod.id, data: {}) }
124
+ # create pod
125
+ data = { service_id: self.id, version: self.version }
126
+ (1..self.min_replicas).each { |i|
127
+ MkitJob.publish(topic: :create_pod_saga, service_id: self.id, data: data)
128
+ }
129
+ self.save
130
+ end
127
131
  end
128
132
 
129
133
  def create_pods_network
data/lib/mkit/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module MKIt
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
4
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasco Santos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-18 00:00:00.000000000 Z
11
+ date: 2024-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ping