Skip to content

A python wrapper and command line interface to VegaDNS-API

License

Notifications You must be signed in to change notification settings

shupp/VegaDNS-CLI

Repository files navigation

VegaDNS CLI

VegaDNS CLI is a command line interface for VegaDNS-API written in python. It is comprised of a thin REST wrapper with OAuth2 section 4.4 support, vegadns_client, and a Click based cli wrapper, vegadns_cli. If you wish, you can write your own integration with the API using the vegadns_client wrapper. See the integration tests for example usage.

Installation and upgrades

Installation should be done through pip3. For a first time global installation, you can do the following:

sudo pip3 install https://github.com/shupp/VegaDNS-CLI/archive/master.zip

For subsequent updates, you can use the builtin upgrade command:

sudo vdns upgrade

Configuring

To connect to your VegaDNS2 API, you'll need to set the host url, your api key, and api secret.

From a brand new api install

For a brand new installation, you can start with the seeded account information and change it later when you create accounts:

vdns config set --host <your_api_url> \
    --key 6d145840921dabcc85907bff35e607289abdad04b7900196ee45f5a4e12ac369 \
    --secret b1163b6387318dbfebaca5740ddb024ad61fa18831bb887ea085036f8df9c180

From email/password

If someone created an account for you, and you need to create api keys from a given email/password, you can currently use curl and basic auth to generate the keys:

curl -X POST -u <email>:<password> <api_host>/1.0/apikeys

In the response JSON response you'll see a key and secret. Use those values and follow the config set example above.

Using the vdns cli tool

The vdns tool should be self explanatory. To see the list of commands available, you can call it without any arguments:

Usage: vdns [OPTIONS] COMMAND [ARGS]...

  A command line interface for managing VegaDNS

Options:
  -e, --environment TEXT  Which environment config to use, default is
                          'default'
  -d, --debug             Enables HTTP debug logs
  --help                  Show this message and exit.

Commands:
  accounts         Manage accounts
  apikeys          Manage account api keys
  audit_logs       List audit logs
  config           Manage the config for the current environment
  default_records  Manage default records
  domaingroupmaps  Manage domain to group mappings/permissions
  domains          Manage domains
  export           Export active domains in tinydns data format
  groupmembers     Manage group members
  groups           Manage groups
  records          Manage a domain's records
  update_data      Update tinydns data (local to VegaDNS only)
  upgrade          Upgrade VegaDNS CLI client

As you can see, if you work with multiple VegaDNS2 installations, you can use -e as a global argument to all commands specify which api to talk to. The default is default.

Note that you can always use --help with any command to see its usage:

$ vdns records --help
Usage: vdns records [OPTIONS] COMMAND [ARGS]...

  Manage a domain's records

Options:
  --help  Show this message and exit.

Commands:
  create_a        Create A record
  create_aaaa     Create a AAAA record
  create_aaaaptr  Create a AAAA+PTR record
  create_aptr     Create A+PTR record
  create_cname    Create a CNAME record
  create_mx       Create an MX record
  create_ns       Create an NS record
  create_ptr      Create a PTR record
  create_soa      Create an SOA record (limit one per domain)
  create_spf      Create an SPF record
  create_srv      Create an SRV record
  create_txt      Create a TXT record
  delete          Delete a record
  edit_a          Edit an A record
  edit_aaaa       Edit a AAAA record
  edit_aaaaptr    Edit a AAAA+PTR record
  edit_aptr       Edit an A+PTR record
  edit_cname      Edit a CNAME record
  edit_mx         Edit an MX record
  edit_ns         Edit an NS record
  edit_ptr        Edit a PTR record
  edit_soa        Edit an SOA record
  edit_spf        Edit an SPF record
  edit_srv        Edit an SRV record
  edit_txt        Edit a TXT record
  list            List all records for a domain
$ vdns accounts --help
Usage: vdns accounts [OPTIONS] COMMAND [ARGS]...

  Manage accounts

Options:
  --help  Show this message and exit.

Commands:
  create        Create an account
  delete        Delete an account
  edit          Edit an account
  get           Get a single account
  list          List all accounts
  set_password  Set the password for an account

While some arguments can be omitted resulting in a prompt for their values, you'll likely find the most success by knowing the arguments you need, and being explicit.

Support

For support or feedback, please use GitHub issues

About

A python wrapper and command line interface to VegaDNS-API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages