ruby-jss 0.10.2a5 → 0.10.2

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.

@@ -61,7 +61,7 @@ module JSS
61
61
  #
62
62
  #
63
63
  # Classes including this module *MUST*:
64
- # - call {#add_self_service_xml(xmldoc)} in their #rest_xml method
64
+ # - call {#add_self_service_xml()} in their #rest_xml method
65
65
  #
66
66
  # IMPORTANT: Since SelfServable also includes #{JSS::Updatable}, for uploading icons,
67
67
  # see that module for its requirements.
@@ -85,8 +85,6 @@ module JSS
85
85
  MAKE_AVAILABLE = 'Make Available in Self Service'.freeze
86
86
  AUTO_INSTALL = 'Install Automatically'.freeze
87
87
  AUTO_INSTALL_OR_PROMPT = 'Install Automatically/Prompt Users to Install'.freeze
88
- PATCHPOL_SELF_SERVICE = 'selfservice'.freeze # 'Make Available in Self Service' in the UI
89
- PATCHPOL_AUTO = 'prompt'.freeze # 'Install Automatically' in the UI
90
88
 
91
89
  DEFAULT_INSTALL_BUTTON_TEXT = 'Install'.freeze
92
90
 
@@ -100,15 +98,6 @@ module JSS
100
98
  can_display_in_categories: true,
101
99
  can_feature_in_categories: true
102
100
  },
103
- JSS::PatchPolicy => {
104
- in_self_service_data_path: [:general, :distribution_method],
105
- in_self_service: PATCHPOL_SELF_SERVICE,
106
- not_in_self_service: PATCHPOL_AUTO,
107
- targets: [:macos],
108
- payload: :patchpolicy,
109
- can_display_in_categories: false,
110
- can_feature_in_categories: false
111
- },
112
101
  JSS::MacApplication => { # TODO: add the correct values when Jamf fixes this bug
113
102
  in_self_service_data_path: nil, # [:general, :distribution_method],
114
103
  in_self_service: nil, # MAKE_AVAILABLE,
@@ -482,10 +471,10 @@ module JSS
482
471
  end
483
472
 
484
473
  def validate_icon(id)
485
- return nil unless JSS::DB_CNX.connected?
486
- raise JSS::NoSuchItemError, "No icon with id #{new_icon}" unless JSS::Icon.all_ids.include? id
474
+ if JSS::DB_CNX.connected?
475
+ raise JSS::NoSuchItemError, "No icon with id #{new_icon}" unless JSS::Icon.all_ids.include? id
476
+ end
487
477
  end
488
-
489
478
  # Re-read the icon data for this object from the API
490
479
  # Generally done after uploading a new icon via {#icon=}
491
480
  #
@@ -1,68 +1,99 @@
1
- # Copyright 2017 Pixar
2
-
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "Apache License")
5
- # with the following modification; you may not use this file except in
6
- # compliance with the Apache License and the following modification to it:
7
- # Section 6. Trademarks. is deleted and replaced with:
8
- #
9
- # 6. Trademarks. This License does not grant permission to use the trade
10
- # names, trademarks, service marks, or product names of the Licensor
11
- # and its affiliates, except as required to comply with Section 4(c) of
12
- # the License and to reproduce the content of the NOTICE file.
13
- #
14
- # You may obtain a copy of the Apache License at
15
- #
16
- # http://www.apache.org/licenses/LICENSE-2.0
17
- #
18
- # Unless required by applicable law or agreed to in writing, software
19
- # distributed under the Apache License with the above modification is
20
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
- # KIND, either express or implied. See the Apache License for the specific
22
- # language governing permissions and limitations under the Apache License.
23
- #
24
- #
25
-
26
- #
1
+ ### Copyright 2017 Pixar
2
+
3
+ ###
4
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
5
+ ### with the following modification; you may not use this file except in
6
+ ### compliance with the Apache License and the following modification to it:
7
+ ### Section 6. Trademarks. is deleted and replaced with:
8
+ ###
9
+ ### 6. Trademarks. This License does not grant permission to use the trade
10
+ ### names, trademarks, service marks, or product names of the Licensor
11
+ ### and its affiliates, except as required to comply with Section 4(c) of
12
+ ### the License and to reproduce the content of the NOTICE file.
13
+ ###
14
+ ### You may obtain a copy of the Apache License at
15
+ ###
16
+ ### http://www.apache.org/licenses/LICENSE-2.0
17
+ ###
18
+ ### Unless required by applicable law or agreed to in writing, software
19
+ ### distributed under the Apache License with the above modification is
20
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
+ ### KIND, either express or implied. See the Apache License for the specific
22
+ ### language governing permissions and limitations under the Apache License.
23
+ ###
24
+ ###
25
+
26
+ ###
27
27
  module JSS
