Is there any documentation about these RPC messages? Or de we need to use examples as guide?
Once again, thank you Paul. <http://dana.i2cat.net> <http://www.i2cat.net/en> Julio C. Barrera Juez [image: View my profile on LinkedIn] <http://es.linkedin.com/in/jcbarrera/en> Office phone: (+34) 93 357 99 27 (ext. 527) Office mobile phone: (+34) 625 66 77 26 Distributed Applications and Networks Area (DANA) i2CAT Foundation, Barcelona On 17 July 2014 20:37, Paul Michali (pcm) <p...@cisco.com> wrote: > So you have your driver loading… great! > > The service driver will log in screen-q-*svc*.log, provided you have the > service driver called out in neutron.conf (as the only one for VPN). > > Later, you’ll need the supporting RPC classes to send messages from > service driver to device driver… > > > Regards, > > > PCM (Paul Michali) > > MAIL …..…. p...@cisco.com > IRC ……..… pcm_ (irc.freenode.com) > TW ………... @pmichali > GPG Key … 4525ECC253E31A83 > Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83 > > > > On Jul 17, 2014, at 2:18 PM, Julio Carlos Barrera Juez < > juliocarlos.barr...@i2cat.net> wrote: > > We have followed your advices: > > - We created our fake device driver located in the same level as other > device drivers > (/opt/stack/neutron/neutron/services/vpn//device_drivers/fake_device_driver.py): > > import abc > import six > > from neutron.openstack.common import log > from neutron.services.vpn import device_drivers > > > LOG = log.getLogger(__name__) > > @six.add_metaclass(abc.ABCMeta) > class FakeDeviceDriver(device_drivers.DeviceDriver): > ''' > classdocs > ''' > > def __init__(self, agent, host): > pass > > def sync(self, context, processes): > pass > > def create_router(self, process_id): > pass > > def destroy_router(self, process_id): > pass > > > - Our service driver located in > /opt/stack/neutron/neutron/services/vpn/service_drivers/fake_service_driver.py: > > from neutron.openstack.common import log > > LOG = log.getLogger(__name__) > > class FakeServiceDriver(): > ''' > classdocs > ''' > > def get_vpnservices(self, context, filters=None, fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def get_vpnservice(self, context, vpnservice_id, fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def create_vpnservice(self, context, vpnservice): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def update_vpnservice(self, context, vpnservice_id, vpnservice): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def delete_vpnservice(self, context, vpnservice_id): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def get_ipsec_site_connections(self, context, filters=None, > fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def get_ipsec_site_connection(self, context, > ipsecsite_conn_id, fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def get_ikepolicy(self, context, ikepolicy_id, fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def get_ikepolicies(self, context, filters=None, fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def create_ikepolicy(self, context, ikepolicy): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def update_ikepolicy(self, context, ikepolicy_id, ikepolicy): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def delete_ikepolicy(self, context, ikepolicy_id): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def get_ipsecpolicies(self, context, filters=None, fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def get_ipsecpolicy(self, context, ipsecpolicy_id, fields=None): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def create_ipsecpolicy(self, context, ipsecpolicy): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def update_ipsecpolicy(self, context, ipsecpolicy_id, ipsecpolicy): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > def delete_ipsecpolicy(self, context, ipsecpolicy_id): > LOG.info('XXXXXXXXXXXXXX Calling method: ' + __name__) > pass > > > > - Our /etc/neutron/vpn_agent.ini: > > [DEFAULT] > # VPN-Agent configuration file > # Note vpn-agent inherits l3-agent, so you can use configs on l3-agent also > > [vpnagent] > # vpn device drivers which vpn agent will use > # If we want to use multiple drivers, we need to define this option > multiple times. > # > vpn_device_driver=neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver > # > vpn_device_driver=neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver > # vpn_device_driver=another_driver > > # custom config > # implementation location: > /opt/stack/neutron/neutron/services/vpn//device_drivers/fake_device_driver.py > > vpn_device_driver=neutron.services.vpn.device_drivers.fake_device_driver.FakeDeviceDriver > > [ipsec] > # Status check interval > # ipsec_status_check_interval=60 > > > It seems now everything is working and q-vpn starts. In one line in his > log we see: > > 2014-07-16 21:59:45.009 DEBUG neutron.openstack.common.service > [req-fb6ed9ca-0e71-4783-804b-81ea34b16679 None None] > service_providers.service_provider = > ['VPN:fake_junos_vpnaas:neutron.services.vpn.service_drivers.fake_service_driver.FakeServiceDriver:default'] > from (pid=14423) log_opt_values > /usr/local/lib/python2.7/dist-packages/oslo/config/cfg.py:1988 > > But now we don't know how to continue. We don't any of our logs in q-vpn > when we execute commands like: > > neutron vpn-ipsecpolicy-create test-ike-policy > neutron vpn-ikepolicy-list > neutron vpn-service-list > > We don't see any error anyway. > > How we could proceed? > > Thank you. > > <http://dana.i2cat.net/> <http://www.i2cat.net/en> > Julio C. Barrera Juez [image: View my profile on LinkedIn] > <http://es.linkedin.com/in/jcbarrera/en> > Office phone: (+34) 93 357 99 27 (ext. 527) > Office mobile phone: (+34) 625 66 77 26 > Distributed Applications and Networks Area (DANA) > i2CAT Foundation, Barcelona > > > On 17 July 2014 14:18, Paul Michali (pcm) <p...@cisco.com> wrote: > >> See line @PCM >> >> >> PCM (Paul Michali) >> >> MAIL …..…. p...@cisco.com >> IRC ……..… pcm_ (irc.freenode.com) >> TW ………... @pmichali >> GPG Key … 4525ECC253E31A83 >> Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83 >> >> >> >> On Jul 17, 2014, at 6:32 AM, Julio Carlos Barrera Juez < >> juliocarlos.barr...@i2cat.net> wrote: >> >> I have __init__.py in the directory. Sorry my code is not public, but I >> can show you some contents, anyway is an experiment with no functional code. >> >> >> @PCM Could you provide a patch with the files so we could patch it into a >> local repo and try things? I’m assuming since it is an experiment with no >> functional code that maybe there’s nothing proprietary? :) >> >> >> >> >> My /etc/neutron/vpn_agent.ini: >> >> >> >> >> >> >> [DEFAULT] >> [vpnagent] >> # implementation location: >> /opt/stack/neutron/neutron/services/vpn/junos_vpnaas/device_drivers/fake_device_driver.py >> >> vpn_device_driver=neutron.services.vpn.junos_vpnaas.device_drivers.fake_device_driver.FakeDeviceDriver >> >> >> >> >> @PCM Hmmm… Just a wild guess... I’m wondering if this is the issue. You >> class would need to inherit from the base device driver class. Does your >> fake_device_driver.py have the correct import paths? I say that, because >> your hierarchy is different. For example, the layout currently is… >> >> neutron/services/vpn/ - plugin >> neutron/services/vpn/device_drivers/ - reference and Cisco device drivers >> neutron/services/vpn/service_drivers/ - reference and Cisco service >> drivers >> >> Your hierarchy has another level… >> >> neutron/services/vpn/*junos_vpnaas*/device_drivers/ >> >> I’m wondering if there is some import wrong. For example, the reference >> device driver has: >> >> from neutron.services.vpn import device_drivers >> … >> @six.add_metaclass(abc.ABCMeta) >> class IPsecDriver(*device_drivers.DeviceDrive*r): >> """VPN Device Driver for IPSec. >> >> Where the import is used to access the base class DeviceDriver. If you’re >> doing the same, that file may be failing to load. >> >> Regards, >> >> PCM >> >> >> >> >> >> >> >> FakeDeviceDriver is an empty class with a constructor located in file >> /opt/stack/neutron/neutron/services/vpn/junos_vpnaas/device_drivers/fake_device_driver.py. >> >> >> >> >> >> I don't have access to my devstask instance, but the error was produced in >> q-vpn service: >> >> DeviceDriverImportError: Can not load driver >> :neutron.services.vpn.junos_vpnaas.device_drivers.fake_device_driver.FakeDeviceDriver >> >> >> >> >> I can provide full stack this afternoon. >> >> >> >> >> >> Thank you. >> >> >> <http://dana.i2cat.net/> <http://www.i2cat.net/en> >> Julio C. Barrera Juez [image: View my profile on LinkedIn] >> <http://es.linkedin.com/in/jcbarrera/en> >> Office phone: (+34) 93 357 99 27 (ext. 527) >> Office mobile phone: (+34) 625 66 77 26 >> Distributed Applications and Networks Area (DANA) >> i2CAT Foundation, Barcelona >> >> >> On 16 July 2014 20:59, Paul Michali (pcm) <p...@cisco.com> wrote: >> >>> Do you have a repo with the code that is visible to the public? >>> >>> What does the /etc/neutron/vpn_agent.ini look like? >>> >>> Can you put the log output of the actual error messages seen? >>> >>> Regards, >>> >>> PCM (Paul Michali) >>> >>> MAIL …..…. p...@cisco.com >>> IRC ……..… pcm_ (irc.freenode.com) >>> TW ………... @pmichali >>> GPG Key … 4525ECC253E31A83 >>> Fingerprint .. 307A 96BB 1A4C D2C7 931D 8D2D 4525 ECC2 53E3 1A83 >>> >>> >>> >>> On Jul 16, 2014, at 2:43 PM, Julio Carlos Barrera Juez < >>> juliocarlos.barr...@i2cat.net> wrote: >>> >>> I am fighting with this for months. I want to develop a VPN Neutron >>> plugin, but it is almost impossible to realize how to achieve it. this is a >>> thread I opened months ago and Paul Mchali helped me a lot: >>> http://lists.openstack.org/pipermail/openstack-dev/2014-February/028389.html >>> >>> I want to know the minimum requirements to develop a device driver and a >>> service driver for a VPN Neutron plugin. I tried adding an empty device >>> driver and I got this error: >>> >>> DeviceDriverImportError: Can not load driver >>> :neutron.services.vpn.junos_vpnaas.device_drivers.fake_device_driver.FakeDeviceDriver >>> >>> Both Python file and class exists, but the implementation is empty. What >>> is the problem? What I need to include in this file/class to avoid this >>> error? >>> >>> Thank you. >>> >>> <http://dana.i2cat.net/> <http://www.i2cat.net/en> >>> Julio C. Barrera Juez [image: View my profile on LinkedIn] >>> <http://es.linkedin.com/in/jcbarrera/en> >>> Office phone: (+34) 93 357 99 27 (ext. 527) >>> Office mobile phone: (+34) 625 66 77 26 >>> Distributed Applications and Networks Area (DANA) >>> i2CAT Foundation, Barcelona >>> _______________________________________________ >>> OpenStack-dev mailing list >>> OpenStack-dev@lists.openstack.org >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >>> >>> >>> >>> _______________________________________________ >>> OpenStack-dev mailing list >>> OpenStack-dev@lists.openstack.org >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >>> >>> >> _______________________________________________ >> OpenStack-dev mailing list >> OpenStack-dev@lists.openstack.org >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> >> >> >> _______________________________________________ >> OpenStack-dev mailing list >> OpenStack-dev@lists.openstack.org >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> >> > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > > > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > >
_______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev