Sha256: bcede6b84e124d3d81b15526fff7d5422240679d1321e52830657ed64b8e3e1b

Contents?: true

Size: 1.91 KB

Versions: 9

Compression:

Stored size: 1.91 KB

Contents

#!/usr/bin/env ruby

# (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
#
#    Licensed under the Apache License, Version 2.0 (the "License");
#    you may not use this file except in compliance with the License.
#    You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.

require 'net/http'
require 'open-uri'

require_relative 'connection.rb'
include Connection

module Compute

  def get_image(image_name)
    compute = Connection.compute

    images = compute.images.all
    image = nil

    for i in images do
      if i.name == image_name
        image = i
      end
    end
    image
  end

  def get_flavor(flavor_name)
    compute = Connection.compute

    flavors = compute.flavors.all
    flavor = nil

    for f in flavors do
      if f.name == flavor_name
        flavor = f
      end
    end
    flavor
  end

  def create_instance(name, flavor_id, image_id, key_name, security_groups, availability_zone, networks)
    server = Connection.compute.servers.create(
        :name                 => name,
        :flavor_id            => flavor_id,
        :image_id             => image_id,
        :key_name             => key_name,
        :security_groups      => [security_groups],
        :availability_zone    => availability_zone,
        :networks             => [networks],
        :metadata             => { :Meta1 => 'MetaValue1'},
        :config_drive         => true
    )
  end

  def delete_instance(maestro)
    maestro = Connection.compute.servers.all(:name => maestro)[0]
    Connection.compute.servers.get(maestro.id).destroy
  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
forj-0.0.10 lib/compute.rb
forj-0.0.9 lib/compute.rb
forj-0.0.8 lib/compute.rb
forj-0.0.7 lib/compute.rb
forj-0.0.6 lib/compute.rb
forj-0.0.5 lib/compute.rb
forj-0.0.4 lib/compute.rb
forj-0.0.3 lib/compute.rb
forj-0.0.1 lib/compute.rb