1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[brightbox] Adding *_server actions to ServerGroup model

* ServerGroup#add_servers
* ServerGroup#remove_servers
* ServerGroup#move_servers
This commit is contained in:
Caius Durling 2011-09-21 19:16:08 +01:00 committed by Paul Thornthwaite
parent ee93e0f87b
commit 6f32c0a38f

View file

@ -28,30 +28,60 @@ module Fog
true
end
# Add a server to the server group
# Adds specified servers to this server group
#
# == Parameters:
# identifiers::
# An array of identifiers for the servers to add to the group
#
# == Returns:
#
# An excon response object representing the result
#
# <Excon::Response: ...
#
def add_servers(server_identifiers)
# @param [Array] identifiers array of server identifier strings to add
# @return [Fog::Compute::ServerGroup]
def add_servers identifiers
requires :identity
server_references = server_identifiers.map {|ident| {"server" => ident} }
options = {
:servers => server_references
:servers => server_references(identifiers)
}
data = connection.add_servers_server_group(identity, options)
merge_attributes(data)
data = connection.add_servers_server_group identity, options
merge_attributes data
end
# Removes specified servers from this server group
#
# @param [Array] identifiers array of server identifier strings to remove
# @return [Fog::Compute::ServerGroup]
def remove_servers identifiers
requires :identity
options = {
:servers => server_references(identifiers)
}
data = connection.remove_servers_server_group identity, options
merge_attributes data
end
# Moves specified servers from this server group to the specified destination server group
#
# @param [Array] identifiers array of server identifier strings to move
# @param [String] destination_group_id destination server group identifier
# @return [Fog::Compute::ServerGroup]
def move_servers identifiers, destination_group_id
requires :identity
options = {
:servers => server_references(identifiers),
:destination => destination_group_id
}
data = connection.move_servers_server_group identity, options
merge_attributes data
end
def destroy
requires :identity
connection.destroy_server_group(identity)
true
end
protected
def server_references identifiers
identifiers.map {|id| {"server" => id} }
end
end
end
end
end