serverspec-extra-types 0.1.3 → 0.1.4

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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -1
  3. data/Gemfile +2 -0
  4. data/Rakefile +2 -0
  5. data/bin/console +1 -0
  6. data/lib/serverspec_extra_types/helpers/properties.rb +2 -0
  7. data/lib/serverspec_extra_types/matchers/be_a_manager_node.rb +2 -0
  8. data/lib/serverspec_extra_types/matchers/be_a_worker_node.rb +2 -0
  9. data/lib/serverspec_extra_types/matchers/be_active.rb +2 -0
  10. data/lib/serverspec_extra_types/matchers/configure_queue.rb +2 -0
  11. data/lib/serverspec_extra_types/matchers/have_count.rb +2 -0
  12. data/lib/serverspec_extra_types/matchers/have_domain_name.rb +2 -0
  13. data/lib/serverspec_extra_types/matchers/have_engine_version.rb +2 -0
  14. data/lib/serverspec_extra_types/matchers/have_environment_variable.rb +2 -0
  15. data/lib/serverspec_extra_types/matchers/have_ha_mode.rb +2 -0
  16. data/lib/serverspec_extra_types/matchers/have_ha_nodes.rb +2 -0
  17. data/lib/serverspec_extra_types/matchers/have_ha_sync_mode.rb +2 -0
  18. data/lib/serverspec_extra_types/matchers/have_host.rb +2 -0
  19. data/lib/serverspec_extra_types/matchers/have_hostname.rb +2 -0
  20. data/lib/serverspec_extra_types/matchers/have_image.rb +2 -0
  21. data/lib/serverspec_extra_types/matchers/have_image_sha.rb +2 -0
  22. data/lib/serverspec_extra_types/matchers/have_label.rb +4 -2
  23. data/lib/serverspec_extra_types/matchers/have_mount.rb +2 -0
  24. data/lib/serverspec_extra_types/matchers/have_network.rb +2 -0
  25. data/lib/serverspec_extra_types/matchers/have_placement_constraint.rb +2 -0
  26. data/lib/serverspec_extra_types/matchers/have_replica_count.rb +2 -0
  27. data/lib/serverspec_extra_types/matchers/have_restart_limit.rb +2 -0
  28. data/lib/serverspec_extra_types/matchers/have_restart_policy.rb +2 -0
  29. data/lib/serverspec_extra_types/matchers/have_user.rb +2 -0
  30. data/lib/serverspec_extra_types/matchers/have_vhost.rb +2 -0
  31. data/lib/serverspec_extra_types/matchers/http_1xx.rb +109 -0
  32. data/lib/serverspec_extra_types/matchers/http_2xx.rb +361 -0
  33. data/lib/serverspec_extra_types/matchers/http_3xx.rb +289 -0
  34. data/lib/serverspec_extra_types/matchers/http_4xx.rb +1081 -0
  35. data/lib/serverspec_extra_types/matchers/http_5xx.rb +433 -0
  36. data/lib/serverspec_extra_types/matchers/include_regex.rb +2 -0
  37. data/lib/serverspec_extra_types/matchers/map_port.rb +2 -0
  38. data/lib/serverspec_extra_types/matchers/mirror_all.rb +2 -0
  39. data/lib/serverspec_extra_types/matchers/publish_all_ports.rb +2 -0
  40. data/lib/serverspec_extra_types/matchers/read_from_queue.rb +2 -0
  41. data/lib/serverspec_extra_types/matchers/url_matchers.rb +7 -0
  42. data/lib/serverspec_extra_types/matchers/write_to_queue.rb +2 -0
  43. data/lib/serverspec_extra_types/matchers.rb +4 -0
  44. data/lib/serverspec_extra_types/types/api_base.rb +2 -0
  45. data/lib/serverspec_extra_types/types/consul_base.rb +2 -0
  46. data/lib/serverspec_extra_types/types/consul_node.rb +2 -0
  47. data/lib/serverspec_extra_types/types/consul_node_list.rb +2 -0
  48. data/lib/serverspec_extra_types/types/consul_service.rb +2 -0
  49. data/lib/serverspec_extra_types/types/consul_service_list.rb +2 -0
  50. data/lib/serverspec_extra_types/types/curl.rb +69 -0
  51. data/lib/serverspec_extra_types/types/docker_container.rb +2 -0
  52. data/lib/serverspec_extra_types/types/docker_network.rb +2 -2
  53. data/lib/serverspec_extra_types/types/docker_node.rb +2 -0
  54. data/lib/serverspec_extra_types/types/docker_service.rb +2 -0
  55. data/lib/serverspec_extra_types/types/rabbitmq_base.rb +2 -0
  56. data/lib/serverspec_extra_types/types/rabbitmq_node_list.rb +2 -0
  57. data/lib/serverspec_extra_types/types/rabbitmq_user_permission.rb +2 -0
  58. data/lib/serverspec_extra_types/types/rabbitmq_vhost_list.rb +2 -0
  59. data/lib/serverspec_extra_types/types/rabbitmq_vhost_policy.rb +2 -0
  60. data/lib/serverspec_extra_types/types.rb +4 -1
  61. data/lib/serverspec_extra_types/version.rb +3 -1
  62. data/lib/serverspec_extra_types.rb +2 -0
  63. metadata +10 -3
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Matchers.define :publish_all_ports do
2
4
  match(&:publishes_all_ports?)
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Matchers.define :read_from_queue do |vhost, queue|
2
4
  match do |actual|
