ruby-jss 4.0.1 → 4.1.0b2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: caf5f70df9ef7016f40e810f33b31d7c04b07a3a6986bede21313cf0a5553cac
4
- data.tar.gz: 104b4e8f260a35b1206b1d537f9b3f12897792d9d7797e63b704b9dee568456c
3
+ metadata.gz: 04a9f6decd6b58c0603dcad2e8a553c3ac80e0147618c8fd7fb08d545ff1d537
4
+ data.tar.gz: '050849dd7596137de61bc096b6922bfa7a8e1d98dbd7b41048d8eb7552be13e9'
5
5
  SHA512:
6
- metadata.gz: ef1677172d13ee5d43a241af7ba12c8dc14b1a5e72a1398b3656cca86b595e8984b8669fe3d35d88f23c793f7a9804bb811da06bda9a39cb783137ce2a4a507b
7
- data.tar.gz: e8a310a351a58b2d125b863cd11b7c1516a16560aa5ffb2ab6003808265b797dc8edac74a9b7668420be67b31083d273cd6fc14f9a550d399a431f005816a524
6
+ metadata.gz: f5762d83c0693aacdc610026c3f81f5675ec599caf80b7064163b32ca218bb19739bec04360e6f8b02851a51bf66ed26dca2de50fbf317a6dc8d30dc2d88c612
7
+ data.tar.gz: e866b77f659b4a2d28c624e47ff40676894a1515c277f4e350d0470b73881f46cab5ea2686006b27f7d36f0ebdab886ab5cd391ce14050f6004cf5c84bc6254f
@@ -61,7 +61,7 @@ module Jamf
61
61
  def c_get(rsrc, format = :json, raw_json: false)
62
62
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
63
63
 
64
- validate_connected @c_cnx
64
+ validate_connected
65
65
  raise Jamf::InvalidDataError, 'format must be :json or :xml' unless Jamf::Connection::GET_FORMATS.include?(format)
66
66
 
67
67
  resp =
@@ -92,7 +92,7 @@ module Jamf
92
92
  # @return [String] the xml response from the server.
93
93
  #
94
94
  def c_post(rsrc, xml)
95
- validate_connected @c_cnx
95
+ validate_connected
96
96
 
97
97
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
98
98
 
@@ -127,7 +127,7 @@ module Jamf
127
127
  # @return [String] the xml response from the server.
128
128
  #
129
129
  def c_put(rsrc, xml)
130
- validate_connected @c_cnx
130
+ validate_connected
131
131
 
132
132
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
133
133
 
@@ -160,7 +160,7 @@ module Jamf
160
160
  # @return [String] the xml response from the server.
161
161
  #
162
162
  def c_delete(rsrc)
163
- validate_connected @c_cnx
163
+ validate_connected
164
164
  raise MissingDataError, 'Missing :rsrc' if rsrc.nil?
165
165
 
166
166
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
@@ -195,23 +195,14 @@ module Jamf
195
195
  # @return [String] the xml response from the server.
196
196
  #
197
197
  def upload(rsrc, local_file)
198
- validate_connected @c_cnx
198
+ validate_connected
199
199
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
200
200
 
201
- # the upload file object for faraday
202
- local_file = Pathname.new local_file
203
- upfile = Faraday::UploadIO.new(
204
- local_file.to_s,
205
- 'application/octet-stream',
206
- local_file.basename.to_s
207
- )
201
+ payload = {}
202
+ payload[:name] = Faraday::Multipart::FilePart.new(local_file.to_s, 'application/octet-stream')
203
+
204
+ resp = @c_cnx.post rsrc, payload
208
205
 
209
- # send it and get the response
210
- resp =
211
- @c_cnx.post rsrc do |req|
212
- req.headers['Content-Type'] = 'multipart/form-data'
213
- req.body = { name: upfile }
214
- end
215
206
  @last_http_response = resp
216
207
 
217
208
  unless resp.success?
@@ -228,7 +219,10 @@ module Jamf
228
219
  # create the faraday CAPI connection object
229
220
  def create_classic_connection
230
221
  Faraday.new(@c_base_url, ssl: ssl_options) do |cnx|
