depot3 3.0.20 → 3.0.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +1 -1
- data/README.md +2 -2
- data/bin/d3 +1 -1
- data/bin/d3admin +5 -5
- data/bin/d3helper +10 -6
- data/bin/puppytime +2 -2
- data/data/d3/d3.conf.example +6 -6
- data/lib/d3/admin/auth.rb +1 -1
- data/lib/d3/admin/help.rb +6 -6
- data/lib/d3/admin/interactive.rb +8 -8
- data/lib/d3/admin/options.rb +2 -2
- data/lib/d3/admin/report.rb +12 -13
- data/lib/d3/admin/validate.rb +1 -1
- data/lib/d3/client/class_methods.rb +0 -1
- data/lib/d3/client/help.rb +1 -2
- data/lib/d3/client/receipt.rb +3 -3
- data/lib/d3/database.rb +1 -1
- data/lib/d3/package/attributes.rb +1 -1
- data/lib/d3/package/getters.rb +3 -3
- data/lib/d3/package/private_methods.rb +1 -1
- data/lib/d3/package/server_actions.rb +3 -3
- data/lib/d3/utility.rb +1 -1
- data/lib/d3/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdccb80a13c5141ee293beb669edaf0de31d35b8
|
4
|
+
data.tar.gz: 0ade823249a876acaf24f170f21366f452cee422
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a581133fb70c962aaa2010d8063f5353915400c0a9d09ee13ed4f5b6bf5806e5281736021116270fc6dfc7891d9e415b07c9e16c602f5224ea68742e480a6401
|
7
|
+
data.tar.gz: 124996f16388a76e5dfc1a493b42812412fed1b9ec4f8120eff72f54ebf2da2c31f99c8f5dbb9932a55200ade92b5e7a53cac7391978d64eb03ad48b1a59db61
|
data/.yardopts
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
# d3 - Command line package and patch management for
|
1
|
+
# d3 - Command line package and patch management for Jamf Pro
|
2
2
|
|
3
3
|
d3 (a.k.a. depot3) is a package deployment and patch management system for OS X that enhances
|
4
|
-
[Jamf Pro](https://www.jamf.com/products/jamf-pro/), an enterprise-level management system for Apple devices
|
4
|
+
[Jamf Pro](https://www.jamf.com/products/jamf-pro/), an enterprise-level management system for Apple devices. It was created by [Pixar Animation Studios](http://www.pixar.com/).
|
5
5
|
|
6
6
|
|
7
7
|
d3 adds these capabilities and more to Jamf Pro's package handling:
|
data/bin/d3
CHANGED
data/bin/d3admin
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
###
|
25
25
|
|
26
26
|
# == Synopsis
|
27
|
-
# d3admin - a commandline tool for creating and maintaining d3 pkgs in
|
27
|
+
# d3admin - a commandline tool for creating and maintaining d3 pkgs in Jamf Pro
|
28
28
|
#
|
29
29
|
# == Usage
|
30
30
|
# d3admin [options] action target....
|
@@ -483,7 +483,7 @@ ENDVERS
|
|
483
483
|
pols_used_by_old_pkg = outgoing_pkg.policy_ids
|
484
484
|
unless pols_used_by_old_pkg.empty?
|
485
485
|
names = pols_used_by_old_pkg.map { |pid| JSS::Policy.map_all_ids_to(:name)[pid] }.join(', ')
|
486
|
-
policy_warning = "\n\nWARNING: the current live package is in use by these
|
486
|
+
policy_warning = "\n\nWARNING: the current live package is in use by these Jamf Pro Policies:\n"
|
487
487
|
policy_warning += " #{names}\n"
|
488
488
|
policy_warning += 'You might want to update them to use the new live package.'
|
489
489
|
end # unless empty
|
@@ -607,9 +607,9 @@ ENDVERS
|
|
607
607
|
end # if got_scripts
|
608
608
|
|
609
609
|
if @options.keep_in_jss
|
610
|
-
deets += "\n - Leaving the
|
610
|
+
deets += "\n - Leaving the Jamf Pro package in the JSS"
|
611
611
|
else
|
612
|
-
deets += "\n - Deleting the
|
612
|
+
deets += "\n - Deleting the Jamf Pro package as well as the d3 data"
|
613
613
|
end
|
614
614
|
|
615
615
|
confirm "DELETE #{pkg.edition}, JSS id #{pkg.id}\nDist.Point Filename: #{pkg.filename}", deets
|
@@ -808,7 +808,7 @@ ENDDEETS
|
|
808
808
|
if @options.search_groups
|
809
809
|
found_groups = JSS::ComputerGroup.all_names.select { |gn| gn =~ /#{search_target}/ }
|
810
810
|
if found_groups.empty?
|
811
|
-
puts "No computer groups in
|
811
|
+
puts "No computer groups in Jamf Pro match '#{search_target}'"
|
812
812
|
else
|
813
813
|
found_groups.each { |fgn|
|
814
814
|
D3::Admin::Report.list_scoped_installs fgn, @options.status, :auto
|
data/bin/d3helper
CHANGED
@@ -56,6 +56,7 @@ class App
|
|
56
56
|
"--display-puppy-notification" => :display_puppy_notification,
|
57
57
|
"--rcpts-for-ea" => :rcpts_for_ea,
|
58
58
|
"--puppyq-for-ea" => :puppyq_for_ea,
|
59
|
+
"--import-jamf-receipts" => :import_receipts,
|
59
60
|
"--import-casper-receipts" => :import_receipts,
|
60
61
|
"--help" => :help,
|
61
62
|
"--version" => :show_version
|
@@ -80,6 +81,7 @@ class App
|
|
80
81
|
opts = GetoptLong.new(
|
81
82
|
[ '--help', '-h', '-H', GetoptLong::NO_ARGUMENT ],
|
82
83
|
[ '--debug', '-d', GetoptLong::NO_ARGUMENT ],
|
84
|
+
[ '--import-jamf-receipts', GetoptLong::NO_ARGUMENT ],
|
83
85
|
[ '--import-casper-receipts', GetoptLong::NO_ARGUMENT ],
|
84
86
|
[ '--display-puppy-notification', GetoptLong::NO_ARGUMENT ],
|
85
87
|
[ '--rcpts-for-ea', GetoptLong::NO_ARGUMENT ],
|
@@ -96,6 +98,8 @@ class App
|
|
96
98
|
@action = ACTIONS[opt]
|
97
99
|
when '--debug'
|
98
100
|
@debug = true
|
101
|
+
when '--import-jamf-receipts'
|
102
|
+
@action = ACTIONS[opt]
|
99
103
|
when '--import-casper-receipts'
|
100
104
|
@action = ACTIONS[opt]
|
101
105
|
when '--display-puppy-notification'
|
@@ -147,7 +151,7 @@ class App
|
|
147
151
|
#{USAGE}
|
148
152
|
|
149
153
|
--display-puppy-notification Tell users that puppies need walking.
|
150
|
-
--import-
|
154
|
+
--import-jamf-receipts Import local Jamf Pro package receipts into
|
151
155
|
d3 receipts. Can be run repeatedly to
|
152
156
|
import for packages new to d3.
|
153
157
|
--rcpts-for-ea Generate Extension Attribute data about
|
@@ -271,7 +275,7 @@ Watch a parade of cute puppies while these items are installed:
|
|
271
275
|
###
|
272
276
|
def import_receipts
|
273
277
|
|
274
|
-
D3.log "Importing
|
278
|
+
D3.log "Importing Jamf Pro Receipts for packages in d3", :warn
|
275
279
|
|
276
280
|
# this gets us a hash of jss package filenames -> pkg ids
|
277
281
|
d3_pkg_filenames = D3::Package.all_filenames.invert
|
@@ -300,7 +304,7 @@ Watch a parade of cute puppies while these items are installed:
|
|
300
304
|
|
301
305
|
# If we're here, we need to import the receipt, so get the matching D3
|
302
306
|
# package and make a receipt from it.
|
303
|
-
D3.log "Importing
|
307
|
+
D3.log "Importing Jamf Pro Receipt #{jss_rcpt_name}", :warn
|
304
308
|
|
305
309
|
begin
|
306
310
|
d3_pkg = D3::Package.new id: pkg_id
|
@@ -317,7 +321,7 @@ Watch a parade of cute puppies while these items are installed:
|
|
317
321
|
:basename => d3_pkg.basename,
|
318
322
|
:version => d3_pkg.version,
|
319
323
|
:revision => d3_pkg.revision,
|
320
|
-
:admin => "imported-from-
|
324
|
+
:admin => "imported-from-jamf",
|
321
325
|
:id => d3_pkg.id,
|
322
326
|
:status => d3_pkg.status ,
|
323
327
|
:jamf_rcpt_file => jss_rcpt,
|
@@ -332,12 +336,12 @@ Watch a parade of cute puppies while these items are installed:
|
|
332
336
|
)
|
333
337
|
D3::Client::Receipt.add_receipt d3_rcpt, :replace
|
334
338
|
rescue
|
335
|
-
D3.log "ERROR importing
|
339
|
+
D3.log "ERROR importing Jamf Pro Receipt #{jss_rcpt_name}: #{$!}", :error
|
336
340
|
end
|
337
341
|
|
338
342
|
|
339
343
|
end #JSS::Client.receipts.each do |jss_rcpt|
|
340
|
-
D3.log "Done importing
|
344
|
+
D3.log "Done importing Jamf Pro Receipts for packages in d3", :warn
|
341
345
|
|
342
346
|
|
343
347
|
end #import_receipts
|
data/bin/puppytime
CHANGED
@@ -33,8 +33,8 @@
|
|
33
33
|
# If there are no items in the queue, the script exits immediately.
|
34
34
|
#
|
35
35
|
# This script is intended to be executed at logout. This is best accomplished
|
36
|
-
# with a
|
37
|
-
# as a
|
36
|
+
# with a Jamf Pro policy triggered at logout. The policy can either run this script
|
37
|
+
# as a Jamf Pro script (in which case you need to add it to the JSS) or
|
38
38
|
# can call it locally using the "execute command" field of the
|
39
39
|
# "files and processes" section of the policy
|
40
40
|
#
|
data/data/d3/d3.conf.example
CHANGED
@@ -121,7 +121,7 @@ client_db_ropw_path:
|
|
121
121
|
###
|
122
122
|
### *** REQUIRED ***
|
123
123
|
###
|
124
|
-
### Access to this machine's
|
124
|
+
### Access to this machine's Jamf Pro distribution point's
|
125
125
|
### filesharing service
|
126
126
|
###
|
127
127
|
### See client_jss_ropw_path, above
|
@@ -138,7 +138,7 @@ client_distpoint_ropw_path:
|
|
138
138
|
### *** REQUIRED ***
|
139
139
|
###
|
140
140
|
### Access to the password for http downloads from this
|
141
|
-
### machines
|
141
|
+
### machines Jamf Pro Distribution point.
|
142
142
|
###
|
143
143
|
### See client_jss_ropw_path, above
|
144
144
|
###
|
@@ -394,7 +394,7 @@ jss_default_script_category:
|
|
394
394
|
notification_image_path:
|
395
395
|
|
396
396
|
### - admin_make_live_script
|
397
|
-
### The id or name of an existing
|
397
|
+
### The id or name of an existing Jamf Pro script to execute when
|
398
398
|
### a package is made live.
|
399
399
|
###
|
400
400
|
### The original use-case is for the script to send an email announcement
|
@@ -432,7 +432,7 @@ admin_make_live_script:
|
|
432
432
|
###
|
433
433
|
### - Associated pre- and post- scripts for the deleted packages WILL
|
434
434
|
### also be deleted, but ONLY if they aren't in use by some other package,
|
435
|
-
### or
|
435
|
+
### or Jamf Pro policy.
|
436
436
|
###
|
437
437
|
### - The package will NOT be kept in the JSS.
|
438
438
|
###
|
@@ -479,8 +479,8 @@ admin_auto_clean_keep_latest_pilots:
|
|
479
479
|
### on each client computer. It is used by the d3admin utility for generating
|
480
480
|
### reports about what's installed on clients.
|
481
481
|
###
|
482
|
-
### If the Ext Attr is not used, then
|
483
|
-
###
|
482
|
+
### If the Ext Attr is not used, then Jamf Pro's inventory data about installed
|
483
|
+
### jamf receipts is used, but the report detail is limited.
|
484
484
|
###
|
485
485
|
### If you leave this blank:
|
486
486
|
### The reports from `d3admin report` will not contain data about
|
data/lib/d3/admin/auth.rb
CHANGED
@@ -280,7 +280,7 @@ module D3
|
|
280
280
|
end # while
|
281
281
|
|
282
282
|
# did we get it in 3 tries?
|
283
|
-
raise JSS::InvalidDataError, "Three wrong attempts, please contact a
|
283
|
+
raise JSS::InvalidDataError, "Three wrong attempts, please contact a Jamf Pro administrator." if 3 == tries
|
284
284
|
|
285
285
|
save_credentials(kind, user, pw)
|
286
286
|
puts "\nThank you, the credentials have been saved in your OS X login keychain"
|
data/lib/d3/admin/help.rb
CHANGED
@@ -96,8 +96,8 @@ Action add and edit:
|
|
96
96
|
(Multiple paths should be comma separated)
|
97
97
|
|
98
98
|
Action delete:
|
99
|
-
--keep-scripts Keep pre-/post- scripts in
|
100
|
-
--keep-in-jss Delete pkg from d3 but leave in
|
99
|
+
--keep-scripts Keep pre-/post- scripts in Jamf Pro
|
100
|
+
--keep-in-jss Delete pkg from d3 but leave in Jamf Pro
|
101
101
|
|
102
102
|
Action search or report:
|
103
103
|
-S, --status <status> Limit package list to this status
|
@@ -128,7 +128,7 @@ ENDHELP
|
|
128
128
|
|
129
129
|
d3admin is a tool for administering packages in d3, a package/patch
|
130
130
|
management & deployment tool that enhances the package-handling capabilities
|
131
|
-
of
|
131
|
+
of Jamf Pro.
|
132
132
|
|
133
133
|
For detailed documentation see:
|
134
134
|
https://github.com/PixarAnimationStudios/depot3/wiki/Admin
|
@@ -355,12 +355,12 @@ Action add and edit:
|
|
355
355
|
Action delete:
|
356
356
|
|
357
357
|
--keep-scripts Keep any scripts associated with this pkg
|
358
|
-
in
|
358
|
+
in Jamf Pro. Note: scripts used by other
|
359
359
|
packages or polices are never deleted.
|
360
360
|
|
361
|
-
--keep-in-jss Leave the package in
|
361
|
+
--keep-in-jss Leave the package in Jamf Pro after deleting
|
362
362
|
it from d3. Note: packages used by
|
363
|
-
policies are never deleted from
|
363
|
+
policies are never deleted from Jamf Pro.
|
364
364
|
|
365
365
|
|
366
366
|
Action search:
|
data/lib/d3/admin/interactive.rb
CHANGED
@@ -282,7 +282,7 @@ the newest edition for each.
|
|
282
282
|
def get_package_name(default = nil)
|
283
283
|
desc = <<-END_DESC
|
284
284
|
JSS PACKAGE NAME
|
285
|
-
Enter a unique name for this package in d3 and
|
285
|
+
Enter a unique name for this package in d3 and Jamf Pro.
|
286
286
|
Enter 'v' to view a list of package names currently in d3.
|
287
287
|
END_DESC
|
288
288
|
input = 'v'
|
@@ -369,7 +369,7 @@ Create a multi-line description of this package:
|
|
369
369
|
- what does the installed thing do?
|
370
370
|
- where did it come from, where to get updates?
|
371
371
|
- who maintains it in your environment?
|
372
|
-
- any other info useful to d3 and
|
372
|
+
- any other info useful to d3 and Jamf Pro admins.
|
373
373
|
(don't just say "installs foo" when "foo" is the basename)
|
374
374
|
#{current_desc_review}Enter:#{prefd_editor_choice}
|
375
375
|
- 'n' to edit using 'nano'
|
@@ -887,9 +887,9 @@ Enter 'n' for none
|
|
887
887
|
###
|
888
888
|
def get_keep_scripts(default = 'n')
|
889
889
|
desc = <<-END_DESC
|
890
|
-
KEEP ASSOCIATED SCRIPTS IN
|
890
|
+
KEEP ASSOCIATED SCRIPTS IN JAMF PRO?
|
891
891
|
When deleting a package, should any associated scripts
|
892
|
-
(pre-install, post-install, pre-remove, post-remove) be kept in
|
892
|
+
(pre-install, post-install, pre-remove, post-remove) be kept in Jamf Pro?
|
893
893
|
|
894
894
|
NOTE: If any other d3 packages or policies are using the scripts
|
895
895
|
they won't be deleted. The other users of the scripts will be reported.
|
@@ -906,8 +906,8 @@ Enter 'y' or 'n'
|
|
906
906
|
###
|
907
907
|
def get_keep_in_jss(default = 'n')
|
908
908
|
desc = <<-END_DESC
|
909
|
-
KEEP THE PACKAGE IN
|
910
|
-
When deleting a package, should it be kept as a
|
909
|
+
KEEP THE PACKAGE IN JAMF PRO?
|
910
|
+
When deleting a package, should it be kept as a Jamf Pro package
|
911
911
|
and only deleted from d3?
|
912
912
|
Enter 'y' or 'n'
|
913
913
|
END_DESC
|
@@ -931,7 +931,7 @@ One of:
|
|
931
931
|
live - live packages
|
932
932
|
deprecated - old packages that used to be live
|
933
933
|
skipped - old packages that were never made live
|
934
|
-
missing - packages in d3, but not
|
934
|
+
missing - packages in d3, but not Jamf Pro
|
935
935
|
auto - packages auto-installed for a given computer group
|
936
936
|
excluded - packages not available to a given computer group
|
937
937
|
END_DESC
|
@@ -945,7 +945,7 @@ END_DESC
|
|
945
945
|
def get_computer(default = nil)
|
946
946
|
desc = <<-END_DESC
|
947
947
|
COMPUTER NAME
|
948
|
-
Enter the name of a computer
|
948
|
+
Enter the name of a computer Jamf Pro.
|
949
949
|
Enter 'v' to view a list available computer names.
|
950
950
|
END_DESC
|
951
951
|
input = 'v'
|
data/lib/d3/admin/options.rb
CHANGED
@@ -435,7 +435,7 @@ module D3
|
|
435
435
|
keep_scripts: {
|
436
436
|
default: nil,
|
437
437
|
cli: ['--keep-scripts', GetoptLong::NO_ARGUMENT],
|
438
|
-
label: 'Keep associated scripts in
|
438
|
+
label: 'Keep associated scripts in Jamf Pro',
|
439
439
|
display_conversion: DISPLAY_TRUE_FALSE,
|
440
440
|
get: :get_keep_scripts,
|
441
441
|
validate: :validate_yes_no
|
@@ -443,7 +443,7 @@ module D3
|
|
443
443
|
keep_in_jss: {
|
444
444
|
default: nil,
|
445
445
|
cli: ['--keep-in-jss', GetoptLong::NO_ARGUMENT],
|
446
|
-
label: 'Keep the
|
446
|
+
label: 'Keep the Jamf Pro package',
|
447
447
|
display_conversion: DISPLAY_TRUE_FALSE,
|
448
448
|
get: :get_keep_in_jss,
|
449
449
|
validate: :validate_yes_no
|
data/lib/d3/admin/report.rb
CHANGED
@@ -130,7 +130,7 @@ module D3
|
|
130
130
|
def report_single_computer_receipts (computer_name, statuses)
|
131
131
|
|
132
132
|
unless JSS::Computer.all_names.include? computer_name
|
133
|
-
puts "# No computer named '#{computer_name}' in
|
133
|
+
puts "# No computer named '#{computer_name}' in Jamf Pro"
|
134
134
|
return
|
135
135
|
end
|
136
136
|
|
@@ -151,7 +151,7 @@ module D3
|
|
151
151
|
|
152
152
|
rcpt_data = JSON.parse ea_data , :symbolize_names => true
|
153
153
|
|
154
|
-
# no EA, use
|
154
|
+
# no EA, use jamf rcpts
|
155
155
|
else
|
156
156
|
pkg_filenames_to_ids = D3::Package.all_filenames.invert
|
157
157
|
rcpt_data = {}
|
@@ -292,7 +292,7 @@ module D3
|
|
292
292
|
end
|
293
293
|
|
294
294
|
unless JSS::Computer.all_names.include? computer_name
|
295
|
-
puts "No computer named '#{computer_name}' in
|
295
|
+
puts "No computer named '#{computer_name}' in Jamf Pro"
|
296
296
|
return false
|
297
297
|
end
|
298
298
|
|
@@ -522,9 +522,9 @@ module D3
|
|
522
522
|
###### Data gathering
|
523
523
|
|
524
524
|
### Reconnect to both the API and DB with a much larger timeout, and
|
525
|
-
### using an alternate DB server if one is defined. Also connect with
|
525
|
+
### using an alternate DB server if one is defined. Also connect with
|
526
526
|
### the read-only accts, since rw isn't needed, retrieving the pws
|
527
|
-
### requires an admin keychain, which makes automated reporting
|
527
|
+
### requires an admin keychain, which makes automated reporting
|
528
528
|
### unpleasant.
|
529
529
|
###
|
530
530
|
### @return [Hash<String>] the hostnames of the connected JSS & MySQL servers
|
@@ -534,19 +534,19 @@ module D3
|
|
534
534
|
jss_user = D3::CONFIG.client_jss_ro_user
|
535
535
|
jss_user ||= JSS::CONFIG.api_username
|
536
536
|
jss_pw = D3::Client.get_ro_pass(:jss)
|
537
|
-
|
537
|
+
|
538
538
|
db_user = D3::CONFIG.client_db_ro_user
|
539
539
|
db_user ||= JSS::CONFIG.db_username
|
540
540
|
db_pw = D3::Client.get_ro_pass(:db)
|
541
|
-
|
541
|
+
|
542
542
|
else
|
543
|
-
api = D3::Admin::Auth.rw_credentials :jss
|
543
|
+
api = D3::Admin::Auth.rw_credentials :jss
|
544
544
|
jss_user = api[:user]
|
545
545
|
jss_pw = api[:password]
|
546
546
|
|
547
547
|
db = D3::Admin::Auth.rw_credentials :db
|
548
548
|
db_user = db[:user]
|
549
|
-
db_pw = db[:password]
|
549
|
+
db_pw = db[:password]
|
550
550
|
end
|
551
551
|
D3.connect_for_reports jss_user, jss_pw, db_user, db_pw
|
552
552
|
end # connect for report
|
@@ -568,7 +568,7 @@ module D3
|
|
568
568
|
### Get the latest data from the D3::CONFIG.report_receipts_ext_attr_name
|
569
569
|
### if that EA exists, nil otherwise
|
570
570
|
###
|
571
|
-
### The result is an Array of Hashes, one for each computer in
|
571
|
+
### The result is an Array of Hashes, one for each computer in Jamf Pro.
|
572
572
|
### Each hash contains these keys:
|
573
573
|
### :computer - the name of the computer
|
574
574
|
### :user - the name of the comptuer's user
|
@@ -642,11 +642,11 @@ WHERE eav.extension_attribute_id = #{ea.id}
|
|
642
642
|
return report_data
|
643
643
|
end # def ea_report_data
|
644
644
|
|
645
|
-
### get the latest receipt data from
|
645
|
+
### get the latest receipt data from Jamf Pro's receipts table
|
646
646
|
### This is used if the D3::CONFIG.report_receipts_ext_attr_name is not set
|
647
647
|
### and the data it returns is less useful.
|
648
648
|
###
|
649
|
-
### The result is and Array of Hashes, one for each computer in
|
649
|
+
### The result is and Array of Hashes, one for each computer in Jamf Pro.
|
650
650
|
### Each hash contains these keys:
|
651
651
|
### :computer - the name of the computer
|
652
652
|
### :user - the name of the comptuer's user
|
@@ -744,4 +744,3 @@ WHERE eav.extension_attribute_id = #{ea.id}
|
|
744
744
|
end # module Report
|
745
745
|
end # module Admin
|
746
746
|
end # module D3
|
747
|
-
|
data/lib/d3/admin/validate.rb
CHANGED
@@ -267,7 +267,7 @@ module D3
|
|
267
267
|
D3::Package::Validate.validate_groups groups
|
268
268
|
end
|
269
269
|
|
270
|
-
### check that a computer name or id exists in
|
270
|
+
### check that a computer name or id exists in jamf
|
271
271
|
###
|
272
272
|
### @param [String,Integer] the name, id, serialnumber, macaaddress, or udid
|
273
273
|
### of a computer in the JSS
|
data/lib/d3/client/help.rb
CHANGED
@@ -45,7 +45,7 @@ module D3
|
|
45
45
|
helptxt = <<-ENDHELP
|
46
46
|
|
47
47
|
d3: package/patch management & deployment tool to enhance the package-
|
48
|
-
handling capabilities of
|
48
|
+
handling capabilities of Jamf Pro.
|
49
49
|
|
50
50
|
#{USAGE}
|
51
51
|
|
@@ -109,4 +109,3 @@ ENDHELP
|
|
109
109
|
end # module help
|
110
110
|
end # class
|
111
111
|
end # module D3
|
112
|
-
|
data/lib/d3/client/receipt.rb
CHANGED
@@ -370,7 +370,7 @@ module D3
|
|
370
370
|
|
371
371
|
### Return an array of the
|
372
372
|
### basenames of all installed d3 pkgs. This doesn't
|
373
|
-
### include those items installed by other
|
373
|
+
### include those items installed by other jamf methods
|
374
374
|
###
|
375
375
|
def self.basenames(refresh = false)
|
376
376
|
self.all(refresh).keys
|
@@ -456,7 +456,7 @@ module D3
|
|
456
456
|
# someone installed a d3 pkg via non-d3 means) then
|
457
457
|
# which one wins? I say the last one, but log it.
|
458
458
|
if new_rcpts.keys.include? d3_pkg.basename
|
459
|
-
D3.log "Rebuilding local receipt database: multiple
|
459
|
+
D3.log "Rebuilding local receipt database: multiple Jamf Pro installs of basename '#{d3_pkg.basename}'", :warn
|
460
460
|
new_rcpts.delete d3_pkg.basename
|
461
461
|
end # new_rcpts.keys.include? d3_pkg.basename
|
462
462
|
|
@@ -913,7 +913,7 @@ Install date: #{@installed_at.strftime "%Y-%m-%d %H:%M:%S"}
|
|
913
913
|
Installed by: #{@admin}
|
914
914
|
Manually installed: #{manual?}
|
915
915
|
JAMF receipt file: #{@jamf_rcpt_file.basename}
|
916
|
-
|
916
|
+
Jamf Pro Pkg ID: #{@id}
|
917
917
|
Un-installable: #{removable? ? "yes" : "no"}
|
918
918
|
END_DEETS
|
919
919
|
|
data/lib/d3/database.rb
CHANGED
@@ -132,7 +132,7 @@ module D3
|
|
132
132
|
### - :installed_kb The disk spaced used by this pkg when installed
|
133
133
|
### When .[m]pkgs are installed, the identifiers and metadata for each are recorded in the OS's receipts database
|
134
134
|
### and are accessible via the pkgutil command. (e.g. pkgutil --pkg-info com.company.application). Storing the apple rcpt
|
135
|
-
### data in the DB allows us to do uninstalls and other client tasks without needing to index the pkg in
|
135
|
+
### data in the DB allows us to do uninstalls and other client tasks without needing to index the pkg in jamf. This is
|
136
136
|
### stored in the DB as a YAML string
|
137
137
|
###
|
138
138
|
### - :added_date [Time] when was this package was added to d3
|
@@ -45,7 +45,7 @@ module D3
|
|
45
45
|
### @return [Array<Hash>] the apple receipt data for the items installed by this pkg.
|
46
46
|
### When .[m]pkgs are installed, their identifiers and metadata are recorded in the OS's receipts database
|
47
47
|
### and are accessible via the pkgutil command. (e.g. pkgutil --pkg-info com.company.application). Storing it
|
48
|
-
### in the DB allows us to do uninstalls and other client tasks without needing to index the pkg in
|
48
|
+
### in the DB allows us to do uninstalls and other client tasks without needing to index the pkg in Jamf Pro.
|
49
49
|
### Each hash has these keys:
|
50
50
|
### - :apple_pkg_id => String
|
51
51
|
### - :version => String
|
data/lib/d3/package/getters.rb
CHANGED
@@ -94,7 +94,7 @@ Status: #{@status}
|
|
94
94
|
---------------------
|
95
95
|
Added by: #{@added_by or 'unknown'}
|
96
96
|
Added date: #{@added_date ? @added_date.strftime('%Y-%m-%d') : 'unknown'}
|
97
|
-
|
97
|
+
Jamf Pro Package: #{@name} (id: #{@id})
|
98
98
|
Filename: #{@filename}
|
99
99
|
Category: #{@category or 'None'}
|
100
100
|
Needs reboot (puppytime): #{@reboot_required or 'false'}
|
@@ -117,7 +117,7 @@ Release date: #{@release_date ? @release_date.strftime('%Y-%m-%d') : '-'}
|
|
117
117
|
end #formatted_details
|
118
118
|
|
119
119
|
### The index of this package
|
120
|
-
### This is an array of paths (as Strings) from the pkg's
|
120
|
+
### This is an array of paths (as Strings) from the pkg's Jamf Pro index
|
121
121
|
###
|
122
122
|
### @param files_only[Boolean] ignore directories, only return files
|
123
123
|
###
|
@@ -141,7 +141,7 @@ Release date: #{@release_date ? @release_date.strftime('%Y-%m-%d') : '-'}
|
|
141
141
|
index :files_only
|
142
142
|
end
|
143
143
|
|
144
|
-
### An Array of ids of all
|
144
|
+
### An Array of ids of all Jamf Pro policies using this package
|
145
145
|
###
|
146
146
|
### @return [Array<Integer>] the policy ids using this package.
|
147
147
|
###
|
@@ -172,7 +172,7 @@ module D3
|
|
172
172
|
end
|
173
173
|
|
174
174
|
### Delete any scripts associated with this pkg
|
175
|
-
### but only if they aren't associated with other d3 pkgs or
|
175
|
+
### but only if they aren't associated with other d3 pkgs or jamf policies
|
176
176
|
###
|
177
177
|
### @return [Array<String>] a textual list of scripts and whether they were
|
178
178
|
### deleted or not (and why not)
|
@@ -402,7 +402,7 @@ INSERT INTO #{P_TABLE[:table_name]} (
|
|
402
402
|
### @param rwpw[String] the read-write for the master distr. point
|
403
403
|
###
|
404
404
|
### @return [Array<String>] a textual list of scripts delted and not
|
405
|
-
### deleted because they're in use by other d3 pkgs or
|
405
|
+
### deleted because they're in use by other d3 pkgs or jamf policies
|
406
406
|
### (empty if keep_scripts is true)
|
407
407
|
###
|
408
408
|
def delete (keep_in_jss: false, keep_scripts: false, admin: @admin, rwpw: nil)
|
@@ -544,7 +544,7 @@ INSERT INTO #{P_TABLE[:table_name]} (
|
|
544
544
|
### Package in the JSS Database.
|
545
545
|
###
|
546
546
|
### This is the equivalent of clicking the "index" button
|
547
|
-
### in
|
547
|
+
### in Jamf Admin.app, and is necessary for Jamf Pro to
|
548
548
|
### be able to uninstall items. It can only happen after the
|
549
549
|
### item has already been saved to the JSS and has an
|
550
550
|
### id in the database.
|
@@ -614,7 +614,7 @@ INSERT INTO #{P_TABLE[:table_name]} (
|
|
614
614
|
system "rm -rf '#{tmp_bom}'"
|
615
615
|
|
616
616
|
else
|
617
|
-
raise JSS::InvalidDataError, "#{@filename} doesn't looks like a .pkg or .dmg. Try
|
617
|
+
raise JSS::InvalidDataError, "#{@filename} doesn't looks like a .pkg or .dmg. Try Jamf Admin to index it."
|
618
618
|
end # if filename .pkg
|
619
619
|
|
620
620
|
# If there are no bomlines (perhaps a payloadless pkg?) just return
|
data/lib/d3/utility.rb
CHANGED
@@ -75,7 +75,7 @@ module D3
|
|
75
75
|
return D3::DISALLOWED_ADMINS + D3::CONFIG.client_prohibited_admin_names
|
76
76
|
end
|
77
77
|
|
78
|
-
### Run a
|
78
|
+
### Run a Jamf Pro policy on the local machine
|
79
79
|
###
|
80
80
|
### @param policy[String,Integer] the custom-trigger, name, or id of the policy
|
81
81
|
###
|
data/lib/d3/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: depot3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Lasell
|
@@ -51,8 +51,8 @@ dependencies:
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 0.6.6
|
53
53
|
description: |
|
54
|
-
d3 extends the package-deployment capabilities of
|
55
|
-
tool for managing Apple devices
|
54
|
+
d3 extends the package-deployment capabilities of Jamf Pro, an enterprise/education
|
55
|
+
tool for managing Apple devices.
|
56
56
|
For details, see http://pixaranimationstudios.github.io/depot3/index.html
|
57
57
|
email: d3@pixar.com
|
58
58
|
executables:
|
@@ -212,5 +212,5 @@ rubygems_version: 2.6.8
|
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
214
|
summary: A package/patch management system for OS X which extends the capabilites
|
215
|
-
of
|
215
|
+
of Jamf Pro.
|
216
216
|
test_files: []
|