3
5
  actual.read_from_queue?(vhost, queue)
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'serverspec_extra_types/matchers/http_1xx'
4
+ require 'serverspec_extra_types/matchers/http_2xx'
5
+ require 'serverspec_extra_types/matchers/http_3xx'
6
+ require 'serverspec_extra_types/matchers/http_4xx'
7
+ require 'serverspec_extra_types/matchers/http_5xx'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec::Matchers.define :write_to_queue do |vhost, queue|
2
4
  match do |actual|
3
5
  actual.write_to_queue? vhost, queue
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #--- Docker Matchers
2
4
  require 'serverspec_extra_types/matchers/be_active'
3
5
  require 'serverspec_extra_types/matchers/be_a_manager_node'
@@ -32,3 +34,5 @@ require 'serverspec_extra_types/matchers/read_from_queue'
32
34
  require 'serverspec_extra_types/matchers/write_to_queue'
33
35
  require 'serverspec_extra_types/matchers/configure_queue'
34
36
  require 'serverspec_extra_types/matchers/have_count'
37
+
38
+ require 'serverspec_extra_types/matchers/url_matchers'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec'
2
4
  require 'serverspec/type/base'
3
5
  require 'multi_json'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec'
2
4
  require 'serverspec/type/base'
3
5
  require 'multi_json'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/consul_base'
2
4
 
3
5
  # TODO: List and singular
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/consul_base'
2
4
 
3
5
  # TODO: List and singular
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/consul_base'
2
4
 
3
5
  # TODO: List and singular
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/consul_base'
2
4
 
3
5
  # TODO: List and singular
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: false
2
+
3
+ require 'serverspec_extra_types/helpers/properties'
4
+ require 'serverspec_extra_types/types/api_base'
5
+
6
+ module Serverspec::Type
7
+ class Curl < ApiBase
8
+ def initialize(name = nil, options = {})
9
+ super(name, options)
10
+ @url_base = name
11
+ @insecure = options[:insecure]
12
+ end
13
+
14
+ def url
15
+ @url_base
16
+ end
17
+
18
+ def inspection
19
+ @inspection ||= get_inspection
20
+ end
21
+
22
+ def body
23
+ inspection[:body]
24
+ end
25
+
26
+ def response_code
27
+ inspection[:http_code]
28
+ end
29
+
30
+ def http_code
31
+ response_code
32
+ end
33
+
34
+ def content_type
35
+ inspection[:content_type]
36
+ end
37
+
38
+ def size_download
39
+ inspection[:size_download]
40
+ end
41
+
42
+ def size_upload
43
+ inspection[:size_upload]
44
+ end
45
+
46
+ private
47
+
48
+ def get_inspection
49
+ command = "curl -s -w \"#{output_format}\" #{url} #{@insecure ? '-k' : ''}"
50
+ unless @get_inspection
51
+ (body, rest) = @runner.run_command(command).stdout.split('!!SS_URL_YAML!!')
52
+ result = YAML.safe_load(rest).each_with_object({}) { |(k, v), memo| memo[k.to_sym] = v; }
53
+ result[:body] = body
54
+ @get_inspection = result
55
+ end
56
+
57
+ @get_inspection
58
+ end
59
+
60
+ def output_format
61
+ out = '!!SS_URL_YAML!!---\\n'
62
+ out << 'http_code: %{http_code}\\n'
63
+ out << 'content_type: %{content_type}\\n'
64
+ out << 'size_download: %{size_download}\\n'
65
+ out << 'size_upload: %{size_upload}\\n'
66
+ out
67
+ end
68
+ end
69
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec'
2
4
 
