serverspec-extra-types 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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