ruby-jss 0.9.2 → 0.10.0a1

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.

Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +13 -1
  3. data/README.md +7 -7
  4. data/bin/cgrouper +6 -6
  5. data/bin/netseg-update +1 -1
  6. data/lib/jss.rb +1 -0
  7. data/lib/jss/api_connection.rb +428 -44
  8. data/lib/jss/api_object.rb +119 -68
  9. data/lib/jss/api_object/account.rb +12 -12
  10. data/lib/jss/api_object/advanced_search.rb +12 -12
  11. data/lib/jss/api_object/categorizable.rb +4 -4
  12. data/lib/jss/api_object/category.rb +2 -2
  13. data/lib/jss/api_object/computer.rb +111 -58
  14. data/lib/jss/api_object/computer_invitation.rb +2 -2
  15. data/lib/jss/api_object/creatable.rb +19 -8
  16. data/lib/jss/api_object/criteriable/criteria.rb +8 -8
  17. data/lib/jss/api_object/distribution_point.rb +14 -48
  18. data/lib/jss/api_object/extension_attribute.rb +14 -11
  19. data/lib/jss/api_object/extension_attribute/computer_extension_attribute.rb +18 -18
  20. data/lib/jss/api_object/group.rb +7 -7
  21. data/lib/jss/api_object/ldap_server.rb +51 -60
  22. data/lib/jss/api_object/locatable.rb +2 -2
  23. data/lib/jss/api_object/matchable.rb +8 -9
  24. data/lib/jss/api_object/mobile_device.rb +61 -59
  25. data/lib/jss/api_object/mobile_device_application.rb +3 -3
  26. data/lib/jss/api_object/network_segment.rb +24 -19
  27. data/lib/jss/api_object/package.rb +6 -6
  28. data/lib/jss/api_object/peripheral.rb +5 -5
  29. data/lib/jss/api_object/policy.rb +5 -5
  30. data/lib/jss/api_object/restricted_software.rb +4 -4
  31. data/lib/jss/api_object/scopable/scope.rb +3 -3
  32. data/lib/jss/api_object/script.rb +1 -1
  33. data/lib/jss/api_object/self_servable.rb +3 -3
  34. data/lib/jss/api_object/self_servable/icon.rb +7 -2
  35. data/lib/jss/api_object/updatable.rb +2 -2
  36. data/lib/jss/api_object/uploadable.rb +1 -1
  37. data/lib/jss/api_object/user.rb +2 -2
  38. data/lib/jss/composer.rb +37 -10
  39. data/lib/jss/ruby_extensions/string.rb +51 -42
  40. data/lib/jss/server.rb +27 -6
  41. data/lib/jss/utility.rb +44 -0
  42. data/lib/jss/validate.rb +85 -0
  43. data/lib/jss/version.rb +1 -1
  44. metadata +5 -4
@@ -160,7 +160,7 @@ module JSS
160
160
  def building= (new_val)
161
161
  return nil if @building == new_val
162
162
  new_val = new_val.to_s.strip
163
- raise JSS::NoSuchItemError, "No building named #{new_val} exists in the JSS" unless new_val.empty? or JSS::Building.all_names.include? new_val
163
+ raise JSS::NoSuchItemError, "No building named #{new_val} exists in the JSS" unless new_val.empty? or JSS::Building.all_names(api: @api).include? new_val
164
164
  @building = new_val
165
165
  @need_to_update = true
166
166
  end
@@ -169,7 +169,7 @@ module JSS
169
169
  def department= (new_val)
170
170
  return nil if @department == new_val
171
171
  new_val = new_val.to_s.strip
172
- raise JSS::NoSuchItemError, "No department named #{new_val} exists in the JSS" unless new_val.empty? or JSS::Department.all_names.include? new_val
172
+ raise JSS::NoSuchItemError, "No department named #{new_val} exists in the JSS" unless new_val.empty? or JSS::Department.all_names(api: @api).include? new_val
173
173
  @department = new_val