28
28
 
29
- # Classes
30
- ###################################
29
+ #####################################
30
+ ### Module Variables
31
+ #####################################
32
+
33
+ #####################################
34
+ ### Module Methods
35
+ #####################################
31
36
 
32
- # A Site in the JSS.
33
- #
34
- # These are simple, in that they only have an ID and a name.
35
- #
36
- # @see JSS::APIObject
37
- #
37
+
38
+ #####################################
39
+ ### Classes
40
+ #####################################
41
+
42
+ ###
43
+ ### A Site in the JSS.
44
+ ###
45
+ ### These are simple, in that they only have an ID and a name.
46
+ ###
47
+ ### @see JSS::APIObject
48
+ ###
38
49
  class Site < JSS::APIObject
39
50
 
40
- # Mix-Ins
41
- ###################################
51
+ #####################################
52
+ ### Mix-Ins
53
+ #####################################
42
54
  include JSS::Creatable
43
55
  include JSS::Updatable
44
56
 
45
- # Class Constants
46
- ###################################
57
+ #####################################
58
+ ### Class Methods
59
+ #####################################
60
+
61
+ #####################################
62
+ ### Class Constants
63
+ #####################################
47
64
 
48
- # The base for REST resources of this class
49
- RSRC_BASE = 'sites'.freeze
65
+ ### The base for REST resources of this class
66
+ RSRC_BASE = "sites"
50
67
 
51
- # the hash key used for the JSON list output of all objects in the JSS
68
+ ### the hash key used for the JSON list output of all objects in the JSS
52
69
  RSRC_LIST_KEY = :sites
53
70
 
54
- # The hash key used for the JSON object output.
55
- # It's also used in various error messages
71
+ ### The hash key used for the JSON object output.
72
+ ### It's also used in various error messages
56
73
  RSRC_OBJECT_KEY = :site
57
74
 
58
- # these keys, as well as :id and :name, are present in valid API JSON data for this class
59
- VALID_DATA_KEYS = [].freeze
75
+ ### these keys, as well as :id and :name, are present in valid API JSON data for this class
76
+ VALID_DATA_KEYS = []
60
77
 
61
78
  # the object type for this object in
62
79
  # the object history table.
63
80
  # See {APIObject#add_object_history_entry}
64
81
  OBJECT_HISTORY_OBJECT_TYPE = 44
65
82
 
83
+ #####################################
84
+ ### Attributes
85
+ #####################################
86
+
87
+ #####################################
88
+ ### Constructor
89
+ #####################################
90
+
91
+
92
+ #####################################
93
+ ### Public Instance Methods
94
+ #####################################
95
+
96
+
66
97
  end # class site
67
98
 
68
99
  end # module
@@ -106,13 +106,9 @@ module JSS
106
106
 
107
107
  ### @return [Array<Hash>]
108
108
  ###
109
- ### Unlike every other Sitable object, Users
110
- ### can be in multiple sites, so we don't use
111
- ### the Sitable mixin module. Instead we'll
112
- ### we'll store them in this Array, as they come
113
- ### from the API.
109
+ ### The sites associated with this user
114
110
  ###
115
- ### Each Hash has the :id and :name for one site
111
+ ### Each Hash has then :id and :name for one site
116
112
  ###
117
113
  attr_reader :sites
118
114
 
@@ -271,7 +267,7 @@ module JSS
271
267
 
272
268
  user << JSS::Site.xml_list(@sites)
273
269
 
274
- user << ext_attr_xml
270
+ user << ext_attr_xml if @changed_eas && !@changed_eas.empty?
275
271
 
276
272
  return doc.to_s
277
273
  end
@@ -483,47 +483,6 @@ module JSS
483
483
  new args
484
484
  end
485
485
 
