depot3 3.0.20 → 3.0.21
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.
- 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: []
|