Class: JSS::Policy
- Includes:
- Scopable, Updatable, Uploadable
- Defined in:
- lib/jss-api/api_object/policy.rb,
lib/jss-api.rb
Overview
A class implementing a JSS Policy.
Like many API objects, the data comes from the API in sections, and the items in the :general section are mapped to direct attributes of this Class.
Policy instances are partially read-only:
-
New policies cannot be created via this class, please use the WebApp.
-
Only a few attributes can be changed and updated via the Policy class:
-
name
-
-
frequency
-
-
target_drive
-
-
offline
-
-
enabled
-
-
category
-
-
triggers
-
-
scope, see Scopable and Scopable::Scope
-
-
files and processes
-
All other values and sections must be edited via the Web App.
Policies may be deleted via this class
Constant Summary collapse
- RSRC_BASE =
The base for REST resources of this class
"policies"
- RSRC_LIST_KEY =
the hash key used for the JSON list output of all objects in the JSS
:policies
- RSRC_OBJECT_KEY =
The hash key used for the JSON object output. It’s also used in various error messages
:policy
- VALID_DATA_KEYS =
these keys, as well as :id and :name, are present in valid API JSON data for this class
[:scope, :user_interaction, :files_processes ]
- SECTIONS =
[ :general, :maintenance, :account_maintenance, :scripts, :self_service, :package_configuration, :scope, :user_interaction, :reboot, :files_processes, :dock_items, :disk_encryption, :printers ]
- FREQUENCIES =
{ :ongoing => "Ongoing", :once_per_computer => "Once per computer", :once_per_user =>"Once per user", :daily => "Once every day", :weekly => "Once every week", :monthly => "Once every month" }
- RESTART_WHEN =
{ :if_pkg_requires => "Restart if a package or update requires it", :now => "Restart immediately", :delayed => "Restart", :dont => "Do not restart" }
- RESTART_DISKS =
{ :current => "Current Startup Disk", :selected => "Currently Selected Startup Disk (No Bless)", :netboot => "NetBoot", :os_installer => "inPlaceOSUpgradeDirectory" }
- ACCOUNT_ACTIONS =
Note: any other value in :specify_startup is a path to some other drive to boot from, e.g. /Volumes/Foo
{ :create => "Create", :change_pw => "Reset", :delete => "Delete", :disable_fv2 => "DisableFileVault" }
- MGMT_ACCOUNT_ACTIONS =
{ :no_change => "doNotChange", :change_pw => "specified", :generate_pw => "random", :enable_fv2 => "fileVaultEnable", :disable_fv2 => "fileVaultDisable" }
- PACKAGE_ACTIONS =
{ :install => "Install", :remove => "Uninstall", :cache =>"Cache", :install_cache => "Install Cached" }
- SCRIPT_PRIORITIES =
{:pre => "Before", :post => "After"}
- PRINTER_ACTIIONS =
{:map => "install", :unmap => "uninstall"}
- DOCK_ITEM_ACTIONS =
{:add_start => "Add To Beginning", :add_end => "Add To End", :remove => "Remove"}
- NETWORK_REQUIREMENTS =
{:any => "Any", :ethernet => "EtherNet"}
- TRIGGER_EVENTS =
{ :startup => :trigger_startup, :login => :trigger_login, :logout => :trigger_logout, :checkin => :trigger_checkin, :network_state => :trigger_network_state_changed , :enrollment => :trigger_enrollment_complete , :custom => :trigger_other }
- TRIGGER_TYPES =
{:event => "EVENT", :user => "USER_INITIATED"}
- SCOPE_TARGET_KEY =
:computers
Instance Attribute Summary collapse
-
#accounts ⇒ Array<Hash>
readonly
Local accts acted-upon by this policy.
-
#category ⇒ String
Policy category name.
-
#client_side_limitations ⇒ Hash
readonly
The client-side limitations of this policy.
-
#directory_bindings ⇒ Array<Hash>
readonly
The directory bindings applied.
-
#disk_encryption ⇒ Hash
readonly
Disk encryption options for this policy.
-
#dock_items ⇒ Array<Hash>
readonly
The dock items handled by this policy.
-
#enabled ⇒ Boolean
(also: #enabled?)
Is the policy enabled?.
-
#fix_byhost ⇒ Boolean
readonly
Client maintenance task.
-
#flush_system_cache ⇒ Boolean
readonly
Client maintenance task.
-
#flush_user_cache ⇒ Boolean
readonly
Client maintenance task.
-
#frequency ⇒ String
How often to run the policy on each computer.
-
#install_cached_pkgs ⇒ Boolean
readonly
Client maintenance task.
-
#management_account ⇒ Hash
readonly
The management accout changes applied by the policy.
-
#need_to_update ⇒ Boolean
included
from Updatable
readonly
Do we have unsaved changes?.
-
#offline ⇒ Boolean
Should be policy be available offline.
-
#open_firmware_efi_password ⇒ Hash
readonly
The open firmware mode and password.
-
#override_default_settings ⇒ Hash
readonly
Overrides for various defaults.
-
#packages ⇒ Array<Hash>
(also: #pkgs)
readonly
The pkgs handled by this policy.
-
#permissions_repair ⇒ Boolean
readonly
Client maintenance task.
-
#printers ⇒ Array<Hash>
readonly
The printers handled by this policy.
-
#reboot_options ⇒ Hash
readonly
Reboot options for the policy.
-
#recon ⇒ Boolean
readonly
Client maintenance task.
-
#reset_name ⇒ Boolean
readonly
Client maintenance task.
-
#scope ⇒ Object
included
from Scopable
Attribtues.
-
#scripts ⇒ Array<Hash>
readonly
The scripts run by this policy.
-
#self_service ⇒ Hash
readonly
Self-service-related data for this policy.
-
#server_side_limitations ⇒ Hash
readonly
The server-side limitations of this policy.
-
#site ⇒ String
readonly
A string with the site name.
-
#target_drive ⇒ String
Which drive should the policy target.
-
#trigger ⇒ String
readonly
Either EVENT or USER_INITIATED.
-
#trigger_events ⇒ Hash
readonly
The triggers that cause this policy to execute on a client when the @trigger is “EVENT”.
-
#user_may_defer ⇒ Boolean
readonly
Can the user defer the policy?.
-
#user_may_defer_until ⇒ Time
readonly
When is the user no longer allowed to defer?.
-
#user_message_finish ⇒ String
readonly
The message shown the user at policy end.
-
#user_message_start ⇒ String
readonly
The message shown the user at policy start.
-
#verify_startup_disk ⇒ Boolean
readonly
Client maintenance task.
Instance Method Summary collapse
-
#delete_file? ⇒ Boolean
(also: #delete_path?)
Should the searched-for path be deleted if found?.
-
#directory_binding_ids ⇒ Array
The id’s of the directory_bindings handled by the policy.
-
#directory_binding_names ⇒ Array
The names of the directory_bindings handled by the policy.
-
#dock_item_ids ⇒ Array
The id’s of the dock_items handled by the policy.
-
#dock_item_names ⇒ Array
The names of the dock_items handled by the policy.
-
#initialize(args = {}) ⇒ Policy
constructor
A new instance of Policy.
-
#kill_process? ⇒ Boolean
Should the searched-for process be killed if found.
-
#locate_file ⇒ String
The term to seach for using the locate command.
-
#locate_file=(term) ⇒ void
Set the term to seach for using the locate command.
-
#name=(newname) ⇒ void
included
from Updatable
Change the name of this item Remember to #update to push changes to the server.
-
#package_ids ⇒ Array
The id’s of the packages handled by the policy.
-
#package_names ⇒ Array
The names of the packages handled by the policy.
-
#parse_scope ⇒ void
included
from Scopable
private
Call this during initialization of objects that have a scope and the scope instance will be created from @init_data.
-
#printer_ids ⇒ Array
The id’s of the printers handled by the policy.
-
#printer_names ⇒ Array
The names of the printers handled by the policy.
-
#run_command ⇒ String
(also: #command_to_run)
The unix shell command to run on ths client.
-
#run_command=(command) ⇒ void
Set the unix shell command to be run on the client.
-
#script_ids ⇒ Array
The id’s of the scripts handled by the policy.
-
#script_names ⇒ Array
The names of the scripts handled by the policy.
-
#search_by_path ⇒ Pathname
The path to search for.
-
#search_for_process ⇒ String
The process name to search for on the client.
-
#self_service? ⇒ Boolean
Is this policy available in SelfService?.
-
#set_search_by_path(path, delete = false) ⇒ void
Set the path to search for, a String or Pathname, and whether or not to delete it if found.
-
#set_search_for_process(process, kill = false) ⇒ void
Set the process name to search for, and if it should be killed if found.
-
#set_trigger_event(type, new_val) ⇒ void
Change a trigger event.
-
#should_update ⇒ void
included
from Scopable
When the scope changes, it calls this to tell us that an update is needed.
-
#spotlight_search ⇒ String
The term to search for using spotlight.
-
#spotlight_search=(term) ⇒ void
Set the term to seach for using spotlight.
-
#update ⇒ Object
included
from Scopable
A wrapper around the update method, to try catching RestClient::Conflict 409 errors when we couldn’t verify all ldap users/groups due to lack of ldap connections.
-
#update_locate_database=(tf) ⇒ void
Set whether or not to update the database used by the locate command.
-
#update_locate_database? ⇒ Boolean
Should we update the database used by the locate command?.
-
#upload(type, local_file) ⇒ String
included
from Uploadable
Upload a file to the JSS via the REST Resource of the object to which this module is mixed in.
Constructor Details
#initialize(args = {}) ⇒ Policy
Returns a new instance of Policy.
512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 |
# File 'lib/jss-api/api_object/policy.rb', line 512 def initialize(args = {}) super gen = @init_data[:general] @category = JSS::APIObject.get_name(gen[:category]) @frequency = gen[:frequency] @target_drive = gen[:target_drive] @offline = gen[:offline] @enabled = gen[:enabled] @site = JSS::APIObject.get_name(gen[:site][:name]) @override_default_settings = gen[:override_default_settings] @trigger = gen[:trigger ] @trigger_events = { :trigger_startup => gen[:trigger_startup ], :trigger_login => gen[:trigger_login ], :trigger_logout => gen[:trigger_logout ], :trigger_checkin => gen[:trigger_checkin ], :trigger_network_state_changed => gen[:trigger_network_state_changed ], :trigger_enrollment_complete => gen[:trigger_enrollment_complete ], :trigger_other => gen[:trigger_other ] } dtl = gen[:date_time_limitations] @server_side_limitations = { :activation => JSS.epoch_to_time(dtl[:activation_date_epoch]), :expiration => JSS.epoch_to_time(dtl[:expiration_date_epoch]) } @client_side_limitations = { :no_execute_on => dtl[:no_execute_on], # NOTE- there's a bug in the JSON output, it's been reported to JAMF. :no_execute_start => dtl[:no_execute_start], # String like "1:01 AM" :no_execute_end => dtl[:no_execute_end], # String like "2:02 PM" :network_requirements => gen[:network_requirements] } maint = @init_data[:maintenance] @verify_startup_disk = maint[:verify] = maint[:permissions] @recon = maint[:recon] @fix_byhost = maint[:byhost] @reset_name = maint[:reset_name] @flush_system_cache = maint[:system_cache] @install_cached_pkgs = maint[:install_all_cached_packages] @flush_user_cache = maint[:user_cache] amaint = @init_data[:account_maintenance] @directory_bindings = amaint[:directory_bindings] @open_firmware_efi_password = amaint[:open_firmware_efi_password] @management_account = amaint[:management_account] @accounts = amaint[:accounts] @packages = @init_data[:package_configuration][:packages] ? @init_data[:package_configuration][:packages] : [] @scripts = @init_data[:scripts] @self_service = @init_data[:self_service] uint = @init_data[:user_interaction] @user_may_defer = uint[:allow_users_to_defer] @user_may_defer_until = JSS.parse_datetime uint[:allow_deferral_until_utc] = uint[:message_start] = uint[:message_finish] = @init_data[:reboot] @files_processes = @init_data[:files_processes] @dock_items = @init_data[:dock_items] @disk_encryption = @init_data[:disk_encryption] @printers = @init_data[:printers] parse_scope end |
Instance Attribute Details
#accounts ⇒ Array<Hash> (readonly)
Local accts acted-upon by this policy
Keys are:
-
:action => “Create”,
-
:hint => “foo bar”,
-
:picture => “/path/to/pic.tif”,
-
:admin => true,
-
:home => “/Users/chrisltest”,
-
:realname => “ChrisTest Lasell”,
-
:filevault_enabled => true,
-
:username => “chrisltest”,
-
:password_md5 => “3858f62230ac3c915f300c664312c63f”,
-
: password => “foobar”,
-
:password_sha256=> “c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2”
383 384 385 |
# File 'lib/jss-api/api_object/policy.rb', line 383 def accounts @accounts end |
#category ⇒ String
Returns policy category name.
199 200 201 |
# File 'lib/jss-api/api_object/policy.rb', line 199 def category @category end |
#client_side_limitations ⇒ Hash (readonly)
The client-side limitations of this policy.
The keys are:
-
:no_execute_on - An array of short day names as strings, e.g. [“Sun”, “Mon”, “Tue”]
-
:no_execute_start - Time
-
:no_execute_end - Time
-
:network_connection - String
The data for the first three comes from the API in the date_time_limitations hash of the general section. The fourth comes from the network_requirements of the general section of the API, but the UI shows them in the Client Side Limitations area.
This attribute is just for convience and consistency, and just refers to the data in their API locations
277 278 279 |
# File 'lib/jss-api/api_object/policy.rb', line 277 def client_side_limitations @client_side_limitations end |
#directory_bindings ⇒ Array<Hash> (readonly)
The directory bindings applied
each hash is like: {:name => “LDAP”, :id => 4}
347 348 349 |
# File 'lib/jss-api/api_object/policy.rb', line 347 def directory_bindings @directory_bindings end |
#disk_encryption ⇒ Hash (readonly)
Disk encryption options for this policy
The hash looks like {:disk_encryption_configuration_id => 3, :action => “apply”}
496 497 498 |
# File 'lib/jss-api/api_object/policy.rb', line 496 def disk_encryption @disk_encryption end |
#dock_items ⇒ Array<Hash> (readonly)
The dock items handled by this policy
each item hash looks like: {:name => “Mail”, :id => 14, :action => “Add To Beginning”}
489 490 491 |
# File 'lib/jss-api/api_object/policy.rb', line 489 def dock_items @dock_items end |
#enabled ⇒ Boolean Also known as: enabled?
Returns is the policy enabled?.
211 212 213 |
# File 'lib/jss-api/api_object/policy.rb', line 211 def enabled @enabled end |
#fix_byhost ⇒ Boolean (readonly)
Returns client maintenance task.
322 323 324 |
# File 'lib/jss-api/api_object/policy.rb', line 322 def fix_byhost @fix_byhost end |
#flush_system_cache ⇒ Boolean (readonly)
Returns client maintenance task.
328 329 330 |
# File 'lib/jss-api/api_object/policy.rb', line 328 def flush_system_cache @flush_system_cache end |
#flush_user_cache ⇒ Boolean (readonly)
Returns client maintenance task.
334 335 336 |
# File 'lib/jss-api/api_object/policy.rb', line 334 def flush_user_cache @flush_user_cache end |
#frequency ⇒ String
Returns how often to run the policy on each computer.
202 203 204 |
# File 'lib/jss-api/api_object/policy.rb', line 202 def frequency @frequency end |
#install_cached_pkgs ⇒ Boolean (readonly)
Returns client maintenance task.
331 332 333 |
# File 'lib/jss-api/api_object/policy.rb', line 331 def install_cached_pkgs @install_cached_pkgs end |
#management_account ⇒ Hash (readonly)
The management accout changes applied by the policy
The keys are:
-
:action see MGMT_ACCOUNT_ACTIONS
-
:managed_password
-
:managed_password_md5
-
:managed_password_sha256
-
:managed_password_length # for random generating pws
364 365 366 |
# File 'lib/jss-api/api_object/policy.rb', line 364 def management_account @management_account end |
#need_to_update ⇒ Boolean (readonly) Originally defined in module Updatable
Returns do we have unsaved changes?.
#offline ⇒ Boolean
Returns should be policy be available offline.
208 209 210 |
# File 'lib/jss-api/api_object/policy.rb', line 208 def offline @offline end |
#open_firmware_efi_password ⇒ Hash (readonly)
Returns the open firmware mode and password.
351 352 353 |
# File 'lib/jss-api/api_object/policy.rb', line 351 def open_firmware_efi_password @open_firmware_efi_password end |
#override_default_settings ⇒ Hash (readonly)
Overrides for various defaults
The hash looks like: !{ :distribution_point => “”, :force_afp_smb => false, :netboot_server => “current”, :target_drive => “default”, :sus => “default”}
222 223 224 |
# File 'lib/jss-api/api_object/policy.rb', line 222 def override_default_settings @override_default_settings end |
#packages ⇒ Array<Hash> (readonly) Also known as: pkgs
The pkgs handled by this policy
Hash keys are:
-
:action => “Install”
-
:update_autorun => false,
-
:feu => false,
-
:name => “rbgem-json-1.6.5-4.pkg”,
-
:id => 1073
396 397 398 |
# File 'lib/jss-api/api_object/policy.rb', line 396 def packages @packages end |
#permissions_repair ⇒ Boolean (readonly)
Returns client maintenance task.
316 317 318 |
# File 'lib/jss-api/api_object/policy.rb', line 316 def end |
#printers ⇒ Array<Hash> (readonly)
The printers handled by this policy
Each Hash looks like: {:make_default => false, :name => “torlan”, :id => 3, :action => “install”}
503 504 505 |
# File 'lib/jss-api/api_object/policy.rb', line 503 def printers @printers end |
#reboot_options ⇒ Hash (readonly)
Reboot options for the policy
The hash keys are:
-
:user_logged_in => “Do not restart”,
-
:minutes_until_reboot => 5,
-
:message=> “This computer will restart in 5 minutes. Please save anything you are working on and log out by choosing Log Out from the bottom of the Apple menu.”,
-
:startup_disk => “Current Startup Disk”,
-
:specify_startup => “”,
-
:no_user_logged_in => “Do not restart”
466 467 468 |
# File 'lib/jss-api/api_object/policy.rb', line 466 def end |
#recon ⇒ Boolean (readonly)
Returns client maintenance task.
319 320 321 |
# File 'lib/jss-api/api_object/policy.rb', line 319 def recon @recon end |
#reset_name ⇒ Boolean (readonly)
Returns client maintenance task.
325 326 327 |
# File 'lib/jss-api/api_object/policy.rb', line 325 def reset_name @reset_name end |
#scope ⇒ Object Originally defined in module Scopable
Attribtues
#scripts ⇒ Array<Hash> (readonly)
The scripts run by this policy
Hash keys are:
-
:name => “chromegetter.sh”,
-
:parameter4 => “”,
-
:parameter5 => “”,
-
:parameter6 => “”,
-
:parameter7 => “”,
-
:parameter8 => “”,
-
:parameter9 => “”,
-
:parameter10 => “”,
-
:parameter11 => “”,
-
:id => 1428,
-
:priority => “After”
415 416 417 |
# File 'lib/jss-api/api_object/policy.rb', line 415 def scripts @scripts end |
#self_service ⇒ Hash (readonly)
Self-service-related data for this policy
The hash keys are:
-
:self_service_icon => {:uri => String,:id => Integer, :filename => String}
-
:use_for_self_service => true,
-
:install_button_text => “Install”,
-
:self_service_description => “Descriptive text”,
-
:force_users_to_view_description => false
Note: we’ll add a ruby-std convenience method below “self_service?”
which returns the :use_for_self_service key.
431 432 433 |
# File 'lib/jss-api/api_object/policy.rb', line 431 def self_service @self_service end |
#server_side_limitations ⇒ Hash (readonly)
The server-side limitations of this policy.
The keys are :activation and :expiration, both are Times.
the data comes from the API in the date_time_limitations hash of the general section, but the UI shows them in the Server Side Limitations area. This attribute is just for convience and consistency, and just refers to the data in their API locations
259 260 261 |
# File 'lib/jss-api/api_object/policy.rb', line 259 def server_side_limitations @server_side_limitations end |
#site ⇒ String (readonly)
Returns a string with the site name.
214 215 216 |
# File 'lib/jss-api/api_object/policy.rb', line 214 def site @site end |
#target_drive ⇒ String
Returns which drive should the policy target.
205 206 207 |
# File 'lib/jss-api/api_object/policy.rb', line 205 def target_drive @target_drive end |
#trigger ⇒ String (readonly)
Either EVENT or USER_INITIATED
If it’s EVENT, then one or more of the members @trigger_events must true.
284 285 286 |
# File 'lib/jss-api/api_object/policy.rb', line 284 def trigger @trigger end |
#trigger_events ⇒ Hash (readonly)
The triggers that cause this policy to execute on a client when the @trigger is “EVENT”
This is a hash with the following keys. Each comes from the API as a key in the :general hash, but they make more sense separated out like this.
-
:trigger_startup => Bool
-
:trigger_login => Bool
-
:trigger_logout => Bool
-
:trigger_checkin => Bool
-
:trigger_network_state_changed => Bool
-
:trigger_enrollment_complete => Bool
-
:trigger_other => the String that causes a custom trigger
To edit a value, call
set_trigger_event(type, new_val)
where type is one of the keys in TRIGGER_EVENTS and new val is the new value (usually boolean)
305 306 307 |
# File 'lib/jss-api/api_object/policy.rb', line 305 def trigger_events @trigger_events end |
#user_may_defer ⇒ Boolean (readonly)
Returns can the user defer the policy?.
443 444 445 |
# File 'lib/jss-api/api_object/policy.rb', line 443 def user_may_defer @user_may_defer end |
#user_may_defer_until ⇒ Time (readonly)
Returns when is the user no longer allowed to defer?.
446 447 448 |
# File 'lib/jss-api/api_object/policy.rb', line 446 def user_may_defer_until @user_may_defer_until end |
#user_message_finish ⇒ String (readonly)
Returns the message shown the user at policy end.
452 453 454 |
# File 'lib/jss-api/api_object/policy.rb', line 452 def end |
#user_message_start ⇒ String (readonly)
Returns the message shown the user at policy start.
449 450 451 |
# File 'lib/jss-api/api_object/policy.rb', line 449 def end |
#verify_startup_disk ⇒ Boolean (readonly)
Returns client maintenance task.
313 314 315 |
# File 'lib/jss-api/api_object/policy.rb', line 313 def verify_startup_disk @verify_startup_disk end |
Instance Method Details
#delete_file? ⇒ Boolean Also known as: delete_path?
Returns Should the searched-for path be deleted if found?.
757 |
# File 'lib/jss-api/api_object/policy.rb', line 757 def delete_file? ; @files_processes[:delete_file] ; end |
#directory_binding_ids ⇒ Array
Returns the id’s of the directory_bindings handled by the policy.
826 |
# File 'lib/jss-api/api_object/policy.rb', line 826 def directory_binding_ids; @directory_bindings.map{|p| p[:id]} ; end |
#directory_binding_names ⇒ Array
Returns the names of the directory_bindings handled by the policy.
829 |
# File 'lib/jss-api/api_object/policy.rb', line 829 def directory_binding_names; @directory_bindings.map{|p| p[:name]} ; end |
#dock_item_ids ⇒ Array
Returns the id’s of the dock_items handled by the policy.
832 |
# File 'lib/jss-api/api_object/policy.rb', line 832 def dock_item_ids; @dock_items.map{|p| p[:id]} ; end |
#dock_item_names ⇒ Array
Returns the names of the dock_items handled by the policy.
835 |
# File 'lib/jss-api/api_object/policy.rb', line 835 def dock_item_names; @dock_items.map{|p| p[:name]} ; end |
#kill_process? ⇒ Boolean
Returns Should the searched-for process be killed if found.
726 727 728 |
# File 'lib/jss-api/api_object/policy.rb', line 726 def kill_process? @files_processes[:kill_process] end |
#locate_file ⇒ String
Returns The term to seach for using the locate command.
799 |
# File 'lib/jss-api/api_object/policy.rb', line 799 def locate_file ; @files_processes[:locate_file] ; end |
#locate_file=(term) ⇒ void
This method returns an undefined value.
Set the term to seach for using the locate command
807 808 809 810 811 |
# File 'lib/jss-api/api_object/policy.rb', line 807 def locate_file= (term) raise JSS::InvalidDataError, "Term to locate must be a String" unless term.is_a? String @files_processes[:locate_file] = term @need_to_update = true end |
#name=(newname) ⇒ void Originally defined in module Updatable
This method returns an undefined value.
Change the name of this item Remember to #update to push changes to the server.
#package_ids ⇒ Array
Returns the id’s of the packages handled by the policy.
814 |
# File 'lib/jss-api/api_object/policy.rb', line 814 def package_ids; @packages.map{|p| p[:id]} ; end |
#package_names ⇒ Array
Returns the names of the packages handled by the policy.
817 |
# File 'lib/jss-api/api_object/policy.rb', line 817 def package_names; @packages.map{|p| p[:name]} ; end |
#parse_scope ⇒ void Originally defined in module Scopable
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Call this during initialization of objects that have a scope and the scope instance will be created from @init_data
#printer_ids ⇒ Array
Returns the id’s of the printers handled by the policy.
838 |
# File 'lib/jss-api/api_object/policy.rb', line 838 def printer_ids; @printers.map{|p| p[:id]} ; end |
#printer_names ⇒ Array
Returns the names of the printers handled by the policy.
841 |
# File 'lib/jss-api/api_object/policy.rb', line 841 def printer_names; @printers.map{|p| p[:name]} ; end |
#run_command ⇒ String Also known as: command_to_run
Returns The unix shell command to run on ths client.
684 |
# File 'lib/jss-api/api_object/policy.rb', line 684 def run_command ; @files_processes[:run_command] ; end |
#run_command=(command) ⇒ void
This method returns an undefined value.
Set the unix shell command to be run on the client
693 694 695 696 697 |
# File 'lib/jss-api/api_object/policy.rb', line 693 def run_command= (command) raise JSS::InvalidDataError, "Command to run must be a String" unless command.is_a? String @files_processes[:run_command] = command @need_to_update = true end |
#script_ids ⇒ Array
Returns the id’s of the scripts handled by the policy.
820 |
# File 'lib/jss-api/api_object/policy.rb', line 820 def script_ids; @scripts.map{|p| p[:id]} ; end |
#script_names ⇒ Array
Returns the names of the scripts handled by the policy.
823 |
# File 'lib/jss-api/api_object/policy.rb', line 823 def script_names; @scripts.map{|p| p[:name]} ; end |
#search_by_path ⇒ Pathname
Returns The path to search for.
752 |
# File 'lib/jss-api/api_object/policy.rb', line 752 def search_by_path ; Pathname.new @files_processes[:search_by_path] ; end |
#search_for_process ⇒ String
Returns The process name to search for on the client.
719 720 721 |
# File 'lib/jss-api/api_object/policy.rb', line 719 def search_for_process @files_processes[:search_for_process] end |
#self_service? ⇒ Boolean
Returns is this policy available in SelfService?.
844 |
# File 'lib/jss-api/api_object/policy.rb', line 844 def self_service?; @self_service[:use_for_self_service] ; end |
#set_search_by_path(path, delete = false) ⇒ void
This method returns an undefined value.
Set the path to search for, a String or Pathname, and whether or not to delete it if found.
Setter methods (which end with =) can’t easily take multiple arguments, so we instead name them “set_blah_blah” rather than “blah_blah=”
772 773 774 775 776 777 |
# File 'lib/jss-api/api_object/policy.rb', line 772 def set_search_by_path (path, delete = false) raise JSS::InvalidDataError, "Path to search for must be a String or a Pathname" unless path.is_a? String or path.is_a? Pathname @files_processes[:search_by_path] = path.to_s @files_processes[:delete_file] = delete ? true : false @need_to_update = true end |
#set_search_for_process(process, kill = false) ⇒ void
This method returns an undefined value.
Set the process name to search for, and if it should be killed if found.
Setter methods (which end with =) can’t easily take multiple arguments, so we instead name them “set_blah_blah” rather than “blah_blah=”
743 744 745 746 747 |
# File 'lib/jss-api/api_object/policy.rb', line 743 def set_search_for_process (process, kill = false) @files_processes[:search_for_process] = process.to_s @files_processes[:kill_process] = kill ? true : false @need_to_update = true end |
#set_trigger_event(type, new_val) ⇒ void
This method returns an undefined value.
Change a trigger event
670 671 672 673 674 675 676 677 678 679 |
# File 'lib/jss-api/api_object/policy.rb', line 670 def set_trigger_event (type, new_val) raise JSS::InvalidDataError, "Trigger type must be one of #{TRIGGER_EVENTS.keys.join(', ')}" unless TRIGGER_EVENTS.keys.include? type if type == :custom raise JSS::InvalidDataError, "Custom triggers must be Strings" unless new_val.kind_of? String else raise JSS::InvalidDataError, "Non-custom triggers must be true or false" unless JSS::TRUE_FALSE.include? new_val end @trigger_events[TRIGGER_EVENTS[type]] = new_val @need_to_update = true end |
#should_update ⇒ void Originally defined in module Scopable
This method returns an undefined value.
When the scope changes, it calls this to tell us that an update is needed.
#spotlight_search ⇒ String
Returns The term to search for using spotlight.
782 |
# File 'lib/jss-api/api_object/policy.rb', line 782 def spotlight_search ; @files_processes[:spotlight_search] ; end |
#spotlight_search=(term) ⇒ void
This method returns an undefined value.
Set the term to seach for using spotlight
790 791 792 793 794 |
# File 'lib/jss-api/api_object/policy.rb', line 790 def spotlight_search= (term) raise JSS::InvalidDataError, "Spotlight search term must be a String" unless term.is_a? String @files_processes[:spotlight_search] = term @need_to_update = true end |
#update ⇒ Object Originally defined in module Scopable
A wrapper around the update method, to try catching RestClient::Conflict 409 errors when we couldn’t verify all ldap users/groups due to lack of ldap connections
#update_locate_database=(tf) ⇒ void
This method returns an undefined value.
Set whether or not to update the database used by the locate command.
711 712 713 714 |
# File 'lib/jss-api/api_object/policy.rb', line 711 def update_locate_database= (tf) @files_processes[:update_locate_database] = tf ? true : false @need_to_update = true end |
#update_locate_database? ⇒ Boolean
Returns Should we update the database used by the locate command?.
702 |
# File 'lib/jss-api/api_object/policy.rb', line 702 def update_locate_database? ; @files_processes[:update_locate_database] ; end |
#upload(type, local_file) ⇒ String Originally defined in module Uploadable
Upload a file to the JSS via the REST Resource of the object to which this module is mixed in.