obs_deploy 0.1.5.1 → 0.2.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: d4798a9c1a23588f592ece94a94dfcee1dac459d237598c122df822971a1e7b7
4
- data.tar.gz: 3e1846ac458799ba4fc2ae9802b87ac96fa2814ed43da4a2a24002729d18ea8b
3
+ metadata.gz: a671e53bbfc49281a52dfc32edc85bf74dddb20fd45034a6f3118aa60cd7693e
4
+ data.tar.gz: e8a2fa4883c4a2f182593c8c9b3bb2e4b02918047b6b5f3c6057520b963404c5
5
5
  SHA512:
6
- metadata.gz: 97f6a466b3067ef2d92a48195247d1dd3d71f6c0e07f505b642e60d2a69b220351d13e2c50450a69978895cbf355976e0593474c708089dae5a502797c441f1e
7
- data.tar.gz: 12b6f238b1ceb972cc8efa300e97facf480f995e137aa93ab0460a77958e067ca38ad7ecb1cb9acda8fce94ddaccf679c43d8e5e7d349011acfe9cc9d7b7405a
6
+ metadata.gz: 580a4c94c6769d977de4c1b91f40cf86f355e31c26027761ea24ebc82c0ba2c14cfe2161c4c36fa7b8c385fd4464bceb0dc766cc42a5e2c1c4736b52983e9a2d
7
+ data.tar.gz: 57dc7ee60f649e8a344d368d86d201001605a128319396319f833a170a3b0dbd545f96acf8e38279c33ea5b1bc77077aaf7c6ed139ecbedb024d5e2867a5c2aa
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- obs_deploy (0.1.5.1)
4
+ obs_deploy (0.2.0)
5
5
  cheetah
6
6
  dry-cli
7
7
  nokogiri
data/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Simple tool to deploy OBS via zypper to our reference server
4
4
 
