lib/kitchen/driver/cloudstack.rb in kitchen-cloudstack-0.21.0 vs lib/kitchen/driver/cloudstack.rb in kitchen-cloudstack-0.22.0

- old
+ new

@@ -19,10 +19,11 @@ require 'benchmark' require 'kitchen' require 'fog' require 'socket' require 'openssl' +require 'base64' module Kitchen module Driver # Cloudstack driver for Kitchen. # @@ -40,10 +41,11 @@ :cloudstack_api_key => config[:cloudstack_api_key], :cloudstack_secret_access_key => config[:cloudstack_secret_key], :cloudstack_host => cloudstack_uri.host, :cloudstack_port => cloudstack_uri.port, :cloudstack_path => cloudstack_uri.path, + :cloudstack_project_id => config[:cloudstack_project_id], :cloudstack_scheme => cloudstack_uri.scheme ) end def create_server @@ -55,10 +57,11 @@ options['networkids'] = config[:cloudstack_network_id] options['securitygroupids'] = config[:cloudstack_security_group_id] options['keypair'] = config[:cloudstack_ssh_keypair_name] options['diskofferingid'] = config[:cloudstack_diskoffering_id] options['name'] = config[:host_name] + options[:userdata] = convert_userdata(config[:cloudstack_userdata]) if config[:cloudstack_userdata] options = sanitize(options) options[:templateid] = config[:cloudstack_template_id] options[:serviceofferingid] = config[:cloudstack_serviceoffering_id] @@ -288,9 +291,17 @@ private def sanitize(options) options.reject { |k, v| v.nil? } + end + + def convert_userdata(user_data) + if user_data.match /^(?:[A-Za-z0-9+\/]{4}\n?)*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ + user_data + else + Base64.encode64(user_data) + end end end end end