486
-
487
- # Delete one or more API objects by jss_id without instantiating them.
488
- # Non-existent id's are skipped and an array of skipped ids is returned.
489
- #
490
- # If an Array is provided, it is passed through #uniq! before being processed.
491
- #
492
- # @param victims[Integer,Array<Integer>] An object id or an array of them
493
- # to be deleted
494
- #
495
- # @param api[JSS::APIConnection] the API connection to use.
496
- # Defaults to the corrently active API. See {JSS::APIConnection}
497
- #
498
- # @return [Array<Integer>] The id's that didn't exist when we tried to
499
- # delete them.
500
- #
501
- def self.delete(victims, api: JSS.api)
502
- raise JSS::UnsupportedError, '.delete can only be called on subclasses of JSS::APIObject' if self == JSS::APIObject
503
- raise JSS::InvalidDataError, 'Parameter must be an Integer ID or an Array of them' unless victims.is_a?(Integer) || victims.is_a?(Array)
504
-
505
- case victims
506
- when Integer
507
- victims = [victims]
508
- when Fixnum
509
- victims = [victims]
510
- when Array
511
- victims.uniq!
512
- end
513
-
514
- skipped = []
515
- current_ids = all_ids :refresh, api: api
516
- victims.each do |vid|
517
- if current_ids.include? vid
518
- api.delete_rsrc "#{self::RSRC_BASE}/id/#{vid}"
519
- else
520
- skipped << vid
521
- end # if current_ids include v
522
- end # each victim
523
-
524
- skipped
525
- end # self.delete
526
-
527
486
  ### Class Constants
528
487
  #####################################
529
488
 
@@ -695,16 +654,11 @@ module JSS
695
654
  defined? self.class::SELF_SERVABLE
696
655
  end
697
656
 
698
- # @return [Boolean] See {JSS::Criteriable}
657
+ # @return [Boolean] See {JSS::criteriable}
699
658
  def criterable?
700
659
  defined? self.class::CRITERIABLE
701
660
  end
702
661
 
703
- # @return [Boolean] See {JSS::Sitable}
704
- def sitable?
705
- defined? self.class::SITABLE
706
- end
707
-
708
662
  # @return [Boolean] See {JSS::extendable}
709
663
  def extendable?
710
664
  defined? self.class::EXTENDABLE
@@ -737,8 +691,8 @@ module JSS
737
691
 
738
692
  # Delete this item from the JSS.
739
693
  #
740
- # @seealso {APIObject.delete} for deleting
741
- # one or more objects by id without needing to instantiate
694
+ # TODO: Make a class method for mass deletion
695
+ # without instantiating, then call it from this method.
742
696
  #
743
697
  # Subclasses may want to redefine this method,
744
698
  # first calling super, then setting other attributes to
@@ -861,17 +815,6 @@ module JSS
861
815
  history
862
816
  end
863
817
 
864
- # Print the rest_xml value of the object to stdout,
865
- # with indentation. Useful for debugging.
866
- #
867
- # @return [void]
868
- #
869
- def ppx
870
- return nil unless creatable? || updatable?
871
- REXML::Document.new(rest_xml).write $stdout, 2
872
- puts
873
- end
874
-
875
818
  # Private Instance Methods
876
819
  #####################################
877
820
  private
@@ -977,11 +920,10 @@ module JSS
977
920
  # many things have a :site
978
921
  # TODO: Implement a Sitable mixin module
979
922
  #
980
- # @site = JSS::APIObject.get_name(@main_subset[:site]) if @main_subset[:site]
923
+ @site = JSS::APIObject.get_name(@main_subset[:site]) if @main_subset[:site]
981
924
 
982
925
  ##### Handle Mix-ins
983
926
  initialize_category
984
- initialize_site
985
927
  initialize_location
986
928
  initialize_purchasing
987
929
  initialize_scope
@@ -1017,14 +959,6 @@ module JSS
1017
959
  parse_category if categorizable?
1018
960
  end
1019
961
 
1020
- # parse site data during initialization
1021
- #
1022
- # @return [void]
1023
- #
1024
- def initialize_site
1025
- parse_site if sitable?
1026
- end
1027
-
1028
962
  # parse location data during initialization
1029
963
  #
1030
964
  # @return [void]
@@ -1129,8 +1063,6 @@ require 'jss/api_object/extendable'
1129
1063
  require 'jss/api_object/self_servable'
1130
1064
  require 'jss/api_object/categorizable'
1131
1065
  require 'jss/api_object/vppable'
1132
- require 'jss/api_object/sitable'
1133
- require 'jss/api_object/mdm'
1134
1066
 
1135
1067
  ### Mix-in Sub Modules with Classes
1136
1068
  require 'jss/api_object/criteriable'
@@ -1159,8 +1091,6 @@ require 'jss/api_object/netboot_server'
1159
1091
  require 'jss/api_object/network_segment'
1160
1092
  require 'jss/api_object/osx_configuration_profile'
1161
1093
  require 'jss/api_object/package'
