quantum command line failed with 404 error

Asked by terryg2012

I have a 3 nodes setup for the controller, network, and compute nodes. Many of the commands that I run on any of the nodes return the following errors (this example is using net-list):

stack@cld4b1ubuntu:~$ quantum --debug net-list
404 Not Found

The resource could not be found.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/quantumclient/shell.py", line 497, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/quantumclient/shell.py", line 50, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/common/command.py", line 35, in run
    return super(OpenStackCommand, self).run(parsed_args)
  File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 84, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/quantum/v2_0/__init__.py", line 530, in get_d
ata
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/quantum/v2_0/__init__.py", line 499, in retri
eve_list
    data = self.call_server(quantum_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/quantum/v2_0/__init__.py", line 471, in call_
server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 107, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 292, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 996, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 1009, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 982, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 967, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 912, in do_request
    self._handle_fault_response(status_code, replybody)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 893, in _handle_fault_r
esponse
    exception_handler_v20(status_code, des_error_body)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 87, in exception_handle
r_v20
    message=message)
QuantumClientException: 404 Not Found

The resource could not be found.

stack@cld4b1ubuntu:~$

Keystone is working. I am able to create volume and instance. I am also able to attach volume to the instance and to detach volume from the instance. I am also able to delete volume and to terminate the instance. I am not able to do anything with the network using quantum. I keep getting the 404 error. All the above operations were done using the command line utilities.

Anyone have any ideas on how to troubleshoot this problem?

Question information

Language:
English Edit question
Status:
Solved
For:
neutron Edit question
Assignee:
No assignee Edit question
Solved by:
Eugene Nikanorov
Solved:
Last query:
Last reply:
Revision history for this message
Eugene Nikanorov (enikanorov) said :
#1

How do you run quantum client? could you provide your env or command line?

Revision history for this message
Aaron Rosen (arosen) said :
#2

Actually i think this is an issue of how you are running the server what are you passing to that. Also did you set core_plugin in quantum.conf?

Revision history for this message
Eugene Nikanorov (enikanorov) said :
#3

Quantum server would not start without core_plugin properly set.

I've seen same error once when I passed incorrect endpoint to quantum client.

Revision history for this message
yong sheng gong (gongysh) said :
#4

run 'quantum -v net-list' it will print out the URL it is using.

Revision history for this message
terryg2012 (terry-gong) said :
#5

My controller node IP address is 10.10.22.225 which is using the Ubuntu 12.04 server OS.

 ======================================================================================
