vmware-vra 3.1.2 → 3.1.3

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.
@@ -22,7 +22,7 @@ require "ffi_yajl" unless defined?(FFI_Yajl)
22
22
  module Vra
23
23
  # Class that represents the Deployment Object
24
24
  class Deployment
25
- INDEX_URL = '/deployment/api/deployments'
25
+ INDEX_URL = "/deployment/api/deployments"
26
26
 
27
27
  attr_reader :id
28
28
 
@@ -35,40 +35,40 @@ module Vra
35
35
  if @data.nil?
36
36
  refresh
37
37
  elsif @id.nil?
38
- @id = @data['id']
38
+ @id = @data["id"]
39
39
  end
40
40
  end
41
41
 
42
42
  def name
43
- @data['name']
43
+ @data["name"]
44
44
  end
45
45
 
46
46
  def description
47
- @data['description']
47
+ @data["description"]
48
48
  end
49
49
 
50
50
  def org_id
51
- @data['orgId']
51
+ @data["orgId"]
52
52
  end
53
53
 
54
54
  def blueprint_id
55
- @data['blueprintId']
55
+ @data["blueprintId"]
56
56
  end
57
57
 
58
58
  def owner
59
- @data['ownedBy']
59
+ @data["ownedBy"]
60
60
  end
61
61
 
62
62
  def status
63
- @data['status']
63
+ @data["status"]
64
64
  end
65
65
 
66
66
  def successful?
67
- status == 'CREATE_SUCCESSFUL'
67
+ status == "CREATE_SUCCESSFUL"
68
68
  end
69
69
 
70
70
  def failed?
71
- status == 'CREATE_FAILED'
71
+ status == "CREATE_FAILED"
72
72
  end
73
73
 
74
74
  def completed?
@@ -80,16 +80,16 @@ module Vra
80
80
  end
81
81
 
82
82
  def action_id_by_name(action_name)
83
- action = actions.find { |x| x['name'] == action_name}
83
+ action = actions.find { |x| x["name"] == action_name }
84
84
  return if action.nil?
85
85
 
86
- action['id']
86
+ action["id"]
87
87
  end
88
88
 
89
89
  def resources
90
90
  response = client.get_parsed("/deployment/api/deployments/#{id}/resources")
91
91
 
92
- response['content'].map! { |x| Vra::Resource.new(client, id, data: x) }
92
+ response["content"].map! { |x| Vra::Resource.new(client, id, data: x) }
93
93
  end
94
94
 
95
95
  def resource_by_id(res_id)
@@ -99,7 +99,7 @@ module Vra
99
99
  def requests
100
100
  response = client.get_parsed("/deployment/api/deployments/#{id}/requests")
101
101
 
102
- response['content'].map! { |x| Vra::Request.new(client, id, id: x['id'], data: x) }
102
+ response["content"].map! { |x| Vra::Request.new(client, id, id: x["id"], data: x) }
103
103
  end
104
104
 
105
105
  def refresh
@@ -108,22 +108,22 @@ module Vra
108
108
  raise Vra::Exception::NotFound, "deployment with ID #{id} does not exist"
109
109
  end
110
110
 
111
- def destroy(reason = '')
112
- action_id = action_id_by_name('Delete')
111
+ def destroy(reason = "")
112
+ action_id = action_id_by_name("Delete")
113
113
  raise Vra::Exception::NotFound, "No destroy action found for resource #{@id}" if action_id.nil?
114
114
 
115
115
  submit_action_request(action_id, reason)
116
116
  end
117
117
 
118
- def power_off(reason = '')
119
- action_id = action_id_by_name('PowerOff')
118
+ def power_off(reason = "")
119
+ action_id = action_id_by_name("PowerOff")
120
120
  raise Vra::Exception::NotFound, "No power-off action found for resource #{@id}" if action_id.nil?
121
121
 
122
122
  submit_action_request(action_id, reason)
123
123
  end
124
124
 
125
125
  def power_on(reason = nil)
126
- action_id = action_id_by_name('PowerOn')
126
+ action_id = action_id_by_name("PowerOn")
127
127
  raise Vra::Exception::NotFound, "No power-on action found for resource #{@id}" if action_id.nil?
128
128
 
129
129
  submit_action_request(action_id, reason)
