onlyoffice_digitalocean_wrapper 0.4.1 → 0.5.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: 0756716e26a6789e98ffc4a22d58cb04587a93536680b183e600c233ae313dc8
4
- data.tar.gz: de4e2ef86ffac922ad2c44d65e8034320db3f18137d2a64d491e7314cdcb9413
3
+ metadata.gz: ab5d384e54522d5e32c96089492303e10cd3243ed0f167d7fdbf4fd0a20b4786
4
+ data.tar.gz: 7df0fc6a8ff136cf2de91791e8301b3ab9acc2e8b05a0adfe9750b6979610a1a
5
5
  SHA512:
6
- metadata.gz: 2d9c8941038d5e597f50fdce3d210f52d1902377b02e6c37c7b3f7fc6ac177de27d000f6da7edb28548d41029347694ada56467412746ac41a16368d1c892894
7
- data.tar.gz: 101b02d252365ea34d1888e0452c7ce49bdf0e3f640e4566d322a52c28fe463b4af3e9b277a8266d7e111cc2c39dd7f4887c3b045b896f35c19ed1d579c2025b
6
+ metadata.gz: 406592b3cc7107311271454d6af88b98a5eda6cfd3edc18e50b2a6a6168ec72cf946d92398189588f6e9c1d734f8416fa6368f43dc02f16cf7d520f77d38b5dd
7
+ data.tar.gz: d3854132511ae1441671a5924655bd49898d415e19ad0d295257c043a861328e93201bae94d2737bef7d659b9ff15af7393fa8ef07065d423505e8ff4cbb37f2
@@ -8,6 +8,7 @@ require_relative 'digitalocean_wrapper/getters'
8
8
  require_relative 'digitalocean_wrapper/power_actions'
9
9
  require_relative 'digitalocean_wrapper/token_methods'
10
10
 
11
+ # Namespace for this gem
11
12
  module OnlyofficeDigitaloceanWrapper
12
13
  # Class for wrapping DigitalOcean API gem
13
14
  class DigitalOceanWrapper
@@ -16,6 +17,7 @@ module OnlyofficeDigitaloceanWrapper
16
17
  include PowerActions
17
18
  include TokenMethods
18
19
 
20
+ # @return [Array<String>] list of allowed droplet sizes
19
21
  DROPLET_SIZES = %w[512mb 1gb 2gb 4gb 8gb 16gb 32gb 48gb 64gb].freeze
20
22
  attr_accessor :client
21
23
 
@@ -25,6 +27,11 @@ module OnlyofficeDigitaloceanWrapper
25
27
  raise ArgumentError, 'DigitalOceanWrapper: Your Access Token is Incorrect' unless correct_access_token?
26
28
  end
27
29
 
30
+ # Wait until droplet has status
31
+ # @param droplet_name [String] name of droplet
32
+ # @param status [String] status to wait
33
+ # @param params [Hash] additiona params
34
+ # @return [Symbol] droplet status after wait over
28
35
  def wait_until_droplet_have_status(droplet_name, status = 'active', params = {})
29
36
  timeout = params.fetch(:timeout, 300)
30
37
  counter = 0
@@ -39,6 +46,13 @@ module OnlyofficeDigitaloceanWrapper
39
46
  get_droplet_status_by_name(droplet_name)
40
47
  end
41
48
 
