obs_deploy 0.3.4 → 0.3.9

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: 7b06482a05bb760b164c26f015d69b09b13b59a855db5d406a63824cc475b308
4
- data.tar.gz: 0220bcb91b6c9064362ba28ef74e0e7ea55fdbca7be5e246dd07ce5e5d0adb7f
3
+ metadata.gz: 270586d05289871ade6a65de49c6e363d58525745535da5fc5f95c3a155f26b2
4
+ data.tar.gz: 5df94bb7f4fbeb7a0068ecf59af2d0904aafbc0b854aa03884b3ffa445b2ecae
5
5
  SHA512:
6
- metadata.gz: 684270b637b96c5c3e6fbc18f3c3a8f9bf752c49f818b288ae568433b08582141c74be222f2296484a99d24d1dbaa6b20224aedb09810a283a29a28bf606dd63
7
- data.tar.gz: 7b9e429fcb39000623e6b2a1f3b581a4f3348551e963ee2ad9906cf3905256add5ad0a3ef6519f470c54989834310326e08d071bbd85275a66b1d2ea4b3d7f84
6
+ metadata.gz: c26bb9750eaa66e1fda974966b25077a2b9b4bb40ecf0eca4d5bc208b433f5e7145a7b583b35d95c8ef8f3156245af8588f02cb25882a11129d95f08c8da0a75
7
+ data.tar.gz: e15d6d0fc1842b721b2db3dd759a4185330809d490f8ed850c9962444b5504b2df2ea787ecb0e3485b422ae26a607c7434e08a610c104ea47787cde28e58c231
data/Dockerfile.dev CHANGED
@@ -1,7 +1,8 @@
1
1
  FROM opensuse/tumbleweed
2
2
 
3
3
  RUN zypper --gpg-auto-import-keys refresh
4
- RUN zypper install -y openssh vim iputils
4
+ RUN zypper install -y openssh vim iputils ruby2.7 ruby2.7-devel ruby2.7-rubygem-cheetah ruby2.7-rubygem-nokogiri
5
+ RUN gem install git_diff_parser dry-cli
5
6
 
6
7
  COPY entrypoint.sh /entrypoint.sh
7
8
  RUN chmod +x /entrypoint.sh
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- obs_deploy (0.3.4)
4
+ obs_deploy (0.3.9)
5
5
  cheetah
6
6
  dry-cli
7
+ git_diff_parser
7
8
  nokogiri
8
9
 
9
10
  GEM
@@ -16,17 +17,18 @@ GEM
16
17
  cheetah (0.5.2)
17
18
  abstract_method (~> 1.2)
18
19
  coderay (1.1.2)
19
- concurrent-ruby (1.1.7)
20
+ concurrent-ruby (1.1.8)
20
21
  crack (0.4.3)
21
22
  safe_yaml (~> 1.0.0)
22
23
  diff-lcs (1.3)
23
24
  dry-cli (0.6.0)
24
25
  concurrent-ruby (~> 1.0)
26
+ git_diff_parser (3.2.0)
25
27
  hashdiff (1.0.1)
26
28
  jaro_winkler (1.5.4)
27
29
  method_source (1.0.0)
28
30
  mini_portile2 (2.5.0)
29
- nokogiri (1.11.0)
31
+ nokogiri (1.11.1)
30
32
  mini_portile2 (~> 2.5.0)
31
33
  racc (~> 1.4)
32
34
  parallel (1.19.1)
@@ -82,4 +84,4 @@ DEPENDENCIES
82
84
  webmock
83
85
 
84
86
  BUNDLED WITH
85
- 2.1.4
87
+ 2.2.8
data/README.md CHANGED
@@ -27,25 +27,6 @@ zypper in ruby2.6-rubygem-obs_deploy
27
27
  ## Usage
28
28
 
29
29
 
30
-
31
- ### To deploy
32
-
33
- As default it will run in `dry-run` mode (no changes are made)
34
-
35
- #### dry-run:
36
-
37
- `obs_deploy deploy --user root --host localhost`
38
-
39
- or
40
-
41
- `obs_deploy deploy --user root --host localhost --dry-run`
42
-
43
- ### deploy
44
-
45
- `obs_deploy deploy --user root --host localhost --no-dry-run`
46
-
47
-
48
-
49
30
  ### To check which version is deployed
50
31
 
51
32
  `obs_deploy deployed-version [--host <server>]`
data/lib/obs_deploy.rb CHANGED
@@ -4,8 +4,8 @@ require 'open-uri'
4
4
  require 'net/http'
5
5
  require 'cheetah'
6
6
  require 'logger'
7
-
8
7
  require 'nokogiri'
8
+ require 'git_diff_parser'
9
9
  require 'obs_deploy/version'
10
10
  require 'obs_deploy/check_diff'
11
11
  require 'obs_deploy/ssh'
@@ -34,7 +34,7 @@ module ObsDeploy
34
34
  def has_migration?
35
35
  return true if github_diff.nil? || github_diff.empty?
36
36
 
37
- github_diff.match?(%r{db/migrate})
37
+ GitDiffParser.parse(github_diff).files.any? { |f| f.match?(%r{db/migrate}) }
38
38
  end
39
39
 
40
40
  def has_data_migration?
@@ -17,7 +17,6 @@ module ObsDeploy
17
17
  register 'available-package', GetPackageVersion, aliases: ['ap']
18
18
  register 'deployed-version', GetDeployedVersion, aliases: ['dv']
19
19
  register 'version', Version, aliases: ['v', '-v', '--version']
20
- register 'deploy', Deploy, aliases: ['dp']
21
20
  register 'refresh-repositories', RefreshRepositories, aliases: ['rr']
22
21
  register 'systemctl', Systemctl, aliases: ['sys']