@@ -134,7 +134,7 @@ module Vra
134
134
  attr_reader :client, :data
135
135
 
136
136
  def validate!
137
- raise ArgumentError, 'must supply id or data hash' if @id.nil? && @data.nil?
137
+ raise ArgumentError, "must supply id or data hash" if @id.nil? && @data.nil?
138
138
  end
139
139
 
140
140
  def submit_action_request(action_id, reason)
@@ -148,7 +148,7 @@ module Vra
148
148
  {
149
149
  "actionId": action_id,
150
150
  "inputs": {},
151
- "reason": reason
151
+ "reason": reason,
152
152
  }
153
153
  end
154
154
  end
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
  #
19
- require 'ffi_yajl' unless defined?(FFI_Yajl)
19
+ require "ffi_yajl" unless defined?(FFI_Yajl)
20
20
 
21
21
  # Overriding the hash object to add the deep_merge method
22
22
  class ::Hash
@@ -50,12 +50,12 @@ module Vra
50
50
  begin
51
51
  response = send_request!
52
52
  rescue Vra::Exception::HTTPError => e
53
- raise Vra::Exception::RequestError, "Unable to submit request: #{e.message}, trace: #{e.errors.join(', ')}"
53
+ raise Vra::Exception::RequestError, "Unable to submit request: #{e.message}, trace: #{e.errors.join(", ")}"
54
54
  rescue StandardError => e
55
55
  raise e, e.message
56
56
  end
57
57
 
58
- request_id = FFI_Yajl::Parser.parse(response)[0]['deploymentId']
58
+ request_id = FFI_Yajl::Parser.parse(response)[0]["deploymentId"]
59
59
  Vra::Deployment.new(client, id: request_id)
60
60
  end
61
61
 
@@ -85,21 +85,20 @@ module Vra
85
85
 
86
86
  def validate!
87
87
  missing_params = []
88
- %i[image_mapping flavor_mapping name project_id].each do |arg|
88
+ %i{image_mapping flavor_mapping name project_id}.each do |arg|
89
89
  missing_params << arg if send(arg).nil?
90
90
  end
91
91
 
92
92
  unless missing_params.empty?
93
- raise ArgumentError, "Unable to submit request, required param(s) missing => #{missing_params.join(', ')}"
93
+ raise ArgumentError, "Unable to submit request, required param(s) missing => #{missing_params.join(", ")}"
94
94
  end
95
95
 
96
96
  # If the user doesn't supply the catalog version, fetch the latest version and use it
97
97
  # and if the API was unable to find a valid version, alert the user.
98
98
  return unless @version.nil?
99
99
 
100
-
101
100
  @version = CatalogItem.fetch_latest_version(client, catalog_id)
102
- raise ArgumentError, 'Unable to fetch a valid catalog version' if @version.nil?
101
+ raise ArgumentError, "Unable to fetch a valid catalog version" if @version.nil?
103
102
  end
104
103
 
105
104
  def send_request!
@@ -117,8 +116,8 @@ module Vra
117
116
  'inputs': {
118
117
  'count': count,
119
118
  'image': image_mapping,
120
- 'flavor': flavor_mapping
121
- }
119
+ 'flavor': flavor_mapping,
120
+ },
122
121
  }.deep_merge(parameters)
123
122
  end
124
123
  end
@@ -47,7 +47,7 @@ module Vra
47
47
 
48
48
  def fetch_all_resources
49
49
  client
50
- .http_get_paginated_array!('/deployment/api/deployments')
50
+ .http_get_paginated_array!("/deployment/api/deployments")
51
51
  .map! { |x| Vra::Deployment.new(client, data: x) }
52
52
  end
53
53
  end
data/lib/vra/http.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'net/http' unless defined?(Net::HTTP)
4
- require 'openssl' unless defined?(OpenSSL)
5
- require 'ffi_yajl' unless defined?(FFI_Yajl)
6
- require 'json'
3
+ require "net/http" unless defined?(Net::HTTP)
4
+ require "openssl" unless defined?(OpenSSL)
5
+ require "ffi_yajl" unless defined?(FFI_Yajl)
6
+ require "json" unless defined?(JSON)
7
7
 
8
8
  module Vra
9
9
  module Http
@@ -64,7 +64,7 @@ module Vra
64
64
  get: Net::HTTP::Get,
