Class: Kitchen::Driver::Oci
- Inherits:
-
Base
- Object
- Base
- Kitchen::Driver::Oci
- Includes:
- Mixin::Actions, Mixin::Models, Mixin::Volumes
- Defined in:
- lib/kitchen/driver/oci.rb,
lib/kitchen/driver/oci/api.rb,
lib/kitchen/driver/oci/config.rb,
lib/kitchen/driver/oci/instance.rb,
lib/kitchen/driver/oci/validations.rb,
lib/kitchen/driver/oci/blockstorage.rb,
lib/kitchen/driver/oci/mixin/models.rb,
lib/kitchen/driver/oci/models/dbaas.rb,
lib/kitchen/driver/oci/models/iscsi.rb,
lib/kitchen/driver/oci/mixin/actions.rb,
lib/kitchen/driver/oci/mixin/volumes.rb,
lib/kitchen/driver/oci/instance/dbaas.rb,
lib/kitchen/driver/oci/mixin/ssh_keys.rb,
lib/kitchen/driver/oci/models/compute.rb,
lib/kitchen/driver/oci/instance/common.rb,
lib/kitchen/driver/oci/instance/compute.rb,
lib/kitchen/driver/oci/instance/db_home.rb,
lib/kitchen/driver/oci/instance/database.rb,
lib/kitchen/driver/oci/models/paravirtual.rb
Overview
Oracle OCI driver for Kitchen.
Direct Known Subclasses
Defined Under Namespace
Modules: Mixin, Models Classes: Api, Blockstorage, Config, Instance
Class Method Summary collapse
-
.validation_error(message, driver) ⇒ Object
Execute the defined config validations.
Instance Method Summary collapse
-
#create(state) ⇒ Object
Creates an instance.
-
#destroy(state) ⇒ Object
Destorys an instance.
-
#finalize_config!(instance) ⇒ Object
Coerces config values to standardized formats.
Methods included from Mixin::Volumes
#create_and_attach_volumes, #create_volume, #detatch_and_delete_volumes, #process_volumes
Methods included from Mixin::Models
#instance_class, #volume_class
Methods included from Mixin::Actions
#are_legacy_imds_endpoints_disbled?, #auth, #execute_post_create_file, #execute_post_create_script, #execute_post_create_string, #instance_options, #instance_options?, #launch, #reboot, #terminate
Class Method Details
.validation_error(message, driver) ⇒ Object
Execute the defined config validations
28 29 30 |
# File 'lib/kitchen/driver/oci/validations.rb', line 28 def self.validation_error(, driver) raise UserError, "#{driver.class}<#{driver.instance.name}>#config#{}" end |
Instance Method Details
#create(state) ⇒ Object
Creates an instance. (see Kitchen::Driver::Base#create)
109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/kitchen/driver/oci.rb', line 109 def create(state) return if state[:server_id] validate_config! oci, api = auth(__method__) inst = instance_class(config, state, oci, api, __method__) launch(state, inst) create_and_attach_volumes(config, state, oci, api) execute_post_create_script(state) reboot(state, inst) end |
#destroy(state) ⇒ Object
Destorys an instance. (see Kitchen::Driver::Base#destroy)
125 126 127 128 129 130 131 132 |
# File 'lib/kitchen/driver/oci.rb', line 125 def destroy(state) return unless state[:server_id] oci, api = auth(__method__) inst = instance_class(config, state, oci, api, __method__) detatch_and_delete_volumes(state, oci, api) terminate(state, inst) end |
#finalize_config!(instance) ⇒ Object
Coerces config values to standardized formats.
35 36 37 38 39 40 |
# File 'lib/kitchen/driver/oci/validations.rb', line 35 def finalize_config!(instance) super %i{instance_type ssh_keytype}.each do |k| config[k] = config[k].downcase end end |