231
- cnx.authorization :Bearer, @token.token
222
+ # use a proc for the token value, so its looked up on every request
223
+ # meaning we don't have to validate that the token is still valid before every request
224
+ # because the Token instance will (usually) refresh it automatically.
225
+ cnx.request :authorization, 'Bearer', -> { @token.token }
232
226
 
233
227
  cnx.options[:timeout] = @timeout
234
228
  cnx.options[:open_timeout] = @open_timeout
@@ -236,7 +230,7 @@ module Jamf
236
230
  cnx.request :multipart
237
231
  cnx.request :url_encoded
238
232
 
239
- cnx.adapter Faraday::Adapter::NetHttp
233
+ cnx.adapter :net_http
240
234
  end
241
235
  end
242
236
 
@@ -264,18 +264,9 @@ module Jamf
264
264
 
265
265
  # raise exception if not connected, and make sure we're using
266
266
  # the current token
267
- def validate_connected(subcnx)
267
+ def validate_connected
268
268
  using_dft = 'Jamf.cnx' if self == Jamf.cnx
269
269
  raise Jamf::InvalidConnectionError, "Connection '#{@name}' Not Connected. Use #{using_dft}.connect first." unless connected?
270
-
271
- update_refreshed_token(subcnx)
272
- end
273
-
274
- # always use the current token, which by default will auto-refresh
275
- def update_refreshed_token(subcnx)
276
- return if subcnx.headers['Authorization'] == "Bearer #{@token.token}"
277
-
278
- subcnx.authorization :Bearer, @token.token
279
270
  end
280
271
 
281
272
  # With a REST connection, there isn't any real "connection" to disconnect from
@@ -37,7 +37,10 @@ module Jamf
37
37
  #######################################################
38
38
  def create_jp_connection(parse_json: true)
39
39
  Faraday.new(@jp_base_url, ssl: ssl_options) do |cnx|
40
- cnx.authorization :Bearer, @token.token
40
+ # use a proc for the token value, so its looked up on every request
41
+ # meaning we don't have to validate that the token is still valid before every request
42
+ # because the Token instance will (usually) refresh it automatically.
43
+ cnx.request :authorization, 'Bearer', -> { @token.token }
41
44
 
42
45
  cnx.options[:timeout] = @timeout
43
46
  cnx.options[:open_timeout] = @open_timeout
@@ -47,7 +50,7 @@ module Jamf
47
50
  cnx.response :json, parser_options: { symbolize_names: true }
48
51
  end
49
52
 
50
- cnx.adapter Faraday::Adapter::NetHttp
53
+ cnx.adapter :net_http
51
54
  end
52
55
  end
53
56
 
@@ -57,7 +60,7 @@ module Jamf
57
60
  # @return [Hash] the result of the get
58
61
  #######################################################
59
62
  def jp_get(rsrc)
60
- validate_connected @jp_cnx
63
+ validate_connected
61
64
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
62
65
  resp = @jp_cnx.get(rsrc) do |req|
63
66
  # Modify the request here if needed.
@@ -82,7 +85,7 @@ module Jamf
82
85
  # @return [String] the response body
83
86
  #######################################################
84
87
  def jp_post(rsrc, data)
85
- validate_connected @jp_cnx
88
+ validate_connected
86
89
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
87
90
  resp = @jp_cnx.post(rsrc) do |req|
88
91
  req.body = data
@@ -105,7 +108,7 @@ module Jamf
105
108
  #
106
109
  #######################################################
107
110
  def jp_put(rsrc, data)
108
- validate_connected @jp_cnx
111
+ validate_connected
109
112
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
110
113
  resp = @jp_cnx.put(rsrc) do |req|
111
114
  req.body = data
@@ -128,7 +131,7 @@ module Jamf
128
131
  #
129
132
  #######################################################
130
133
  def jp_patch(rsrc, data)
131
- validate_connected @jp_cnx
134
+ validate_connected
132
135
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
133
136
  resp = @jp_cnx.patch(rsrc) do |req|
134
137
  req.body = data
@@ -149,7 +152,7 @@ module Jamf
149
152
  #
150
153
  #######################################################
151
154
  def jp_delete(rsrc)
152
- validate_connected @jp_cnx
155
+ validate_connected
153
156
  rsrc = rsrc.delete_prefix Jamf::Connection::SLASH
154
157
  resp = @jp_cnx.delete rsrc
155
158
  @last_http_response = resp
