harbr 0.0.107 → 0.1.0

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: f8e70f482635d3b1b64c52bb51739e14312704008cb68942552e2c67adcddb0e
4
- data.tar.gz: c558200bca48af358ce3a87847c5a156b626ab34a03605ee4d49ffeeaeba5d5b
3
+ metadata.gz: 26bc98fbce85f012d0d96cd9fd09a07f789afeb1cfffc9b5fde03fef786dd724
4
+ data.tar.gz: 20bc0c41aee016571fb0fced48d0c8889baab4b9ef323e0517582c83b6fba9a8
5
5
  SHA512:
6
- metadata.gz: 43b3bc4c2e5af49eca364bca97f5a13afb88047aa022e023d8679aba4532eebffb4070a07d9fae4741f0bc38eeeb7c56fb372fd446cc21729e8e74a3394a974b
7
- data.tar.gz: a56babd7d75c1c9a2c1840747d064cc3c0efe5a38862fd584d6270d675d4d80ed547ecfd3cf00a00a62f3c476ef2d0c583320347db5583883efd01207fbf88c2
6
+ metadata.gz: be599ea5efe2b994281570511dc83b377210ec446f19fbebf672591e0a83be3b41d88a8bcf9305b6a391f671bf16ebd03c008c1ddbbc7a22444a1c0950917846
7
+ data.tar.gz: 1a0f17ba5f5a49794dd4f1e9e8bca4c32a90b5dd6338d18962e49596f69da38df6aca68f8271583f8c20132eb41b3741a05f5203dcf052adc6bdab3f20a4dcc7
data/exe/harbr CHANGED
@@ -7,10 +7,10 @@ class HarbrCLI < Thor
7
7
  return puts "No containers available." if containers.empty?
8
8
 
9
9
  # Define headers based on Container attributes
10
- headers = ["Name", "Host Header", "IP", "Port", "Current Version", "Next Version", "Previous Version"]
10
+ headers = ["Name", "Host Header", "IP", "Port"]
11
11
 
12
12
  rows = containers.map do |container|
13
- [container.name, container.host_header, container.ip.nil? ? "127.0.0.1" : container.ip, container.port.to_s, container.current_version, container.next_version, container.previous_version]
13
+ [container.name, container.host_header, container.ip.nil? ? "127.0.0.1" : container.ip, container.port]
14
14
  end
15
15
 
16
16
  table = ::Terminal::Table.new(headings: headers, rows: rows)
@@ -172,20 +172,22 @@ class HarbrCLI < Thor
172
172
  desc "deploy", "deploy a container to production"
173
173
  def deploy(name)
174
174
  Dir.chdir("/var/harbr/containers/#{name}/") do
175
- `mv current rollback`
176
175
  `mv next current`
177
- puts `sv restart #{name}`
176
+ puts `sv restart next.#{name}`
178
177
  end
179
-
180
178
  end
181
179
 
182
180
  desc "rollback", "rollback last deploy"
183
181
  def rollback(name)
184
182
  Dir.chdir("/var/harbr/containers/#{name}") do
185
183
  if File.exist?("rollback")
186
- `sv stop #{name}`
184
+ `cp -r current current.bak`
187
185
  `mv rollback current`
188
- `sv start #{name}`
186
+ `cp -r current.bak next`
187
+ `rm -rf rollback`
188
+ `rm -rf current.bak`
189
+ `sv restart #{name}`
190
+ `sv restart next.#{name}`
189
191
  puts "rollback successful"
190
192
  end
191
193
  end
@@ -209,6 +211,6 @@ class HarbrCLI < Thor
209
211
  sleep 3 # Poll every 10 seconds
210
212
  end
211
213
  end
212
- end
214
+ e97c9a8d5810ffad0d42894905b218a655e8732b7nd
213
215
 
214
216
  HarbrCLI.start(ARGV)
@@ -1,7 +1,7 @@
1
1
  module Harbr
2
2
  class Container
3
3
  include Dddr::Entity
4
- attr_accessor :name, :host_header, :ip, :port,:current_version, :next_version,:previous_version
4
+ attr_accessor :name, :host_header, :ip, :port
5
5
 
6
6
  queries do
7
7
  def find_by_header(host_header)
data/lib/harbr/job.rb CHANGED
@@ -56,7 +56,6 @@ module Harbr
56
56
  container.host_header =host
57
57
  container.ip = "127.0.0.1"
58
58
  container.port = port
59
- container.current_version = 0
60
59
  containers.create(container)
61
60
  else
62
61
  container.port = port
@@ -50,16 +50,22 @@ module Harbr
50
50
  puts "Traefik configuration written to /etc/traefik/harbr.toml"
51
51
  end
52
52
 
53
- def collate_containers(name,port, version)
53
+ def collate_containers(name,host,port)
54
54
 
55
55
  containers = Harbr::Container::Repository.new
56
- container = containers.find_by_name(name)
56
+ container = containers.find_by_header(host)
57
57
 
58
- container.port = port
59
- container.next_version = version
60
- container.previous_version = container.current_version
61
- containers.update(container)
62
-
58
+ if container.nil?
59
+ container = Harbr::Container.new
60
+ container.name = name
61
+ container.host_header =host
62
+ container.ip = "127.0.0.1"
63
+ container.port = port
64
+ containers.create(container)
65
+ else
66
+ container.port = port
67
+ containers.update(container)
68
+ end
63
69
  containers.all
64
70
  end
65
71
 
@@ -166,8 +172,7 @@ module Harbr
166
172
  `bundle config set --local path 'vendor/bundle'`
167
173
 
168
174
  manifest = load_manifest(name,version)
169
-
170
- current_path = "/var/harbr/containers/#{name}/current"
175
+ current_path = "/var/harbr/containers/#{name}/versions/#{version}"
171
176
 
172
177
  port = `port assign next.#{manifest.port}`.strip
173
178
 
@@ -190,12 +195,13 @@ module Harbr
190
195
 
191
196
 
192
197
  system "rm /etc/service/next.#{name}"
198
+ system "rm /var/harbr/containers/#{name}/next"
193
199
 
194
200
  system "ln -sf /var/harbr/containers/#{name}/versions/#{version} /var/harbr/containers/#{name}/next"
195
201
  system "ln -sf /etc/sv/harbr/#{name}/next /etc/service/next.#{name}"
196
202
  system "sv restart next.#{name}"
197
203
 
198
- containers = collate_containers("next.#{name}",port,version)
204
+ containers = collate_containers("next.#{name}","next.#{manifest.host}",port)
199
205
  create_traefik_config(containers)
200
206
  end
201
207
 
data/lib/harbr/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Harbr
4
- VERSION = "0.0.107"
4
+ VERSION = "0.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: harbr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.107
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-14 00:00:00.000000000 Z
11
+ date: 2023-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: listen