No commit activity in last 3 years
No release in over 3 years
Moniker Ruby and RoR bindings implemented with ActiveResource - See also http://www.unicloud.it
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.8.4
~> 3.12

Runtime

~> 3.2.12
~> 1.7.7
~> 1.2.9
 Project Readme

moniker_activeresource¶ ↑

Moniker Ruby and RoR bindings implemented with ActiveResource

Moniker - DNS for OpenStack — Read more at launchpad.net/moniker

Please note: Moniker is still in alpha stage so is the same for this gem!

Tested on Moniker commit 2c66df879574cb595bd8f703818f503badce3bad

Installation¶ ↑

Not yet released on rubygems. To install this gem clone this repository and:

gem install bundler # If not already installed
bundle install
rake install

Sample usage¶ ↑

This section is incomplete. Please see unit tests for more info.

Keystone authentication and Moniker setup¶ ↑

OpenStack::Keystone::Public::Base.site = "https://my.api.com:5000/v2.0/"

auth = OpenStack::Keystone::Public::Auth.new :username  => "me",
                                             :password  => "my pass",
                                             :tenant_id => "my_tenant"

if auth.save
  Moniker::Base.token = auth.token
  Moniker::Base.site  = auth.endpoint_for('dns').publicURL
  # *** Set the sudo tenant id (if needed!)
  Moniker::Base.sudo_tenant = "another tenant id"
else
  raise "Cannot authenticate!"
end

Create a new server (requires an administrative role)¶ ↑

new_server = Moniker::Server.create :name => "test.test-server.test."

List existing server (requires an administrative role)¶ ↑

servers = Moniker::Server.all

Get a server (requires an administrative role)¶ ↑

# By name
server = Moniker::Server.find_by_name "test.test-server.test."
# By id
Moniker::Server.find "ffffffff-ffff-ffff-ffff-ffffffffffff"

Update a server (requires an administrative role)¶ ↑

server = Moniker::Server.find_by_name "test.test-server.test."
server.update_attributes :name => "up-test.test-server.test."
server.save
# Done! Now revert
server.name = "test.test-server.test."
server.save

Destroy a server (requires an administrative role)¶ ↑

server = Moniker::Server.find_by_name "test.test-server.test."
server.destroy

Create a new domain (depending on your configuration, this might require an administrative role)¶ ↑

new_domain = Moniker::Domain.create :name => "test.test-domain.test.", :email => "fake@pretend.net"

List existing domains¶ ↑

domains = Moniker::Domain.all

Get a domain¶ ↑

# By name
domain = Moniker::Domain.find_by_name "test.test-domain.test."
# By id
Moniker::Domain.find "ffffffff-ffff-ffff-ffff-ffffffffffff"

Update a domain (depending on your configuration, this might require an administrative role)¶ ↑

domain = Moniker::Domain.find_by_name n"test.test-domain.test."ame
domain.update_attributes :ttl => 225
domain.save
# Again but now without update_attributes
domain.ttl = 128
domain.save

Destroy a domain (depending on your configuration, this might require an administrative role)¶ ↑

domain = Moniker::Domain.find_by_name n"test.test-domain.test."ame
domain.destroy

Create a new record¶ ↑

domain = Moniker::Domain.find_by_name "test.test-domain.test."
new_record = Moniker::Record.create :name => record_name,
                                    :type => "A",
                                    :data => "1.1.1.1",
                                    :domain_id => domain.id

List existing records in a domain¶ ↑

domain = Moniker::Domain.find_by_name "test.test-domain.test."
records = Moniker::Record.all :params => {:domain_id => domain.id}

Get a record in a domain¶ ↑

domain = Moniker::Domain.find_by_name "test.test-domain.test."
# All by name
records = Moniker::Record.find_all_by_name record_name, :params => {:domain_id => domain.id}
# All by type
records = Moniker::Record.find_all_by_type "AAAA", :params => {:domain_id => domain.id}
# All by data
records = Moniker::Record.find_all_by_data "1.1.1.1", :params => {:domain_id => domain.id}
# By id
record = Moniker::Record.find "ffffffff-ffff-ffff-ffff-ffffffffffff", :params => {:domain_id => domain.id}

Update a record in a domain¶ ↑

record = Moniker::Record.find "ffffffff-ffff-ffff-ffff-ffffffffffff", :params => {:domain_id => domain.id}
record.update_attributes :ttl => 225
record.save
# Again but now without update_attributes
record.ttl = 128
record.save

Destroy a record in a domain¶ ↑

record = Moniker::Record.find "ffffffff-ffff-ffff-ffff-ffffffffffff", :params => {:domain_id => domain.id}
record.destroy

Known limitation¶ ↑

Works only with OpenStack Keystone authentication

Contributing to moniker_activeresource¶ ↑

  • Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet.

  • Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it.

  • Fork the project.

  • Start a feature/bugfix branch.

  • Commit and push until you are happy with your contribution.

  • Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright © 2013 Davide Guerri (@dguerri davide.guerri@gmail.com). See LICENSE.txt for further details.