ruby-jss 1.1.0b2 → 1.1.0b3
Sign up to get free protection for your applications and to get access to all the features.
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
|