 d4a5555e52
			
		
	
	d4a5555e52
	
	
	
		
			
			* Improve index page to explain the difference between v1 and v2 CLI support. * Add a v2 examples page * Add all supported commands to v2 shell page * Add a tox task to build the docs * Fix a bug building the docs with an invalid html_static_path config Change-Id: Ie1e65c2d0cc8ad1b8b258e03114e19a943d1d19c Closes-Bug: 1572217
		
			
				
	
	
		
			249 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			249 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| =========================================================
 | |
| Designate Command Line Tool (compatible with v1 API only)
 | |
| =========================================================
 | |
| 
 | |
| The python-designateclient package comes with a command line tool (installed as :program:`designate`), this can be used to access a Designate API
 | |
| without having to manipulate JSON by hand, it can also produce the output in a variety of formats (JSON, CSV) and allow you to select columns to be
 | |
| displayed.
 | |
| 
 | |
| Credentials
 | |
| -----------
 | |
| 
 | |
| As with any OpenStack utility, :program:`designate` requires certain information to
 | |
| talk to the REST API, username, password, auth url (from where the other required
 | |
| endpoints are retrieved once you are authenticated).
 | |
| 
 | |
| To provide your access credentials (username, password, tenant name or tenant id)
 | |
| you can pass them on the command line with the ``--os-username``, ``--os-password``,  ``--os-tenant-name`` or ``--os-tenant-id``
 | |
| params, but it's easier to just set them as environment variables::
 | |
| 
 | |
|     export OS_USERNAME=openstack
 | |
|     export OS_PASSWORD=yadayada
 | |
|     export OS_TENANT_NAME=myproject
 | |
|     export OS_TENANT_ID=123456789
 | |
| 
 | |
| You will also need to define the authentication url with ``--os-auth-url``
 | |
| or set is as an environment variable as well::
 | |
| 
 | |
|     export OS_AUTH_URL=https://example.com:5000/v2.0/
 | |
| 
 | |
| Since Keystone can return multiple regions in the Service Catalog, you
 | |
| can specify the one you want with ``--os-region-name`` (or
 | |
| ``export OS_REGION_NAME``). It defaults to the first in the list returned.
 | |
| 
 | |
| Using the command line tool
 | |
| ---------------------------
 | |
| 
 | |
| With enough details now in the environment, you can use the designate client to create a domain and populate it with some records:
 | |
| 
 | |
| .. code-block:: shell-session
 | |
| 
 | |
|    $ designate domain-create --name doctestdomain.eu. --email admin@doctestdomain.eu
 | |
|    +-------------+--------------------------------------+
 | |
|    | Field       | Value                                |
 | |
|    +-------------+--------------------------------------+
 | |
|    | description | None                                 |
 | |
|    | created_at  | 2013-09-19T11:45:25.295355           |
 | |
|    | updated_at  | None                                 |
 | |
|    | email       | admin@doctestdomain.eu               |
 | |
|    | ttl         | 3600                                 |
 | |
|    | serial      | 1379591125                           |
 | |
|    | id          | eacbe2a5-95f1-4a9f-89f5-b9c58009b163 |
 | |
|    | name        | doctestdomain.eu.                    |
 | |
|    +-------------+--------------------------------------+
 | |
| 
 | |
| You can see more details on the arguments domain-create accepts at the `REST API create-domain`_.
 | |
| 
 | |
| Now that the domain has been created, we can start adding records.
 | |
| 
 | |
| You'll note that the name (www.doctestdomain.eu) has a trailing ``.``, as per the DNS standard, we didn't set a TTL and we had to specify the parent
 | |
| zone/domain by domain_id ``eacbe2a5-95f1-4a9f-89f5-b9c58009b163``.
 | |
| 
 | |
| .. code-block:: shell-session
 | |
| 
 | |
|   $  designate record-create eacbe2a5-95f1-4a9f-89f5-b9c58009b163 --name www.doctestdomain.eu. --type A --data 1.2.3.4
 | |
|   +-------------+--------------------------------------+
 | |
|   | Field       | Value                                |
 | |
|   +-------------+--------------------------------------+
 | |
|   | name        | www.doctestdomain.eu.                |
 | |
|   | data        | 1.2.3.4                              |
 | |
|   | created_at  | 2013-09-19T13:44:42.295428           |
 | |
|   | updated_at  | None                                 |
 | |
|   | id          | 147f6082-8466-4951-8d13-37a10e92b11e |
 | |
|   | priority    | None                                 |
 | |
|   | ttl         | None                                 |
 | |
|   | type        | A                                    |
 | |
|   | domain_id   | eacbe2a5-95f1-4a9f-89f5-b9c58009b163 |
 | |
|   | description | None                                 |
 | |
|   +-------------+--------------------------------------+
 | |