@@ -534,11 +534,11 @@ module Jamf
534
534
  con.options[:timeout] = @timeout
535
535
  con.options[:open_timeout] = @timeout
536
536
  if token
537
- con.authorization :Bearer, token
537
+ con.request :authorization, 'Bearer', token
538
538
  else
539
- con.basic_auth @user, Base64.decode64(@pw)
539
+ con.request :authorization, :basic, @user, Base64.decode64(@pw)
540
540
  end
541
- con.adapter Faraday::Adapter::NetHttp
541
+ con.adapter :net_http
542
542
  end # Faraday.new
543
543
  end # token_connection
544
544
 
@@ -551,7 +551,7 @@ module Jamf
551
551
  fcnx.request :url_encoded
552
552
  # activates the json response middleware, parsing all valid response bodies with JSON.parse
553
553
  fcnx.response :json, parser_options: { symbolize_names: true }
554
- fcnx.adapter Faraday::Adapter::NetHttp
554
+ fcnx.adapter :net_http
555
555
  end
556
556
  end # token_connection
557
557
 
@@ -22,8 +22,8 @@
22
22
  ###
23
23
  ###
24
24
 
25
- require 'faraday' # >= 0.17.0
26
- require 'faraday_middleware' # >= 0.13.0
25
+ require 'faraday'
26
+ require 'faraday/multipart'
27
27
 
28
28
  # The main module
29
29
  module Jamf
data/lib/jamf/version.rb CHANGED
@@ -27,6 +27,6 @@
27
27
  module Jamf
28
28
 
29
29
  ### The version of ruby-jss
30
- VERSION = '4.0.1'.freeze
30
+ VERSION = '4.1.0b2'.freeze
31
31
 
32
32
  end # module
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-jss
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 4.1.0b2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Lasell
8
8
  - Aurica Hayes
9
- - Kristoffer Landes
10
- autorequire:
9
+ autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2024-02-05 00:00:00.000000000 Z
12
+ date: 2024-04-02 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: CFPropertyList
@@ -52,21 +51,24 @@ dependencies:
52
51
  requirements:
53
52
  - - "~>"
54
53
  - !ruby/object:Gem::Version
55
- version: '1.0'
54
+ version: '2.0'
56
55
  type: :runtime
57
56
  prerelease: false
58
57
  version_requirements: !ruby/object:Gem::Requirement
59
58
  requirements:
60
59
  - - "~>"
61
60
  - !ruby/object:Gem::Version
62
- version: '1.0'
61
+ version: '2.0'
63
62
  - !ruby/object:Gem::Dependency
64
- name: faraday_middleware
63
+ name: faraday-multipart
65
64
  requirement: !ruby/object:Gem::Requirement
66
65
  requirements:
67
66
  - - "~>"
68
67
  - !ruby/object:Gem::Version
69
68
  version: '1.0'
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 1.0.4
70
72
  type: :runtime
71
73
  prerelease: false
72
74
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,6 +76,9 @@ dependencies:
74
76
  - - "~>"
75
77
  - !ruby/object:Gem::Version
76
78
  version: '1.0'
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.0.4
77
82
  - !ruby/object:Gem::Dependency
78
83
  name: concurrent-ruby
79
84
  requirement: !ruby/object:Gem::Requirement
@@ -921,10 +926,10 @@ homepage: http://pixaranimationstudios.github.io/ruby-jss/
921
926
  licenses:
922
927
  - Nonstandard
923
928
  metadata: {}
924
- post_install_message:
929
+ post_install_message:
925
930
  rdoc_options:
926
931
  - "--title"
927
- - JSS
932
+ - Jamf
928
933
  - "--line-numbers"
929
934
  - "--main"
930
935
  - README.md
@@ -937,12 +942,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
937
942
  version: 2.6.3
938
943
  required_rubygems_version: !ruby/object:Gem::Requirement
939
944
  requirements:
940
- - - ">="
945
+ - - ">"
941
946
  - !ruby/object:Gem::Version
942
- version: '0'
947
+ version: 1.3.1
943
948
  requirements: []
944
- rubygems_version: 3.0.3.1
945
- signing_key:
949
+ rubygems_version: 3.1.4
950
+ signing_key:
946
951
  specification_version: 4
947
952
  summary: A Ruby interface to the Jamf Pro REST APIs
948
953
  test_files: []