mkit 0.4.0 → 0.4.1

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: '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