23
22
  register 'pending-migrations', GetPendingMigration, aliases: ['pm']
@@ -6,8 +6,14 @@ module ObsDeploy
6
6
  class GetDeployedVersion < Dry::CLI::Command
7
7
  desc 'Get the deployed version of OBS'
8
8
  option :url, type: :string, default: 'https://api.opensuse.org', desc: 'API url'
9
+ option :ignore_certificate, aliases: ['k'], type: :bool, default: false, desc: 'Ignore invalid or self-signed SSL certificates'
10
+
11
+ def call(url:, ignore_certificate:, **)
12
+ if ignore_certificate
13
+ OpenSSL::SSL.send(:remove_const, :VERIFY_PEER)
14
+ OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE)
15
+ end
9
16
 
10
- def call(url:, **)
11
17
  puts "Deployed version: #{ObsDeploy::CheckDiff.new(server: url).obs_running_commit}"
12
18
  end
13
19
  end
@@ -10,8 +10,13 @@ module ObsDeploy
10
10
  option :project, type: :string, default: 'OBS:Server:Unstable', desc: 'Project name'
11
11
  option :product, type: :string, default: 'SLE_12_SP4', desc: 'Product name'
12
12
  option :architecture, type: :string, default: 'x86_64', desc: 'Architecture'
13
+ option :ignore_certificate, aliases: ['k'], type: :bool, default: false, desc: 'Ignore invalid or self-signed SSL certificates'
13
14
 
14
- def call(url:, product:, project:, **)
15
+ def call(url:, product:, project:, ignore_certificate:, **)
16
+ if ignore_certificate
17
+ OpenSSL::SSL.send(:remove_const, :VERIFY_PEER)
18
+ OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE)
19
+ end
15
20
  puts "diff : #{ObsDeploy::CheckDiff.new(server: url, project: project, product: product).github_diff}"
16
21
  end
17
22
  end
@@ -9,8 +9,14 @@ module ObsDeploy
9
9
  option :package, type: :string, default: 'obs-api', desc: 'Package name'
10
10
  option :product, type: :string, default: 'SLE_12_SP4', desc: 'Product name'
11
11
  option :architecture, type: :string, default: 'x86_64', desc: 'Architecture'
12
+ option :ignore_certificate, aliases: ['k'], type: :bool, default: false, desc: 'Ignore invalid or self-signed SSL certificates'
13
+
14
+ def call(url:, ignore_certificate:, product:, **)
15
+ if ignore_certificate
16
+ OpenSSL::SSL.send(:remove_const, :VERIFY_PEER)
17
+ OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE)
18
+ end
12
19
 
13
- def call(url:, product:, **)
14
20
  puts "Available package: #{ObsDeploy::CheckDiff.new(server: url, product: product).package_version}"
15
21
  end
16
22
  end
@@ -5,13 +5,21 @@ module ObsDeploy
5
5
  module Commands
6
6
  class GetPendingMigration < Dry::CLI::Command
7
7
  option :url, type: :string, default: 'https://api.opensuse.org', desc: 'API url'
8
+ option :ignore_certificate, aliases: ['k'], type: :bool, default: false, desc: 'Ignore invalid or self-signed SSL certificates'
9
+
10
+ def call(url:, ignore_certificate:, **)
11
+ if ignore_certificate
12
+ OpenSSL::SSL.send(:remove_const, :VERIFY_PEER)
13
+ OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE)
14
+ end
8
15
 
9
- def call(url:, **)
10
16
  migrations = ObsDeploy::CheckDiff.new(server: url).migrations
11
17
  if migrations.empty?
12
18
  puts 'No pending migrations'
19
+ exit(0)
13
20
  else
14
21
  puts migrations
22
+ exit(1)
15
23
  end
16
24
  end
17
25
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pry'
4
3
  module ObsDeploy
5
4
  module CLI
6
5
  module Commands
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ObsDeploy
4
- VERSION = '0.3.4'
4
+ VERSION = '0.3.9'
5
5
  end
data/obs_deploy.gemspec CHANGED
@@ -35,5 +35,6 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency 'webmock'
36
36
  spec.add_dependency 'cheetah'
37
37
  spec.add_dependency 'dry-cli'
38
+ spec.add_dependency 'git_diff_parser'
38
39
  spec.add_dependency 'nokogiri'
39
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: obs_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Pereira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-14 00:00:00.000000000 Z
11
+ date: 2021-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: git_diff_parser
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: nokogiri
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -168,7 +182,6 @@ files:
168
182
  - lib/obs_deploy/apache_sysconfig.rb
169
183
  - lib/obs_deploy/check_diff.rb
170
184
  - lib/obs_deploy/cli/commands.rb
171
- - lib/obs_deploy/cli/commands/deploy.rb
172
185
  - lib/obs_deploy/cli/commands/get_deployed_version.rb
173
186
  - lib/obs_deploy/cli/commands/get_diff.rb
174
187
  - lib/obs_deploy/cli/commands/get_package_version.rb
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ObsDeploy
4
- module CLI
5
- module Commands
6
- class Deploy < Dry::CLI::Command
7
- desc 'Deploy obs-api'
8
-
9
- option :user, type: :string, default: 'root', desc: 'User'
10
- option :dry_run, type: :boolean, default: true, desc: 'Dry run'
11
- option :host, type: :string, default: 'localhost', desc: 'Set the server address'
12
- option :port, type: :int, default: 22, desc: 'Set the server port'
13
-
14
- def call(user:, dry_run:, host:, port:, **)
15
- ssh_driver = ObsDeploy::SSH.new(user: user, server: host, port: port)
16
- zypper = ObsDeploy::Zypper.new(dry_run: dry_run)
17
- ssh_driver.run(zypper.update)
18
- end
19
- end
20
- end
21
- end
22
- end