ruby-jss 0.11.0b1 → 0.11.0b2
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/CHANGES.md +2 -0
- data/lib/jss/api_object/extendable.rb +12 -14
- data/lib/jss/api_object.rb +12 -9
- data/lib/jss/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21217657188ce815a99fe4f834e1fd3c1947c2d9
|
4
|
+
data.tar.gz: bb5e45fd335ad1daec3b127fa040a6ba83db894b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9f866cfed958d91457513f2708be6b33e2272464496c8fd843affabedd07449fea5c8501eb4565110b409625e1fdee5ccbb6a05cc54a764b06b1091ab8e623f
|
7
|
+
data.tar.gz: 3d7e231badb3980b793801a58117784fdfdc407fb42aa5cc4671ee2593a9963e4f4101272a6c237fb02e39805cd33b1ecc2a92866ce7aae6becc8bd7f484ea50
|
data/CHANGES.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
## v 0.11.0b1, 2018-02-19
|
4
4
|
|
5
|
+
- Fix: Creatable Extendable objects have their empty extension attributes initialized properly so you can set the values before calling #create/#save. Thanks @mylescarrick for reporting this one.
|
6
|
+
|
5
7
|
- Improvement: Updated general attributes for computers and mobile devices
|
6
8
|
|
7
9
|
- Improvement: Computers and MobileDevices are now Creatable. Use the .make class method to create an unsaved instance, then .create/.save instance method to create the JSS record. Note: Mobile Devices need both a unique serial number and unique udid to be accepted by the API.
|
@@ -85,20 +85,14 @@ module JSS
|
|
85
85
|
|
86
86
|
# Populate @extension_attributes (the Array of Hashes that comes from the API)
|
87
87
|
# and @ext_attr_names, which is a Hash mapping the EA names to their
|
88
|
-
#
|
89
|
-
#
|
90
|
-
# Classes including this module should call this in #initialize
|
88
|
+
# values. This is called during initialization for all objects
|
89
|
+
# that mix in this module
|
91
90
|
#
|
92
91
|
# @return [void]
|
93
92
|
#
|
94
93
|
def parse_ext_attrs
|
95
|
-
unless @init_data[:extension_attributes]
|
96
|
-
@extension_attributes = []
|
97
|
-
@ext_attrs = {}
|
98
|
-
return
|
99
|
-
end
|
100
|
-
|
101
94
|
@extension_attributes = @init_data[:extension_attributes]
|
95
|
+
@extension_attributes ||= []
|
102
96
|
@ext_attrs = {}
|
103
97
|
|
104
98
|
@extension_attributes.each do |ea|
|
@@ -108,6 +102,7 @@ module JSS
|
|
108
102
|
begin # if there's random non-date data, the parse will fail
|
109
103
|
ea[:value] = JSS.parse_datetime ea[:value]
|
110
104
|
rescue
|
105
|
+
true
|
111
106
|
end
|
112
107
|
|
113
108
|
when *NUMERIC_TYPES
|
@@ -142,9 +137,6 @@ module JSS
|
|
142
137
|
# @return [void]
|
143
138
|
#
|
144
139
|
def set_ext_attr(name, value)
|
145
|
-
# if we don't currently have any need to update(cuz we have recently), reset the list of changes to push
|
146
|
-
@changed_eas = [] unless @need_to_update
|
147
|
-
|
148
140
|
# this will raise an exception if the name doesn't exist
|
149
141
|
ea_def = self.class::EXT_ATTRIB_CLASS.fetch name: name, api: api
|
150
142
|
|
@@ -163,8 +155,14 @@ module JSS
|
|
163
155
|
end # case
|
164
156
|
end # unless blank
|
165
157
|
|
158
|
+
been_set = false
|
166
159
|
@extension_attributes.each do |ea|
|
167
|
-
|
160
|
+
next unless ea[:name] == name
|
161
|
+
ea[:value] = value
|
162
|
+
been_set = true
|
163
|
+
end
|
164
|
+
unless been_set
|
165
|
+
@extension_attributes << { id: ea_def.id, name: name, type: ea_def.data_type, value: value }
|
168
166
|
end
|
169
167
|
|
170
168
|
@ext_attrs[name] = value
|
@@ -205,7 +203,7 @@ module JSS
|
|
205
203
|
ea_el.add_element('value').text = ea[:value].to_s
|
206
204
|
end
|
207
205
|
else
|
208
|
-
ea_el.add_element('value').text = ea[:value]
|
206
|
+
ea_el.add_element('value').text = ea[:value].to_s
|
209
207
|
end # if
|
210
208
|
end # each do ea
|
211
209
|
|
data/lib/jss/api_object.rb
CHANGED
@@ -483,7 +483,6 @@ module JSS
|
|
483
483
|
new args
|
484
484
|
end
|
485
485
|
|
486
|
-
|
487
486
|
# Delete one or more API objects by jss_id without instantiating them.
|
488
487
|
# Non-existent id's are skipped and an array of skipped ids is returned.
|
489
488
|
#
|
@@ -505,7 +504,7 @@ module JSS
|
|
505
504
|
case victims
|
506
505
|
when Integer
|
507
506
|
victims = [victims]
|
508
|
-
when
|
507
|
+
when Integer
|
509
508
|
victims = [victims]
|
510
509
|
when Array
|
511
510
|
victims.uniq!
|
@@ -632,16 +631,14 @@ module JSS
|
|
632
631
|
elsif args[:id] == :new
|
633
632
|
validate_init_for_creation(args)
|
634
633
|
setup_object_for_creation(args)
|
635
|
-
|
636
|
-
return
|
637
|
-
|
634
|
+
@need_to_update = true
|
638
635
|
###### Look up the data via the API
|
639
636
|
else
|
640
637
|
@init_data = look_up_object_data(args)
|
638
|
+
@need_to_update = false
|
641
639
|
end ## end arg parsing
|
642
640
|
|
643
641
|
parse_init_data
|
644
|
-
@need_to_update = false
|
645
642
|
end # init
|
646
643
|
|
647
644
|
# Public Instance Methods
|
@@ -968,10 +965,16 @@ module JSS
|
|
968
965
|
|
969
966
|
# Find the "main" subset which contains :id and :name
|
970
967
|
@main_subset = find_main_subset
|
971
|
-
|
972
|
-
@id = @main_subset[:id]
|
973
968
|
@name = @main_subset[:name]
|
974
|
-
|
969
|
+
|
970
|
+
if @main_subset[:id] == :new
|
971
|
+
@id = 0
|
972
|
+
@in_jss = false
|
973
|
+
else
|
974
|
+
@id = @main_subset[:id]
|
975
|
+
@in_jss = true
|
976
|
+
end
|
977
|
+
|
975
978
|
@rest_rsrc = "#{self.class::RSRC_BASE}/id/#{@id}"
|
976
979
|
|
977
980
|
# many things have a :site
|
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: 0.11.
|
4
|
+
version: 0.11.0b2
|
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-
|
12
|
+
date: 2018-03-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: plist
|