Giter Site home page Giter Site logo

a10-neutron-lbaas's People

Contributors

cedev avatar dougwig avatar hthompson6 avatar jak3kaj avatar mmdurrant avatar omkartelee-a10 avatar sasukeh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

a10-neutron-lbaas's Issues

Health Monitor still associated with LBaaS elements prevents stack removal

From: Darío Ezequiel Nievas
Date: Monday, September 21, 2015 at 4:17 PM
To: Douglas Wiegley
Subject: Heat + A10 LBaaS v1 driver - Error 33619969

Hi Doug, 
hope you are dowing 
We are using the A10 lbaas V1 driver with heat to provide autoscaling services.

Each time we try to delete a stack, we are getting te following Exception

2015-09-21 17:49:10.204 2429 ERROR neutron.api.v2.resource [req-7b5d1bb4-47c3-49e4-a210-36e3e38671bc ] delete failed
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource Traceback (most recent call last):
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/api/v2/resource.py", line 83, in resource
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     result = method(request=request, **args)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/api/v2/base.py", line 490, in delete
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     obj_deleter(request.context, id, **kwargs)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron_lbaas/services/loadbalancer/plugin.py", line 242, in delete_pool
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     driver.delete_pool(context, p)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron_lbaas/services/loadbalancer/drivers/a10networks/driver_v1.py", line 155, in delete_pool
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     self.a10.pool.delete(context, pool)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/a10_neutron_lbaas/v1/handler_pool.py", line 57, in delete
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     self.a10_driver.hm._delete(c, context, z)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/a10_neutron_lbaas/v1/handler_hm.py", line 72, in _delete
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     c.client.slb.hm.delete(self._meta_name(hm))
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/slb/hm.py", line 112, in delete
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     self._delete(self.url_prefix + name)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/base.py", line 41, in _delete
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     return self._request('DELETE', action, params, **kwargs)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/base.py", line 32, in _request
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     self.auth_header, **kwargs)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/axapi_http.py", line 123, in request
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     acos_responses.raise_axapi_ex(r, method, api_url)
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/responses.py", line 147, in raise_axapi_ex
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource     raise ex(code, response['response']['err']['msg'])
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource InUse: 33619969 The health monitor cannot be deleted because it is still in use.
2015-09-21 17:49:10.204 2429 TRACE neutron.api.v2.resource 



These are the heat resources involved (showing just the relevant ones)

  pool:
    type: OS::Neutron::Pool
    properties:
      protocol: HTTP
      monitors: [{get_resource: monitor}]
      subnet: a10-subnet2
      lb_method: ROUND_ROBIN
      vip:
        protocol_port: 8080


  lb:
    type: OS::Neutron::LoadBalancer
    properties:
      protocol_port: 8080
      pool_id: {get_resource: pool}


  monitor:
   type: OS::Neutron::HealthMonitor
   properties:
     type: HTTP
     delay: 12
     max_retries: 5
     timeout: 10
     http_method: "GET"
     max_retries: 2
     timeout: 5
     url_path: "/"
     expected_codes: "200"


I'm also attaching the neutron-server log extract, for further details

Have you seen this problem before? I'm guessing that this is related with the way that heat handles dependencies when a stack delete is requested. 

Thanks in advance!

Non-existent config causes driver to crash

If /etc/a10/config.py or other config paths don't exist (we should store these in a constant...) don't exist, the driver bombs and doesn't give enough info about said non-existence.
REPRODUCTION: Use v1 of the driver without creating a configuration. Observe neato traceback.

Fix v2.1 auto SNAT in vport creation

In 2.1 of acos client, the vport JSON structure is not correctly created with "auto_source_nat" specified when autosnat is specified in the device configuration.

add ipinip option to config file

For now, global boolean. If true, then in handle_listener,

add: 'ip_in_ip': True

to the axapi_args vport dict.

And that axapi_args vport dict has a bug; it's currently 'port', which will never merge into the right dictionary in acos-client.

Null reference exception in v1 VIP handler

2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource Traceback (most recent call last):
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 87, in resource
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource     result = method(request=request, **args)
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 448, in create
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource     obj = obj_creator(request.context, **kwargs)
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/services/loadbalancer/plugin.py", line 107, in create_vip
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource     driver.create_vip(context, v)
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/services/loadbalancer/drivers/a10networks/driver_v1.py", line 140, in create_vip
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource     self.a10.vip.create(context, vip)
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource   File "/usr/local/src/a10-neutron-lbaas/a10_neutron_lbaas/v1/handler_vip.py", line 83, in create
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource     a10_common._set_auto_parameter(vport_meta, self.a10_driver.device_info)
2015-09-23 04:33:14.790 TRACE neutron.api.v2.resource AttributeError: 'A10OpenstackLBV1' object has no attribute 'device_info'