65
65
  head: Net::HTTP::Head,
66
66
  post: Net::HTTP::Post,
67
- delete: Net::HTTP::Delete
67
+ delete: Net::HTTP::Delete,
68
68
  }.fetch(method, nil)
69
69
 
70
70
  raise "Unknown HTTP method #{method}!" unless type
@@ -150,7 +150,7 @@ module Vra
150
150
 
151
151
  def self.from_response(http_response)
152
152
  body = FFI_Yajl::Parser.parse(http_response.body) || {}
153
- message = body['message'] || body['serverMessage']
153
+ message = body["message"] || body["serverMessage"]
154
154
  new(message, http_response.code, body)
155
155
  end
156
156
 
data/lib/vra/request.rb CHANGED
@@ -31,16 +31,16 @@ module Vra
31
31
  if @request_data.nil?
32
32
  refresh
33
33
  else
34
- @id = @request_data['id']
34
+ @id = @request_data["id"]
35
35
  end
36
36
  end
37
37
 
38
38
  def requested_by
39
- request_data['requestedBy']
39
+ request_data["requestedBy"]
40
40
  end
41
41
 
42
42
  def name
43
- request_data['name']
43
+ request_data["name"]
44
44
  end
45
45
 
46
46
  def refresh
@@ -61,7 +61,7 @@ module Vra
61
61
  refresh_if_empty
62
62
  return if request_empty?
63
63
 
64
- request_data['status']
64
+ request_data["status"]
65
65
  end
66
66
 
67
67
  def completed?
@@ -69,11 +69,11 @@ module Vra
69
69
  end
70
70
 
71
71
  def successful?
72
- status == 'SUCCESSFUL'
72
+ status == "SUCCESSFUL"
73
73
  end
74
74
 
75
75
  def failed?
76
- status == 'FAILED'
76
+ status == "FAILED"
77
77
  end
78
78
 
79
79
  private
@@ -93,7 +93,7 @@ module Vra
93
93
 
94
94
  def to_vra
95
95
  hash = {
96
- 'inputs': {}
96
+ 'inputs': {},
97
97
  }
98
98
 
99
99
  @entries.each do |_, v|
@@ -120,7 +120,7 @@ module Vra
120
120
  def to_h
121
121
  hash = {}
122
122
 
123
- if @children.count.positive?
123
+ if @children.count > 0
124
124
  hash[@key] = {}
125
125
 
126
126
  @children.each do |c|
@@ -135,13 +135,13 @@ module Vra
135
135
 
136
136
  def to_vra
137
137
  hash = {}
138
- if @children.count.positive?
138
+ if @children.count > 0
139
139
  hash[@key] = {}
140
140
 
141
- hash[@key]['inputs'] = {}
141
+ hash[@key]["inputs"] = {}
142
142
 
143
143
  @children.each do |c|
144
- hash[@key]['inputs'].merge!(c.to_vra)
144
+ hash[@key]["inputs"].merge!(c.to_vra)
145
145
  end
146
146
  else
147
147
  hash[@key] = format_value
@@ -152,12 +152,12 @@ module Vra
152
152
 
153
153
  def format_value
154
154
  case @type
155
- when 'integer'
155
+ when "integer"
156
156
  @value.to_i
157
- when 'string'
157
+ when "string"
158
158
  @value
159
- when 'boolean'
160
- @value.to_s == 'true'
159
+ when "boolean"
160
+ @value.to_s == "true"
161
161
  else
162
162
  @value
163
163
  end
data/lib/vra/resource.rb CHANGED
@@ -21,10 +21,10 @@ require "ffi_yajl" unless defined?(FFI_Yajl)
21
21
 
22
22
  module Vra
23
23
  class Resource
24
- VM_TYPES = %w[
24
+ VM_TYPES = %w{
25
25
  Cloud.vSphere.Machine
26
26
  Cloud.Machine
27
- ].freeze
27
+ }.freeze
28
28
 
29
29
  attr_reader :client, :deployment_id, :id, :resource_data
30
30
 
@@ -35,13 +35,13 @@ module Vra
35
35
  @resource_data = opts[:data]
36
36
  @resource_actions = []
37
37
 