174
174
  @need_to_update = true
175
175
  end
@@ -1,26 +1,26 @@
1
1
  ### Copyright 2017 Pixar
2
2
 
3
- ###
3
+ ###
4
4
  ### Licensed under the Apache License, Version 2.0 (the "Apache License")
5
5
  ### with the following modification; you may not use this file except in
6
6
  ### compliance with the Apache License and the following modification to it:
7
7
  ### Section 6. Trademarks. is deleted and replaced with:
8
- ###
8
+ ###
9
9
  ### 6. Trademarks. This License does not grant permission to use the trade
10
10
  ### names, trademarks, service marks, or product names of the Licensor
11
11
  ### and its affiliates, except as required to comply with Section 4(c) of
12
12
  ### the License and to reproduce the content of the NOTICE file.
13
- ###
13
+ ###
14
14
  ### You may obtain a copy of the Apache License at
15
- ###
15
+ ###
16
16
  ### http://www.apache.org/licenses/LICENSE-2.0
17
- ###
17
+ ###
18
18
  ### Unless required by applicable law or agreed to in writing, software
19
19
  ### distributed under the Apache License with the above modification is
20
20
  ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
21
  ### KIND, either express or implied. See the Apache License for the specific
22
22
  ### language governing permissions and limitations under the Apache License.
23
- ###
23
+ ###
24
24
  ###
25
25
 
26
26
  ###
@@ -77,7 +77,6 @@ module JSS
77
77
  ### Extended Class Methods
78
78
  #####################################
79
79
 
80
- ###
81
80
  ### Perform a match, returning an Array of Hashes, one for each item matched
82
81
  ###
83
82
  ### At the moment, it appears the search is an "exact match" search
@@ -87,10 +86,10 @@ module JSS
87
86
  ###
88
87
  ### @return [Array<Hash>] the item smatched.
89
88
  ###
90
- def match(term)
89
+ def match(term, api: JSS.api )
91
90
  raise JSS::InvalidDataError, "Match term may not be empty" if term.to_s.empty?
92
91
  rsrc = "#{self::RSRC_BASE}/#{JSS::Matchable::MATCH_RSRC}/#{term}"
93
- JSS.api_connection.get_rsrc(rsrc)[self::RSRC_LIST_KEY]
92
+ api.get_rsrc(rsrc)[self::RSRC_LIST_KEY]
94
93
  end
95
94
 
96
95
  end # module Matchable
@@ -192,53 +192,53 @@ module JSS
192
192
  #####################################
193
193
 
194
194
  # @return [Array<String>] all mobiledevice serial_numbers
195
- def self.all_serial_numbers(refresh = false)
196
- all(refresh).map { |i| i[:serial_number] }
195
+ def self.all_serial_numbers(refresh = false, api: JSS.api)
196
+ all(refresh, api: API).map { |i| i[:serial_number] }
197
197
  end
198
198
 
199
199
  # @return [Array<String>] all mobiledevice phone numbers
200
- def self.all_phone_numbers(refresh = false)
201
- all(refresh).map { |i| i[:phone_number] }.reject(&:empty?)
200
+ def self.all_phone_numbers(refresh = false, api: JSS.api)
201
+ all(refresh, api: API).map { |i| i[:phone_number] }.reject(&:empty?)
202
202
  end
203
203
 
204
204
  # @return [Array<String>] all mobiledevice wifi mac addrs
205
- def self.all_wifi_mac_addresses(refresh = false)
206
- all(refresh).map { |i| i[:wifi_mac_address] }
205
+ def self.all_wifi_mac_addresses(refresh = false, api: JSS.api)
206
+ all(refresh, api: API).map { |i| i[:wifi_mac_address] }
207
207
  end
208
208
 
209
209
  # @return [Array<String>] all mobiledevice wifi mac addrs
