Class: Nexpose::ScheduledBackup
- Includes:
- JsonSerializer
- Defined in:
- lib/nexpose/scheduled_backup.rb
Overview
Configuration structure for scheduled backups.
Instance Attribute Summary collapse
-
#cancellation_window ⇒ Object
Number of minutes to wait for running scans to pause/complete before aborting the backup task.
-
#description ⇒ Object
The description of the backup.
-
#enabled ⇒ Object
Whether or not this schedule is enabled.
-
#pause_local_scans ⇒ Object
Whether the backup should pause all local scans or wait for local scans to complete.
-
#platform_independent ⇒ Object
Whether the backup will be platform independent or not.
-
#schedule_interval ⇒ Object
The repeat interval based upon type.
-
#schedule_start ⇒ Object
Starting time of the backup task (in unix epoch with milliseconds. Example: 1464956590000).
-
#schedule_type ⇒ Object
Valid schedule types: daily, hourly, monthly-date, monthly-day, weekly.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(start:, enabled: true, type:, interval:, platform_independent: true, description: nil, pause_local_scans: true, cancellation_window: 0) ⇒ ScheduledBackup
constructor
A new instance of ScheduledBackup.
- #save(nsc) ⇒ Object
- #to_h ⇒ Object
- #to_json ⇒ Object
Methods included from JsonSerializer
#deserialize, #serialize, #to_hash
Methods inherited from APIObject
Constructor Details
#initialize(start:, enabled: true, type:, interval:, platform_independent: true, description: nil, pause_local_scans: true, cancellation_window: 0) ⇒ ScheduledBackup
Returns a new instance of ScheduledBackup.
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/nexpose/scheduled_backup.rb', line 24 def initialize(start:, enabled: true, type:, interval:, platform_independent: true, description: nil, pause_local_scans: true, cancellation_window: 0) @schedule_start = start @enabled = enabled @schedule_type = type @schedule_interval = interval.to_i @platform_independent = platform_independent @description = description @pause_local_scans = pause_local_scans @cancellation_window = cancellation_window.to_i end |
Instance Attribute Details
#cancellation_window ⇒ Object
Number of minutes to wait for running scans to pause/complete before aborting the backup task. Defaults to 0 if not set
22 23 24 |
# File 'lib/nexpose/scheduled_backup.rb', line 22 def cancellation_window @cancellation_window end |
#description ⇒ Object
The description of the backup. Defaults to nil if not set
16 17 18 |
# File 'lib/nexpose/scheduled_backup.rb', line 16 def description @description end |
#enabled ⇒ Object
Whether or not this schedule is enabled. Defaults to true if not set
8 9 10 |
# File 'lib/nexpose/scheduled_backup.rb', line 8 def enabled @enabled end |
#pause_local_scans ⇒ Object
Whether the backup should pause all local scans or wait for local scans to complete. Defaults to true if not set
20 21 22 |
# File 'lib/nexpose/scheduled_backup.rb', line 20 def pause_local_scans @pause_local_scans end |
#platform_independent ⇒ Object
Whether the backup will be platform independent or not. Defaults to true if not set
18 19 20 |
# File 'lib/nexpose/scheduled_backup.rb', line 18 def platform_independent @platform_independent end |
#schedule_interval ⇒ Object
The repeat interval based upon type.
12 13 14 |
# File 'lib/nexpose/scheduled_backup.rb', line 12 def schedule_interval @schedule_interval end |
#schedule_start ⇒ Object
Starting time of the backup task (in unix epoch with milliseconds. Example: 1464956590000)
14 15 16 |
# File 'lib/nexpose/scheduled_backup.rb', line 14 def schedule_start @schedule_start end |
#schedule_type ⇒ Object
Valid schedule types: daily, hourly, monthly-date, monthly-day, weekly.
10 11 12 |
# File 'lib/nexpose/scheduled_backup.rb', line 10 def schedule_type @schedule_type end |
Class Method Details
.delete(nsc) ⇒ Object
81 82 83 |
# File 'lib/nexpose/scheduled_backup.rb', line 81 def self.delete(nsc) AJAX.delete(nsc, '/api/2.1/schedule_backup/', AJAX::CONTENT_TYPE::JSON) end |
.from_hash(hash) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/nexpose/scheduled_backup.rb', line 44 def self.from_hash(hash) repeat_backup_hash = hash[:repeat_type] backup = new(start: hash[:start_date], enabled: hash[:enabled], type: repeat_backup_hash[:type], interval: repeat_backup_hash[:interval], platform_independent: hash[:platform_independent], description: hash[:description], pause_local_scans: hash[:pause_local_scans], cancellation_window: hash[:cancellation_window]) backup end |
.load(nsc) ⇒ Object
74 75 76 77 78 79 |
# File 'lib/nexpose/scheduled_backup.rb', line 74 def self.load(nsc) uri = '/api/2.1/schedule_backup/' resp = AJAX.get(nsc, uri, AJAX::CONTENT_TYPE::JSON) hash = JSON.parse(resp, symbolize_names: true).first Nexpose::ScheduledBackup.from_hash(hash || []) end |
Instance Method Details
#save(nsc) ⇒ Object
39 40 41 42 |
# File 'lib/nexpose/scheduled_backup.rb', line 39 def save(nsc) params = to_json AJAX.post(nsc, '/api/2.1/schedule_backup/', params, AJAX::CONTENT_TYPE::JSON) end |
#to_h ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/nexpose/scheduled_backup.rb', line 57 def to_h backup_hash = { start_date: @schedule_start, enabled: @enabled, description: @description, platform_independent: @platform_independent, pause_local_scans: @pause_local_scans, cancellation_window: @cancellation_window } repeat_hash = { type: @schedule_type, interval: @schedule_interval } backup_hash[:repeat_type] = repeat_hash backup_hash end |
#to_json ⇒ Object
35 36 37 |
# File 'lib/nexpose/scheduled_backup.rb', line 35 def to_json JSON.generate(to_h) end |