| 
 | |
| subcommands
 | |
| -----------
 | |
| 
 | |
| We've already seen the ``domain-create`` and ``record-create`` subcommands, here the full list of subcommands:
 | |
| 
 | |
| ======================= ====================================================== ===============
 | |
| subcommand              Notes                                                  Admin Required
 | |
| ======================= ====================================================== ===============
 | |
| complete                print bash completion command
 | |
| diagnostics-ping        Ping a service on a given host
 | |
| domain-create           Create Domain
 | |
| domain-delete           Delete Domain
 | |
| domain-get              Get Domain
 | |
| domain-list             List Domains
 | |
| domain-servers-list     List Domain Servers
 | |
| domain-update           Update Domain
 | |
| help                    print detailed help for another command
 | |
| quota-get               Get Quota
 | |
| quota-reset             Reset Quota
 | |
| quota-update            Update Quota
 | |
| record-create           Create Record
 | |
| record-delete           Delete Record
 | |
| record-get              Get Record
 | |
| record-list             List Records
 | |
| record-update           Update Record
 | |
| report-count-all        Get count totals for all tenants, domains and records
 | |
| report-count-domains    Get counts for total domains
 | |
| report-count-records    Get counts for total records
 | |
| report-count-tenants    Get counts for total tenants
 | |
| report-tenant-domains   Get a list of domains for given tenant
 | |
| report-tenants-all      Get list of tenants and domain count for each
 | |
| server-create           Create Server
 | |
| server-delete           Delete Server
 | |
| server-get              Get Server
 | |
| server-list             List Servers
 | |
| server-update           Update Server
 | |
| sync-all                Sync Everything
 | |
| sync-domain             Sync a single Domain
 | |
| sync-record             Sync a single Record
 | |
| touch-domain            Touch a single Domain
 | |
| 
 | |
| ======================= ====================================================== ===============
 | |
| 
 | |
| Builtin designate documentation
 | |
| -------------------------------
 | |
| 
 | |
| You'll find complete documentation on the shell by running
 | |
| ``designate --help``:
 | |
| 
 | |
| usage: designate [--version] [-v] [--log-file LOG_FILE] [-q] [-h] [--debug]
 | |
|                  [--os-username OS_USERNAME] [--os-user-id OS_USER_ID]
 | |
|                  [--os-user-domain-id OS_USER_DOMAIN_ID]
 | |
|                  [--os-user-domain-name OS_USER_DOMAIN_NAME]
 | |
|                  [--os-password OS_PASSWORD] [--os-tenant-name OS_TENANT_NAME]
 | |
|                  [--os-tenant-id OS_TENANT_ID]
 | |
|                  [--os-project-name OS_PROJECT_NAME]
 | |
|                  [--os-domain-name OS_DOMAIN_NAME]
 | |
|                  [--os-domain-id OS_DOMAIN_ID] [--os-project-id OS_PROJECT_ID]
 | |
|                  [--os-project-domain-id OS_PROJECT_DOMAIN_ID]
 | |
|                  [--os-project-domain-name OS_PROJECT_DOMAIN_NAME]
 | |
|                  [--os-auth-url OS_AUTH_URL] [--os-region-name OS_REGION_NAME]
 | |
|                  [--os-token OS_TOKEN] [--os-endpoint OS_ENDPOINT]
 | |
|                  [--os-endpoint-type OS_ENDPOINT_TYPE]
 | |
|                  [--os-service-type OS_SERVICE_TYPE] [--os-cacert OS_CACERT]
 | |
|                  [--insecure] [--all-tenants] [--edit-managed]
 | |
| 
 | |
| Designate Client
 | |
| 
 | |
| optional arguments:
 | |
|   --version             show program's version number and exit
 | |
|   -v, --verbose         Increase verbosity of output. Can be repeated.
 | |
|   --log-file LOG_FILE   Specify a file to log output. Disabled by default.
 | |
|   -q, --quiet           Suppress output except warnings and errors.
 | |
|   -h, --help            Show this help message and exit.
 | |
|   --debug               Show tracebacks on errors.
 | |
|   --os-username OS_USERNAME
 | |
|                         Name used for authentication with the OpenStack
 | |
|                         Identity service. Defaults to env[OS_USERNAME].
 | |
|   --os-user-id OS_USER_ID
 | |
|                         User ID used for authentication with the OpenStack
 | |
|                         Identity service. Defaults to env[OS_USER_ID].
 | |
|   --os-user-domain-id OS_USER_DOMAIN_ID
 | |
|                         Defaults to env[OS_USER_DOMAIN_ID].
 | |
|   --os-user-domain-name OS_USER_DOMAIN_NAME
 | |
|                         Defaults to env[OS_USER_DOMAIN_NAME].
 | |
