obs_deploy 0.3.0 → 0.3.5
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 +4 -4
- data/Gemfile.lock +7 -5
- data/dist/Makefile +1 -1
- data/dist/rubygem-obs_deploy.spec +39 -92
- data/lib/obs_deploy/check_diff.rb +9 -3
- data/lib/obs_deploy/cli/commands.rb +8 -6
- data/lib/obs_deploy/cli/commands/get_deployed_version.rb +7 -1
- data/lib/obs_deploy/cli/commands/get_diff.rb +19 -1
- data/lib/obs_deploy/cli/commands/get_package_version.rb +7 -1
- data/lib/obs_deploy/cli/commands/get_pending_migration.rb +7 -1
- data/lib/obs_deploy/cli/commands/refresh_repositories.rb +1 -2
- data/lib/obs_deploy/version.rb +1 -1
- metadata +2 -3
- data/.travis.yml +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a525028509dae49e8de2a70652610f8dbbc5e81f2006022bb5691113f76d9aa
|
4
|
+
data.tar.gz: 6c45a8f8a0e8a2957c8ff59d1b696e670d8299e2c01cfdd5567a80d4d0d14148
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fab4b9747706c4d5e2b44581a60c0f3ef21fe5e02b4f415959e4c907e0f46c0c0211d64b53d266107d0e33b05852ec8886462b587505908ebccf29eadd797b2
|
7
|
+
data.tar.gz: 61f0eca04c6465ba339bfde0b9cf8d4a846db4c236501bacd817b8b99fa0931aca1c833bd1d03b339fade9fae56c9825f6c7dd0db691523e7d88d1e77b4e937f
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
obs_deploy (0.
|
4
|
+
obs_deploy (0.3.5)
|
5
5
|
cheetah
|
6
6
|
dry-cli
|
7
7
|
nokogiri
|
@@ -16,7 +16,7 @@ GEM
|
|
16
16
|
cheetah (0.5.2)
|
17
17
|
abstract_method (~> 1.2)
|
18
18
|
coderay (1.1.2)
|
19
|
-
concurrent-ruby (1.1.
|
19
|
+
concurrent-ruby (1.1.7)
|
20
20
|
crack (0.4.3)
|
21
21
|
safe_yaml (~> 1.0.0)
|
22
22
|
diff-lcs (1.3)
|
@@ -25,9 +25,10 @@ GEM
|
|
25
25
|
hashdiff (1.0.1)
|
26
26
|
jaro_winkler (1.5.4)
|
27
27
|
method_source (1.0.0)
|
28
|
-
mini_portile2 (2.
|
29
|
-
nokogiri (1.
|
30
|
-
mini_portile2 (~> 2.
|
28
|
+
mini_portile2 (2.5.0)
|
29
|
+
nokogiri (1.11.1)
|
30
|
+
mini_portile2 (~> 2.5.0)
|
31
|
+
racc (~> 1.4)
|
31
32
|
parallel (1.19.1)
|
32
33
|
parser (2.7.0.5)
|
33
34
|
ast (~> 2.4.0)
|
@@ -35,6 +36,7 @@ GEM
|
|
35
36
|
coderay (~> 1.1)
|
36
37
|
method_source (~> 1.0)
|
37
38
|
public_suffix (4.0.3)
|
39
|
+
racc (1.5.2)
|
38
40
|
rainbow (3.0.0)
|
39
41
|
rake (13.0.1)
|
40
42
|
rexml (3.2.4)
|
data/dist/Makefile
CHANGED
@@ -1,104 +1,51 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
#
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
BuildRequires:
|
33
|
-
|
34
|
-
|
35
|
-
Provides: ruby(Obs_deploy) = %{version}
|
36
|
-
|
37
|
-
%define gemdir /home/vpereira/.rvm/gems/ruby-2.5.0
|
38
|
-
%define gembuilddir %{buildroot}%{gemdir}
|
1
|
+
#
|
2
|
+
# spec file for package rubygem-obs_deploy
|
3
|
+
#
|
4
|
+
# Copyright (c) 2020 SUSE LLC
|
5
|
+
#
|
6
|
+
# All modifications and additions to the file contributed by third parties
|
7
|
+
# remain the property of their copyright owners, unless otherwise agreed
|
8
|
+
# upon. The license for this file, and modifications and additions to the
|
9
|
+
# file, is the same license as for the pristine package itself (unless the
|
10
|
+
# license for the pristine package is not an Open Source License, in which
|
11
|
+
# case the license is the MIT License). An "Open Source License" is a
|
12
|
+
# license that conforms to the Open Source Definition (Version 1.9)
|
13
|
+
# published by the Open Source Initiative.
|
14
|
+
|
15
|
+
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
16
|
+
#
|
17
|
+
|
18
|
+
|
19
|
+
%define mod_name obs_deploy
|
20
|
+
%define mod_full_name %{mod_name}-%{version}
|
21
|
+
Name: rubygem-obs_deploy
|
22
|
+
Version: 0.3.0
|
23
|
+
Release: 0
|
24
|
+
Summary: OBS Deployment tool
|
25
|
+
License:
|
26
|
+
Group: Development/Languages/Ruby
|
27
|
+
URL: https://openbuildservice.org
|
28
|
+
Source: https://rubygems.org/gems/%{mod_full_name}.gem
|
29
|
+
BuildRequires: %{rubygem gem2rpm}
|
30
|
+
BuildRequires: %{ruby}
|
31
|
+
BuildRequires: ruby-macros >= 5
|
32
|
+
BuildRequires: update-alternatives
|
33
|
+
# FIXME: use proper Requires(pre/post/preun/...)
|
34
|
+
PreReq: update-alternatives
|
39
35
|
|
40
36
|
%description
|
41
37
|
OBS Deployment tool.
|
42
38
|
|
43
|
-
|
44
39
|
%prep
|
45
|
-
%setup -T -c
|
46
40
|
|
47
41
|
%build
|
48
42
|
|
49
43
|
%install
|
50
|
-
%
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
mv %{gembuilddir}/bin/* %{buildroot}/%{_bindir}
|
55
|
-
rmdir %{gembuilddir}/bin
|
56
|
-
|
57
|
-
%clean
|
58
|
-
%{__rm} -rf %{buildroot}
|
59
|
-
|
60
|
-
%files
|
61
|
-
%defattr(-, root, root)
|
62
|
-
%{_bindir}/console
|
63
|
-
%{_bindir}/obs_deploy
|
64
|
-
%{_bindir}/setup
|
65
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
66
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
67
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
68
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
69
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
70
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
71
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
72
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
73
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
74
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
75
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
76
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
77
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
78
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
79
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
80
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
81
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
82
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
83
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
84
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
85
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
86
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
87
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
88
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
89
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
90
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
91
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
92
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
93
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
94
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
95
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
96
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
97
|
-
%{gemdir}/gems/obs_deploy-0.2.5/
|
98
|
-
|
44
|
+
%gem_install \
|
45
|
+
--symlink-binaries \
|
46
|
+
--doc-files="README.md" \
|
47
|
+
-f
|
99
48
|
|
100
|
-
%
|
101
|
-
%{gemdir}/cache/obs_deploy-0.2.5.gem
|
102
|
-
%{gemdir}/specifications/obs_deploy-0.2.5.gemspec
|
49
|
+
%gem_packages
|
103
50
|
|
104
51
|
%changelog
|
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
module ObsDeploy
|
4
4
|
class CheckDiff
|
5
|
-
def initialize(server: 'https://api.opensuse.org', product: 'SLE_12_SP4')
|
5
|
+
def initialize(server: 'https://api.opensuse.org', product: 'SLE_12_SP4', project: 'OBS:Server:Unstable', target_server: 'https://api.opensuse.org')
|
6
6
|
@server = server
|
7
7
|
@product = product
|
8
|
+
@project = project
|
9
|
+
@target_server = target_server
|
8
10
|
end
|
9
11
|
|
10
12
|
def package_version
|
@@ -25,6 +27,10 @@ module ObsDeploy
|
|
25
27
|
Net::HTTP.get(URI("https://github.com/openSUSE/open-build-service/compare/#{obs_running_commit}...#{package_commit}.diff"))
|
26
28
|
end
|
27
29
|
|
30
|
+
def new_version_available?
|
31
|
+
obs_running_commit != package_commit
|
32
|
+
end
|
33
|
+
|
28
34
|
def has_migration?
|
29
35
|
return true if github_diff.nil? || github_diff.empty?
|
30
36
|
|
@@ -50,11 +56,11 @@ module ObsDeploy
|
|
50
56
|
end
|
51
57
|
|
52
58
|
def package_url
|
53
|
-
URI("#{@server}/public/build
|
59
|
+
URI("#{@server}/public/build/#{@project}/#{@product}/x86_64/obs-server")
|
54
60
|
end
|
55
61
|
|
56
62
|
def about_url
|
57
|
-
URI("#{@
|
63
|
+
URI("#{@target_server}/about")
|
58
64
|
end
|
59
65
|
end
|
60
66
|
end
|
@@ -11,15 +11,17 @@ module ObsDeploy
|
|
11
11
|
autoload :GetDeployedVersion, File.join(__dir__, 'commands/get_deployed_version.rb')
|
12
12
|
autoload :Systemctl, File.join(__dir__, 'commands/systemctl.rb')
|
13
13
|
autoload :GetPendingMigration, File.join(__dir__, 'commands/get_pending_migration.rb')
|
14
|
+
autoload :GetDiff, File.join(__dir__, 'commands/get_diff.rb')
|
14
15
|
|
15
16
|
# register the commands and its command line
|
16
|
-
register 'available-package', GetPackageVersion
|
17
|
-
register 'deployed-version', GetDeployedVersion
|
17
|
+
register 'available-package', GetPackageVersion, aliases: ['ap']
|
18
|
+
register 'deployed-version', GetDeployedVersion, aliases: ['dv']
|
18
19
|
register 'version', Version, aliases: ['v', '-v', '--version']
|
19
|
-
register 'deploy', Deploy
|
20
|
-
register 'refresh-repositories', RefreshRepositories
|
21
|
-
register 'systemctl', Systemctl
|
22
|
-
register 'pending-migrations', GetPendingMigration
|
20
|
+
register 'deploy', Deploy, aliases: ['dp']
|
21
|
+
register 'refresh-repositories', RefreshRepositories, aliases: ['rr']
|
22
|
+
register 'systemctl', Systemctl, aliases: ['sys']
|
23
|
+
register 'pending-migrations', GetPendingMigration, aliases: ['pm']
|
24
|
+
register 'check-diff', GetDiff, aliases: ['cd']
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -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'
|
9
10
|
|
10
|
-
def call(url:, **)
|
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
|
16
|
+
|
11
17
|
puts "Deployed version: #{ObsDeploy::CheckDiff.new(server: url).obs_running_commit}"
|
12
18
|
end
|
13
19
|
end
|
@@ -2,7 +2,25 @@
|
|
2
2
|
|
3
3
|
module ObsDeploy
|
4
4
|
module CLI
|
5
|
-
|
5
|
+
module Commands
|
6
|
+
class GetDiff < Dry::CLI::Command
|
7
|
+
desc 'Get diff between deployed package and available package'
|
8
|
+
option :url, type: :string, default: 'https://api.opensuse.org', desc: 'API url'
|
9
|
+
option :package, type: :string, default: 'obs-api', desc: 'Package name'
|
10
|
+
option :project, type: :string, default: 'OBS:Server:Unstable', desc: 'Project name'
|
11
|
+
option :product, type: :string, default: 'SLE_12_SP4', desc: 'Product name'
|
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'
|
14
|
+
|
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
|
20
|
+
puts "diff : #{ObsDeploy::CheckDiff.new(server: url, project: project, product: product).github_diff}"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
6
24
|
end
|
7
25
|
end
|
8
26
|
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'
|
12
13
|
|
13
|
-
def call(url:, product:, **)
|
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
|
19
|
+
|
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'
|
8
9
|
|
9
|
-
def call(url:, **)
|
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
|
15
|
+
|
10
16
|
migrations = ObsDeploy::CheckDiff.new(server: url).migrations
|
11
17
|
if migrations.empty?
|
12
18
|
puts 'No pending migrations'
|
@@ -6,11 +6,10 @@ module ObsDeploy
|
|
6
6
|
class RefreshRepositories < Dry::CLI::Command
|
7
7
|
desc 'Refresh zypper repositories'
|
8
8
|
option :user, type: :string, default: 'root', desc: 'User'
|
9
|
-
option :dry_run, type: :bool, default: true, desc: 'Dry run'
|
10
9
|
option :host, type: :string, default: 'localhost', desc: 'Set the server address'
|
11
10
|
option :port, type: :int, default: 22, desc: 'Set the server port'
|
12
11
|
|
13
|
-
def call(user:,
|
12
|
+
def call(user:, host:, port:, **)
|
14
13
|
ssh_driver = ObsDeploy::SSH.new(user: user, server: host, port: port)
|
15
14
|
zypper = ObsDeploy::Zypper.new
|
16
15
|
ssh_driver.run(zypper.refresh)
|
data/lib/obs_deploy/version.rb
CHANGED
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
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Pereira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,7 +150,6 @@ files:
|
|
150
150
|
- ".gitignore"
|
151
151
|
- ".rspec"
|
152
152
|
- ".rubocop.yml"
|
153
|
-
- ".travis.yml"
|
154
153
|
- Dockerfile.dev
|
155
154
|
- Dockerfile.rpm
|
156
155
|
- Gemfile
|