class McServerTemplate

API 1.5

Public Class Methods

filters() click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 50
def self.filters
  [:description, :multi_cloud_image_href, :name, :revision]
end
resource_plural_name() click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 42
def self.resource_plural_name
  "server_templates"
end
resource_singular_name() click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 46
def self.resource_singular_name
  "server_template"
end

Public Instance Methods

add_multi_cloud_image(mci_href) click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 67
def add_multi_cloud_image(mci_href)
  @mci_links = McServerTemplateMultiCloudImage.find_with_filter(:server_template_href => self.href)
  if @mci_links.detect { |mci_link| mci_link.multi_cloud_image == mci_href }
    connection.logger("WARNING: MCI #{mci_href} is already attached")
  else
    ret = McServerTemplateMultiCloudImage.create(:multi_cloud_image_href => mci_href,
                                                 :server_template_href => self.href)
    get_mcis_and_settings
    ret
  end
end
commit(message, commit_head_dependencies, freeze_repositories) click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 101
def commit(message, commit_head_dependencies, freeze_repositories)
  options = {:commit_message => "#{message}",
             :commit_head_dependencies => (commit_head_dependencies && true),
             :freeze_repositories => (freeze_repositories && true)}
  t = URI.parse(self.href)
  location = connection.post(t.path + "/commit", options)
  newrecord = McServerTemplate.new('links' => [ {'rel' => 'self', 'href' => location } ])
  newrecord.reload
  newrecord
end
detach_multi_cloud_image(mci_href) click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 79
def detach_multi_cloud_image(mci_href)
  @mci_links = McServerTemplateMultiCloudImage.find_with_filter(:server_template_href => self.href)
  if link = @mci_links.detect { |mci_link| mci_link.multi_cloud_image == mci_href }
    ret = link.destroy
    get_mcis_and_settings
    ret
  else
    connection.logger("WARNING: MCI #{mci_href} is not attached")
  end
end
get_mcis_and_settings() click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 54
def get_mcis_and_settings
  @params["multi_cloud_images"] = McMultiCloudImage.find_all(self.rs_id)
  @params["multi_cloud_images"].each { |mci| mci.settings } # Eager load
  @mci_links = McServerTemplateMultiCloudImage.find_with_filter(:server_template_href => self.href)
end
multi_cloud_images() click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 60
def multi_cloud_images
  unless @params["multi_cloud_images"]
    get_mcis_and_settings
  end
  @params["multi_cloud_images"]
end
resource_plural_name() click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 34
def resource_plural_name
  "server_templates"
end
resource_singular_name() click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 38
def resource_singular_name
  "server_template"
end
set_default_multi_cloud_image(mci_href) click to toggle source
# File lib/rest_connection/rightscale/mc_server_template.rb, line 90
def set_default_multi_cloud_image(mci_href)
  @mci_links = McServerTemplateMultiCloudImage.find_with_filter(:server_template_href => self.href)
  if link = @mci_links.detect { |mci_link| mci_link.multi_cloud_image == mci_href }
    ret = link.make_default
    get_mcis_and_settings
    ret
  else
    connection.logger("WARNING: MCI #{mci_href} is not attached")
  end
end