vagrant-zones 0.0.1

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.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. data/.github/dependabot.yml +6 -0
  5. data/.github/workflows/codeql-analysis.yml +72 -0
  6. data/.github/workflows/lint-release-and-publish.yml +70 -0
  7. data/.github/workflows/ruby-lint.yml +35 -0
  8. data/.gitignore +35 -0
  9. data/.rspec +2 -0
  10. data/.rubocop.yml +143 -0
  11. data/CHANGELOG.md +0 -0
  12. data/CODE_OF_CONDUCT.md +128 -0
  13. data/CONTRIBUTING.md +96 -0
  14. data/Gemfile +14 -0
  15. data/LICENSE +651 -0
  16. data/PULL_REQUEST_TEMPLATE.md +39 -0
  17. data/README.md +81 -0
  18. data/RELEASE.md +15 -0
  19. data/Rakefile +32 -0
  20. data/SECURITY.md +19 -0
  21. data/docs/CNAME +1 -0
  22. data/docs/_config.yml +1 -0
  23. data/docs/css/main.css +55 -0
  24. data/docs/css/styles.css +8678 -0
  25. data/docs/index.html +127 -0
  26. data/lib/vagrant-zones/action/create.rb +29 -0
  27. data/lib/vagrant-zones/action/destroy.rb +27 -0
  28. data/lib/vagrant-zones/action/halt.rb +24 -0
  29. data/lib/vagrant-zones/action/import.rb +112 -0
  30. data/lib/vagrant-zones/action/is_created.rb +22 -0
  31. data/lib/vagrant-zones/action/network.rb +26 -0
  32. data/lib/vagrant-zones/action/not_created.rb +20 -0
  33. data/lib/vagrant-zones/action/package.rb +134 -0
  34. data/lib/vagrant-zones/action/prepare_nfs_valid_ids.rb +24 -0
  35. data/lib/vagrant-zones/action/restart.rb +53 -0
  36. data/lib/vagrant-zones/action/setup.rb +26 -0
  37. data/lib/vagrant-zones/action/shutdown.rb +47 -0
  38. data/lib/vagrant-zones/action/start.rb +25 -0
  39. data/lib/vagrant-zones/action/wait_till_boot.rb +59 -0
  40. data/lib/vagrant-zones/action/wait_till_up.rb +65 -0
  41. data/lib/vagrant-zones/action.rb +204 -0
  42. data/lib/vagrant-zones/command/configure_snapshots.rb +49 -0
  43. data/lib/vagrant-zones/command/console.rb +63 -0
  44. data/lib/vagrant-zones/command/create_snapshots.rb +46 -0
  45. data/lib/vagrant-zones/command/delete_snapshots.rb +38 -0
  46. data/lib/vagrant-zones/command/guest_power_controls.rb +58 -0
  47. data/lib/vagrant-zones/command/list_snapshots.rb +44 -0
  48. data/lib/vagrant-zones/command/restart_guest.rb +29 -0
  49. data/lib/vagrant-zones/command/shutdown_guest.rb +29 -0
  50. data/lib/vagrant-zones/command/vnc_console.rb +48 -0
  51. data/lib/vagrant-zones/command/webvnc_console.rb +49 -0
  52. data/lib/vagrant-zones/command/zfssnapshot.rb +67 -0
  53. data/lib/vagrant-zones/command/zlogin_console.rb +40 -0
  54. data/lib/vagrant-zones/command/zone.rb +73 -0
  55. data/lib/vagrant-zones/config.rb +78 -0
  56. data/lib/vagrant-zones/driver.rb +1710 -0
  57. data/lib/vagrant-zones/errors.rb +61 -0
  58. data/lib/vagrant-zones/executor.rb +38 -0
  59. data/lib/vagrant-zones/plugin.rb +79 -0
  60. data/lib/vagrant-zones/provider.rb +83 -0
  61. data/lib/vagrant-zones/util/subprocess.rb +31 -0
  62. data/lib/vagrant-zones/util/timer.rb +19 -0
  63. data/lib/vagrant-zones/version.rb +7 -0
  64. data/lib/vagrant-zones.rb +29 -0
  65. data/locales/en.yml +326 -0
  66. data/vagrant-zones.gemspec +51 -0
  67. metadata +412 -0
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'vagrant'
4
+
5
+ module VagrantPlugins
6
+ module ProviderZone
7
+ module Errors
8
+ class VagrantZonesError < Vagrant::Errors::VagrantError
9
+ error_namespace('vagrant_zones.errors')
10
+ end
11
+
12
+ class SystemVersionIsTooLow < VagrantZonesError
13
+ error_key(:system_version_too_low)
14
+ end
15
+
16
+ class MissingCompatCheckTool < VagrantZonesError
17
+ error_key(:missing_compatability_check_tool)
18
+ end
19
+
20
+ class MissingBhyve < VagrantZonesError
21
+ error_key(:missing_bhyve)
22
+ end
23
+
24
+ class HasNoRootPrivilege < VagrantZonesError
25
+ error_key(:has_no_root_privilege)
26
+ end
27
+
28
+ class ExecuteError < VagrantZonesError
29
+ error_key(:execute_error)
30
+ end
31
+
32
+ class TimeoutError < VagrantZonesError
33
+ error_key(:timeout_error)
34
+ end
35
+
36
+ class VirtualBoxRunningConflictDetected < VagrantZonesError
37
+ error_key(:virtual_box_running_conflict_detected)
38
+ end
39
+
40
+ class NotYetImplemented < VagrantZonesError
41
+ error_key(:not_yet_implemented)
42
+ end
43
+
44
+ class TimeoutHalt < VagrantZonesError
45
+ error_key(:halt_timeout)
46
+ end
47
+
48
+ class InvalidbhyveBrand < VagrantZonesError
49
+ error_key(:invalidbhyve_brand)
50
+ end
51
+
52
+ class InvalidLXBrand < VagrantZonesError
53
+ error_key(:invalidLX_brand)
54
+ end
55
+
56
+ class ConsoleFailed < VagrantZonesError
57
+ error_key(:console_failed_exit)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'vagrant/util/busy'
4
+ require 'vagrant/util/subprocess'
5
+
6
+ module VagrantPlugins
7
+ module ProviderZone
8
+ module Executor
9
+ # This class is used to execute commands as subprocess.
10
+ class Exec
11
+ # When we need the command's exit code we should set parameter
12
+ # exit_code to true, otherwise this method will return executed
13
+ # command's stdout
14
+ def execute(exit_code, *cmd, **_opts, &block)
15
+ # Append in the options for subprocess
16
+ cmd << { notify: %i[stdout stderr] }
17
+
18
+ cmd.unshift('sh', '-c')
19
+ interrupted = false
20
+ # Lambda to change interrupted to true
21
+ int_callback = -> { interrupted = true }
22
+ result = ::Vagrant::Util::Busy.busy(int_callback) do
23
+ ::Vagrant::Util::Subprocess.execute(*cmd, &block)
24
+ end
25
+ return result.exit_code if exit_code
26
+
27
+ result.stderr.gsub!("\r\n", "\n")
28
+ result.stdout.gsub!("\r\n", "\n")
29
+ puts "Command Failed: #{cmd}" if result.exit_code != 0 || interrupted
30
+ puts "Exit Results: #{result.stderr}" if result.exit_code != 0 || interrupted
31
+ raise Errors::ExecuteError if result.exit_code != 0 || interrupted
32
+
33
+ result.stdout[0..-2]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require 'vagrant'
5
+ rescue LoadError
6
+ raise 'The Vagrant Zones plugin must be run within Vagrant.'
7
+ end
8
+
9
+ module VagrantPlugins
10
+ module ProviderZone
11
+ # This is a the plugin droping for the Vagrant-zones vagrant plugin
12
+ class Plugin < Vagrant.plugin('2')
13
+ name 'zone'
14
+ description <<-DESC
15
+ This plugin allows vagrant to manage bhyve, lx-branded zones or native zones on
16
+ OmniOSce or any other illumos based distribution
17
+ DESC
18
+
19
+ config(:zone, :provider) do
20
+ require_relative 'config'
21
+ Config
22
+ end
23
+ ## Experimental Parallel Execucution
24
+ ## provider(:zone, parallel: true) do
25
+ provider(:zone) do
26
+ require_relative 'provider'
27
+ Provider
28
+ end
29
+
30
+ # This initializes the internationalization strings.
31
+ def self.setup_i18n
32
+ I18n.load_path << File.expand_path('locales/en.yml', ProviderZone.source_root)
33
+ I18n.reload!
34
+ end
35
+
36
+ # This sets up our log level to be whatever VAGRANT_LOG is.
37
+ def self.setup_logging
38
+ require 'log4r'
39
+
40
+ level = nil
41
+ begin
42
+ level = Log4r.const_get(ENV['VAGRANT_LOG'].upcase)
43
+ rescue NameError
44
+ # This means that the logging constant wasn't found,
45
+ # which is fine. We just keep `level` as `nil`. But
46
+ # we tell the user.
47
+ level = nil
48
+ end
49
+
50
+ # Some constants, such as "true" resolve to booleans, so the
51
+ # above error checking doesn't catch it. This will check to make
52
+ # sure that the log level is an integer, as Log4r requires.
53
+ level = nil unless level.is_a?(Integer)
54
+
55
+ # Set the logging level on all "vagrant" namespaced
56
+ # logs as long as we have a valid level.
57
+
58
+ return unless level
59
+
60
+ logger = Log4r::Logger.new('vagrant_zones')
61
+ logger.outputters = Log4r::Outputter.stderr
62
+ logger.level = level
63
+ logger
64
+ end
65
+
66
+ # Setup logging and i18n before any autoloading loads other classes
67
+ # with logging configured as this prevents inheritance of the log level
68
+ # from the parent logger.
69
+ setup_logging
70
+ setup_i18n
71
+
72
+ ## This setups the zone commands master
73
+ command('zone') do
74
+ require_relative 'command/zone'
75
+ Command::Zone
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'vagrant'
4
+ require 'log4r'
5
+
6
+ module VagrantPlugins
7
+ # This is a module to assist in managing, creating bhyve, kvm, and lx zones
8
+ module ProviderZone
9
+ autoload :Driver, 'vagrant-zones/driver'
10
+ # This is a module to assist in managing, creating bhyve, kvm, and lx zones
11
+ class Provider < Vagrant.plugin('2', :provider)
12
+ def initialize(machine)
13
+ @logger = Log4r::Logger.new('vagrant::provider::zone')
14
+ @machine = machine
15
+ super(machine)
16
+ end
17
+
18
+ def driver
19
+ return @driver if @driver
20
+
21
+ @driver = Driver.new(@machine)
22
+ end
23
+
24
+ def ssh_info
25
+ # We just return nil if were not able to identify the VM's IP and
26
+ # let Vagrant core deal with it like docker provider does
27
+ return nil if state.id != :running
28
+ return nil unless driver.get_ip_address('ssh_info')
29
+
30
+ passwordauth = 'passwordauth'
31
+ ssh_info = {
32
+ host: driver.get_ip_address('ssh_info'),
33
+ port: driver.sshport(@machine).to_s,
34
+ password: driver.vagrantuserpass(@machine).to_s,
35
+ username: driver.user(@machine),
36
+ private_key_path: driver.userprivatekeypath(@machine).to_s,
37
+ PasswordAuthentication: passwordauth
38
+ }
39
+ return ssh_info unless ssh_info.nil?
40
+ end
41
+
42
+ # This should return an action callable for the given name.
43
+ # @param [Symbol] name Name of the action.
44
+ # @return [Object] A callable action sequence object, whether it
45
+ # is a proc, object, etc.
46
+ def action(name)
47
+ # Attempt to get the action method from the Action class if it
48
+ # exists, otherwise return nil to show that we don't support the
49
+ # given action
50
+ action_method = "action_#{name}"
51
+ return Action.send(action_method) if Action.respond_to?(action_method)
52
+
53
+ nil
54
+ end
55
+
56
+ # This method is called if the underying machine ID changes. Providers
57
+ # can use this method to load in new data for the actual backing
58
+ # machine or to realize that the machine is now gone (the ID can
59
+ # become `nil`). No parameters are given, since the underlying machine
60
+ # is simply the machine instance given to this object. And no
61
+ # return value is necessary.
62
+ def machine_id_changed
63
+ nil
64
+ end
65
+
66
+ def state
67
+ state_id = nil
68
+ state_id = :not_created unless @machine.id
69
+ state_id = driver.state(@machine) if @machine.id && !state_id
70
+ # This is a special pseudo-state so that we don't set the
71
+ # NOT_CREATED_ID while we're setting up the machine. This avoids
72
+ # clearing the data dir.
73
+ state_id = :preparing if @machine.id == 'preparing'
74
+ # Get the short and long description
75
+ short = state_id.to_s.tr('_', ' ')
76
+ # If we're not created, then specify the special ID flag
77
+ state_id = Vagrant::MachineState::NOT_CREATED_ID if state_id == :not_created
78
+ # Return the MachineState object
79
+ Vagrant::MachineState.new(state_id, short, short)
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'open3'
4
+ require 'log4r'
5
+ module VagrantPlugins
6
+ module ProviderZone
7
+ module Util
8
+ # This shiny device polishes bared foos
9
+ class Subprocess
10
+ def initialize(cmd, &_block)
11
+ Open3.popen3(cmd) do |_stdin, stdout, stderr, thread|
12
+ # read each stream from a new thread
13
+ { :out => stdout, :err => stderr }.each do |key, stream|
14
+ Thread.new do
15
+ until (line = stream.gets).nil?
16
+ # yield the block depending on the stream
17
+ if key == :out
18
+ yield line, nil, thread if block_given?
19
+ elsif block_given?
20
+ yield nil, line, thread
21
+ end
22
+ end
23
+ end
24
+ end
25
+ thread.join # don't exit until the external process is done
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VagrantPlugins
4
+ module ProviderZone
5
+ module Util
6
+ # This is a utlity to time commands and scripts
7
+ class Timer
8
+ # A basic utility method that times the execution of the given
9
+ # block and returns it.
10
+ def self.time
11
+ start_time = Time.now.to_f
12
+ yield
13
+ end_time = Time.now.to_f
14
+ end_time - start_time
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VagrantPlugins
4
+ module ProviderZone
5
+ VERSION = '0.0.1'
6
+ end
7
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+
5
+ module VagrantPlugins
6
+ # This is used to configure, manage, create and destroy zones where vagrant by itself cannot
7
+ module ProviderZone
8
+ lib_path = Pathname.new(File.expand_path('vagrant-zones', __dir__))
9
+ autoload :Action, lib_path.join('action')
10
+ autoload :Executor, lib_path.join('executor')
11
+ autoload :Driver, lib_path.join('driver')
12
+ autoload :Errors, lib_path.join('errors')
13
+ # This function returns the path to the source of this plugin
14
+ # @return [Pathname]
15
+ def self.source_root
16
+ @source_root ||= Pathname.new(File.expand_path('..', __dir__))
17
+ end
18
+ end
19
+ end
20
+
21
+ begin
22
+ require 'vagrant'
23
+ rescue LoadError
24
+ raise 'The Vagrant vagrant-zones plugin must be run within Vagrant.'
25
+ end
26
+
27
+ raise 'The Vagrant vagrant-zones plugin is only compatible with Vagrant 2+.' if Vagrant::VERSION < '2'
28
+
29
+ require 'vagrant-zones/plugin'
data/locales/en.yml ADDED
@@ -0,0 +1,326 @@
1
+ en:
2
+ vagrant_zones:
3
+ states:
4
+ not_created: |-
5
+ Your instance of this box haven't been created
6
+ is_running: |-
7
+ Your instance has already be booted
8
+ errors:
9
+ not_yet_implemented: |-
10
+ Your configuration is not yet implemented
11
+ halt_timeout: |-
12
+ Zone failed to halt in alloted time after waiting for
13
+ invalidLX_brand: |-
14
+ Invalid LX brand configuration detected
15
+ invalidbhyve_brand: |-
16
+ Invalid bhyve configuration detected
17
+ console_failed: |-
18
+ Failed to access console
19
+ console_failed_exit: |-
20
+ Exiting
21
+ execute_error: |-
22
+ Failed when execute commands
23
+ timeout_error: |-
24
+ Timeout exceeded
25
+ system_version_too_low: |-
26
+ Please update to OmniOS r38 or higher
27
+ missing_compatability_check_tool: |-
28
+ Please install the Bhyve compatability tool from: https://omnios.org/info/bhyve
29
+ missing_bhyve: |-
30
+ Your system appears to be missing bhyve
31
+ virtual_box_running_conflict_detected: |-
32
+ Virtualbox Box appears to be running virtual machines, to continue, please shut these down!
33
+ meeting: |-
34
+ Beggining the zone creation sequence
35
+ leaving: |-
36
+ Beggining the zone destruction sequence
37
+ halting_zone: |-
38
+ Halting the zone
39
+ destroy_zone: |-
40
+ Starting zone destruction
41
+ graceful_shutdown_failed: |-
42
+ Zone failed to shutdown in alloted time ==>
43
+ graceful_shutdown: |-
44
+ Asking hypervisor to gracefully stop the zone
45
+ creating_vnic: |-
46
+ - Creating VNIC:
47
+ configure_interface_using_vnic: |-
48
+ - Configuring the interface in the zone for VNIC using netplan:
49
+ configure_win_interface_using_vnic: |-
50
+ - Waiting 60 seconds then configuring the Windows network interface in the zone:
51
+ configure_interface_using_vnic_dladm: |-
52
+ - Configuring the interface in the zone for VNIC using dladm:
53
+ os_detect: |-
54
+ - Detecting Operating System to configure networking:
55
+ ansible_detect: |-
56
+ - Detecting if Ansible is installed:
57
+ vnic_setup: |-
58
+ - Setting up VNIC:
59
+ networking_int_remove: |-
60
+ Removing network devices:
61
+ networking_int_add: |-
62
+ - Adding network devices:
63
+ removing_vnic: |-
64
+ - Deleting zone VNIC:
65
+ no_removing_vnic: |-
66
+ - No zone VNIC to remove
67
+ removing_host_vnic: |-
68
+ - Deleting host VNIC:
69
+ no_removing_host_vnic: |-
70
+ - No host VNIC to remove
71
+ network_setup: |-
72
+ Preparing zone OS networking interfaces:
73
+ delete_disks: |-
74
+ Removing associated disks:
75
+ zonelogincmd: |-
76
+ Running command with zLogin
77
+ user: |-
78
+ Filtering the user Vagrant will use
79
+ installing_zone: |-
80
+ Installing zone as brand:
81
+ netplan_remove: |-
82
+ - Removing stale netplan configurations
83
+ netplan_set: |-
84
+ - Generate fresh netplan configurations
85
+ dladm_applied: |-
86
+ - dladm and ipadm configurations Applied
87
+ dladm_route_applied: |-
88
+ - Route has been applied
89
+ dladm_dns_applied: |-
90
+ - DNS has been applied
91
+ netplan_applied: |-
92
+ - New Netplan configurations Applied
93
+ netplan_applied_dhcp: |-
94
+ - Set DHCP Netplan configurations
95
+ stale_netplan_removed: |-
96
+ - Stale Netplan configurations removed
97
+ netplan_applied_static: |-
98
+ - Set static Netplan configurations:
99
+
100
+ console_failednetplan: |-
101
+ Netplan configurations failed
102
+ lx_zone_dataset: |-
103
+ - Creating zoned ZFS dataset for LX zone:
104
+ bhyve_zone_dataset_root: |-
105
+ - ZFS root dataset:
106
+ begin_create_datasets: |-
107
+ Creating ZFS datasets and volumes:
108
+ bhyve_zone_dataset_boot: |-
109
+ - ZFS boot volume:
110
+ setting_cd_rom_configurations: |-
111
+ - Setting CDROM Configurations:
112
+ setting_additional_disks_configurations: |-
113
+ - Setting additional disk Configurations:
114
+ bhyve_zone_dataset_additional_volume: |-
115
+ - Additional ZFS volume:
116
+ bhyve_zone_dataset_additional_volume_destroy: |-
117
+ - Additional ZFS volume:
118
+ addtl_volume_destroy_root: |-
119
+ - ZFS root dataset for additional ZFS volume:
120
+ bhyve_zone_dataset_additional_volume_root: |-
121
+ - ZFS root dataset for additional ZFS volume:
122
+ destroy_root_dataset: |-
123
+ - ZFS root dataset:
124
+ destroy_dataset: |-
125
+ - ZFS Boot volume dataset:
126
+ lx_zone_config_gen: |-
127
+ Generating configuration for LX zone
128
+ bhyve_zone_config_gen: |-
129
+ Generating zone configuration:
130
+ bhyve_zone_config_remove: |-
131
+ Removing zonecfg configuration
132
+ bhyve_zone_config_uninstall: |-
133
+ Uninstalling the zone
134
+ preflight_checks: |-
135
+ Running Preflight checks:
136
+ vbox_run_check: |-
137
+ - Checking if VirtualBox is loaded as it may conflict with bhyve
138
+ lx_check: |-
139
+ Minimal checks performed for LX Branded zones on the host OS, please use with caution!
140
+ bhyve_check: |-
141
+ - Checking OmniOS release against version:
142
+ bhyve_compat_check: |-
143
+ - Checking bhyve installation environment
144
+ wait_for_boot: |-
145
+ Waiting for the zone to boot
146
+ sshport: |-
147
+ Filtering the SSH port that Vagrant will use
148
+ vagrantuserpass: |-
149
+ Filtering the Vagrant user Password
150
+ firmware: |-
151
+ Filtering the firmware that bhyve will use
152
+ inserting_ssh_key: |-
153
+ Inserting SSH key
154
+ booted_check_terminal_access: |-
155
+ Zone booted, checking for login access/prompt over Serial:
156
+ terminal_access_auto_login: |-
157
+ Could not login as root, will attempt to auto-login with supplied credentials:
158
+ detecting_box: |-
159
+ Detecting image
160
+ importing_vagrant_key: |-
161
+ Importing Vagrant key from Cloud:
162
+ datadir: |-
163
+ Vagrant datadir:
164
+ zfs_snapshot_stream_detected: |-
165
+ ZFS Snapshot Stream detected ==>
166
+ joyent_image_uuid_detected: |-
167
+ Joyent UUID detected ==>
168
+ vagrant_cloud_box_detected: |-
169
+ - Vagrant Cloud Box detected:
170
+ ssh_ready: |-
171
+ SSH appears to be ready
172
+ boot_ready: |-
173
+ The zone has booted
174
+ dhcp_boot_ready: |-
175
+ The zone is configured with NAT and booted
176
+ root_dataset_nil: |-
177
+ - No root dataset to remove
178
+ boot_dataset_nil: |-
179
+ - No boot volumes to remove
180
+ additional_dataset_nil: |-
181
+ - No additional volumes to remove
182
+ starting_zone: |-
183
+ Starting the zone
184
+ joyent_image_uuid_verified: |-
185
+ Joyent image UUID has been verified ==>
186
+ lx_zone_dataset: |-
187
+ LX zone dataset ==>
188
+ setting_dns_server: |-
189
+ Setting nameserver ==>
190
+ detected_ovf_format: |-
191
+ Detected OVF
192
+ importing_box_image: |-
193
+ - Importing Box image ==>
194
+ importing_box_image_to_disk: |-
195
+ - Importing Box template to disk ==>
196
+ template_import_path: |-
197
+ - Template path:
198
+ importing_joyent_image: |-
199
+ - Importing Joyent image ==>
200
+ graceful_restart: |-
201
+ Zone gracefully restarting
202
+ graceful_shutdown_started: |-
203
+ Zone gracefully shutting down
204
+ graceful_shutdown_complete: |-
205
+ Graceful shutdown complete
206
+ zone_gracefully_restarted: |-
207
+ Graceful restart complete
208
+ zone_gracefully_stopped_waiting_for_boot: |-
209
+ Zone gracefully shutdown, now waiting for boot
210
+ console: |-
211
+ Starting console:
212
+ setting_console_access: |-
213
+ - Setting console access port:
214
+ zfs_snapshot_cron: |-
215
+ Listing configured cron jobs
216
+ zfs_snapshot_create: |-
217
+ Creating ZFS snapshot(s):
218
+ setting_cloud_dnsdomain: |-
219
+ - Setting cloud-init DNS domain:
220
+ setting_cloud_password: |-
221
+ - Setting cloud-init password:
222
+ setting_cloud_resolvers: |-
223
+ - Setting cloud-init Resolvers:
224
+ setting_cloud_ssh_key: |-
225
+ - Setting cloud-init SSH key:
226
+ setting_cloud_init_access: |-
227
+ - Enabling cloud-init:
228
+ control_no_cmd: |-
229
+ No control command specified
230
+ ssh_run_command: |-
231
+ Running Command over SSH:
232
+ vtype: |-
233
+ Filtering zone type
234
+ nsservers: |-
235
+ Sanitizing Name Servers:
236
+ mac: |-
237
+ Sanitizing MAC address:
238
+ ipaddress: |-
239
+ Sanitizing IP address:
240
+ allowedaddress: |-
241
+ Sanitizing Allowed IP address:
242
+ vnic_name: |-
243
+ Sanitizing the VNIC name:
244
+ get_ip_address: |-
245
+ Gathering IP address
246
+ creating_etherstub: |-
247
+ - Creating etherstub for private network:
248
+ creating_etherhostvnic: |-
249
+ - Creating NAT VNIC for zone over etherstub:
250
+ creating_ethervnic: |-
251
+ - Creating VNIC for host over etherstub:
252
+ creating_networking_interfaces: |-
253
+ Creating networking interfaces for zone:
254
+ nat_vnic_setup: |-
255
+ - Setting up NAT VNIC:
256
+ forwarding_nat: |-
257
+ - Enabling NAT forwarding:
258
+ configuring_nat: |-
259
+ - Creating NAT entries:
260
+ deconfiguring_nat: |-
261
+ - Removing NAT configurations:
262
+ configuring_dhcp: |-
263
+ - Configuring DHCP
264
+ deconfiguring_dhcp: |-
265
+ - Removing DHCP configurations:
266
+ chk_dhcp_addr: |-
267
+ - Checking if zone has leased the address:
268
+ setting_alt_shared_disk_configurations: |-
269
+ Setting shared disk configurations
270
+ zonecfgcpu: |-
271
+ Setting the CPU for zone
272
+ pci: |-
273
+ Setting the PCI devices for zone
274
+ zfs_snapshot_list: |-
275
+ ZFS snapshots detected:
276
+ zfs_snapshot_destroy: |-
277
+ Destroying ZFS snapshots for zone:
278
+ cron_entries: |-
279
+ Listing cron entries for zone
280
+ cron_set: |-
281
+ Setting cron entries for zone
282
+ cron_delete: |-
283
+ Deleting cron entries for zone
284
+ control: |-
285
+ Running control command on zone:
286
+ delete_ethervnic: |-
287
+ - Deleting the etherstub:
288
+ no_delete_ethervnic: |-
289
+ - No etherstub to remove
290
+ automated-zlogin: |-
291
+ Automatic Login
292
+ automated-windows-zlogin: |-
293
+ Windows SAC Autologin
294
+ automated-zlogin-user: |-
295
+ - Entering username, Waiting a few seconds
296
+ automated-zlogin-pass: |-
297
+ - Entering password, Waiting a few seconds
298
+ automated-zbootunlock: |-
299
+ - Unlocking LUKS Keystore for the boot disk
300
+ automated-zlogin-root: |-
301
+ - Impersonatig root, Waiting a few seconds
302
+ windows_skip_first_boot: |-
303
+ - Skipping First EVENT for CMD due to Sysprep Reboot
304
+ windows_start_cmd: |-
305
+ - Starting CMD session
306
+ windows_access_session: |-
307
+ - Accessing Command Session
308
+ windows_access_session_presskey: |-
309
+ - Pressing Any Key enter Command Session
310
+ windows_enter_username: |-
311
+ - Entering Username
312
+ windows_enter_domain: |-
313
+ - Entering/Skipping Domain
314
+ windows_enter_password: |-
315
+ - Entering password
316
+ windows_cmd_accessible: |-
317
+ - CMD Accessible
318
+ win_applied_rename_adapter: |-
319
+ - Renamed Default Adapter
320
+ win_applied_static: |-
321
+ - Set Static Address
322
+ win_applied_dns1: |-
323
+ - Set Primary DNS
324
+ win_applied_dns2: |-
325
+ - Set Secondary DNS
326
+