38
- raise ArgumentError, 'must supply an id or a resource data hash' if @id.nil? && @resource_data.nil?
39
- raise ArgumentError, 'must supply an id OR a resource data hash, not both' if !@id.nil? && !@resource_data.nil?
38
+ raise ArgumentError, "must supply an id or a resource data hash" if @id.nil? && @resource_data.nil?
39
+ raise ArgumentError, "must supply an id OR a resource data hash, not both" if !@id.nil? && !@resource_data.nil?
40
40
 
41
41
  if @resource_data.nil?
42
42
  fetch_resource_data
43
43
  else
44
- @id = @resource_data['id']
44
+ @id = @resource_data["id"]
45
45
  end
46
46
  end
47
47
 
@@ -54,40 +54,40 @@ module Vra
54
54
  alias refresh fetch_resource_data
55
55
 
56
56
  def name
57
- resource_data['name']
57
+ resource_data["name"]
58
58
  end
59
59
 
60
60
  def status
61
- resource_data['syncStatus']
61
+ resource_data["syncStatus"]
62
62
  end
63
63
 
64
64
  def properties
65
- resource_data['properties']
65
+ resource_data["properties"]
66
66
  end
67
67
 
68
68
  def vm?
69
- VM_TYPES.include?(resource_data['type'])
69
+ VM_TYPES.include?(resource_data["type"])
70
70
  end
71
71
 
72
72
  def owner_names
73
- properties['Owner']
73
+ properties["Owner"]
74
74
  end
75
75
 
76
76
  def project_id
77
- properties['project']
77
+ properties["project"]
78
78
  end
79
79
 
80
80
  def network_interfaces
81
81
  return unless vm?
82
82
 
83
- network_list = properties['networks']
83
+ network_list = properties["networks"]
84
84
  return if network_list.nil?
85
85
 
86
86
  network_list.each_with_object([]) do |item, nics|
87
87
  nics << {
88
- 'NETWORK_NAME' => item['name'],
89
- 'NETWORK_ADDRESS' => item['address'],
90
- 'NETWORK_MAC_ADDRESS' => item['mac_address']
88
+ "NETWORK_NAME" => item["name"],
89
+ "NETWORK_ADDRESS" => item["address"],
90
+ "NETWORK_MAC_ADDRESS" => item["mac_address"],
91
91
  }
92
92
  end
93
93
  end
@@ -95,7 +95,7 @@ module Vra
95
95
  def ip_address
96
96
  return if !vm? || network_interfaces.nil?
97
97
 
98
- properties['address']
98
+ properties["address"]
99
99
  end
100
100
  end
101
101
  end
data/lib/vra/version.rb CHANGED
@@ -18,5 +18,5 @@
18
18
  #
19
19
 
20
20
  module Vra
21
- VERSION = "3.1.2"
21
+ VERSION = "3.1.3"
22
22
  end
data/lib/vra.rb CHANGED
@@ -17,17 +17,17 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
- require 'vra/catalog_base'
21
- require 'vra/catalog'
22
- require 'vra/catalog_item'
23
- require 'vra/catalog_source'
24
- require 'vra/catalog_type'
25
- require 'vra/deployment_request'
26
- require 'vra/deployment'
27
- require 'vra/deployments'
28
- require 'vra/client'
29
- require 'vra/exceptions'
30
- require 'vra/request'
31
- require 'vra/request_parameters'
32
- require 'vra/resource'
33
- require 'vra/version'
20
+ require "vra/catalog_base"
21
+ require "vra/catalog"
22
+ require "vra/catalog_item"
23
+ require "vra/catalog_source"
24
+ require "vra/catalog_type"
25
+ require "vra/deployment_request"
26
+ require "vra/deployment"
27
+ require "vra/deployments"
28
+ require "vra/client"
29
+ require "vra/exceptions"
30
+ require "vra/request"
31
+ require "vra/request_parameters"
32
+ require "vra/resource"
33
+ require "vra/version"
@@ -17,142 +17,142 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
- require 'spec_helper'
20
+ require "spec_helper"
21
21
 
22
22
  describe Vra::CatalogItem do
23
23
  let(:client) do
24
24
  Vra::Client.new(
25
- username: 'user@corp.local',
26
- password: 'password',
27
- tenant: 'tenant',
28
- base_url: 'https://vra.corp.local'
25
+ username: "user@corp.local",
26
+ password: "password",
27
+ tenant: "tenant",
28
+ base_url: "https://vra.corp.local"
29
29
  )
