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 => "[email protected]"
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
Copyright © 2013 Davide Guerri (@dguerri [email protected]). See LICENSE.txt for further details.