openstack-quantum-messager 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +4 -0
 - data/Rakefile +2 -0
 - data/lib/openstack-quantum-messager.rb +5 -0
 - data/lib/openstack-quantum-messager/l2l3.rb +30 -0
 - data/lib/openstack-quantum-messager/version.rb +5 -0
 - data/openstack-quantum-messager.gemspec +19 -0
 - data/spec/openstack-quantum-messager/l2l3_spec.rb +55 -0
 - data/spec/openstack_quantum_messager_spec.rb +4 -0
 - data/spec/spec_helper.rb +2 -0
 - metadata +87 -0
 
    
        data/Gemfile
    ADDED
    
    
    
        data/Rakefile
    ADDED
    
    
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            module Openstack
         
     | 
| 
      
 3 
     | 
    
         
            +
              module QuantumMessager
         
     | 
| 
      
 4 
     | 
    
         
            +
                class L2l3
         
     | 
| 
      
 5 
     | 
    
         
            +
                  def initialize(quantum_url)
         
     | 
| 
      
 6 
     | 
    
         
            +
                    @quantum_url = quantum_url
         
     | 
| 
      
 7 
     | 
    
         
            +
                  end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def add_dhcp(name, address)
         
     | 
| 
      
 10 
     | 
    
         
            +
                    dhcp_info = {"dhcp" => {"name" => name, "address" => address}}
         
     | 
| 
      
 11 
     | 
    
         
            +
                    post_to_quantum(dhcp_info, "/dhcps.json")
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  def add_dhcp_entry(address, mac)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    dhcp_entry_info = {"dhcp_entry" => {"mac" => mac, "address" => address}}
         
     | 
| 
      
 16 
     | 
    
         
            +
                    post_to_quantum(dhcp_entry_info, "/dhcp_entries.json")
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  private
         
     | 
| 
      
 20 
     | 
    
         
            +
                  def post_to_quantum(info, url_suffix)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    response = HTTParty.post(
         
     | 
| 
      
 22 
     | 
    
         
            +
                      @quantum_url + url_suffix,
         
     | 
| 
      
 23 
     | 
    
         
            +
                      :body => info.to_json,
         
     | 
| 
      
 24 
     | 
    
         
            +
                      :headers => {"Content-Type" => "application/json"}
         
     | 
| 
      
 25 
     | 
    
         
            +
                    )
         
     | 
