[openstack-dev] [tricircle] playing tricircle with two node configuration
Vega Cai
luckyvega.g at gmail.com
Mon Mar 28 06:54:56 UTC 2016
Hi Yipei,
Check "network_api_class" and "use_neutron" options in your nova.conf. It
seems that your nova API is not configured to use neutron.
BR
Zhiyuan
On 28 March 2016 at 13:25, Yipei Niu <newypei at gmail.com> wrote:
> Hi, all,
>
> After I execute the command "nova boot --flavor 1 --image
> c30b097c-b185-4f70-9fcd-09ffdaee5793 --nic
> net-id=a9059cde-3065-4615-859a-facd6aa66b76 --availability-zone az1 vm1",
> there exist some problem with the argument port. In t-ngw.log, I find that
> the status of port switches from ACTIVE to DOWN, which is marked as bold
> below. Is it the reason why I failed to boot a VM?
>
> 2016-03-28 11:49:44.026 ^[[00;32mDEBUG neutronclient.client
> [^[[01;36mreq-414f74df-019a-425c-8d49-a081706b2bd4 ^[[00;36madmin
> admin^[[00;32m] ^[[01;35m^[[00;32mREQ: curl -i
> http://192.168.56.101:9696//v2.0/ports.json -X POST -H "User-Agent:
> python-neutronclient" -H "X-Auth-Token: 7cfcfb91173a4920adaf24db7eebd773"
> -d '{"port": {"network_id": "a9059cde-3065-4615-859a-facd6aa66b76",
> "admin_state_up": true}}'^[[00m ^[[00;33mfrom (pid=17537) http_log_req
> /usr/local/lib/python2.7/dist-packages/neutronclient/common/utils.py:141^[[00m
> 2016-03-28 11:49:44.254 ^[[00;32mDEBUG neutronclient.client
> [^[[01;36mreq-414f74df-019a-425c-8d49-a081706b2bd4 ^[[00;36madmin
> admin^[[00;32m] ^[[01;35m^[[00;32mRESP: 201 {'Date': 'Mon, 28 Mar 2016
> 03:49:44 GMT', 'Connection': 'keep-alive', 'Content-Type':
> 'application/json; charset=UTF-8', 'Content-Length': '384',
> 'X-Openstack-Request-Id': 'req-b824dc9e-2fcf-4922-96a5-83beb1f0bff3'}
> {"port": {*"status": "ACTIVE"*, "name": "", "admin_state_up": true,
> "network_id": "a9059cde-3065-4615-859a-facd6aa66b76", "tenant_id":
> "29a524d386754a94850277afea1e569f", "device_owner": "", "mac_address":
> "fa:16:3e:11:bd:09", "fixed_ips": [{"subnet_id":
> "2bb5f6fd-01b5-4ad3-ac41-eb8a89a6323d", "ip_address": "10.0.8.5"}], "id":
> "e27dc15d-188f-4d60-a38c-f48052d6330b", "device_id": ""}}^[[00m
> ^[[00;33mfrom (pid=17537) http_log_resp
> /usr/local/lib/python2.7/dist-packages/neutronclient/common/utils.py:150^[[00m
> 2016-03-28 11:49:44.277 ^[[00;32mDEBUG neutronclient.client
> [^[[01;36mreq-414f74df-019a-425c-8d49-a081706b2bd4 ^[[00;36madmin
> admin^[[00;32m] ^[[01;35m^[[00;32mREQ: curl -i
> http://192.168.56.101:20001//v2.0/ports.json -X POST -H "User-Agent:
> python-neutronclient" -H "X-Auth-Token: 7cfcfb91173a4920adaf24db7eebd773"
> -d '{"port": {"name": "e27dc15d-188f-4d60-a38c-f48052d6330b",
> "admin_state_up": true, "network_id":
> "25ebd3c0-ae47-4e77-be35-16d815bffe5c", "tenant_id":
> "29a524d386754a94850277afea1e569f", "mac_address": "fa:16:3e:11:bd:09",
> "fixed_ips": [{"subnet_id": "fd1abd0d-9398-4848-a3cf-57858868a480",
> "ip_address": "10.0.8.5"}]}}'^[[00m ^[[00;33mfrom (pid=17537) http_log_req
> /usr/local/lib/python2.7/dist-packages/neutronclient/common/utils.py:141^[[00m
> 2016-03-28 11:49:44.669 ^[[00;32mDEBUG neutronclient.client
> [^[[01;36mreq-414f74df-019a-425c-8d49-a081706b2bd4 ^[[00;36madmin
> admin^[[00;32m] ^[[01;35m^[[00;32mRESP: 201 {'Date': 'Mon, 28 Mar 2016
> 03:49:44 GMT', 'Connection': 'keep-alive', 'Content-Type':
> 'application/json; charset=UTF-8', 'Content-Length': '808',
> 'X-Openstack-Request-Id': 'req-d286f85c-bc4b-4d7c-9915-666fe13b48b5'}
> {"port": {*"status": "DOWN"*, "binding:host_id": "",
> "allowed_address_pairs": [], "dns_assignment": [{"hostname":
> "host-10-0-8-5", "ip_address": "10.0.8.5", "fqdn":
> "host-10-0-8-5.openstacklocal."}], "device_owner": "", "binding:profile":
> {}, "port_security_enabled": true, "fixed_ips": [{"subnet_id":
> "fd1abd0d-9398-4848-a3cf-57858868a480", "ip_address": "10.0.8.5"}], "id":
> "0bbf77a4-c4e4-43ad-89a0-e55f053ef4da", "security_groups":
> ["16f02958-2a4f-4f58-b560-b9fa76be1b0c"], "device_id": "", "name":
> "e27dc15d-188f-4d60-a38c-f48052d6330b", "admin_state_up": true,
> "network_id": "25ebd3c0-ae47-4e77-be35-16d815bffe5c", "dns_name": "",
> "binding:vif_details": {}, "binding:vnic_type": "normal",
> "binding:vif_type": "unbound", "tenant_id":
> "29a524d386754a94850277afea1e569f", "mac_address":
> "fa:16:3e:11:bd:09"}}^[[00m ^[[00;33mfrom (pid=17537) http_log_resp
> /usr/local/lib/python2.7/dist-packages/neutronclient/common/utils.py:150^[[00m
> 2016-03-28 11:49:44.810 ^[[00;36mINFO eventlet.wsgi.server
> [^[[01;36mreq-414f74df-019a-425c-8d49-a081706b2bd4 ^[[00;36madmin
> admin^[[00;36m] ^[[01;35m^[[00;36mTraceback (most recent call last):
> File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line
> 454, in handle_one_response
> result = self.application(self.environ, start_response)
> File
> "/usr/local/lib/python2.7/dist-packages/pecan/middleware/recursive.py",
> line 56, in __call__
> return self.application(environ, start_response)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
> __call__
> resp = self.call_func(req, *args, **self.kwargs)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
> call_func
> return self.func(req, *args, **kwargs)
> File
> "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py",
> line 456, in __call__
> response = req.get_response(self._app)
> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line
> 1317, in send
> application, catch_exc_info=False)
> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line
> 1281, in call_application
> app_iter = application(self.environ, start_response)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
> __call__
> resp = self.call_func(req, *args, **self.kwargs)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
> call_func
> return self.func(req, *args, **kwargs)
> File
> "/usr/local/lib/python2.7/dist-packages/oslo_middleware/request_id.py",
> line 37, in __call__
> response = req.get_response(self.application)
> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line
> 1317, in send
> application, catch_exc_info=False)
> File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line
> 454, in handle_one_response
> result = self.application(self.environ, start_response)
> File
> "/usr/local/lib/python2.7/dist-packages/pecan/middleware/recursive.py",
> line 56, in __call__
> return self.application(environ, start_response)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
> __call__
> resp = self.call_func(req, *args, **self.kwargs)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
> call_func
> return self.func(req, *args, **kwargs)
> File
> "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py",
> line 456, in __call__
> response = req.get_response(self._app)
> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line
> 1317, in send
> application, catch_exc_info=False)
> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line
> 1281, in call_application
> app_iter = application(self.environ, start_response)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
> __call__
> resp = self.call_func(req, *args, **self.kwargs)
> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
> call_func
> return self.func(req, *args, **kwargs)
> File
> "/usr/local/lib/python2.7/dist-packages/oslo_middleware/request_id.py",
> line 37, in __call__
> response = req.get_response(self.application)
> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line
> 1317, in send
> application, catch_exc_info=False)
> return self.func(req, *args, **kwargs)
> File
> "/usr/local/lib/python2.7/dist-packages/oslo_middleware/request_id.py",
> line 37, in __call__
> response = req.get_response(self.application)
> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line
> 1317, in send
> application, catch_exc_info=False)
> File "/usr/local/lib/python2.7/dist-packages/pecan/core.py", line 829,
> in __call__
> return super(Pecan, self).__call__(environ, start_response)
> File "/usr/local/lib/python2.7/dist-packages/pecan/core.py", line 678,
> in __call__
> self.invoke_controller(controller, args, kwargs, state)
> File "/usr/local/lib/python2.7/dist-packages/pecan/core.py", line 572,
> in invoke_controller
> result = controller(*args, **kwargs)
> File "/opt/stack/tricircle/tricircle/nova_apigw/controllers/server.py",
> line 376, in post
> nics=nics)
> File "/opt/stack/tricircle/tricircle/common/client.py", line 87, in
> handle_args
> return func(*args, **kwargs)
> File "/opt/stack/tricircle/tricircle/common/client.py", line 358, in
> create_resources
> return handle.handle_create(cxt, resource, *args, **kwargs)
> File "/opt/stack/tricircle/tricircle/common/resource_handle.py", line
> 227, in handle_create
> *args, **kwargs).to_dict()
> File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py",
> line 1038, in create
> **boot_kwargs)
> File "/usr/local/lib/python2.7/dist-packages/novaclient/v2/servers.py",
> line 555, in _boot
> return_raw=return_raw, **kwargs)
> File "/usr/local/lib/python2.7/dist-packages/novaclient/base.py", line
> 302, in _create
> _resp, body = self.api.client.post(url, body=body)
> File "/usr/local/lib/python2.7/dist-packages/novaclient/client.py", line
> 451, in post
> return self._cs_request(url, 'POST', **kwargs)
> File "/usr/local/lib/python2.7/dist-packages/novaclient/client.py", line
> 426, in _cs_request
> resp, body = self._time_request(url, method, **kwargs)
> File "/usr/local/lib/python2.7/dist-packages/novaclient/client.py", line
> 399, in _time_request
> resp, body = self.request(url, method, **kwargs)
> File "/usr/local/lib/python2.7/dist-packages/novaclient/client.py", line
> 393, in request
> raise exceptions.from_response(resp, body, url, method)
> *BadRequest: Unknown argument: port (HTTP 400)* (Request-ID:
> req-d6719f21-ee97-49ed-a058-a303b16abcf1)
> ^[[00m
> 2016-03-28 11:49:44.814 ^[[00;36mINFO eventlet.wsgi.server
> [^[[01;36mreq-414f74df-019a-425c-8d49-a081706b2bd4 ^[[00;36madmin
> admin^[[00;36m] ^[[01;35m^[[00;36m192.168.56.101 "POST
> /v2.1/29a524d386754a94850277afea1e569f/servers HTTP/1.1" status: 500 len:
> 139 time: 2.1919141^[[00m
>
> Best regards,
> Yipei
>
> On Wed, Mar 23, 2016 at 1:19 PM, Shinobu Kinjo <shinobu.kj at gmail.com>
> wrote:
>
>> On Wed, Mar 23, 2016 at 12:41 PM, joehuang <joehuang at huawei.com> wrote:
>> > Hi, Yipei,
>> >
>> >
>> >
>> > When you play Tricircle, it’s important to know that Tricircle is the
>> > OpenStack API gateway to other OpenStack instances. In the Readme, Pod1,
>> > Pod2 are two OpenStack instances, before trying Tricircle, you can make
>> sure
>> > the environment is normal or not by executeing command separately on
>> Pod1,
>> > Pod2, just Nova –os-region-name Pod1, or Nova –os-region-name Pod2, in
>> > fact, because Pod1,Pod2 are two normal OpenStack instances, any command
>> to
>> > Pod1,Pod2 should be successful. Otherwise that means there are some
>> issue
>> > in the installation of the environment itself. Only when each bottom
>> > OpenStack can work correctly, then you can even manually add Tricircle,
>> or
>> > through the scripts in the github to install Tircircle automaticly, as
>> the
>> > API gateway to Pod1 and Pod2, just like you add one load balancer before
>> > your multiple web servers.
>>
>> Yeah, above explanation is really essential for the tricircle.
>>
>> >
>> >
>> >
>> > After the Tricircle was added, then the API will flow from Tricircle
>> > services like Nova-APIGW/Cinder-APIGW/Neutron API to the bottom Pod1,
>> Pod2.
>> >
>> >
>> >
>> > So if you use Nova boot, and some error happened, you can ask question:
>> >
>> > 1. Is the command sent to the Tricircle Nova-APIGW?
>> >
>> > 2. What’ll will do for the Nova-APIGW for the next step?
>> >
>> > 3. Is the API request forwarded by Tricircle correctly to the
>> proper
>> > bottom OpenStack?
>> >
>> > 4. Is the bottom OpenStack working normal even without Tricircle?
>> >
>> > 5. Is the API request forwarded by Tricircle includes the correct
>> > request content?
>> >
>> > 6. …
>> >
>> >
>> >
>> > You can carry the map before you try to fix the issue. And break down a
>> big
>> > system into smaller part, and make sure which part works fine, which
>> not in
>> > order.
>> >
>> >
>> >
>> > From the information you provided, can’t make judgment the error is
>> occurred
>> > at Tricircle services, or bottom pod, or which pod. Don’t know which
>> step
>> > the error occurred. And don’t know the request information, how the
>> > requested will be routed and processed, a lot of context needed to
>> diagnose
>> > an error.
>> >
>> >
>> >
>> > Best Regards
>> >
>> > Chaoyi Huang ( Joe Huang )
>> >
>> >
>> >
>> > From: Yipei Niu [mailto:newypei at gmail.com]
>> > Sent: Wednesday, March 23, 2016 10:36 AM
>> > To: OpenStack Development Mailing List (not for usage questions)
>> > Cc: joehuang; Zhiyuan Cai
>> > Subject: [tricircle] playing tricircle with two node configuration
>> >
>> >
>> >
>> > Hi, Joe and Zhiyuan,
>> >
>> >
>> >
>> > I have already finished installing devstack in two nodes with
>> tricircle. I
>> > encounter some errors when testing cross-pod L3 networking with
>> DevStack. I
>> > followed the README.md in github, every thing goes well until I boot
>> virtual
>> > machines with the following command:
>> >
>> >
>> >
>> > nova boot --flavor 1 --image 60a8184b-a4be-463d-a8a1-48719edc37a3 --nic
>> > net-id=76356099-f3bd-40a5-83bd-600b78b671eb --availability-zone az1 vm1
>> >
>> >
>> >
>> > The info in the terminal is as follows:
>> >
>> > Your request was processed by a Nova API which does not support
>> > microversions (X-OpenStack-Nova-API-Version header is missing from
>> > response). Warning: Response may be incorrect.
>> >
>> > Your request was processed by a Nova API which does not support
>> > microversions (X-OpenStack-Nova-API-Version header is missing from
>> > response). Warning: Response may be incorrect.
>> >
>> > Your request was processed by a Nova API which does not support
>> > microversions (X-OpenStack-Nova-API-Version header is missing from
>> > response). Warning: Response may be incorrect.
>> >
>> > ERROR (ClientException): Unknown Error (HTTP 500)
>> >
>> >
>> >
>> > I run rejoin-stack.sh and find some error in n-api screen. In
>> n-api.log, the
>> > error is as follows:
>> >
>> > 2016-03-22 19:19:38.248 ^[[01;31mERROR nova.api.openstack.extensions
>> > [^[[01;36mreq-cf58e7aa-bd7d-483f-aa57-bca5268ce963 ^[[00;36madmin
>> > admin^[[01;31m] ^[[01;35m^[[01;31mUnexpected exception in API
>> method^[[00m
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00mTraceback (most recent call last):
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File
>> "/opt/stack/nova/nova/api/openstack/extensions.py",
>> > line 478, in wrapped
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m return f(*args, **kwargs)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/api/validation/__init__.py",
>> > line 73, in wrapper
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m return func(*args, **kwargs)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/api/validation/__init__.py",
>> > line 73, in wrapper
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m return func(*args, **kwargs)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File
>> > "/opt/stack/nova/nova/api/openstack/compute/servers.py", line 604, in
>> create
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m **create_kwargs)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/hooks.py", line 149, in
>> inner
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m rv = f(*args, **kwargs)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/compute/api.py", line 1504,
>> in
>> > create
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m check_server_group_quota=check_server_group_quota)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/compute/api.py", line 1097,
>> in
>> > _create_instance
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m auto_disk_config, reservation_id, max_count)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/compute/api.py", line 871,
>> in
>> > _validate_and_build_base_options
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m pci_request_info, requested_networks)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/network/neutronv2/api.py",
>> line
>> > 981, in create_pci_requests_for_sriov_ports
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m neutron = get_client(context, admin=True)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/network/neutronv2/api.py",
>> line
>> > 149, in get_client
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m _ADMIN_AUTH = _load_auth_plugin(CONF)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m File "/opt/stack/nova/nova/network/neutronv2/api.py",
>> line
>> > 125, in _load_auth_plugin
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m raise
>> neutron_client_exc.Unauthorized(message=err_msg)
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00mUnauthorized: Unknown auth plugin: None
>> >
>> > ^[[01;31m2016-03-22 19:19:38.248 TRACE nova.api.openstack.extensions
>> > ^[[01;35m^[[00m
>> >
>> > 2016-03-22 20:04:19.992 ^[[00;36mINFO nova.api.openstack.wsgi
>> > [^[[01;36mreq-ed35efe8-5dc0-40b0-bb2b-c1a73618aa50 ^[[00;36madmin
>> > admin^[[00;36m] ^[[01;35m^[[00;36mHTTP exception thrown: Unexpected API
>> > Error. Please report this at http://bugs.launchpad.net/nova/ and
>> attach the
>> > Nova API log if possible.
>> >
>> > <class 'neutronclient.common.exceptions.Unauthorized'>^[[00m
>> >
>> > 2016-03-22 20:04:19.993 ^[[00;32mDEBUG nova.api.openstack.wsgi
>> > [^[[01;36mreq-ed35efe8-5dc0-40b0-bb2b-c1a73618aa50 ^[[00;36madmin
>> > admin^[[00;32m] ^[[01;35m^[[00;32mReturning 500 to user: Unexpected API
>> > Error. Please report this at http://bugs.launchpad.net/nova/ and
>> attach the
>> > Nova API log if possible.
>> >
>> > <class 'neutronclient.common.exceptions.Unauthorized'>^[[00m
>> ^[[00;33mfrom
>> > (pid=17273) __call__
>> /opt/stack/nova/nova/api/openstack/wsgi.py:1180^[[00m
>> >
>> > 2016-03-22 20:04:20.007 ^[[00;36mINFO nova.osapi_compute.wsgi.server
>> > [^[[01;36mreq-ed35efe8-5dc0-40b0-bb2b-c1a73618aa50 ^[[00;36madmin
>> > admin^[[00;36m] ^[[01;35m^[[00;36m192.168.56.101 "POST
>> > /v2.1/1f824c3b19a64fa1a401125f41324731/servers HTTP/1.1" status: 500
>> len:
>> > 520 time: 1.1018770^[[00m
>> >
>> >
>> >
>> > Best regards,
>> >
>> > Yipei
>> >
>> >
>> >
>> __________________________________________________________________________
>> > OpenStack Development Mailing List (not for usage questions)
>> > Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> >
>>
>>
>>
>> --
>> Email:
>> shinobu at linux.com
>> GitHub:
>> shinobu-x
>> Blog:
>> Life with Distributed Computational System based on OpenSource
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160328/404fdb3d/attachment-0001.html>
More information about the OpenStack-dev
mailing list