v2, create pool, listener has no service group on ax

neutron lbaas-loadbalancer-create --name kristest lbaas-10-224-84-0-24
neutron lbaas-listener-create --loadbalancer kristest --protocol TCP --protocol-port 80 --name Web-80
neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener Web-80 --protocol TCP --name Web-Pool1

After that pool create, in PoolHandler, it should be updating the vport with the service group of the passed in listener.

ACOS 2.7.2-P4-SP1 produces SSL HELLO error

Attempting to create a pool with driver_v1 produces the following stack trace:

2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource Traceback (most recent call last):
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/api/v2/resource.py", line 87, in resource
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     result = method(request=request, **args)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/api/v2/base.py", line 448, in create
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     obj = obj_creator(request.context, **kwargs)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/services/loadbalancer/plugin.py", line 159, in create_pool
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     driver.create_pool(context, p)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/home/ubuntu/a10-openstack-lbaas/a10_openstack_lbaas/driver_v1.py", line 149, in create_pool
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     self.a10.pool.create(context, pool)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/home/ubuntu/a10-neutron-lbaas/a10_neutron_lbaas/v1/handler_pool.py", line 37, in create
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     with a10.A10WriteStatusContext(self, context, pool) as c:
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/home/ubuntu/a10-neutron-lbaas/a10_neutron_lbaas/a10_context.py", line 43, in __enter__
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     self.select_appliance_partition()
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/home/ubuntu/a10-neutron-lbaas/a10_neutron_lbaas/a10_context.py", line 72, in select_appliance_partition
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     self.client.system.partition.active(name)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/partition.py", line 54, in active
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     self._post("/active-partition/" + name)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/base.py", line 38, in _post
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     return self._request('POST', action, params, **kwargs)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/base.py", line 31, in _request
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     return self.client.http.request(method, self.url(action), params,
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/base.py", line 27, in url
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     self.auth_header['Authorization'] = "A10 %s" % self.client.session.id
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/session.py", line 28, in id
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     self.authenticate(self.username, self.password)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/session.py", line 43, in authenticate
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     r = self.http.post(url, payload)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/axapi_http.py", line 135, in post
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     return self.request("POST", api_url, params, headers, **kwargs)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/acos_client/v30/axapi_http.py", line 105, in request
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     data=payload, headers=hdrs)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 50, in request
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     response = session.request(method=method, url=url, **kwargs)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 465, in request
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     resp = self.send(prep, **send_kwargs)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 573, in send
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     r = adapter.send(request, **kwargs)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 431, in send
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource     raise SSLError(e, request=request)
2015-05-13 17:12:21.405 4024 TRACE neutron.api.v2.resource SSLError: [Errno 1] _ssl.c:510: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version```

sample config does not load in centos, due to file format error

"I needed to add # coding: utf-8 to the top of the config file otherwise neutron blows up with an encoding error - using the sample config from the readme"

2015-09-03 10:39:40.564 6939 TRACE neutron File "/usr/lib/python2.7/site-packages/a10_neutron_lbaas/a10_config.py", line 45, in init
2015-09-03 10:39:40.564 6939 TRACE neutron import config
2015-09-03 10:39:40.564 6939 TRACE neutron File "/etc/neutron/services/loadbalancer/a10networks/config.py", line 2
2015-09-03 10:39:40.564 6939 TRACE neutron SyntaxError: Non-ASCII character '\xe2' in file /etc/neutron/services/loadbalancer/a10networks/config.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Do

Fix a10 driver to automatically fix incorrect delay/timeout values

Timeout cannot be greater than Delay for health monitors. Delay is the wait time between health monitor checks and Timeout is the amount of time we wait until we've decided something is "unhealthy". If timeout is larger than delay, a second health check will be sent before the first health check has a chance to timeout.

Add support for vrid in virtual server options

Our networking team always configures a vrid per virtual server. I believe this is used to allow both a10's in a cluster to be active at the same time for differing virtual servers?

Terminated HTTPS Testing

Test the cross-product of the following:
Intermediate / No Intermediate
Passphrase / No Passphrase
Session Persistence options

Expected behaviors:
Intermediate certs are uploaded when specified
Passphrase is set when specified
Ability to create all combinations of session persistence

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.