30
30
  end
31
31
 
32
- let(:catalog_id) { '123456' }
32
+ let(:catalog_id) { "123456" }
33
33
 
34
34
  let(:catalog_item_payload) do
35
- JSON.parse(File.read('spec/fixtures/resource/sample_catalog_item.json'))
35
+ JSON.parse(File.read("spec/fixtures/resource/sample_catalog_item.json"))
36
36
  end
37
37
 
38
38
  let(:other_catalog_item_payload) do
39
- JSON.parse(File.read('spec/fixtures/resource/sample_catalog_item_2.json'))
39
+ JSON.parse(File.read("spec/fixtures/resource/sample_catalog_item_2.json"))
40
40
  end
41
41
 
42
- describe '#initialize' do
43
- it 'raises an error if no ID or catalog item data have been provided' do
42
+ describe "#initialize" do
43
+ it "raises an error if no ID or catalog item data have been provided" do
44
44
  expect { Vra::CatalogItem.new(client) }.to raise_error(ArgumentError)
45
45
  end
46
46
 
47
- it 'raises an error if an ID and catalog item data have both been provided' do
48
- expect { Vra::CatalogItem.new(client, id: 123, data: 'foo') }.to raise_error(ArgumentError)
47
+ it "raises an error if an ID and catalog item data have both been provided" do
48
+ expect { Vra::CatalogItem.new(client, id: 123, data: "foo") }.to raise_error(ArgumentError)
49
49
  end
50
50
 
51
- context 'when an ID is provided' do
52
- it 'fetches the catalog_item record' do
51
+ context "when an ID is provided" do
52
+ it "fetches the catalog_item record" do
53
53
  catalog_item = Vra::CatalogItem.allocate
54
54
  expect(catalog_item).to receive(:fetch_catalog_item)
55
55
  catalog_item.send(:initialize, client, id: catalog_id)
56
56
  end
57
57
  end
58
58
 
59
- context 'when catalog item data is provided' do
60
- it 'populates the ID correctly' do
59
+ context "when catalog item data is provided" do
60
+ it "populates the ID correctly" do
61
61
  catalog_item = Vra::CatalogItem.new(client, data: catalog_item_payload)
62
62
  expect(catalog_item.id).to eq catalog_id
63
63
  end
64
64
  end
65
65
  end
66
66
 
67
- describe '#fetch_catalog_item' do
68
- context 'when the catalog item exists' do
69
- let(:response) { double('response', code: 200, body: catalog_item_payload.to_json) }
67
+ describe "#fetch_catalog_item" do
68
+ context "when the catalog item exists" do
69
+ let(:response) { double("response", code: 200, body: catalog_item_payload.to_json) }
70
70
 
71
- it 'calls http_get against the catalog_service' do
72
- expect(client).to receive(:http_get).with('/catalog/api/admin/items/catalog-12345').and_return(response)
73
- Vra::CatalogItem.new(client, id: 'catalog-12345')
71
+ it "calls http_get against the catalog_service" do
72
+ expect(client).to receive(:http_get).with("/catalog/api/items/catalog-12345").and_return(response)
73
+ Vra::CatalogItem.new(client, id: "catalog-12345")
74
74
  end
75
75
  end
76
76
 
77
- context 'when the catalog item does not exist' do
78
- it 'raises an exception' do
77
+ context "when the catalog item does not exist" do
78
+ it "raises an exception" do
79
79
  allow(client)
80
80
  .to receive(:http_get)
81
- .with('/catalog/api/admin/items/catalog-12345')
81
+ .with("/catalog/api/items/catalog-12345")
82
82
  .and_raise(Vra::Exception::HTTPNotFound)
83
83
 
84
- expect { Vra::CatalogItem.new(client, id: 'catalog-12345') }
84
+ expect { Vra::CatalogItem.new(client, id: "catalog-12345") }
85
85
  .to raise_error(Vra::Exception::NotFound)
86
- .with_message('catalog ID catalog-12345 does not exist')
86
+ .with_message("catalog ID catalog-12345 does not exist")
87
87
  end
88
88
  end
89
89
  end
90
90
 
91
- describe '#entitle!' do
92
- it 'should entitle the catalog item' do
91
+ describe "#entitle!" do
92
+ it "should entitle the catalog item" do
93
93
  allow(client).to receive(:authorized?).and_return(true)
