ruby-jss 1.1.0b2 → 1.1.0b3
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.
Potentially problematic release.
This version of ruby-jss might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/jss/api_connection.rb +9 -33
- data/lib/jss/api_object/computer.rb +7 -2
- data/lib/jss/api_object/network_segment.rb +38 -6
- data/lib/jss/api_object/patch_title.rb +2 -1
- data/lib/jss/api_object/policy.rb +17 -7
- data/lib/jss/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c93768b14659a35387a451d6b310ada61703377b15bd18336430a5ba22b092d0
|
4
|
+
data.tar.gz: 1fffb42782534b0cd38799d549911332da08363606864ef0a5e178f657b8f1a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 565603a221d5e5b17595008b0ad385b5880930802897586d7276e22cb7abbcfd8bac24971e6842fc8ebf6d52434db6cdc61f05f4efdaa661e7338fc430379db6
|
7
|
+
data.tar.gz: ad6b0d25702b25e9058ee6201cde765b1f78944a6cd8f9be7cd43683939c5661a2a82daf04146787cf325f650de573f7c33f1fdd6dc371312ac966788152077c
|
data/lib/jss/api_connection.rb
CHANGED
@@ -917,49 +917,25 @@ module JSS
|
|
917
917
|
@my_distribution_point
|
918
918
|
end
|
919
919
|
|
920
|
-
#
|
921
|
-
# Segment, e.g. with starting = 10.24.9.1 and ending = 10.24.15.254
|
922
|
-
# the range looks like:
|
923
|
-
# <IPAddr: IPv4:10.24.9.1/255.255.255.255>..#<IPAddr: IPv4:10.24.15.254/255.255.255.255>
|
920
|
+
# @deprecated
|
924
921
|
#
|
925
|
-
#
|
926
|
-
#
|
927
|
-
# @param refresh[Boolean] should the data be re-queried?
|
928
|
-
#
|
929
|
-
# @return [Hash{Integer => Range}] the network segments as IPv4 address Ranges
|
922
|
+
# @see {JSS::NetworkSegment.network_ranges}
|
930
923
|
#
|
931
924
|
def network_ranges(refresh = false)
|
932
|
-
|
933
|
-
return @network_ranges if @network_ranges
|
934
|
-
@network_ranges = {}
|
935
|
-
JSS::NetworkSegment.all(refresh, api: self).each do |ns|
|
936
|
-
@network_ranges[ns[:id]] = IPAddr.new(ns[:starting_address])..IPAddr.new(ns[:ending_address])
|
937
|
-
end
|
938
|
-
@network_ranges
|
925
|
+
JSS::NetworkSegment.network_ranges refresh, api: self
|
939
926
|
end # def network_segments
|
940
927
|
|
941
|
-
#
|
942
|
-
#
|
943
|
-
# Even tho IPAddr.include? will take a String or an IPAddr
|
944
|
-
# I convert the ip to an IPAddr so that an exception will be raised if
|
945
|
-
# the ip isn't a valid ip.
|
946
|
-
#
|
947
|
-
# @param ip[String, IPAddr] the IP address to locate
|
948
|
-
#
|
949
|
-
# @param refresh[Boolean] should the data be re-queried?
|
928
|
+
# @deprecated
|
950
929
|
#
|
951
|
-
# @
|
930
|
+
# @see {JSS::NetworkSegment.network_segments_for_ip}
|
952
931
|
#
|
953
|
-
def network_segments_for_ip(ip)
|
954
|
-
|
955
|
-
matches = []
|
956
|
-
network_ranges.each { |id, subnet| matches << id if subnet.include?(ok_ip) }
|
957
|
-
matches
|
932
|
+
def network_segments_for_ip(ip, refresh = false)
|
933
|
+
JSS::NetworkSegment.network_segments_for_ip ip, refresh, api: self
|
958
934
|
end
|
959
935
|
|
960
|
-
#
|
936
|
+
# @deprecated
|
961
937
|
#
|
962
|
-
# @
|
938
|
+
# @see {JSS::NetworkSegment.my_network_segments}
|
963
939
|
#
|
964
940
|
def my_network_segments
|
965
941
|
network_segments_for_ip JSS::Client.my_ip_address
|
@@ -503,8 +503,8 @@ module JSS
|
|
503
503
|
raise "Subset must be one of :#{MGMT_DATA_SUBSETS.join ', :'}" unless MGMT_DATA_SUBSETS.include? subset
|
504
504
|
subset_rsrc = MGMT_DATA_RSRC + "/id/#{id}/subset/#{subset}"
|
505
505
|
subset_data = api.get_rsrc(subset_rsrc)[MGMT_DATA_KEY]
|
506
|
-
return subset_data unless only
|
507
|
-
subset_data.map { |d| d[only] }
|
506
|
+
return subset_data[subset] unless only
|
507
|
+
subset_data[subset].map { |d| d[only] }
|
508
508
|
end
|
509
509
|
private_class_method :management_data_subset
|
510
510
|
|
@@ -556,6 +556,9 @@ module JSS
|
|
556
556
|
# @return [Boolean] doesit support MDM?
|
557
557
|
attr_reader :mdm_capable
|
558
558
|
|
559
|
+
# @return [Hash] some MDM status details in general
|
560
|
+
attr_reader :management_status
|
561
|
+
|
559
562
|
# @return [Array] user accts that support MDM?
|
560
563
|
# NOTE: This suffers from the JSON-Hash-treated-like_XML-Array-loses-data
|
561
564
|
# bug and only shows the last listed user, cuz it comes from the API
|
@@ -793,6 +796,8 @@ module JSS
|
|
793
796
|
|
794
797
|
@configuration_profiles = @init_data[:configuration_profiles]
|
795
798
|
|
799
|
+
@management_status = @init_data[:general][:management_status]
|
800
|
+
|
796
801
|
@groups_accounts = @init_data[:groups_accounts]
|
797
802
|
@hardware = @init_data[:hardware]
|
798
803
|
@peripherals = @init_data[:peripherals]
|
@@ -177,6 +177,7 @@ module JSS
|
|
177
177
|
###
|
178
178
|
def self.validate_ip_range(startip, endip)
|
179
179
|
return nil if IPAddr.new(startip.to_s) <= IPAddr.new(endip.to_s)
|
180
|
+
|
180
181
|
raise JSS::InvalidDataError, "Starting IP #{startip} is higher than ending ip #{endip} "
|
181
182
|
end
|
182
183
|
|
@@ -195,29 +196,60 @@ module JSS
|
|
195
196
|
### @return [Array<Integer>] the ids of the NetworkSegments containing the given ip
|
196
197
|
###
|
197
198
|
def self.network_segments_for_ip(ip, refresh = false, api: JSS.api)
|
198
|
-
|
199
|
+
ok_ip = IPAddr.new(ip)
|
200
|
+
matches = []
|
201
|
+
network_ranges.each { |id, subnet| matches << id if subnet.include?(ok_ip) }
|
202
|
+
matches
|
199
203
|
end
|
200
204
|
|
201
205
|
# @deprecated use network_segments_for_ip
|
202
|
-
# Backward compatibility
|
206
|
+
# Here for Backward compatibility
|
203
207
|
def self.network_segment_for_ip(ip, api: JSS.api)
|
204
208
|
network_segments_for_ip(ip, api: api)
|
205
209
|
end
|
206
210
|
|
207
211
|
### Find the current network segment ids for the machine running this code
|
208
212
|
###
|
209
|
-
### @return [Array<Integer>]
|
213
|
+
### @return [Array<Integer>] the NetworkSegment ids for this machine right now.
|
210
214
|
###
|
211
|
-
def self.my_network_segments(api: JSS.api)
|
212
|
-
|
215
|
+
def self.my_network_segments(refresh = false, names: false, api: JSS.api)
|
216
|
+
ids = network_segments_for_ip JSS::Client.my_ip_address, refresh, api: api
|
217
|
+
return ids unless names
|
218
|
+
|
219
|
+
ids_to_names = map_all_ids_to :name
|
220
|
+
ids.map { |id| ids_to_names[id] }
|
213
221
|
end
|
214
222
|
|
215
223
|
# @deprecated use my_network_segments
|
216
|
-
#
|
224
|
+
# Here for backward compatibility
|
217
225
|
def self.my_network_segment(api: JSS.api)
|
218
226
|
my_network_segments api: api
|
219
227
|
end
|
220
228
|
|
229
|
+
# All NetworkSegments in this jss as IPAddr object Ranges representing the
|
230
|
+
# Segment, e.g. with starting = 10.24.9.1 and ending = 10.24.15.254
|
231
|
+
# the range looks like:
|
232
|
+
# <IPAddr: IPv4:10.24.9.1/255.255.255.255>..#<IPAddr: IPv4:10.24.15.254/255.255.255.255>
|
233
|
+
#
|
234
|
+
# Using the #include? method on those Ranges is very useful.
|
235
|
+
#
|
236
|
+
# @param refresh[Boolean] should the data be re-queried?
|
237
|
+
#
|
238
|
+
# @param api[JSS::APIConnection] the API to query
|
239
|
+
#
|
240
|
+
# @return [Hash{Integer => Range}] the network segments as IPv4 address Ranges
|
241
|
+
# keyed by id
|
242
|
+
#
|
243
|
+
def self.network_ranges(refresh = false, api: JSS.api)
|
244
|
+
@network_ranges = nil if refresh
|
245
|
+
return @network_ranges if @network_ranges
|
246
|
+
@network_ranges = {}
|
247
|
+
all(refresh, api: api).each do |ns|
|
248
|
+
@network_ranges[ns[:id]] = IPAddr.new(ns[:starting_address])..IPAddr.new(ns[:ending_address])
|
249
|
+
end
|
250
|
+
@network_ranges
|
251
|
+
end # def network_segments
|
252
|
+
|
221
253
|
### Attributes
|
222
254
|
#####################################
|
223
255
|
|
@@ -307,7 +307,8 @@ module JSS
|
|
307
307
|
params[:source_id] ||= params[:source]
|
308
308
|
|
309
309
|
# if given a source name, this converts it to an id
|
310
|
-
params[:source_id] = JSS::
|
310
|
+
params[:source_id] = JSS::PatchInternalSource.valid_id params[:source_id]
|
311
|
+
params[:source_id] ||= JSS::PatchExternalSource.valid_id params[:source_id]
|
311
312
|
|
312
313
|
# build a possible source_name_id
|
313
314
|
params[:source_name_id] ||= "#{params[:source_id]}-#{params[:name_id]}"
|
@@ -191,7 +191,7 @@ module JSS
|
|
191
191
|
after: 'After'
|
192
192
|
}.freeze
|
193
193
|
|
194
|
-
|
194
|
+
PRINTER_ACTIONS = {
|
195
195
|
map: 'install',
|
196
196
|
unmap: 'uninstall'
|
197
197
|
}.freeze
|
@@ -1051,7 +1051,11 @@ module JSS
|
|
1051
1051
|
# @return [Pathname] The path to search for
|
1052
1052
|
#
|
1053
1053
|
def search_by_path
|
1054
|
-
|
1054
|
+
if @files_processes[:search_by_path].nil?
|
1055
|
+
return nil
|
1056
|
+
else
|
1057
|
+
Pathname.new @files_processes[:search_by_path]
|
1058
|
+
end
|
1055
1059
|
end
|
1056
1060
|
|
1057
1061
|
# @return [Boolean] Should the searched-for path be deleted if found?
|
@@ -1300,16 +1304,22 @@ module JSS
|
|
1300
1304
|
@dock_items.map { |p| p[:name] }
|
1301
1305
|
end
|
1302
1306
|
|
1303
|
-
###### Printers
|
1304
|
-
|
1305
1307
|
# @return [Array] the id's of the printers handled by the policy
|
1306
1308
|
def printer_ids
|
1307
|
-
|
1309
|
+
begin
|
1310
|
+
@printers.map { |p| p[:id] }
|
1311
|
+
rescue TypeError
|
1312
|
+
return []
|
1313
|
+
end
|
1308
1314
|
end
|
1309
|
-
|
1315
|
+
|
1310
1316
|
# @return [Array] the names of the printers handled by the policy
|
1311
1317
|
def printer_names
|
1312
|
-
|
1318
|
+
begin
|
1319
|
+
@printers.map { |p| p[:name] }
|
1320
|
+
rescue TypeError
|
1321
|
+
return []
|
1322
|
+
end
|
1313
1323
|
end
|
1314
1324
|
|
1315
1325
|
###### Actions
|
data/lib/jss/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-jss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.0b3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Lasell
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: plist
|