58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# File 'lib/bosh/cli/commands/redis.rb', line 58
def create_redis
auth_required
service_name = options[:name] || default_name
resource_size = options[:size] || default_size
persistent_disk = options[:disk] || default_persistent_disk
security_group = options[:security_group] || default_security_group
redis_port = 6379
bosh_status
nl
say "CPI: #{bosh_cpi.make_green}"
say "Deployment name: #{service_name.make_green}"
say "Resource size: #{validated_resource_size_colored(resource_size)}"
say "Persistent disk: #{persistent_disk.to_s.make_green}"
say "Security group: #{security_group.make_green}"
nl
step("Validating resource size", "Resource size must be in #{available_resource_sizes.join(', ')}", :non_fatal) do
available_resource_sizes.include?(resource_size)
end
unless confirmed?("Security group exists with ports 22 & #{redis_port}")
cancel_deployment
end
unless confirmed?("Creating redis service")
cancel_deployment
end
raise Bosh::Cli::ValidationHalted unless errors.empty?
template_file = template_file("single_vm.yml.erb")
deployment_file = "deployments/redis/#{service_name}.yml"
step("Checking/creating #{redis_deployments_store_path} for deployment files",
"Failed to create #{redis_deployments_store_path} for deployment files", :fatal) do
mkdir_p(redis_deployments_store_path)
end
step("Creating deployment file #{deployment_file}",
"Failed to create deployment file #{deployment_file}", :fatal) do
File.open(deployment_file, "w") do |file|
file << {
"name" => service_name,
"director_uuid" => bosh_uuid,
"networks" => {},
"properties" => {
"redis" => {
"resource" => resource_size,
"security_group" => security_group
}
}
}.to_yaml
end
stdout = Bosh::Cli::Config.output
Bosh::Cli::Config.output = nil
deployment_cmd(non_interactive: true).set_current(deployment_file)
biff_cmd(non_interactive: true).biff(template_file)
Bosh::Cli::Config.output = stdout
end
deployment_cmd.set_current(deployment_file)
deployment_cmd(non_interactive: options[:non_interactive]).perform
rescue Bosh::Cli::ValidationHalted
errors.each do |error|
say error.make_red
end
end
|