210
- def self.all_mac_addresses(refresh = false)
211
- all_wifi_mac_addresses(refresh)
210
+ def self.all_mac_addresses(refresh = false, api: JSS.api)
211
+ all_wifi_mac_addresses(refresh, api: API)
212
212
  end
213
213
 
214
214
  # @return [Array<String>] all mobiledevice udids
215
- def self.all_udids(refresh = false)
216
- all(refresh).map { |i| i[:udid] }
215
+ def self.all_udids(refresh = false, api: JSS.api)
216
+ all(refresh, api: API).map { |i| i[:udid] }
217
217
  end
218
218
 
219
219
  # @return [Array<Hash>] the list of all managed mobile devices
220
- def self.all_managed(refresh = false)
221
- all(refresh).select { |d| d[:managed] }
220
+ def self.all_managed(refresh = false, api: JSS.api)
221
+ all(refresh, api: API).select { |d| d[:managed] }
222
222
  end
223
223
 
224
224
  # @return [Array<Hash>] the list of all unmanaged mobile devices
225
- def self.all_unmanaged(refresh = false)
226
- all(refresh).reject { |d| d[:managed] }
225
+ def self.all_unmanaged(refresh = false, api: JSS.api)
226
+ all(refresh, api: API).reject { |d| d[:managed] }
227
227
  end
228
228
 
229
229
  # @return [Array<Hash>] the list of all iPhones
230
- def self.all_iphones(refresh = false)
231
- all(refresh).select { |d| d[:model].start_with? 'iPhone' }
230
+ def self.all_iphones(refresh = false, api: JSS.api)
231
+ all(refresh, api: API).select { |d| d[:model].start_with? 'iPhone' }
232
232
  end
233
233
 
234
234
  # @return [Array<Hash>] the list of all iPads
235
- def self.all_ipads(refresh = false)
236
- all(refresh).select { |d| d[:model].start_with? 'iPad' }
235
+ def self.all_ipads(refresh = false, api: JSS.api)
236
+ all(refresh, api: API).select { |d| d[:model].start_with? 'iPad' }
237
237
  end
238
238
 
239
239
  # @return [Array<Hash>] the list of all iPads
240
- def self.all_apple_tvs(refresh = false)
241
- all(refresh).select { |d| d[:model_identifier].start_with? 'AppleTV' }
240
+ def self.all_apple_tvs(refresh = false, api: JSS.api)
241
+ all(refresh, api: API).select { |d| d[:model_identifier].start_with? 'AppleTV' }
242
242
  end
243
243
 
244
244
  # Send an MDM command to one or more mobile devices by id or name
@@ -253,10 +253,13 @@ module JSS
253
253
  #
254
254
  # @param data[String] Some commands require extra data.
255
255
  #
256
+ # @param api[JSS::APIConnection] the APi to query. Defaults to the
257
+ # currently active API, see {JSS::APIConnection}
258
+ #
256
259
  # @return [String] The uuid of the MDM command sent, if applicable
257
260
  # (blank pushes do not generate uuids)
258
261
  #
259
- def self.send_mdm_command(targets, command, data = nil)
262
+ def self.send_mdm_command(targets, command, data = nil, api: JSS.api)
260
263
  raise JSS::NoSuchItemError, "Unknown command '#{command}'" unless MDM_COMMANDS.keys.include? command
261
264
 
262
265
  command = MDM_COMMANDS[command]
@@ -271,10 +274,10 @@ module JSS
271
274
 
272
275
  # make sure its an array of ids
273
276
  targets.map! do |md|
274
- if all_ids.include? md.to_i
277
+ if all_ids(api: api).include? md.to_i
275
278
  md.to_i
276
- elsif all_names.include? md
277
- map_all_ids_to(:name).invert[md]
279
+ elsif all_names(api: api).include? md
280
+ map_all_ids_to(:name, api: api.invert[md])
278
281
  else