1162
- require 'jss/api_object/patch'
1163
- require 'jss/api_object/patch_policy'
1164
1094
  require 'jss/api_object/peripheral_type'
1165
1095
  require 'jss/api_object/peripheral'
1166
1096
  require 'jss/api_object/policy'
data/lib/jss/utility.rb CHANGED
@@ -558,25 +558,4 @@ module JSS
558
558
  pw
559
559
  end
560
560
 
561
- # un/set devmode mode.
562
- # Useful when coding - methods can call JSS.devmode? and then
563
- # e.g. spit out something instead of performing some action.
564
- #
565
- # @param [Symbol] Set devmode :on or :off
566
- #
567
- # @return [Boolean] The new state of devmode
568
- #
569
- def self.devmode(setting)
570
- @devmode = setting == :on ? true : false
571
- end
572
-
573
-
574
- # is devmode currently on?
575
- #
576
- # @return [Boolean]
577
- #
578
- def self.devmode?
579
- @devmode
580
- end
581
-
582
561
  end # module
data/lib/jss/version.rb CHANGED
@@ -27,6 +27,6 @@
27
27
  module JSS
28
28
 
29
29
  ### The version of the JSS ruby gem
30
- VERSION = '0.10.2a5'.freeze
30
+ VERSION = '0.10.2'.freeze
31
31
 
32
32
  end # module
data/lib/jss.rb CHANGED
@@ -160,8 +160,6 @@ module JSS
160
160
  class NetworkSegment < JSS::APIObject; end
161
161
  class OSXConfigurationProfile < JSS::APIObject; end
162
162
  class Package < JSS::APIObject; end
163
- class Patch < JSS::APIObject; end
164
- class PatchPolicy < JSS::APIObject; end
165
163
  class PeripheralType < JSS::APIObject; end
166
164
  class Peripheral < JSS::APIObject; end
167
165
  class Policy < JSS::APIObject; end
@@ -185,8 +183,6 @@ module JSS
185
183
  module SelfServable; end
186
184
  module Categorizable; end
187
185
  module VPPable; end
188
- module Sitable; end
189
- module MDM; end
190
186
 
191
187
  end # module JSS
192
188
 
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: 0.10.2a5
4
+ version: 0.10.2
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: 2018-01-12 00:00:00.000000000 Z
12
+ date: 2018-02-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: plist
@@ -71,14 +71,14 @@ dependencies:
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0.16'
74
+ version: '0.8'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.16'
81
+ version: '0.8'
82
82
  description: |2
83
83
  The ruby-jss gem provides the JSS module, a framework for interacting with the REST API
84
84
  of the Jamf Software Server (JSS), the core of Jamf Pro, an enterprise/education
@@ -140,7 +140,6 @@ files:
140
140
  - lib/jss/api_object/locatable.rb
141
141
  - lib/jss/api_object/mac_application.rb
142
142
  - lib/jss/api_object/matchable.rb
143
- - lib/jss/api_object/mdm.rb
144
143
  - lib/jss/api_object/mobile_device.rb
145
144
  - lib/jss/api_object/mobile_device_application.rb
146
145
  - lib/jss/api_object/mobile_device_configuration_profile.rb
@@ -148,8 +147,6 @@ files:
148
147
  - lib/jss/api_object/network_segment.rb
149
148
  - lib/jss/api_object/osx_configuration_profile.rb
150
149
  - lib/jss/api_object/package.rb
151
- - lib/jss/api_object/patch.rb
152
- - lib/jss/api_object/patch_policy.rb
153
150
  - lib/jss/api_object/peripheral.rb
154
151
  - lib/jss/api_object/peripheral_type.rb
155
152
  - lib/jss/api_object/policy.rb
@@ -161,7 +158,6 @@ files:
161
158
  - lib/jss/api_object/script.rb
162
159
  - lib/jss/api_object/self_servable.rb
163
160
  - lib/jss/api_object/self_servable/icon.rb
164
- - lib/jss/api_object/sitable.rb
165
161
  - lib/jss/api_object/site.rb
166
162
  - lib/jss/api_object/software_update_server.rb
167
163
  - lib/jss/api_object/updatable.rb
@@ -209,9 +205,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
205
  version: 1.9.3
210
206
  required_rubygems_version: !ruby/object:Gem::Requirement
211
207
  requirements:
212
- - - ">"
208
+ - - ">="
213
209
  - !ruby/object:Gem::Version
214
- version: 1.3.1
210
+ version: '0'
215
211
  requirements: []
216
212
  rubyforge_project:
217
213
  rubygems_version: 2.6.8