obs_deploy 0.3.3 → 0.3.8

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: 31f63b8788107bedb1301441ad228264914e7bee05fde3818b293c6c65601ca5
4
- data.tar.gz: 06a350ca3015869e292b5f1303e4155abd7d5d7cb751bb8e607b15135834bdad
3
+ metadata.gz: 945e4a6b3bc1cef34066f2ab38aaa8496b1f819e36df039857f23df5b159469d
4
+ data.tar.gz: c7e4e1899fb080b758c28f21b4339ec4441d02bf3f1c0d1df86d0d31795ebea0
5
5
  SHA512:
6
- metadata.gz: c13028e79c56e20c27dabfa96f5abc3e2896ca83ac3b05df3ccfc78d52bb8e4f66aad42b45898dfe190acab54ed5b5d1ca6e67420452737e33fe7ed4381ca26c
7
- data.tar.gz: 56c9454fd932d2516e2c6979eef5f7654b631a6c6e7effabfe6598efb5c170d10b08403492e23ed234fc9276712dd3de9dab80549678a1b3c0bd6602a39abdf5
6
+ metadata.gz: 76f6f04fdd95fd49392fd8d8c174c34d62e2cd98a404d844bf291389a5abea9a3b18142b33916aedc6408df77012d52c6ea9f30a8f5ffee429da897622d69842
7
+ data.tar.gz: 8dd241eba5d8d4067447caf960fbec171d050592a72c87ee5d2d0dd5ebfcb70410741a41f2b5a96d05255ceed0a2753d58068d4e39aa3615646ea6a526758baf
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.3)
4
+ obs_deploy (0.3.8)
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,8 +5,14 @@ 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'
@@ -9,9 +9,9 @@ module ObsDeploy
9
9
  option :host, type: :string, default: 'localhost', desc: 'Set the server address'
10
10
  option :port, type: :int, default: 22, desc: 'Set the server port'
11
11
 
12
- def call(user:, dry_run:, host:, port:, **)
12
+ def call(user:, host:, port:, **)
13
13
  ssh_driver = ObsDeploy::SSH.new(user: user, server: host, port: port)
14
- zypper = ObsDeploy::Zypper.new(dry_run: dry_run)
14
+ zypper = ObsDeploy::Zypper.new
15
15
  ssh_driver.run(zypper.refresh)
16
16
  end
17
17
  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.3'
4
+ VERSION = '0.3.8'
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.3
4
+ version: 0.3.8
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-06 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