279
282
  raise JSS::NoSuchItemError, "No mobile device found matching '#{md}'"
280
283
  end # if
@@ -282,26 +285,26 @@ module JSS
282
285
 
283
286
  cmd_rsrc << "/id/#{targets.join ','}"
284
287
 
285
- result = JSS::API.post_rsrc cmd_rsrc, nil
288
+ result = api.post_rsrc cmd_rsrc, nil
286
289
  result =~ %r{<uuid>(.*)</uuid>}
287
290
  Regexp.last_match(1)
288
291
  end
289
292
 
290
- def self.management_history(identifier, subset = nil )
293
+ def self.management_history(identifier, subset = nil, api: JSS.api)
291
294
  id = nil
292
295
  if identifier.is_a? Integer
293
296
  id = identifier
294
297
  else
295
298
  key = case identifier
296
- when *all_names then :name
297
- when *all_serial_numbers then :serial_number
298
- when *all_mac_addresses then :mac_address
299
- when *all_udids then :udid
300
- end
301
- id = map_all_ids_to(key).invert[identifier]
299
+ when *all_names(api: api) then :name
300
+ when *all_serial_numbers(api: api) then :serial_number
301
+ when *all_mac_addresses(api: api) then :mac_address
302
+ when *all_udids(api: api) then :udid
303
+ end
304
+ id = map_all_ids_to(key, api: api).invert[identifier]
302
305
  end # if identifier.is_a? Integer
303
306
 
304
- raise JSS::NoSuchItemError, "No MobileDevice found matching #{identifier}" unless id && all_ids.include?(id)
307
+ raise JSS::NoSuchItemError, "No MobileDevice found matching #{identifier}" unless id && all_ids(api: api).include?(id)
305
308
 
306
309
  rsrc = "#{HISTORY_RSRC}/id/#{id}"
307
310
 
@@ -310,7 +313,7 @@ module JSS
310
313
  rsrc << "/subset/#{subset}"
311
314
  end
312
315
 
313
- hist = JSS.api.get_rsrc(rsrc)[:mobile_device_history]
316
+ hist = api.get_rsrc(rsrc)[:mobile_device_history]
314
317
  subset ? hist[subset] : hist
315
318
  end
316
319
 
@@ -547,7 +550,7 @@ module JSS
547
550
  # @return [String] The command uuid
548
551
  #
549
552
  def blank_push
550
- self.class.send_mdm_command @id, :blank_push
553
+ self.class.send_mdm_command @id, :blank_push, api: @api
551
554
  end #
552
555
 
553
556
  # Send an update_inventory MDM command
@@ -557,7 +560,7 @@ module JSS
557
560
  # @return [String] The command uuid
558
561
  #
559
562
  def update_inventory
560
- self.class.send_mdm_command @id, :update_inventory
563
+ self.class.send_mdm_command @id, :update_inventory, api: @api
561
564
  end
562
565
 
563
566
  # Send a device_lock MDM command
@@ -569,7 +572,7 @@ module JSS
569
572
  # @return [String] The command uuid
570
573
  #
571
574
  def device_lock(message)
572
- self.class.send_mdm_command @id, :device_lock, message
575
+ self.class.send_mdm_command @id, :device_lock, message, api: @api
573
576
  end
574
577
 
575
578
  # Send an erase_device MDM command
@@ -579,7 +582,7 @@ module JSS
579
582
  # @return [String] The command uuid
580
583
  #
581
584
  def erase_device
582
- self.class.send_mdm_command @id, :erase_device
585
+ self.class.send_mdm_command @id, :erase_device, api: @api
583
586
  end
584
587
 
585
588
  # Send a clear_passcode MDM command
@@ -589,7 +592,7 @@ module JSS
589
592
  # @return [String] The command uuid
590
593
  #
591
594
  def clear_passcode
592
- self.class.send_mdm_command @id, :clear_passcode
595
+ self.class.send_mdm_command @id, :clear_passcode, api: @api
593
596
  end