env output:
SHELL=/bin/bash
TERM=screen
SSH_CLIENT=10.10.27.59 50118 22
SSH_TTY=/dev/pts/1
NO_PROXY=localhost,127.0.0.1,localaddress,.localdomain.com,10.10.22.225
USER=stack
http_proxy=http://web-proxy.rose.hp.com:8080/
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;0
1:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31
:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=0
1;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.d
eb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=0
1;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35
:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.
svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mk
v=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=0
1;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35
:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx
=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00
;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*
.xspf=00;36:
TERMCAP=SC|screen|VT 100/ANSI X3.64 virtual terminal:\
        :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
        :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
        :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
        :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\
        :li#43:co#100:am:xn:xv:LP:sr=\EM:al=\E[L:AL=\E[%dL:\
        :dl=\E[M:DL=\E[%dM:dc=\E[P:DC=\E[%dP:im=\E[4h:ei=\E[4l:\
        :mi:IC=\E[%d@:ks=\E[?1h\E=:ke=\E[?1l\E>:vi=\E[?25l:\
        :ve=\E[34h\E[?25h:vs=\E[34l:ti=\E[?1049h:te=\E[?1049l:\
        :us=\E[4m:ue=\E[24m:so=\E[3m:se=\E[23m:md=\E[1m:\
        :mr=\E[7m:me=\E[m:ms:\
        :Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\
        :as=\E(0:ae=\E(B:\
        :ac=\140\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\
        :k0=\E[10~:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:\
        :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
        :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
        :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
        :kb=^H:K2=\E[G:kh=\E[1~:@1=\E[1~:kH=\E[4~:@7=\E[4~:\
        :kN=\E[6~:kP=\E[5~:kI=\E[2~:kD=\E[3~:ku=\EOA:kd=\EOB:\
        :kr=\EOC:kl=\EOD:
ftp_proxy=http://web-proxy.rose.hp.com:8080/
FTP_PROXY=http://web-proxy.rose.hp.com:8080/
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
MAIL=/var/mail/stack
STY=3080.pts-1.cld4b1ubuntu
PWD=/home/stack
OS_PASSWORD=hpinvent
LANG=en_US.UTF-8
OS_AUTH_URL=http://10.10.22.225:5000/v2.0/
https_proxy=http://web-proxy.rose.hp.com:8080/
HTTPS_PROXY=http://web-proxy.rose.hp.com:8080/
HOME=/home/stack
SHLVL=2
OS_USERNAME=admin
no_proxy=localhost,127.0.0.1,localaddress,.localdomain.com,10.10.22.225
HTTP_PROXY=http://web-proxy.rose.hp.com:8080/
OS_TENANT_NAME=admin
LOGNAME=stack
WINDOW=0
SSH_CONNECTION=10.10.27.59 50118 10.10.22.225 22
LESSOPEN=| /usr/bin/lesspipe %s
SERVICE_ENDPOINT=http://10.10.22.225:35357/v2.0/
SERVICE_TOKEN=admin
LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/env
stack@cld4b1ubuntu:~$

=============================================================================================
Command line executed:
quantum --debug net-list
which is visible in the above original description.

============================================================================================
The core_plugin in quantum.conf is set. Here is /etc/quantum/quantum.conf content:
root@cld4b1ubuntu:/etc/quantum# cat quantum.conf
[DEFAULT]
# Default log level is INFO
# verbose and debug has the same result.
# One of them will set DEBUG log level output
# debug = False
# verbose = False
debug = True
verbose = True

# Where to store Quantum state files. This directory must be writable by the
# user executing the agent.
# state_path = /var/lib/quantum

log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s
log_date_format = %Y-%m-%d %H:%M:%S

# use_syslog -> syslog
# log_file and log_dir -> log_dir/log_file
# (not log_file) and log_dir -> log_dir/{binary_name}.log
# use_stderr -> stderr
# (not user_stderr) and (not log_file) -> stdout
# publish_errors -> notification system

# use_syslog = False
# syslog_log_facility = LOG_USER

# use_stderr = True
log_file = quantumdebug.log
log_dir = /var/log/quantum

# publish_errors = False

# Address to bind the API server
bind_host = 0.0.0.0

# Port the bind the API server to
bind_port = 9696

# Path to the extensions. Note that this can be a colon-separated list of
# paths. For example:
# api_extensions_path = extensions:/path/to/more/extensions:/even/more/extensions
# The __path__ of quantum.extensions is appended to this, so if your
# extensions are in there you don't need to specify them here
# api_extensions_path =

# Quantum plugin provider module
# core_plugin =
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2

# Advanced service modules
# service_plugins =

# Paste configuration file
api_paste_config = /etc/quantum/api-paste.ini

# The strategy to be used for auth.
# Supported values are 'keystone'(default), 'noauth'.
# auth_strategy = keystone

# Base MAC address. The first 3 octets will remain unchanged. If the
# 4h octet is not 00, it will also used. The others will be
# randomly generated.
# 3 octet
# base_mac = fa:16:3e:00:00:00
# 4 octet
# base_mac = fa:16:3e:4f:00:00

# Maximum amount of retries to generate a unique MAC address
# mac_generation_retries = 16

# DHCP Lease duration (in seconds)
# dhcp_lease_duration = 120

# Allow sending resource operation notification to DHCP agent
# dhcp_agent_notification = True

# Enable or disable bulk create/update/delete operations
# allow_bulk = True
# Enable or disable pagination
# allow_pagination = False
# Enable or disable sorting
# allow_sorting = False
# Enable or disable overlapping IPs for subnets
# Attention: the following parameter MUST be set to False if Quantum is
# being used in conjunction with nova security groups and/or metadata service.
# allow_overlapping_ips = False
# Ensure that configured gateway is on subnet
# force_gateway_on_subnet = False

# RPC configuration options. Defined in rpc __init__
# The messaging module to use, defaults to kombu.
# rpc_backend = quantum.openstack.common.rpc.impl_kombu
# Size of RPC thread pool
# rpc_thread_pool_size = 64,
# Size of RPC connection pool
# rpc_conn_pool_size = 30
# Seconds to wait for a response from call or multicall
# rpc_response_timeout = 60
# Seconds to wait before a cast expires (TTL). Only supported by impl_zmq.
# rpc_cast_timeout = 30
# Modules of exceptions that are permitted to be recreated
# upon receiving exception data from an rpc call.
# allowed_rpc_exception_modules = quantum.openstack.common.exception, nova.exception
# AMQP exchange to connect to if using RabbitMQ or QPID
control_exchange = quantum

# If passed, use a fake RabbitMQ provider
# fake_rabbit = False

# Configuration options if sending notifications via kombu rpc (these are
# the defaults)
# SSL version to use (valid only if SSL enabled)
# kombu_ssl_version =
# SSL key file (valid only if SSL enabled)
# kombu_ssl_keyfile =
# SSL cert file (valid only if SSL enabled)
# kombu_ssl_certfile =
# SSL certification authority file (valid only if SSL enabled)'
# kombu_ssl_ca_certs =
# IP address of the RabbitMQ installation
# rabbit_host = localhost
rabbit_host = 10.10.22.225

# Password of the RabbitMQ server
# rabbit_password = guest
# Port where RabbitMQ server is running/listening
# rabbit_port = 5672
# User ID used for RabbitMQ connections
# rabbit_userid = guest
# Location of a virtual RabbitMQ installation.
# rabbit_virtual_host = /
# Maximum retries with trying to connect to RabbitMQ
# (the default of 0 implies an infinite retry count)
# rabbit_max_retries = 0
# RabbitMQ connection retry interval
# rabbit_retry_interval = 1

# QPID
# rpc_backend=quantum.openstack.common.rpc.impl_qpid
# Qpid broker hostname
# qpid_hostname = localhost
# Qpid broker port
# qpid_port = 5672
# Username for qpid connection
# qpid_username = ''
# Password for qpid connection
# qpid_password = ''
# Space separated list of SASL mechanisms to use for auth
# qpid_sasl_mechanisms = ''
# Seconds between connection keepalive heartbeats
# qpid_heartbeat = 60
# Transport to use, either 'tcp' or 'ssl'
# qpid_protocol = tcp
# Disable Nagle algorithm
# qpid_tcp_nodelay = True

# ZMQ
# rpc_backend=quantum.openstack.common.rpc.impl_zmq
# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
# The "host" option should point or resolve to this address.
# rpc_zmq_bind_address = *

# ============ Notification System Options =====================

# Notifications can be sent when network/subnet/port are create, updated or deleted.
# There are three methods of sending notifications: logging (via the
# log_file directive), rpc (via a message queue) and
# noop (no notifications sent, the default)

# Notification_driver can be defined multiple times
# Do nothing driver
# notification_driver = quantum.openstack.common.notifier.no_op_notifier
# Logging driver
# notification_driver = quantum.openstack.common.notifier.log_notifier
# RPC driver. DHCP agents needs it.
notification_driver = quantum.openstack.common.notifier.rpc_notifier

# default_notification_level is used to form actual topic name(s) or to set logging level
default_notification_level = INFO

# default_publisher_id is a part of the notification payload
# host = myhost.com
# default_publisher_id = $host

# Defined in rpc_notifier, can be comma separated values.
# The actual topic names will be %s.%(default_notification_level)s
notification_topics = notifications

# Default maximum number of items returned in a single response,
# value == infinite and value < 0 means no max limit, and value must
# greater than 0. If the number of items requested is greater than
# pagination_max_limit, server will just return pagination_max_limit
# of number of items.
# pagination_max_limit = -1

# Maximum number of DNS nameservers per subnet
# max_dns_nameservers = 5

# Maximum number of host routes per subnet
# max_subnet_host_routes = 20

# Maximum number of fixed ips per port
# max_fixed_ips_per_port = 5

# =========== items for agent management extension =============
# Seconds to regard the agent as down.
# agent_down_time = 5
# =========== end of items for agent management extension =====

# =========== items for agent scheduler extension =============
# Driver to use for scheduling network to DHCP agent
# network_scheduler_driver = quantum.scheduler.dhcp_agent_scheduler.ChanceScheduler
# Driver to use for scheduling router to a default L3 agent
# router_scheduler_driver = quantum.scheduler.l3_agent_scheduler.ChanceScheduler

# Allow auto scheduling networks to DHCP agent. It will schedule non-hosted
# networks to first DHCP agent which sends get_active_networks message to
# quantum server
# network_auto_schedule = True

# Allow auto scheduling routers to L3 agent. It will schedule non-hosted
# routers to first L3 agent which sends sync_routers message to quantum server
# router_auto_schedule = True
# =========== end of items for agent scheduler extension =====

[QUOTAS]
# resource name(s) that are supported in quota features
# quota_items = network,subnet,port

# default number of resource allowed per tenant, minus for unlimited
# default_quota = -1

# number of networks allowed per tenant, and minus means unlimited
# quota_network = 10

# number of subnets allowed per tenant, and minus means unlimited
# quota_subnet = 10

# number of ports allowed per tenant, and minus means unlimited
# quota_port = 50

# default driver to use for quota checks
# quota_driver = quantum.quota.ConfDriver

[DEFAULT_SERVICETYPE]
# Description of the default service type (optional)
# description = "default service type"
# Enter a service definition line for each advanced service provided
# by the default service type.
# Each service definition should be in the following format:
# <service>:<plugin>[:driver]

[AGENT]
# Use "sudo quantum-rootwrap /etc/quantum/rootwrap.conf" to use the real
# root filter facility.
# Change to "sudo" to skip the filtering and just run the comand directly
# root_helper = sudo
root_helper = sudo quantum-rootwrap /etc/quantum/rootwrap.conf

# =========== items for agent management extension =============
# seconds between nodes reporting state to server, should be less than
# agent_down_time
# report_interval = 4

# =========== end of items for agent management extension =====

[keystone_authtoken]
#auth_host = 127.0.0.1
auth_host = 10.10.22.225
auth_port = 35357
auth_protocol = http
#admin_tenant_name = %SERVICE_TENANT_NAME%
#admin_user = %SERVICE_USER%
#admin_password = %SERVICE_PASSWORD%
admin_tenant_name = service
admin_user = quantum
admin_password = hpinvent
signing_dir = /var/lib/quantum/keystone-signing
root@cld4b1ubuntu:/etc/quantum#

===============================================================================================
Here is content of /etc/api-paste.ini:
root@cld4b1ubuntu:/etc/quantum# cat api-paste.ini
[composite:quantum]
use = egg:Paste#urlmap
/: quantumversions
/v2.0: quantumapi_v2_0

[composite:quantumapi_v2_0]
use = call:quantum.auth:pipeline_factory
noauth = extensions quantumapiapp_v2_0
keystone = authtoken keystonecontext extensions quantumapiapp_v2_0

[filter:keystonecontext]
paste.filter_factory = quantum.auth:QuantumKeystoneContext.factory

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.22.225
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = hpinvent

[filter:extensions]
paste.filter_factory = quantum.api.extensions:plugin_aware_extension_middleware_factory

[app:quantumversions]
paste.app_factory = quantum.api.versions:Versions.factory

[app:quantumapiapp_v2_0]
paste.app_factory = quantum.api.v2.router:APIRouter.factory
root@cld4b1ubuntu:/etc/quantum#

============================================================================================
The quantum-server is started by using:
service quantum-server start

============================================================================================
Output from running "quantum -v net-list:
stack@cld4b1ubuntu:~$ quantum -v net-list
DEBUG: quantumclient.quantum.v2_0.network.ListNetwork get_data(Namespace(columns=[], fields=[], filt
er_specs=[], formatter='table', page_size=None, quote_mode='nonnumeric', request_format='json', show
_details=False, sort_dir=[], sort_key=[]))
DEBUG: quantumclient.client
REQ: curl -i http://10.10.22.225:5000/v2.0/tokens -X POST -H "Content-Type: application/json" -H "Ac
cept: application/json" -H "User-Agent: python-quantumclient" -d '{"auth": {"tenantName": "admin", "
passwordCredentials": {"username": "admin", "password": "hpinvent"}}}'

DEBUG: quantumclient.client RESP:{'date': 'Sat, 16 Mar 2013 20:19:53 GMT', 'vary': 'X-Auth-Token', '
content-length': '6851', 'status': '200', 'content-type': 'application/json'} {"access": {"token": {
"issued_at": "2013-03-16T20:19:53.182263", "expires": "2013-03-17T20:19:53Z", "id": "MIIMAAYJKoZIhvc
NAQcCoIIL8TCCC+0CAQExCTAHBgUrDgMCGjCCCtkGCSqGSIb3DQEHAaCCCsoEggrGeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N
1ZWRfYXQiOiAiMjAxMy0wMy0xNlQyMDoxOTo1My4xODIyNjMiLCAiZXhwaXJlcyI6ICIyMDEzLTAzLTE3VDIwOjE5OjUzWiIsICJ
pZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogbnVsbCwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiA
iZjY4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAibmFtZSI6ICJhZG1pbiJ9fSwgInNlcnZpY2VDYXRhbG9nIjogW3s
iZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo4Nzc0L3YyL2Y2ODhkOGY3N2RlZjQ1YmFiMjh
lYjA2ZjQwMjQ2OGFmIiwgInJlZ2lvbiI6ICJteXJlZ2lvbiIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1Ojg
3NzQvdjIvZjY4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAiaWQiOiAiYmI2YjVhZjRmMjNjNGQ2MjkwMGJkNjU0OGM
0OGEwYjgiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODc3NC92Mi9mNjg4ZDhmNzdkZWY0NWJhYjI4ZWIwNmY
0MDI0NjhhZiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJjb21wdXRlIiwgIm5hbWUiOiAibm92YSJ9LCB7ImV
uZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6OTY5Ni92MiIsICJyZWdpb24iOiAibXlyZWdpb24
iLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo5Njk2L3YyIiwgImlkIjogIjFkNmE0N2NhNjY4YzQ4MTBhNWF
mMzU5NzgxZDIwYWZjIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1Ojk2OTYvdjIifV0sICJlbmRwb2ludHNfbGl
ua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogInF1YW50dW0ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI
6ICJodHRwOi8vMTAuMTAuMjIuMjI1OjkyOTIiLCAicmVnaW9uIjogIm15cmVnaW9uIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8
xMC4xMC4yMi4yMjU6OTI5MiIsICJpZCI6ICI0ZGI1ZTZmODg1OWQ0NDc1YmFlN2I1YjNiZGI4YWE0MSIsICJwdWJsaWNVUkwiOiA
iaHR0cDovLzEwLjEwLjIyLjIyNTo5MjkyIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImltYWdlIiwgIm5hbWU
iOiAiZ2xhbmNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo4Nzc2L3YxL2Y2ODh
kOGY3N2RlZjQ1YmFiMjhlYjA2ZjQwMjQ2OGFmIiwgInJlZ2lvbiI6ICJteXJlZ2lvbiIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8
vMTAuMTAuMjIuMjI1Ojg3NzYvdjEvZjY4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAiaWQiOiAiNDJhN2E4YWJmNjU
1NGU0MDg4Njg4ODlhNDU4YjQ4NDIiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODc3Ni92MS9mNjg4ZDhmNzd
kZWY0NWJhYjI4ZWIwNmY0MDI0NjhhZiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJ2b2x1bWUiLCAibmFtZSI
6ICJ2b2x1bWUifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1Ojg3NzMvc2VydmljZXM
vQWRtaW4iLCAicmVnaW9uIjogIm15cmVnaW9uIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODc3My9zZXJ
2aWNlcy9DbG91ZCIsICJpZCI6ICI2MmE5MDJiMzYxNzM0MmQ0YjcyMmVlYjcyZTVlMjE5ZCIsICJwdWJsaWNVUkwiOiAiaHR0cDo
vLzEwLjEwLjIyLjIyNTo4NzczL3NlcnZpY2VzL0Nsb3VkIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImVjMiI
sICJuYW1lIjogImVjMiJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODA4MC92MSI
sICJyZWdpb24iOiAibXlyZWdpb24iLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo4MDgwL3YxL0FVVEhfZjY
4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAiaWQiOiAiMjY3NzFkYTkzN2Y0NDIyOGE5NzQzYmVjZTZjZjcyZGEiLCA
icHVibGljVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODA4MC92MS9BVVRIX2Y2ODhkOGY3N2RlZjQ1YmFiMjhlYjA2ZjQwMjQ
2OGFmIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm9iamVjdC1zdG9yZSIsICJuYW1lIjogInN3aWZ0In0sIHs
iZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTozNTM1Ny92Mi4wIiwgInJlZ2lvbiI6ICJteXJ
lZ2lvbiIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1OjUwMDAvdjIuMCIsICJpZCI6ICIxNmUwMzc2MzA5NjQ
0ZmY5ODNkNjE3NDQwOWEyNTNjYyIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo1MDAwL3YyLjAifV0sICJlbmR
wb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaWRlbnRpdHkiLCAibmFtZSI6ICJrZXlzdG9uZSJ9XSwgInVzZXIiOiB7InVzZXJ
uYW1lIjogImFkbWluIiwgInJvbGVzX2xpbmtzIjogW10sICJpZCI6ICI2NTFiMWVhMWNjYzk0NDAwODJjNDI4NGVjMzY3NTlmYiI
sICJyb2xlcyI6IFt7Im5hbWUiOiAiYWRtaW4ifSwgeyJuYW1lIjogIk1lbWJlciJ9XSwgIm5hbWUiOiAiYWRtaW4ifSwgIm1ldGF
kYXRhIjogeyJpc19hZG1pbiI6IDAsICJyb2xlcyI6IFsiNzczZWVjYzQxNzFiNDM0YWEwMTY0MDdkMjk0ZjFmN2MiLCAiOGM4ZDM
1NmQyMjIzNDdjZjhhNmNkMmI3ODQ3NTFjMTciXX19fTGB-zCB-AIBATBcMFcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVVbnNldDE
OMAwGA1UEBxMFVW5zZXQxDjAMBgNVBAoTBVVuc2V0MRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20CAQEwBwYFKw4DAhowDQYJKoZ
IhvcNAQEBBQAEgYBPxQIeJg5GFBZpNwqVGiLTLjBJ-pjgrGML8zRsUKb2k62t1d0r73jLjE5qB33R1Dqleg72cnvuk9pI24E4f+F
IKSzQjAvmjpRzJ5uPM8QfvDfK1x-V+Ml+XeTX+xd1UEZ5-E8VLizI5so9VwAFEExdXWlaAIUnsOaPhy3TvppTzw==", "tenant"
: {"description": null, "enabled": true, "id": "f688d8f77def45bab28eb06f402468af", "name": "admin"}}
, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.10.22.225:8774/v2/f688d8f77def45bab28eb0
6f402468af", "region": "myregion", "internalURL": "http://10.10.22.225:8774/v2/f688d8f77def45bab28eb
06f402468af", "id": "bb6b5af4f23c4d62900bd6548c48a0b8", "publicURL": "http://10.10.22.225:8774/v2/f6
88d8f77def45bab28eb06f402468af"}], "endpoints_links": [], "type": "compute", "name": "nova"}, {"endp
oints": [{"adminURL": "http://10.10.22.225:9696/v2", "region": "myregion", "internalURL": "http://10
.10.22.225:9696/v2", "id": "1d6a47ca668c4810a5af359781d20afc", "publicURL": "http://10.10.22.225:969
6/v2"}], "endpoints_links": [], "type": "network", "name": "quantum"}, {"endpoints": [{"adminURL": "
http://10.10.22.225:9292", "region": "myregion", "internalURL": "http://10.10.22.225:9292", "id": "4
db5e6f8859d4475bae7b5b3bdb8aa41", "publicURL": "http://10.10.22.225:9292"}], "endpoints_links": [],
"type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://10.10.22.225:8776/v1/f688d8f
77def45bab28eb06f402468af", "region": "myregion", "internalURL": "http://10.10.22.225:8776/v1/f688d8
f77def45bab28eb06f402468af", "id": "42a7a8abf6554e408868889a458b4842", "publicURL": "http://10.10.22
.225:8776/v1/f688d8f77def45bab28eb06f402468af"}], "endpoints_links": [], "type": "volume", "name": "
volume"}, {"endpoints": [{"adminURL": "http://10.10.22.225:8773/services/Admin", "region": "myregion
", "internalURL": "http://10.10.22.225:8773/services/Cloud", "id": "62a902b3617342d4b722eeb72e5e219d
", "publicURL": "http://10.10.22.225:8773/services/Cloud"}], "endpoints_links": [], "type": "ec2", "
name": "ec2"}, {"endpoints": [{"adminURL": "http://10.10.22.225:8080/v1", "region": "myregion", "int
ernalURL": "http://10.10.22.225:8080/v1/AUTH_f688d8f77def45bab28eb06f402468af", "id": "26771da937f44
228a9743bece6cf72da", "publicURL": "http://10.10.22.225:8080/v1/AUTH_f688d8f77def45bab28eb06f402468a
f"}], "endpoints_links": [], "type": "object-store", "name": "swift"}, {"endpoints": [{"adminURL": "
http://10.10.22.225:35357/v2.0", "region": "myregion", "internalURL": "http://10.10.22.225:5000/v2.0
", "id": "16e0376309644ff983d6174409a253cc", "publicURL": "http://10.10.22.225:5000/v2.0"}], "endpoi
nts_links": [], "type": "identity", "name": "keystone"}], "user": {"username": "admin", "roles_links
": [], "id": "651b1ea1ccc9440082c4284ec36759fb", "roles": [{"name": "admin"}, {"name": "Member"}], "
name": "admin"}, "metadata": {"is_admin": 0, "roles": ["773eecc4171b434aa016407d294f1f7c", "8c8d356d
222347cf8a6cd2b784751c17"]}}}

DEBUG: quantumclient.client
REQ: curl -i http://10.10.22.225:9696/v2/v2.0/networks.json -X GET -H "User-Agent: python-quantumcli
ent" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: MIIMAAYJKoZ
IhvcNAQcCoIIL8TCCC+0CAQExCTAHBgUrDgMCGjCCCtkGCSqGSIb3DQEHAaCCCsoEggrGeyJhY2Nlc3MiOiB7InRva2VuIjogeyJ
pc3N1ZWRfYXQiOiAiMjAxMy0wMy0xNlQyMDoxOTo1My4xODIyNjMiLCAiZXhwaXJlcyI6ICIyMDEzLTAzLTE3VDIwOjE5OjUzWiI
sICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogbnVsbCwgImVuYWJsZWQiOiB0cnVlLCAiaWQ
iOiAiZjY4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAibmFtZSI6ICJhZG1pbiJ9fSwgInNlcnZpY2VDYXRhbG9nIjo
gW3siZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo4Nzc0L3YyL2Y2ODhkOGY3N2RlZjQ1YmF
iMjhlYjA2ZjQwMjQ2OGFmIiwgInJlZ2lvbiI6ICJteXJlZ2lvbiIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI
1Ojg3NzQvdjIvZjY4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAiaWQiOiAiYmI2YjVhZjRmMjNjNGQ2MjkwMGJkNjU
0OGM0OGEwYjgiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODc3NC92Mi9mNjg4ZDhmNzdkZWY0NWJhYjI4ZWI
wNmY0MDI0NjhhZiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJjb21wdXRlIiwgIm5hbWUiOiAibm92YSJ9LCB
7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6OTY5Ni92MiIsICJyZWdpb24iOiAibXlyZWd
pb24iLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo5Njk2L3YyIiwgImlkIjogIjFkNmE0N2NhNjY4YzQ4MTB
hNWFmMzU5NzgxZDIwYWZjIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1Ojk2OTYvdjIifV0sICJlbmRwb2ludHN
fbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogInF1YW50dW0ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblV
STCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1OjkyOTIiLCAicmVnaW9uIjogIm15cmVnaW9uIiwgImludGVybmFsVVJMIjogImh0dHA
6Ly8xMC4xMC4yMi4yMjU6OTI5MiIsICJpZCI6ICI0ZGI1ZTZmODg1OWQ0NDc1YmFlN2I1YjNiZGI4YWE0MSIsICJwdWJsaWNVUkw
iOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo5MjkyIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImltYWdlIiwgIm5
hbWUiOiAiZ2xhbmNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo4Nzc2L3YxL2Y
2ODhkOGY3N2RlZjQ1YmFiMjhlYjA2ZjQwMjQ2OGFmIiwgInJlZ2lvbiI6ICJteXJlZ2lvbiIsICJpbnRlcm5hbFVSTCI6ICJodHR
wOi8vMTAuMTAuMjIuMjI1Ojg3NzYvdjEvZjY4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAiaWQiOiAiNDJhN2E4YWJ
mNjU1NGU0MDg4Njg4ODlhNDU4YjQ4NDIiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODc3Ni92MS9mNjg4ZDh
mNzdkZWY0NWJhYjI4ZWIwNmY0MDI0NjhhZiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJ2b2x1bWUiLCAibmF
tZSI6ICJ2b2x1bWUifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1Ojg3NzMvc2Vydml
jZXMvQWRtaW4iLCAicmVnaW9uIjogIm15cmVnaW9uIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODc3My9
zZXJ2aWNlcy9DbG91ZCIsICJpZCI6ICI2MmE5MDJiMzYxNzM0MmQ0YjcyMmVlYjcyZTVlMjE5ZCIsICJwdWJsaWNVUkwiOiAiaHR
0cDovLzEwLjEwLjIyLjIyNTo4NzczL3NlcnZpY2VzL0Nsb3VkIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImV
jMiIsICJuYW1lIjogImVjMiJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODA4MC9
2MSIsICJyZWdpb24iOiAibXlyZWdpb24iLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo4MDgwL3YxL0FVVEh
fZjY4OGQ4Zjc3ZGVmNDViYWIyOGViMDZmNDAyNDY4YWYiLCAiaWQiOiAiMjY3NzFkYTkzN2Y0NDIyOGE5NzQzYmVjZTZjZjcyZGE
iLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC4xMC4yMi4yMjU6ODA4MC92MS9BVVRIX2Y2ODhkOGY3N2RlZjQ1YmFiMjhlYjA2ZjQ
wMjQ2OGFmIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm9iamVjdC1zdG9yZSIsICJuYW1lIjogInN3aWZ0In0
sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTozNTM1Ny92Mi4wIiwgInJlZ2lvbiI6ICJ
teXJlZ2lvbiIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTAuMTAuMjIuMjI1OjUwMDAvdjIuMCIsICJpZCI6ICIxNmUwMzc2MzA
5NjQ0ZmY5ODNkNjE3NDQwOWEyNTNjYyIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjEwLjIyLjIyNTo1MDAwL3YyLjAifV0sICJ
lbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaWRlbnRpdHkiLCAibmFtZSI6ICJrZXlzdG9uZSJ9XSwgInVzZXIiOiB7InV
zZXJuYW1lIjogImFkbWluIiwgInJvbGVzX2xpbmtzIjogW10sICJpZCI6ICI2NTFiMWVhMWNjYzk0NDAwODJjNDI4NGVjMzY3NTl
mYiIsICJyb2xlcyI6IFt7Im5hbWUiOiAiYWRtaW4ifSwgeyJuYW1lIjogIk1lbWJlciJ9XSwgIm5hbWUiOiAiYWRtaW4ifSwgIm1
ldGFkYXRhIjogeyJpc19hZG1pbiI6IDAsICJyb2xlcyI6IFsiNzczZWVjYzQxNzFiNDM0YWEwMTY0MDdkMjk0ZjFmN2MiLCAiOGM
4ZDM1NmQyMjIzNDdjZjhhNmNkMmI3ODQ3NTFjMTciXX19fTGB-zCB-AIBATBcMFcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVVbnN
ldDEOMAwGA1UEBxMFVW5zZXQxDjAMBgNVBAoTBVVuc2V0MRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20CAQEwBwYFKw4DAhowDQY
JKoZIhvcNAQEBBQAEgYBPxQIeJg5GFBZpNwqVGiLTLjBJ-pjgrGML8zRsUKb2k62t1d0r73jLjE5qB33R1Dqleg72cnvuk9pI24E
4f+FIKSzQjAvmjpRzJ5uPM8QfvDfK1x-V+Ml+XeTX+xd1UEZ5-E8VLizI5so9VwAFEExdXWlaAIUnsOaPhy3TvppTzw=="

DEBUG: quantumclient.client RESP:{'date': 'Sat, 16 Mar 2013 20:19:53 GMT', 'status': '404', 'content
-length': '52', 'content-type': 'text/plain; charset=UTF-8'} 404 Not Found

The resource could not be found.

DEBUG: quantumclient.v2_0.client Error message: 404 Not Found

The resource could not be found.

ERROR: quantumclient.shell 404 Not Found

The resource could not be found.

DEBUG: quantumclient.shell clean_up ListNetwork
DEBUG: quantumclient.shell got an error: 404 Not Found

The resource could not be found.

stack@cld4b1ubuntu:~$

Revision history for this message
Best Eugene Nikanorov (enikanorov) said :
#6

The url http://10.10.22.225:9696/v2/v2.0/networks.json is not a part of quantum API, so you're getting 404.
This url is used because incorrect endpoint was specified for quantum service in keystone.
Correct one would be http://10.10.22.225:9696/v2.0/networks.json

See the part of your data:
[{"adminURL": "http://10.10.22.225:9696/v2", "region": "myregion", "internalURL": "http://10
.10.22.225:9696/v2", "id": "1d6a47ca668c4810a5af359781d20afc", "publicURL": "http://10.10.22.225:969
6/v2"}], "endpoints_links": [], "type": "network", "name": "quantum"}

urls should be http://10.10.22.225:9696/, not http://10.10.22.225:9696/v2

You need to recreate your quantum endpoint using
keystone endpoint-delete
keystone endpoint-create

Revision history for this message
terryg2012 (terry-gong) said :
#7

Thanks Eugene Nikanorov, that solved my question.

Revision history for this message
terryg2012 (terry-gong) said :
#8

Various documents need to be updated with the correct example. For example, at URL and its corresponding PDF:

http://docs.openstack.org/trunk/openstack-compute/install/apt/content/osfolubuntu-identityservice.html

shows the following for creating the quantum endpoint:

$ keystone endpoint-create --region myregion --service-id 59877a8f97f04a2aad1e8164e14d7450 --publicurl "http://172.16.30.20:9696/v2" --adminurl "http://10.211.55.20:9696/v2" --internalurl "http://10.211.55.20:9696/v2"

which should be:

$ keystone endpoint-create --region myregion --service-id 59877a8f97f04a2aad1e8164e14d7450 --publicurl "http://172.16.30.20:9696" --adminurl "http://10.211.55.20:9696" --internalurl "http://10.211.55.20:9696"

Revision history for this message
yong sheng gong (gongysh) said :
#9