49
+ # Restore droplet from image by name
50
+ # @param image_name [String] name of image
51
+ # @param droplet_name [String] name for droplet
52
+ # @param region [String] region to restore
53
+ # @param size [String] size of droplet
54
+ # @param tags [String, Array<String>] name of tags to apply
55
+ # @return [Object] object with droplet data
42
56
  def restore_image_by_name(image_name = 'nct-at-stable',
43
57
  droplet_name = image_name,
44
58
  region = 'nyc3',
@@ -64,6 +78,9 @@ module OnlyofficeDigitaloceanWrapper
64
78
  created
65
79
  end
66
80
 
81
+ # Destroy droplet by name
82
+ # @param droplet_name [String] name of droplet
83
+ # @return [Symbol] Droplet status after destruction
67
84
  def destroy_droplet_by_name(droplet_name = 'nct-at1')
68
85
  droplet_id = get_droplet_id_by_name(droplet_name)
69
86
  client.droplets.delete(id: droplet_id)
@@ -22,6 +22,9 @@ module OnlyofficeDigitaloceanWrapper
22
22
  end
23
23
  end
24
24
 
25
+ # Return droplet id by it's name
26
+ # @param droplet_name [String] name of droplet
27
+ # @return [Integer] id of droplet
25
28
  def get_droplet_id_by_name(droplet_name)
26
29
  droplet = droplet_by_name(droplet_name)
27
30
  if droplet.nil?
@@ -33,6 +36,9 @@ module OnlyofficeDigitaloceanWrapper
33
36
  end
34
37
  end
35
38
 
39
+ # Return droplet ip by it's name
40
+ # @param droplet_name [String] name of droplet
41
+ # @return [String] ip of droplet
36
42
  def get_droplet_ip_by_name(droplet_name)
37
43
  droplet = droplet_by_name(droplet_name)
38
44
  if droplet.nil?
@@ -46,6 +52,9 @@ module OnlyofficeDigitaloceanWrapper
46
52
  end
47
53
  end
48
54
 
55
+ # Return droplet status by it's name
56
+ # @param droplet_name [String] name of droplet
57
+ # @return [Symbol] droplet status
49
58
  def get_droplet_status_by_name(droplet_name)
50
59
  droplet = droplet_by_name(droplet_name)
51
60
  if droplet.nil?
@@ -66,7 +75,7 @@ module OnlyofficeDigitaloceanWrapper
66
75
  # @return [String] public ip
67
76
  def public_ip(droplet)
68
77
  networks = droplet.networks.to_a.first
69
- public_network = networks.find { |net| net.type == 'public'}
78
+ public_network = networks.find { |net| net.type == 'public' }
70
79
  public_network.ip_address
71
80
  end
72
81
  end
@@ -3,18 +3,27 @@
3
3
  module OnlyofficeDigitaloceanWrapper
4
4
  # Actions with power (turn on/off, reboot)
5
5
  module PowerActions
6
+ # Turn off droplet
7
+ # @param droplet_name [String] droplet to turn off
8
+ # @return [Symbol] droplet result status
6
9
  def power_off_droplet(droplet_name)
7
10
  droplet_id = get_droplet_id_by_name(droplet_name)
8
11
  client.droplet_actions.power_off(droplet_id: droplet_id)
9
12
  wait_until_droplet_have_status(droplet_name, 'off')
10
13
  end
11
14
 
15
+ # Turn on droplet
16
+ # @param droplet_name [String] droplet to turn on
17
+ # @return [Symbol] droplet result status
12
18
  def power_on_droplet(droplet_name)
13
19
  droplet_id = get_droplet_id_by_name(droplet_name)
14
20
  client.droplet_actions.power_on(droplet_id: droplet_id)
15
21
  wait_until_droplet_have_status(droplet_name)
16
22
  end
17
23
 
24
+ # Reboot droplet
25
+ # @param droplet_name [String] droplet to reboot
26
+ # @return [Symbol] droplet result status
18
27
  def reboot_droplet(droplet_name)
19
28
  droplet_id = get_droplet_id_by_name(droplet_name)
20
29
  client.droplet_actions.reboot(droplet_id: droplet_id)
@@ -15,14 +15,17 @@ module OnlyofficeDigitaloceanWrapper
15
15
  end
16
16
 
17
17
  # Read access token from file system
18
+ # @param token_file_path [String] path to token
19
+ # @param force_file_read [True, False] should read from file be forced
18
20
  # @return [String] token
19
- def read_token
20
- return ENV['DO_ACCESS_TOKEN'] if ENV['DO_ACCESS_TOKEN']
21
+ def read_token(token_file_path: "#{Dir.home}/.do/access_token",
22
+ force_file_read: false)
23
+ return ENV['DO_ACCESS_TOKEN'] if ENV['DO_ACCESS_TOKEN'] && !force_file_read
21
24
 
22
- File.read(Dir.home + '/.do/access_token').delete("\n")
25
+ File.read(token_file_path).delete("\n")
23
26
  rescue Errno::ENOENT
24
- raise Errno::ENOENT, "No access token found in #{Dir.home}/.do/ directory." \
25
- "Please create files #{Dir.home}/.do/access_token"
27
+ raise Errno::ENOENT, "No access token found in #{token_file_path}. " \
28
+ "Please create file #{token_file_path} with token"
26
29
  end
27
30
  end
28
31
  end
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OnlyofficeDigitaloceanWrapper
4
- VERSION = '0.4.1'
4
+ # @return [String] version of gem
5
+ VERSION = '0.5.0'
6
+ # @return [String] name of gem
5
7
  NAME = 'onlyoffice_digitalocean_wrapper'
6
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onlyoffice_digitalocean_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ONLYOFFICE
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-10-05 00:00:00.000000000 Z
13
+ date: 2020-10-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: droplet_kit
@@ -40,6 +40,34 @@ dependencies:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '1'
43
+ - !ruby/object:Gem::Dependency
44
+ name: codecov
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: overcommit
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
43
71
  - !ruby/object:Gem::Dependency
44
72
  name: rake
45
73
  requirement: !ruby/object:Gem::Requirement
@@ -54,6 +82,90 @@ dependencies:
54
82
  - - "~>"
55
83
  - !ruby/object:Gem::Version
56
84
  version: '13.0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: rspec
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '3'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '3'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rubocop
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 0.49.0
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.49.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: rubocop-performance
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '1'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '1'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rubocop-rake
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: rubocop-rspec
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '1'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '1'
155
+ - !ruby/object:Gem::Dependency
156
+ name: yard
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: 0.9.20
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 0.9.20
57
169
  description: Wrapper gem for DigitalOcean. Use in testing projects
58
170
  email:
59
171
  - shockwavenn@gmail.com
@@ -70,15 +182,15 @@ files:
70
182
  - lib/onlyoffice_digitalocean_wrapper/digitalocean_wrapper/power_actions.rb
71
183
  - lib/onlyoffice_digitalocean_wrapper/digitalocean_wrapper/token_methods.rb
72
184
  - lib/onlyoffice_digitalocean_wrapper/version.rb
73
- homepage: https://github.com/onlyoffice-testing-robot/onlyoffice_digitalocean_wrapper
185
+ homepage: https://github.com/ONLYOFFICE-QA/onlyoffice_digitalocean_wrapper
74
186
  licenses:
75
187
  - AGPL-3.0
76
188
  metadata:
77
- bug_tracker_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_digitalocean_wrapper/issues
78
- changelog_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_digitalocean_wrapper/blob/master/CHANGELOG.md
189
+ bug_tracker_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_digitalocean_wrapper/issues
190
+ changelog_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_digitalocean_wrapper/blob/master/CHANGELOG.md
79
191
  documentation_uri: https://www.rubydoc.info/gems/onlyoffice_digitalocean_wrapper
80
- homepage_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_digitalocean_wrapper
81
- source_code_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_digitalocean_wrapper
192
+ homepage_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_digitalocean_wrapper
193
+ source_code_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_digitalocean_wrapper
82
194
  post_install_message:
83
195
  rdoc_options: []
84
196
  require_paths:
@@ -87,7 +199,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
199
  requirements:
88
200
  - - ">="
89
201
  - !ruby/object:Gem::Version
90
- version: '2.3'
202
+ version: '2.5'
91
203
  required_rubygems_version: !ruby/object:Gem::Requirement
92
204
  requirements:
93
205
  - - ">="