594
597
 
595
598
  # Send a unmanage_device MDM command
@@ -599,7 +602,7 @@ module JSS
599
602
  # @return [String] The command uuid
600
603
  #
601
604
  def unmanage_device
602
- @managed = false if self.class.send_mdm_command(@id, :unmanage_device)
605
+ @managed = false if self.class.send_mdm_command(@id, :unmanage_device, api: @api)
603
606
  end
604
607
 
605
608
  # Send a ClearRestrictionsPassword MDM command
@@ -609,7 +612,7 @@ module JSS
609
612
  # @return [String] The command uuid
610
613
  #
611
614
  def clear_restrictions_password
612
- self.class.send_mdm_command @id, :clear_restrictions_password
615
+ self.class.send_mdm_command @id, :clear_restrictions_password, api: @api
613
616
  end
614
617
 
615
618
  # Send a SettingsEnableDataRoaming MDM command
@@ -619,7 +622,7 @@ module JSS
619
622
  # @return [String] The command uuid
620
623
  #
621
624
  def enable_data_roaming
622
- self.class.send_mdm_command @id, :enable_data_roaming
625
+ self.class.send_mdm_command @id, :enable_data_roaming, api: @api
623
626
  end
624
627
 
625
628
  # Send a disable_data_roaming MDM command
@@ -629,7 +632,7 @@ module JSS
629
632
  # @return [String] The command uuid
630
633
  #
631
634
  def disable_data_roaming
632
- self.class.send_mdm_command @id, :disable_data_roaming
635
+ self.class.send_mdm_command @id, :disable_data_roaming, api: @api
633
636
  end
634
637
 
635
638
  # Send a enable_voice_roaming MDM command
@@ -639,7 +642,7 @@ module JSS
639
642
  # @return [String] The command uuid
640
643
  #
641
644
  def enable_voice_roaming
642
- self.class.send_mdm_command @id, :enable_voice_roaming
645
+ self.class.send_mdm_command @id, :enable_voice_roaming, api: @api
643
646
  end
644
647
 
645
648
  # Send a disable_voice_roaming MDM command
@@ -649,7 +652,7 @@ module JSS
649
652
  # @return [String] The command uuid
650
653
  #
651
654
  def disable_voice_roaming
652
- self.class.send_mdm_command @id, :disable_voice_roaming
655
+ self.class.send_mdm_command @id, :disable_voice_roaming, api: @api
653
656
  end
654
657
 
655
658
  # Send a enable_app_analytics MDM command
@@ -659,7 +662,7 @@ module JSS
659
662
  # @return [String] The command uuid
660
663
  #
661
664
  def enable_app_analytics
662
- self.class.send_mdm_command @id, :enable_app_analytics
665
+ self.class.send_mdm_command @id, :enable_app_analytics, api: @api
663
666
  end
664
667
 
665
668
  # Send a disable_app_analytics MDM command
@@ -669,7 +672,7 @@ module JSS
669
672
  # @return [String] The command uuid
670
673
  #
671
674
  def disable_app_analytics
672
- self.class.send_mdm_command @id, :disable_app_analytics
675
+ self.class.send_mdm_command @id, :disable_app_analytics, api: @api
673
676
  end
674
677
 
675
678
  # Send a enable_diagnostic_submission MDM command
@@ -679,7 +682,7 @@ module JSS
679
682
  # @return [String] The command uuid
680
683
  #
681
684
  def enable_diagnostic_submission
682
- self.class.send_mdm_command @id, :enable_diagnostic_submission
685
+ self.class.send_mdm_command @id, :enable_diagnostic_submission, api: @api
683
686
  end
684
687
 
685
688
  # Send a disable_diagnostic_submission MDM command
@@ -689,7 +692,7 @@ module JSS
689
692
  # @return [String] The command uuid
690
693
  #