|   --os-password OS_PASSWORD
 | |
|                         Password used for authentication with the OpenStack
 | |
|                         Identity service. Defaults to env[OS_PASSWORD].
 | |
|   --os-tenant-name OS_TENANT_NAME
 | |
|                         Tenant to request authorization on. Defaults to
 | |
|                         env[OS_TENANT_NAME].
 | |
|   --os-tenant-id OS_TENANT_ID
 | |
|                         Tenant to request authorization on. Defaults to
 | |
|                         env[OS_TENANT_ID].
 | |
|   --os-project-name OS_PROJECT_NAME
 | |
|                         Project to request authorization on. Defaults to
 | |
|                         env[OS_PROJECT_NAME].
 | |
|   --os-domain-name OS_DOMAIN_NAME
 | |
|                         Project to request authorization on. Defaults to
 | |
|                         env[OS_DOMAIN_NAME].
 | |
|   --os-domain-id OS_DOMAIN_ID
 | |
|                         Defaults to env[OS_DOMAIN_ID].
 | |
|   --os-project-id OS_PROJECT_ID
 | |
|                         Project to request authorization on. Defaults to
 | |
|                         env[OS_PROJECT_ID].
 | |
|   --os-project-domain-id OS_PROJECT_DOMAIN_ID
 | |
|                         Defaults to env[OS_PROJECT_DOMAIN_ID].
 | |
|   --os-project-domain-name OS_PROJECT_DOMAIN_NAME
 | |
|                         Defaults to env[OS_PROJECT_DOMAIN_NAME].
 | |
|   --os-auth-url OS_AUTH_URL
 | |
|                         Specify the Identity endpoint to use for
 | |
|                         authentication. Defaults to env[OS_AUTH_URL].
 | |
|   --os-region-name OS_REGION_NAME
 | |
|                         Specify the region to use. Defaults to
 | |
|                         env[OS_REGION_NAME].
 | |
|   --os-token OS_TOKEN   Specify an existing token to use instead of retrieving
 | |
|                         one via authentication (e.g. with username &
 | |
|                         password). Defaults to env[OS_SERVICE_TOKEN].
 | |
|   --os-endpoint OS_ENDPOINT
 | |
|                         Specify an endpoint to use instead of retrieving one
 | |
|                         from the service catalog (via authentication).
 | |
|                         Defaults to env[OS_DNS_ENDPOINT].
 | |
|   --os-endpoint-type OS_ENDPOINT_TYPE
 | |
|                         Defaults to env[OS_ENDPOINT_TYPE].
 | |
|   --os-service-type OS_SERVICE_TYPE
 | |
|                         Defaults to env[OS_DNS_SERVICE_TYPE], or 'dns'.
 | |
|   --os-cacert OS_CACERT
 | |
|                         CA certificate bundle file. Defaults to
 | |
|                         env[OS_CACERT].
 | |
|   --insecure            Explicitly allow 'insecure' SSL requests.
 | |
|   --all-tenants         Allows to list all domains from all tenants.
 | |
|   --edit-managed        Allows to edit records that are marked as managed.
 | |
| 
 | |
| 
 | |
| Commands:
 | |
|   complete       print bash completion command
 | |
|   diagnostics-ping  Ping a service on a given host
 | |
|   domain-create  Create Domain
 | |
|   domain-delete  Delete Domain
 | |
|   domain-get     Get Domain
 | |
|   domain-list    List Domains
 | |
|   domain-servers-list  List Domain Servers
 | |
|   domain-update  Update Domain
 | |
|   help           print detailed help for another command
 | |
|   quota-get      Get Quota
 | |
|   quota-reset    Reset Quota
 | |
|   quota-update   Update Quota
 | |
|   record-create  Create Record
 | |
|   record-delete  Delete Record
 | |
|   record-get     Get Record
 | |
|   record-list    List Records
 | |
|   record-update  Update Record
 | |
|   report-count-all  Get count totals for all tenants, domains and records
 | |
|   report-count-domains  Get counts for total domains
 | |
|   report-count-records  Get counts for total records
 | |
|   report-count-tenants  Get counts for total tenants
 | |
|   report-tenant-domains  Get a list of domains for given tenant
 | |
|   report-tenants-all  Get list of tenants and domain count for each
 | |
|   server-create  Create Server
 | |
|   server-delete  Delete Server
 | |
|   server-get     Get Server
 | |
|   server-list    List Servers
 | |
|   server-update  Update Server
 | |
|   sync-all       Sync Everything
 | |
|   sync-domain    Sync a single Domain
 | |
|   sync-record    Sync a single Record
 | |
|   touch-domain   Touch a single Domain
 | |
| 
 | |
| .. _REST API create-domain: https://designate.readthedocs.org/en/latest/rest/domains.html#create-domain
 |