5
+ ## Build Status
6
+ [![CircleCI](https://circleci.com/gh/vpereira/obs_deploy.svg?style=svg)](https://app.circleci.com/pipelines/github/vpereira/obs_deploy)
7
+
8
+
5
9
  ## Installation
6
10
 
7
11
  Just run:
@@ -23,8 +27,22 @@ zypper in ruby2.6-rubygem-obs_deploy
23
27
 
24
28
  ### To deploy
25
29
 
30
+ As default it will run in `dry-run` mode (no changes are made)
31
+
32
+ #### dry-run:
33
+
26
34
  `obs_deploy deploy --user root --host localhost`
27
35
 
36
+ or
37
+
38
+ `obs_deploy deploy --user root --host localhost --dry-run`
39
+
40
+ ### deploy
41
+
42
+ `obs_deploy deploy --user root --host localhost --no-dry-run`
43
+
44
+
45
+
28
46
  ### To check which version is deployed
29
47
 
30
48
  `obs_deploy deployed-version [--host <server>]`
@@ -33,10 +51,6 @@ zypper in ruby2.6-rubygem-obs_deploy
33
51
 
34
52
  `obs_deploy available-package [<product>] [<package-name>]`
35
53
 
36
- ### Deploy dry-run
37
-
38
- `obs_deploy deploy --user root --host localhost --dry-run`
39
-
40
54
  ### Refresh Zypper repositories
41
55
 
42
56
  `obs_deploy refresh-repositories`
data/dist/_service ADDED
@@ -0,0 +1,4 @@
1
+ <services>
2
+ <service name="download_files">
3
+ </service>
4
+ </services>
@@ -20,7 +20,7 @@
20
20
  %define mod_full_name %{mod_name}-%{version}
21
21
  %define rb_suffix ruby2.6
22
22
  Name: rubygem-obs_deploy
23
- Version: 0.1.5
23
+ Version: 0.2.0
24
24
  Release: 0
25
25
  Summary: OBS Deployment tool
26
26
  License: MIT
@@ -7,14 +7,14 @@ module ObsDeploy
7
7
  desc 'Deploy obs-api'
8
8
 
9
9
  option :user, type: :string, default: 'root', desc: 'User'
10
- option :dry_run, type: :bool, default: true, desc: 'Dry run'
10
+ option :dry_run, type: :boolean, default: true, desc: 'Dry run'
11
11
  option :host, type: :string, default: 'localhost', desc: 'Set the server address'
12
12
  option :port, type: :int, default: 22, desc: 'Set the server port'
13
13
 
14
14
  def call(user:, dry_run:, host:, port:, **)
15
15
  ssh_driver = ObsDeploy::SSH.new(user: user, server: host, port: port)
16
- zypper = ObsDeploy::Zypper.new
17
- ssh_driver.run(zypper.update(dry_run: dry_run))
16
+ zypper = ObsDeploy::Zypper.new(dry_run: dry_run)
17
+ ssh_driver.run(zypper.update)
18
18
  end
19
19
  end
20
20
  end
@@ -13,21 +13,48 @@ module ObsDeploy
13
13
  end
14
14
 
15
15
  def build_command
16
- command_line = ['-tt', "#{@user}@#{@server}", '-p', @port.to_s]
17
- command_line << ['-i', @identity_file] if @identity_file
18
- ['ssh'] + command_line.flatten
16
+ ['ssh'] + basic_connection_string + identity + ssh_port
19
17
  end
20
18
 
21
19
  def run(cmd)
22
20
  Cheetah.run(build_command + cmd, logger: logger)
23
21
  end
24
22
 
23
+ private
24
+
25
+ # -t Force pseudo-tty allocation.
26
+ # This can be used to execute arbitrary screen-based programs on a
27
+ # remote machine, which can be very useful, e.g. when implementing menu services.
28
+ # Multiple -t
29
+ # options force tty allocation, even if ssh has no local tty.
30
+ def ssh_tt
31
+ ['-tt']
32
+ end
33
+
34
+ def identity
35
+ @identity_file ? ['-i', @identity_file] : []
36
+ end
37
+
38
+ def basic_connection_string
39
+ ssh_tt + [[@user, '@', @server].join]
40
+ end
41
+
42
+ def ssh_port
43
+ @port && @port != 22 ? ['-p', @port.to_s] : []
44
+ end
45
+
25
46
  def logger
26
- Logger.new(STDOUT, level: logger_level)
47
+ Logger.new(STDOUT, level: logger_level, formatter: logger_formatter)
27
48
  end
28
49
 
29
50
  def logger_level
30
51
  @debug ? Logger::DEBUG : Logger::INFO
31
52
  end
53
+
54
+ def logger_formatter
55
+ proc do |severity, datetime, progname, msg|
56
+ "#{severity} - #{msg}\n"
57
+ end
58
+ end
32
59
  end
33
60
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ObsDeploy
4
- VERSION = '0.1.5.1'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -2,12 +2,14 @@
2
2
 
3
3
  module ObsDeploy
4
4
  class Zypper
5
- def update(dry_run: true)
6
- if dry_run
7
- run ['zypper'] + update_params + dry_run_params + package_name
8
- else
9
- run ['zypper'] + update_params + package_name
10
- end
5
+ attr_accessor :dry_run
6
+
7
+ def initialize(dry_run: true, package_name: 'obs-api')
8
+ @dry_run = dry_run
9
+ end
10
+
11
+ def update
12
+ run ['zypper'] + update_string + package_name
11
13
  end
12
14
 
13
15
  def refresh
@@ -20,6 +22,14 @@ module ObsDeploy
20
22
  params
21
23
  end
22
24
 
25
+ def update_string
26
+ if @dry_run
27
+ update_params + dry_run_params
28
+ else
29
+ update_params
30
+ end
31
+ end
32
+
23
33
  def package_name
24
34
  ['obs-api']
25
35
  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.1.5.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Pereira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-06 00:00:00.000000000 Z
11
+ date: 2020-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -159,6 +159,7 @@ files:
159
159
  - bin/obs_deploy
160
160
  - bin/setup
161
161
  - dist/Makefile
162
+ - dist/_service
162
163
  - dist/rubygem-obs_deploy.spec
163
164
  - entrypoint.sh
164
165
  - lib/obs_deploy.rb