94
- stub_request(:get, client.full_url('/catalog/api/admin/items/123456'))
94
+ stub_request(:get, client.full_url("/catalog/api/items/123456"))
95
95
  .to_return(status: 200, body: catalog_item_payload.to_json, headers: {})
96
96
 
97
- response = double('response', body: '{"message": "success"}', success?: true)
97
+ response = double("response", body: '{"message": "success"}', success?: true)
98
98
  allow(client).to receive(:http_post).and_return(response)
99
99
 
100
- entitle_response = described_class.entitle!(client, '123456')
100
+ entitle_response = described_class.entitle!(client, "123456")
101
101
  expect(entitle_response).not_to be_nil
102
102
  end
103
103
  end
104
104
 
105
- describe '#attributes' do
106
- it 'should have the correct attributes' do
105
+ describe "#attributes" do
106
+ it "should have the correct attributes" do
107
107
  allow(client).to receive(:authorized?).and_return(true)
108
- stub_request(:get, client.full_url('/catalog/api/admin/sources/source-123456'))
108
+ stub_request(:get, client.full_url("/catalog/api/admin/sources/source-123456"))
109
109
  .to_return(
110
110
  status: 200,
111
- body: File.read('spec/fixtures/resource/sample_catalog_source.json'),
111
+ body: File.read("spec/fixtures/resource/sample_catalog_source.json"),
112
112
  headers: {}
113
113
  )
114
114
  catalog_item = described_class.new(client, data: catalog_item_payload)
115
115
 
116
- expect(catalog_item.name).to eq('centos')
117
- expect(catalog_item.description).to eq('Centos Cat')
118
- expect(catalog_item.source_id).to eq('source-123456')
119
- expect(catalog_item.source_name).to eq('Source 123')
120
- expect(catalog_item.icon_id).to eq('1495b8d9')
116
+ expect(catalog_item.name).to eq("centos")
117
+ expect(catalog_item.description).to eq("Centos Cat")
118
+ expect(catalog_item.source_id).to eq("source-123456")
119
+ expect(catalog_item.source_name).to eq("Source 123")
120
+ expect(catalog_item.icon_id).to eq("1495b8d9")
121
121
  expect(catalog_item.source).to be_a(Vra::CatalogSource)
122
122
  expect(catalog_item.type).to be_a(Vra::CatalogType)
123
123
  end
124
124
  end
125
125
 
126
- describe '#versions' do
126
+ describe "#versions" do
127
127
  let(:versions_response) do
128
- [{ id: '2', description: 'v2.0' }, { id: '1', description: 'v1.0' }]
128
+ [{ id: "2", description: "v2.0" }, { id: "1", description: "v1.0" }]
129
129
  end
130
130
 
131
131
  before do
132
132
  allow(client).to receive(:authorized?).and_return(true)
133
133
  end
134
134
 
135
- it 'should call the api to fetch the versions' do
135
+ it "should call the api to fetch the versions" do
136
136
  expect(client)
137
137
  .to receive(:http_get_paginated_array!)
138
- .with('/catalog/api/items/catalog-12345/versions')
138
+ .with("/catalog/api/items/catalog-12345/versions")
139
139
  .and_return(versions_response)
140
140
 
141
- described_class.fetch_latest_version(client, 'catalog-12345')
141
+ described_class.fetch_latest_version(client, "catalog-12345")
142
142
  end
143
143
 
144
- it 'should return the correct version' do
145
- stub_request(:get, client.full_url('/catalog/api/items/catalog-12345/versions?$skip=0&$top=20'))
144
+ it "should return the correct version" do
145
+ stub_request(:get, client.full_url("/catalog/api/items/catalog-12345/versions?$skip=0&$top=20"))
146
146
  .to_return(
147
147
  status: 200,
148
148
  body: {
149
149
  content: versions_response,
150
- totalPages: 1
150
+ totalPages: 1,
151
151
  }.to_json,
152
152
  headers: {}
153
153
  )
154
154
 
155
- expect(described_class.fetch_latest_version(client, 'catalog-12345')).to eq('2')
155
+ expect(described_class.fetch_latest_version(client, "catalog-12345")).to eq("2")
156
156
  end
157
157
  end
158
158
  end