harbr 0.0.4 → 0.0.7

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: 757a47e061cb1c14cf31efdd949df3536a9671b5dbe9673ba5479e89e4ec1b8d
4
- data.tar.gz: 6d3e93523572bf11b506ed803869b2494b83d1abb26d1db57232dd24e18c2dd8
3
+ metadata.gz: 7f443b2cf3d0a2248b626944763782d7dc765f2bd83502d2920df8b8f736c648
4
+ data.tar.gz: fe4ba28730e10fce57824b766e5ca095104144d190df1cbb794ba94195012bdb
5
5
  SHA512:
6
- metadata.gz: 3c840f224d4dca5540997f1a5dc4bd18b0eb00cb29af201a9fe161ab4ab593ab6b19d2b8873a469d9a38de2fa21d3b584e528894a4da69fe0858f4f9fb90b03a
7
- data.tar.gz: 19e91fef482a15854c26020429b0a2e2c508394773807b84d26b4da88eacbc431b807d3572150e4bbda118a3912ca91671afa7cb97e1e120783c48a982fe3ef0
6
+ metadata.gz: 229b3eb7da67df05de20323697246bf0a0375818a0ff5fcadee0fc1566477bff58fe633334277ac7668805862b22e862cfe80de3c4eacf39dada6c499ebc8069
7
+ data.tar.gz: 78958f5ef51f6f0efa87e8be314bdc45ca72dd1381ea4ba447e347fa41b8237c1ec3ef854add085dc69e52c6295c0efb3dcdd9ea27a684138c42688ba724aafb
data/exe/harbr CHANGED
@@ -3,6 +3,7 @@ require 'thor'
3
3
  require 'listen'
4
4
  require 'dddr'
5
5
  require 'harbr'
6
+ require 'sucker_punch'
6
7
  require 'terminal-table'
7
8
 
8
9
  class HarbrCLI < Thor
@@ -76,13 +77,19 @@ class HarbrCLI < Thor
76
77
  return if @@listener
77
78
 
78
79
  puts "Starting Harbr, listening to #{directory}"
80
+
79
81
  @@listener = Listen.to(directory) do |modified, added, removed|
80
- puts "Modified: #{modified}" unless modified.empty?
81
- puts "Added: #{added}" unless added.empty?
82
- puts "Removed: #{removed}" unless removed.empty?
82
+ unless added.empty?
83
+ added.each do |path|
84
+ /\/var\/harbr\/(?<container>.*)\/versions\/(?<version>\d*)\/config\/manifest.yml/.match(path)
85
+ if $1
86
+ Harbr::Container::Job.perform_async($1)
87
+ break
88
+ end
89
+
90
+ end
91
+ end
83
92
 
84
- puts directory
85
- # Add your logic here for handling these changes
86
93
  end
87
94
  @@listener.start # not blocking
88
95
  sleep
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.4"
4
+ VERSION = "0.0.7"
5
5
  end
data/lib/harbr.rb CHANGED
@@ -1,13 +1,83 @@
1
1
  # frozen_string_literal: true
2
2
  require_relative "harbr/version"
3
3
  require 'dddr'
4
+ require 'sucker_punch'
4
5
 
5
6
  module Harbr
6
7
  class Error < StandardError; end
7
8
  class Container
9
+ class Job
10
+ include SuckerPunch::Job
11
+
12
+ def perform(config)
13
+
14
+ puts "Harbr Job!"
15
+ puts config
16
+
17
+ end
18
+ end
19
+
8
20
  include Dddr::Entity
9
21
  attr_accessor :name, :host_header, :ip, :port
10
22
  end
11
23
 
24
+ class Port
25
+
26
+ include Dddr::Entity
27
+ attr_accessor :host_header, :number
28
+
29
+ queries do
30
+ def has_port_number?(number)
31
+ all.find {|port| port.number == number.to_i}
32
+ end
33
+ def assigned_a_port?(host_header)
34
+ all.find {|port| port.host_header == host_header}
35
+ end
36
+ end
37
+ class Pool
38
+ def initialize(port_range=50000..51000)
39
+
40
+ @repository = Port::Repository.new
41
+
42
+ port_range.each do |number|
43
+
44
+ port = Port.new
45
+ port.number = number
46
+
47
+ unless @repository.has_port_number? number
48
+ @repository.add(port)
49
+ puts port.number.to_s + " added!"
50
+ end
51
+ end
52
+
53
+ end
54
+
55
+ def get_port(host_header)
56
+
57
+ port = @repository.assigned_a_port?(host_header)
58
+ return port unless port.nil?
59
+
60
+ port = ports.shuffle.sample
61
+ port.host_header = host_header
62
+ @repository.update(port)
63
+ port
64
+ end
65
+
66
+ def return_port(port)
67
+ port.host_header = nil
68
+ @repository.update(port)
69
+ port.host_header.nil?
70
+ end
71
+
72
+ def ports
73
+ @repository.all
74
+ end
75
+
76
+ end
77
+
78
+
79
+ end
80
+
81
+
12
82
  # Your code goes here...
13
83
  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.4
4
+ version: 0.0.7
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-03 00:00:00.000000000 Z
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: listen
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.0.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: sucker_punch
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.1.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: terminal-table
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -76,8 +90,6 @@ executables:
76
90
  extensions: []
77
91
  extra_rdoc_files: []
78
92
  files:
79
- - ".data/development/Harbr::Container.dir"
80
- - ".data/development/Harbr::Container.pag"
81
93
  - ".rspec"
82
94
  - ".standard.yml"
83
95
  - CHANGELOG.md
File without changes
Binary file