lib/conan/cloud/tasks.rb in conan-0.3.5 vs lib/conan/cloud/tasks.rb in conan-0.4.1

- old
+ new

@@ -1,16 +1,45 @@ require "fileutils" require "json" -require File.expand_path(File.join(File.dirname(__FILE__), 'aws/provision')) namespace :aws do task :provision do aws_config = JSON.parse(File.read("config/aws.json"))[stage] || {} - AWS::Provision.new(aws_config, stage).build_env + AWS::Provision.new(stage, aws_config, application).build_env end task :write_config do - AWS::Provision.new.describe_env_to_json("config/servers.json") + server_config = AWS::Provision.new.describe_env + File.open("config/servers.json", "w") do |io| + io << JSON.pretty_generate(server_config) + end end + + desc "Allows ssh to instance by name. cap ssh <NAME>" + task :ssh do + server = variables[:logger].instance_variable_get("@options")[:actions][2] + instance = AWS::Provision.new(stage).find_server_by_name(server) + unless instance.nil? + port = ssh_options[:port] || 22 + command = "ssh -p #{port} ubuntu@#{instance.dns_name}" + puts "Running `#{command}`" + exec(command) + else + puts "Server #{server} not found" + end + end + + desc "create autoscale setup from config/autoscale.json" + task :create_autoscale do + autoscale_config = JSON.parse(File.read("config/autoscale.json"))[stage] || {} + AWS::Autoscale.new(stage, autoscale_config, application).configure_autoscale + end + + desc "update autoscale from config/autoscale.json after a deployment" + task :update_autoscale do + autoscale_config = JSON.parse(File.read("config/autoscale.json"))[stage] || {} + AWS::Autoscale.new(stage, autoscale_config, application).update_autoscale + end + end