| 
      
 26 
     | 
    
         
            +
                    response.body if response
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path('../lib/openstack-quantum-messager/version', __FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            Gem::Specification.new do |gem|
         
     | 
| 
      
 5 
     | 
    
         
            +
              gem.name          = "openstack-quantum-messager"
         
     | 
| 
      
 6 
     | 
    
         
            +
              gem.version       = Openstack::QuantumMessager::VERSION
         
     | 
| 
      
 7 
     | 
    
         
            +
              gem.authors       = ["PotHix"]
         
     | 
| 
      
 8 
     | 
    
         
            +
              gem.email         = ["pothix@pothix.com"]
         
     | 
| 
      
 9 
     | 
    
         
            +
              gem.description   = %q{A simple gem to deal with openstack quantum}
         
     | 
| 
      
 10 
     | 
    
         
            +
              gem.summary       = %q{The main objective of this gem is to deal easily with openstack quantum}
         
     | 
| 
      
 11 
     | 
    
         
            +
              gem.homepage      = "http://www.locaweb.com.br"
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              gem.files         = Dir["./**/*"].reject {|file| file =~ /\.git|pkg/}
         
     | 
| 
      
 14 
     | 
    
         
            +
              gem.require_paths = ["lib"]
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              gem.add_dependency "httparty"
         
     | 
| 
      
 17 
     | 
    
         
            +
              gem.add_development_dependency "rspec"
         
     | 
| 
      
 18 
     | 
    
         
            +
              gem.add_development_dependency "fakeweb"
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,55 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe Openstack::QuantumMessager::L2l3 do
         
     | 
| 
      
 5 
     | 
    
         
            +
              before do
         
     | 
| 
      
 6 
     | 
    
         
            +
                @quantum_url = "http://localhost:9696/v1.0/extensions/l2l3/tenants/XYZ"
         
     | 
| 
      
 7 
     | 
    
         
            +
                @messager = Openstack::QuantumMessager::L2l3.new(@quantum_url)
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              context "when dealing with dhcps" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                before do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  @dhcp_info = {"dhcp" => {"name" => "dhcp1", "address" => "192.168.1.1"} }
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                it "should generate the correct json syntax for dhcp inclusion" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  url = "http://localhost:9696/v1.0/extensions/l2l3/tenants/XYZ/dhcps.json"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  HTTParty.should_receive(:post).with(
         
     | 
| 
      
 18 
     | 
    
         
            +
                    url,
         
     | 
| 
      
 19 
     | 
    
         
            +
                    :body => @dhcp_info.to_json,
         
     | 
| 
      
 20 
     | 
    
         
            +
                    :headers => {"Content-Type" => "application/json"}
         
     | 
| 
      
 21 
     | 
    
         
            +
                  )
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @messager.add_dhcp("dhcp1", "192.168.1.1")
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                it "should return the dhcp uuid" do
         
     | 
| 
      
 26 
     | 
    
         
            +
                  dhcp_info = @messager.add_dhcp("dhcp1", "192.168.1.1")
         
     | 
| 
      
 27 
     | 
    
         
            +
                  dhcp_info.should_not be_nil
         
     | 
| 
      
 28 
     | 
    
         
            +
                  JSON.parse(dhcp_info)["id"].should match(/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/)
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              context "when dealing with dhcps entrys" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                before do
         
     | 
| 
      
 35 
     | 
    
         
            +
                  @dhcp_entry_info = {"dhcp_entry" => {"mac" => "a4:ba:db:05:6e:f8", "address" => "192.168.3.4"}}
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                it "should generate the correct json syntax for dhcp inclusion" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  url = "http://localhost:9696/v1.0/extensions/l2l3/tenants/XYZ/dhcp_entries.json"
         
     | 
| 
      
 40 
     | 
    
         
            +
                  HTTParty.should_receive(:post).with(
         
     | 
| 
      
 41 
     | 
    
         
            +
                    url,
         
     | 
| 
      
 42 
     | 
    
         
            +
                    :body => @dhcp_entry_info.to_json,
         
     | 
| 
      
 43 
     | 
    
         
            +
                    :headers => {"Content-Type" => "application/json"}
         
     | 
| 
      
 44 
     | 
    
         
            +
                  )
         
     | 
| 
      
 45 
     | 
    
         
            +
                  @messager.add_dhcp_entry("192.168.3.4", "a4:ba:db:05:6e:f8")
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                it "should return the dhcp uuid" do
         
     | 
| 
      
 49 
     | 
    
         
            +
                  dhcp_entry_info = @messager.add_dhcp_entry("dhcp1", "192.168.3.4")
         
     | 
| 
      
 50 
     | 
    
         
            +
                  dhcp_entry_info.should_not be_nil
         
     | 
| 
      
 51 
     | 
    
         
            +
                  JSON.parse(dhcp_entry_info)["id"].should match(/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/)
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/spec_helper.rb
    ADDED
    
    
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,87 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: openstack-quantum-messager
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
      
 6 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 7 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 8 
     | 
    
         
            +
            - PotHix
         
     | 
| 
      
 9 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 10 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 11 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-01-02 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: httparty
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &12600300 !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 18 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 19 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 20 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 21 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 22 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 23 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *12600300
         
     | 
| 
      
 25 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 26 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &12599320 !ruby/object:Gem::Requirement
         
     | 
| 
      
 28 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 29 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 30 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 31 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 33 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 34 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *12599320
         
     | 
| 
      
 36 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 37 
     | 
    
         
            +
              name: fakeweb
         
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &12597680 !ruby/object:Gem::Requirement
         
     | 
| 
      
 39 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 40 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 41 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 42 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 43 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 44 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 45 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *12597680
         
     | 
| 
      
 47 
     | 
    
         
            +
            description: A simple gem to deal with openstack quantum
         
     | 
| 
      
 48 
     | 
    
         
            +
            email:
         
     | 
| 
      
 49 
     | 
    
         
            +
            - pothix@pothix.com
         
     | 
| 
      
 50 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 51 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 52 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 53 
     | 
    
         
            +
            files:
         
     | 
| 
      
 54 
     | 
    
         
            +
            - ./openstack-quantum-messager.gemspec
         
     | 
| 
      
 55 
     | 
    
         
            +
            - ./spec/spec_helper.rb
         
     | 
| 
      
 56 
     | 
    
         
            +
            - ./spec/openstack_quantum_messager_spec.rb
         
     | 
| 
      
 57 
     | 
    
         
            +
            - ./spec/openstack-quantum-messager/l2l3_spec.rb
         
     | 
| 
      
 58 
     | 
    
         
            +
            - ./Gemfile
         
     | 
| 
      
 59 
     | 
    
         
            +
            - ./Rakefile
         
     | 
| 
      
 60 
     | 
    
         
            +
            - ./lib/openstack-quantum-messager.rb
         
     | 
| 
      
 61 
     | 
    
         
            +
            - ./lib/openstack-quantum-messager/version.rb
         
     | 
| 
      
 62 
     | 
    
         
            +
            - ./lib/openstack-quantum-messager/l2l3.rb
         
     | 
| 
      
 63 
     | 
    
         
            +
            homepage: http://www.locaweb.com.br
         
     | 
| 
      
 64 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 65 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 66 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 67 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 68 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 69 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 70 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 71 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 72 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 73 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 74 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 75 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 76 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 77 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 78 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 79 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 80 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 81 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 82 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 83 
     | 
    
         
            +
            rubygems_version: 1.8.10
         
     | 
| 
      
 84 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 85 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
      
 86 
     | 
    
         
            +
            summary: The main objective of this gem is to deal easily with openstack quantum
         
     | 
| 
      
 87 
     | 
    
         
            +
            test_files: []
         
     |