Class: Acquia::Cloud::Environment

Inherits:
Entity
  • Object
show all
Defined in:
lib/acquia/cloud/environment.rb

Instance Attribute Summary

Attributes inherited from Entity

#url

Instance Method Summary collapse

Methods inherited from Entity

#refresh

Constructor Details

#initialize(cloud, site, environment) ⇒ Environment

Returns a new instance of Environment.



6
7
8
9
10
11
# File 'lib/acquia/cloud/environment.rb', line 6

def initialize(cloud, site, environment)
  @cloud = cloud
  @site = site
  @data = environment
  @url = "/sites/#{@site}/envs/#{@data['name']}"
end

Instance Method Details

#add_domain(domain) ⇒ Object



94
95
96
97
# File 'lib/acquia/cloud/environment.rb', line 94

def add_domain(domain)
  task = @cloud.api.post("#{url}/domains/#{domain}")
  Task.new @cloud, @site, task
end

#copy_files_to(target) ⇒ Object



57
58
59
# File 'lib/acquia/cloud/environment.rb', line 57

def copy_files_to(target)
  Site.new(@cloud, @site).copy_files name, target
end

#database(database) ⇒ Object



53
54
55
# File 'lib/acquia/cloud/environment.rb', line 53

def database(database)
  DatabaseEnvironment.new(@cloud, @site, name, {'name' => database}).refresh
end

#database_serversObject



76
77
78
# File 'lib/acquia/cloud/environment.rb', line 76

def database_servers
  servers.select &:database?
end

#databasesObject



47
48
49
50
51
# File 'lib/acquia/cloud/environment.rb', line 47

def databases
  @cloud.api.get("#{@url}/dbs").map do |db|
    DatabaseEnvironment.new(@cloud, @site, name, db)
  end
end

#db_clustersObject



25
26
27
# File 'lib/acquia/cloud/environment.rb', line 25

def db_clusters
  data['db_clusters']
end

#default_domainObject



29
30
31
# File 'lib/acquia/cloud/environment.rb', line 29

def default_domain
  data['default_domain']
end

#deploy_path(new_vcs_path) ⇒ Object

new_vcs_path should start with ‘tags/’ or ‘heads/’ to distinguish between tags or branches.



39
40
41
42
43
44
45
# File 'lib/acquia/cloud/environment.rb', line 39

def deploy_path(new_vcs_path)
  task = @cloud.api.post("#{@url}/code-deploy") do |response|
    response.params['path'] = new_vcs_path
  end

  Task.new(@cloud, @site, task)
end

#domainsObject



88
89
90
91
92
# File 'lib/acquia/cloud/environment.rb', line 88

def domains
  @cloud.api.get("#{url}/domains").map do |domain|
    Domain.new(@cloud, @site, name, domain)
  end
end

#logstreamObject



61
62
63
64
# File 'lib/acquia/cloud/environment.rb', line 61

def logstream
  response = @cloud.api.get("#{@url}/logstream")
  Logs::Streamer.new(response['url'], JSON.parse(response['msg']))
end

#nameObject



13
14
15
# File 'lib/acquia/cloud/environment.rb', line 13

def name
  data['name']
end

#server(server) ⇒ Object



72
73
74
# File 'lib/acquia/cloud/environment.rb', line 72

def server(server)
  Server.new(@cloud, @site, name, {'name' => server}).refresh
end

#serversObject



66
67
68
69
70
# File 'lib/acquia/cloud/environment.rb', line 66

def servers
  @cloud.api.get("#{@url}/servers").map do |server|
    Server.new(@cloud, @site, name, server)
  end
end

#ssh_hostObject



21
22
23
# File 'lib/acquia/cloud/environment.rb', line 21

def ssh_host
  data['ssh_host']
end

#unix_usernameObject



33
34
35
# File 'lib/acquia/cloud/environment.rb', line 33

def unix_username
  data['unix_username']
end

#varnish_serversObject



80
81
82
# File 'lib/acquia/cloud/environment.rb', line 80

def varnish_servers
  servers.select &:varnish?
end

#vcs_pathObject



17
18
19
# File 'lib/acquia/cloud/environment.rb', line 17

def vcs_path
  data['vcs_path']
end

#web_serversObject



84
85
86
# File 'lib/acquia/cloud/environment.rb', line 84

def web_servers
  servers.select &:web?
end