class Object

Public Instance Methods

https_delete(uri_string, authtoken) click to toggle source

@return [Net::HTTPResponse] @params [String] uri_string URI string @params [String] authtoken

# File lib/conoha/util.rb, line 39
def https_delete(uri_string, authtoken)
  uri = URI.parse uri_string
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  req = Net::HTTP::Delete.new(uri.request_uri)
  req['Content-Type'] = 'application/json'
  req['Accept'] = 'application/json'
  req['X-Auth-Token'] = authtoken
  https.request(req)
end
https_get(uri_string, authtoken) click to toggle source

@return [Net::HTTPResponse] @params [String] uri_string URI string @params [String] authtoken

# File lib/conoha/util.rb, line 7
def https_get(uri_string, authtoken)
  uri = URI.parse uri_string
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  req = Net::HTTP::Get.new(uri.path)
  req['Content-Type'] = 'application/json'
  req['Accept'] = 'application/json'
  req['X-Auth-Token'] = authtoken
  https.request(req)
end
https_post(uri_string, payload, authtoken) click to toggle source

@return [Net::HTTPResponse] @params [String] uri_string URI string @params [Hash] payload HTTP request body @params [String|nil] authtoken

Authtoken string or `nil`.
Can pass `nil` only on authenticating with username and password.
# File lib/conoha/util.rb, line 24
def https_post(uri_string, payload, authtoken)
  uri = URI.parse uri_string
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  req = Net::HTTP::Post.new(uri.request_uri)
  req['Content-Type'] = 'application/json'
  req['Accept'] = 'application/json'
  req['X-Auth-Token'] = authtoken
  req.body = payload.to_json
  https.request(req)
end
image_tag_dictionary(os) click to toggle source

@return [String] Image name tag @params [String] os OS name @raise [StandardError] When the OS name isn't included in the dictionary.

# File lib/conoha/util.rb, line 67
def image_tag_dictionary(os)
  dictionary = {
    'ubuntu'   => 'vmi-ubuntu-16.04-amd64-unified', # Ubuntu 16.04 amd64
    'ubuntu16' => 'vmi-ubuntu-16.04-amd64-unified', # Ubuntu 16.04 amd64
    'ubuntu14' => 'vmi-ubuntu-14.04-amd64-unified', # Ubuntu 14.04 amd64
    'debian'   => 'vmi-debian-8.7-amd64-unified', # Debian 8 amd64
    'fedora'   => 'vmi-fedora-25-amd64', # Fedora 25 amd64
    'fedora25' => 'vmi-fedora-25-amd64', # Fedora 25 amd64
    'centos'   => 'vmi-centos-7.3-amd64', # CentOS 7.3
    'centos73' => 'vmi-centos-7.3-amd64', # CentOS 7.3
    'centos72' => 'vmi-centos-7.2-amd64', # CentOS 7.2
    'centos71' => 'vmi-centos-7.1-amd64', # CentOS 7.1
    'centos68' => 'vmi-centos-6.8-amd64', # CentOS 6.8
    'centos67' => 'vmi-centos-6.7-amd64', # CentOS 6.7
    'centos66' => 'vmi-centos-6.6-amd64', # CentOS 6.6
    'arch'     => 'vmi-arch-amd64', # Arch
    'opensuse' => 'vmi-opensuse-42.2-amd64-unified', # openSUSE
    'openbsd'  => 'vmi-openbsd-6.0-amd64', # OpenBSD
    'netbsd'   => 'vmi-netbsd-7.0-amd64', # NetBSD
    'freebsd'  => 'vmi-freebsd-10.3-x86_64', # FreeBSD
    'docker'   => 'vmi-docker-17.06-ubuntu-16.04-unified', # Docker on Ubuntu 16.04

    # 20GB storage for 512MB RAM
    'ubuntu-20gb'   => 'vmi-ubuntu-16.04-amd64-unified-20gb',
    'ubuntu16-20gb' => 'vmi-ubuntu-16.04-amd64-unified-20gb',
    'ubuntu14-20gb' => 'vmi-ubuntu-14.04-amd64-unified-20gb',
    'debian-20gb'   => 'vmi-debian-8.7-amd64-unified-20gb',
    'fedora-20gb'   => 'vmi-fedora-25-amd64-20gb',
    'fedora25-20gb' => 'vmi-fedora-25-amd64-20gb',
    'centos-20gb'   => 'vmi-centos-7.3-amd64-20gb',
    'centos73-20gb' => 'vmi-centos-7.3-amd64-20gb',
    'centos72-20gb' => 'vmi-centos-7.2-amd64-20gb',
    'centos71-20gb' => 'vmi-centos-7.1-amd64-20gb',
    'centos68-20gb' => 'vmi-centos-6.8-amd64-20gb',
    'centos67-20gb' => 'vmi-centos-6.7-amd64-20gb',
    'centos66-20gb' => 'vmi-centos-6.6-amd64-20gb',
    'arch-20gb'     => 'vmi-arch-amd64-20gb',
    'opensuse-20gb' => 'vmi-opensuse-42.2-amd64-unified-20gb',
    'openbsd-20gb'  => 'vmi-openbsd-6.0-amd64-20gb',
    'netbsd-20gb'   => 'vmi-netbsd-7.0-amd64-20gb',
    'freebsd-20gb'  => 'vmi-freebsd-10.3-amd64-20gb',
    'docker-20gb'   => 'vmi-docker-17.06-ubuntu-16.04-unified-20gb',
  }

  if dictionary.keys.include? os
    dictionary[os]
  else
    raise StandardError.new <<EOS
"#{os}" doesn't exist.
Select os name from the following list:

#{dictionary.keys.join("\n")}
EOS
  end
end
ipv4(ip_address) click to toggle source

@params [Array<String>]

The return value of `ip_address_of` method. It is either

    ["111.111.111.111", "1111:1111:1111:1111:1111:1111:1111:1111"]

or

    ["1111:1111:1111:1111:1111:1111:1111:1111", "111.111.111.111"]

@return [String] IPv4 address (e.g. “111.111.111.111”)

# File lib/conoha/util.rb, line 60
def ipv4(ip_address)
  ip_address.select { |e| e =~ /\d+\.\d+\.\d+\.\d+/ }.first
end