class Chef::Knife::SakuraDiskCreate
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/sakura_disk_create.rb, line 44 def run validate! options = {} options['name'] = locate_config_value( :name ) options['plan'] = locate_config_value( :plan ) options['source_archive'] = locate_config_value( :source_archive ) if options['name'] == nil puts 'Error. Missing disk name (-n) option.' elsif options['plan'] == nil puts 'Error. Missing plan id (-p) option.' elsif options['source_archive'] == nil puts 'Error. Missing source_archive id (-s) option.' else volume = Fog::Volume.new( :provider => 'SakuraCloud', :sakuracloud_api_token => Chef::Config[:knife][:sakuracloud_api_token], :sakuracloud_api_token_secret => Chef::Config[:knife][:sakuracloud_api_token_secret], ) begin response = volume.disks.create( options ) if response.class == Fog::Volume::SakuraCloud::Disk puts "succeeded." else puts "failed." end rescue Exception body = Fog::JSON.decode( $!.response.body ) puts "#{body['status']}: #{body['error_msg']}" end end end