3
5
  module Serverspec::Type
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec'
2
4
 
3
5
  module Serverspec::Type
4
6
  # This class monkey patches serverspec's docker container type with some more method to be used in matchers
5
7
  class DockerNetwork < DockerBase
6
-
7
8
  def name
8
9
  inspection['Name']
9
10
  end
@@ -14,7 +15,6 @@ module Serverspec::Type
14
15
 
15
16
  private
16
17
 
17
-
18
18
  def get_inspection
19
19
  @get_inspection ||= @runner.run_command("docker network inspect #{@name}")
20
20
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Serverspec::Type
2
4
  class DockerNode < DockerBase
3
5
  def active?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec'
2
4
  require 'serverspec/type/base'
3
5
  require 'serverspec/type/docker_base'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec'
2
4
  require 'serverspec/type/base'
3
5
  require 'multi_json'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/rabbitmq_base'
2
4
 
3
5
  module Serverspec::Type
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/rabbitmq_base'
2
4
 
3
5
  module Serverspec::Type
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/rabbitmq_base'
2
4
 
3
5
  module Serverspec::Type
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/rabbitmq_base'
2
4
 
3
5
  module Serverspec::Type
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/types/docker_container'
2
4
  require 'serverspec/helper/type'
3
5
 
@@ -5,7 +7,8 @@ module Serverspec
5
7
  module Helper
6
8
  module Type
7
9
  types = %w[docker_service docker_node rabbitmq_vhost_policy rabbitmq_node_list rabbitmq_vhost_list
8
- rabbitmq_user_permission consul_service consul_service_list consul_node consul_node_list]
10
+ rabbitmq_user_permission consul_service consul_service_list consul_node consul_node_list
11
+ curl]
9
12
 
10
13
  types.each do |type|
11
14
  require "serverspec_extra_types/types/#{type}"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ServerspecExtraTypes
2
- VERSION = '0.1.3'.freeze
4
+ VERSION = '0.1.4'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'serverspec_extra_types/version'
2
4
  require 'serverspec_extra_types/matchers'
3
5
  require 'serverspec_extra_types/types'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serverspec-extra-types
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Wardrobe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-19 00:00:00.000000000 Z
11
+ date: 2018-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -181,11 +181,17 @@ files:
181
181
  - lib/serverspec_extra_types/matchers/have_restart_policy.rb
182
182
  - lib/serverspec_extra_types/matchers/have_user.rb
183
183
  - lib/serverspec_extra_types/matchers/have_vhost.rb
184
+ - lib/serverspec_extra_types/matchers/http_1xx.rb
185
+ - lib/serverspec_extra_types/matchers/http_2xx.rb
186
+ - lib/serverspec_extra_types/matchers/http_3xx.rb
187
+ - lib/serverspec_extra_types/matchers/http_4xx.rb
188
+ - lib/serverspec_extra_types/matchers/http_5xx.rb
184
189
  - lib/serverspec_extra_types/matchers/include_regex.rb
185
190
  - lib/serverspec_extra_types/matchers/map_port.rb
186
191
  - lib/serverspec_extra_types/matchers/mirror_all.rb
187
192
  - lib/serverspec_extra_types/matchers/publish_all_ports.rb
188
193
  - lib/serverspec_extra_types/matchers/read_from_queue.rb
194
+ - lib/serverspec_extra_types/matchers/url_matchers.rb
189
195
  - lib/serverspec_extra_types/matchers/write_to_queue.rb
190
196
  - lib/serverspec_extra_types/types.rb
191
197
  - lib/serverspec_extra_types/types/api_base.rb
@@ -194,6 +200,7 @@ files:
194
200
  - lib/serverspec_extra_types/types/consul_node_list.rb
195
201
  - lib/serverspec_extra_types/types/consul_service.rb
196
202
  - lib/serverspec_extra_types/types/consul_service_list.rb
203
+ - lib/serverspec_extra_types/types/curl.rb
197
204
  - lib/serverspec_extra_types/types/docker_container.rb
198
205
  - lib/serverspec_extra_types/types/docker_network.rb
199
206
  - lib/serverspec_extra_types/types/docker_node.rb
@@ -226,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
233
  version: '0'
227
234
  requirements: []
228
235
  rubyforge_project:
229
- rubygems_version: 2.7.6
236
+ rubygems_version: 2.7.3
230
237
  signing_key:
231
238
  specification_version: 4
232
239
  summary: Additional Types and Matchers for Serverspec