class Ey::Core::Client::UntrackedServer

Public Instance Methods

save!() click to toggle source
# File lib/ey-core/models/untracked_server.rb, line 15
def save!
  request_attributes = {
    "provider" => self.provider_id,
    "url"      => self.collection.url,
  }

  response = if new_record?
               requires :location, :provisioned_id

               request_attributes.merge!(
                 "untracked_server" => Cistern::Hash.slice(
                   Cistern::Hash.stringify_keys(self.attributes), "location", "provisioned_id", "provisioner_id", "state"
                 ),
               )

               connection.create_untracked_server(request_attributes)
             else
               requires :identity

               request_attributes.merge!(
                 "untracked_server" => Cistern::Hash.slice(
                   Cistern::Hash.stringify_keys(self.attributes), "location", "provisioner_id", "state"
                 ),
               )

               connection.update_untracked_server(request_attributes.merge("id" => self.identity))
             end

  merge_attributes(response.body["untracked_server"])
end