691
694
  def disable_diagnostic_submission
692
- self.class.send_mdm_command @id, :disable_diagnostic_submission
695
+ self.class.send_mdm_command @id, :disable_diagnostic_submission, api: @api
693
696
  end
694
697
 
695
698
  # Send a device_name MDM command
@@ -701,7 +704,7 @@ module JSS
701
704
  # @return [String] The command uuid
702
705
  #
703
706
  def device_name(new_name)
704
- self.class.send_mdm_command @id, :device_name, new_name
707
+ self.class.send_mdm_command @id, :device_name, new_name, api: @api
705
708
  end
706
709
 
707
710
  # Send a shutdown device MDM command
@@ -711,7 +714,7 @@ module JSS
711
714
  # @return [String] The command uuid
712
715
  #
713
716
  def shutdown
714
- self.class.send_mdm_command @id, :shutdown
717
+ self.class.send_mdm_command @id, :shutdown, api: @api
715
718
  end
716
719
 
717
720
  # Send a restart device MDM command
@@ -721,10 +724,9 @@ module JSS
721
724
  # @return [String] The command uuid
722
725
  #
723
726
  def restart
724
- self.class.send_mdm_command @id, :restart
727
+ self.class.send_mdm_command @id, :restart, api: @api
725
728
  end
726
729
 
727
-
728
730
  # The full management History data for this Mobile Device
729
731
  #
730
732
  # @return [Hash] Keys are:
@@ -736,7 +738,7 @@ module JSS
736
738
  # ebooks: see managed
737
739
  #
738
740
  def management_history
739
- self.class.management_history @id
741
+ self.class.management_history @id, api: @api
740
742
  end
741
743
 
742
744
  # The user_location subset of the full history
@@ -747,7 +749,7 @@ module JSS
747
749
  # objects
748
750
  #
749
751
  def user_location_history
750
- self.class.management_history @id, :user_location
752
+ self.class.management_history @id, :user_location, api: @api
751
753
  end
752
754
 
753
755
  # The management_commands subset of the full history
@@ -758,7 +760,7 @@ module JSS
758
760
  # #failed_mdm_commands
759
761
  #
760
762
  def management_command_history
761
- self.class.management_history @id, :management_commands
763
+ self.class.management_history @id, :management_commands, api: @api
762
764
  end
763
765
  alias mdm_command_history management_command_history
764
766
 
@@ -802,7 +804,7 @@ module JSS
802
804
  # #failed_managed_apps
803
805
  #
804
806
  def managed_app_history
805
- self.class.management_history @id, :applications
807
+ self.class.management_history @id, :applications, api: @api
806
808
  end
807
809
 
808
810
  # The apps that have been installed via MDM
@@ -860,7 +862,7 @@ module JSS
860
862
  # @return [Array<Hash>] One hash per event
861
863
  #
862
864
  def audit_history
863
- self.class.management_history @id, :audits
865
+ self.class.management_history @id, :audits, api: @api
864
866
  end
865
867
 
866
868
  # The ebooks subset of the full history
@@ -870,7 +872,7 @@ module JSS
870
872
  # #failed_managed_ebooks
871
873
  #
872
874
  def managed_ebook_history
873
- self.class.management_history @id, :ebooks
875
+ self.class.management_history @id, :ebooks, api: @api
874
876
  end
875
877
 
876
878
  # The ebooks that have been installed via MDM
@@ -52,8 +52,8 @@ module JSS
52
52
  # Class Methods
53
53
  #####################################
54
54
 
55
- def self.all_bundle_ids(refresh = false)
56
- all(refresh).map { |mda| mda[:bundle_id] }
55
+ def self.all_bundle_ids(refresh = false, api: JSS.api)
56
+ all(refresh, api: api).map { |mda| mda[:bundle_id] }
57
57
  end
58
58
 
59
59
  # Class Constants
@@ -422,7 +422,7 @@ module JSS
422
422
  #
