Sha256: 704ec360d93a5a1d0e6e7f9aa4918ac384141daf7d08658475ee76955c88a757

Contents?: true

Size: 903 Bytes

Versions: 3

Compression:

Stored size: 903 Bytes

Contents

# frozen_string_literal: true

module Hcloud
  class ServerResource < AbstractResource
    filter_attributes :status, :name

    bind_to Server

    def create(name:,
               server_type:,
               datacenter: nil,
               location: nil,
               start_after_create: nil,
               image:,
               ssh_keys: [],
               networks: [],
               user_data: nil)
      prepare_request('servers', j: COLLECT_ARGS.call(__method__, binding),
                                 expected_code: 201) do |response|
        [
          Action.new(client, response.parsed_json[:action]),
          Server.new(client, response.parsed_json[:server]),
          response.parsed_json[:root_password]
        ]
      end
    end

    def [](arg)
      case arg
      when Integer then find_by(id: arg)
      when String then find_by(name: arg)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hcloud-1.0.2 lib/hcloud/server_resource.rb
hcloud-1.0.1 lib/hcloud/server_resource.rb
hcloud-1.0.0 lib/hcloud/server_resource.rb