423
423
  def refresh_ipa
424
424
  return nil unless @in_jss
425
- fresh_data = JSS.api_connection.get_rsrc(@rest_rsrc)[self.class::RSRC_OBJECT_KEY]
425
+ fresh_data = @api.get_rsrc(@rest_rsrc)[self.class::RSRC_OBJECT_KEY]
426
426
  @ipa = fresh_data[:general][:ipa]
427
427
  end
428
428
 
@@ -72,14 +72,14 @@ module JSS
72
72
  ###
73
73
  ### Using the #include? method on those Ranges is very useful.
74
74
  ###
75
+ ### @param refresh[Boolean] re-read the data from the API?
76
+ ###
77
+ ### @param api[JSS::APIConnection] The API connection to query
78
+ ###
75
79
  ### @return [Hash{Integer => Range}] the network segments as IPv4 address Ranges
76
80
  ###
77
- def self.network_ranges(refresh = false)
78
- @network_ranges = nil if refresh
79
- return @network_ranges if @network_ranges
80
- @network_ranges = {}
81
- all(refresh).each { |ns| @network_ranges[ns[:id]] = IPAddr.new(ns[:starting_address])..IPAddr.new(ns[:ending_address]) }
82
- @network_ranges
81
+ def self.network_ranges(refresh = false, api: JSS.api)
82
+ api.network_ranges refresh
83
83
  end # def network_segments
84
84
 
85
85
  ### An alias for {NetworkSegment.network_ranges}
@@ -88,8 +88,8 @@ module JSS
88
88
  ###
89
89
  ### @see {NetworkSegment::network_ranges}
90
90
  ###
91
- def self.subnets(refresh = false)
92
- network_ranges refresh
91
+ def self.subnets(refresh = false, api: JSS.api)
92
+ network_ranges refresh, api: api
93
93
  end
94
94
 
95
95
  ### Given a starting address & ending address, mask, or cidr,
@@ -186,29 +186,34 @@ module JSS
186
186
  ###
187
187
  ### @param ip[String, IPAddr] the IP address to locate
188
188
  ###
189
+ ### @param refresh[Boolean] should the data be re-queried?
190
+ ###
191
+ ### @param api[JSS::APIConnection] The API connection to query
192
+ ###
189
193
  ### @return [Array<Integer>] the ids of the NetworkSegments containing the given ip
190
194
  ###
191
- def self.network_segments_for_ip(ip)
192
- ok_ip = IPAddr.new(ip)
193
- matches = []
194
- network_ranges.each { |id, subnet| matches << id if subnet.include?(ok_ip) }
195
- matches
195
+ def self.network_segments_for_ip(ip, refresh = false, api: JSS.api)
196
+ api.network_segments_for_ip ip, refresh
196
197
  end
197
198
 
198
- def self.network_segment_for_ip(ip)
199
- network_segments_for_ip(ip)
199
+ # @deprecated use network_segments_for_ip
200
+ # Backward compatibility
201
+ def self.network_segment_for_ip(ip, api: JSS.api)
202
+ network_segments_for_ip(ip, api: api)
200
203
  end
201
204
 
202
205
  ### Find the current network segment ids for the machine running this code
203
206
  ###
204
207
  ### @return [Array<Integer>] the NetworkSegment ids for this machine right now.
205
208
  ###
206
- def self.my_network_segments
207
- network_segment_for_ip JSS::Client.my_ip_address
209
+ def self.my_network_segments(api: JSS.api)
210
+ network_segment_for_ip JSS::Client.my_ip_address, api: api
208
211
  end
209
212
 
210
- def self.my_network_segment
211
- my_network_segments
213
+ # @deprecated use my_network_segments
214
+ # Backward compatibility
215
+ def self.my_network_segment(api: JSS.api)
216
+ my_network_segments api: api
212
217
  end
213
218
 
214
219
  ### Attributes