def create(self, context, pool): with a10.A10WriteStatusContext(self, context, pool, action='create') as c: try: self._set(c.client.slb.service_group.create, c, context, pool) except acos_errors.Exists: pass
def update(self, context, old_member, member): with a10.A10WriteStatusContext(self, context, member) as c: server_ip = self.neutron.member_get_ip(context, member, c.device_cfg['use_float']) server_name = self._meta_name(member, server_ip) status = c.client.slb.UP admin_state = 'enable' if not member['admin_state_up']: status = c.client.slb.DOWN admin_state = 'disable' try: server_args = {'server': self.meta(member, 'server', {})} c.client.slb.server.update(server_name, server_ip, axapi_args=server_args,admin_state=admin_state) member_args = {'member': self.meta(member, 'member', {})} c.client.slb.service_group.member.update( self._pool_name(context, member['pool_id']), server_name, member['protocol_port'], status, axapi_args=member_args) except acos_errors.NotFound: # Adding db relation after the fact self._create(c, context, member) self.hooks.after_member_update(c, context, member)
def update(self, context, old_vip, vip): with a10.A10WriteStatusContext(self, context, vip) as c: status = c.client.slb.UP if not vip['admin_state_up']: status = c.client.slb.DOWN pool_name = self._pool_name(context, vip['pool_id']) p = PersistHandler(c, context, vip, self._meta_name(vip), old_vip) p.create() templates = self.meta(vip, "template", {}) if 'client_ssl' in templates: args = {'client_ssl_template': templates['client_ssl']} c.client.slb.template.client_ssl.update('', '', '', axapi_args=args) if 'server_ssl' in templates: args = {'server_ssl_template': templates['server_ssl']} c.client.slb.template.server_ssl.update('', '', '', axapi_args=args) vport_meta = self.vport_meta(vip) c.client.slb.virtual_server.vport.update( self._meta_name(vip), self._meta_name(vip) + '_VPORT', protocol=openstack_mappings.vip_protocols(c, vip['protocol']), port=vip['protocol_port'], service_group_name=pool_name, s_pers_name=p.s_persistence(), c_pers_name=p.c_persistence(), status=status, autosnat=c.device_cfg.get('autosnat'), ipinip=c.device_cfg.get('ipinip'), source_nat_pool=c.device_cfg.get('source_nat_pool'), axapi_body=vport_meta) self.hooks.after_vip_update(c, context, vip)
def update(self, context, old_vip, vip): with a10.A10WriteStatusContext(self, context, vip) as c: status = c.client.slb.UP if not vip['admin_state_up']: status = c.client.slb.DOWN pool_name = self._pool_name(context, vip['pool_id']) p = PersistHandler(c, context, vip, self._meta_name(vip)) p.create() templates = self.meta(vip, "template", {}) if 'client_ssl' in templates: args = {'client_ssl_template': templates['client_ssl']} c.client.slb.template.client_ssl.update( '', '', '', axapi_args=args) if 'server_ssl' in templates: args = {'server_ssl_template': templates['server_ssl']} c.client.slb.template.server_ssl.update( '', '', '', axapi_args=args) vport_args = {'port': self.meta(vip, 'port', {})} c.client.slb.virtual_server.vport.update( self._meta_name(vip), self._meta_name(vip) + '_VPORT', protocol=a10_os.vip_protocols(c, vip['protocol']), port=vip['protocol_port'], service_group_name=pool_name, s_pers_name=p.s_persistence(), c_pers_name=p.c_persistence(), status=status, axapi_args=vport_args) self.hooks.after_vip_update(c, context, vip)
def create(self, context, vip): with a10.A10WriteStatusContext(self, context, vip) as c: status = c.client.slb.UP if not vip['admin_state_up']: status = c.client.slb.DOWN pool_name = self._pool_name(context, vip['pool_id']) p = PersistHandler(c, context, vip, self._meta_name(vip)) p.create() templates = self.meta(vip, "template", {}) if 'client_ssl' in templates: args = {'client_ssl_template': templates['client_ssl']} try: c.client.slb.template.client_ssl.create('', '', '', axapi_args=args) except acos_errors.Exists: pass if 'server_ssl' in templates: args = {'server_ssl_template': templates['server_ssl']} try: c.client.slb.template.server_ssl.create('', '', '', axapi_args=args) except acos_errors.Exists: pass vport_list = None try: vip_meta = self.meta(vip, 'virtual_server', {}) vport_list = vip_meta.pop('vport_list', None) vip_args = axapi_mappings._virtual_server( vip_meta, c.device_cfg) c.client.slb.virtual_server.create(self._meta_name(vip), vip['address'], status, axapi_args=vip_args) except acos_errors.Exists: pass LOG.debug("VPORT_LIST = %s", vport_list) if vport_list is None: vport_list = [self.vport_meta(vip)] for vport, i in zip(vport_list, range(len(vport_list))): try: vport_name = str(i) if i else '' vport_args = axapi_mappings._vport(vport, c.device_cfg) c.client.slb.virtual_server.vport.create( self._meta_name(vip), self._meta_name(vip) + '_VPORT' + vport_name, protocol=openstack_mappings.vip_protocols( c, vip['protocol']), port=vip['protocol_port'], service_group_name=pool_name, s_pers_name=p.s_persistence(), c_pers_name=p.c_persistence(), status=status, axapi_args=vport_args) except acos_errors.Exists: pass self.hooks.after_vip_create(c, context, vip)
def update(self, context, old_pool, pool): with a10.A10WriteStatusContext(self, context, pool) as c: self._set(c.client.slb.service_group.update, c, context, pool)
def update(self, context, old_pool, pool): # id_func = lambda x: x.get("monitor_id") with a10.A10WriteStatusContext(self, context, pool) as c: self._set(c.client.slb.service_group.update, c, context, pool)
def create(self, context, vip): with a10.A10WriteStatusContext(self, context, vip) as c: status = c.client.slb.UP if not vip['admin_state_up']: status = c.client.slb.DOWN pool_name = self._pool_name(context, vip['pool_id']) p = PersistHandler(c, context, vip, self._meta_name(vip)) p.create() templates = self.meta(vip, "template", {}) if 'client_ssl' in templates: args = {'client_ssl_template': templates['client_ssl']} try: c.client.slb.template.client_ssl.create( '', '', '', axapi_args=args) except acos_errors.Exists: pass if 'server_ssl' in templates: args = {'server_ssl_template': templates['server_ssl']} try: c.client.slb.template.server_ssl.create( '', '', '', axapi_args=args) except acos_errors.Exists: pass vport_list = [{}] try: vip_meta = self.meta(vip, 'virtual_server', {}) a10_common._set_vrid_parameter(vip_meta, c.device_cfg) vip_args = { 'virtual_server': vip_meta } vport_list = vip_args['virtual_server'].pop('vport_list', [{}]) c.client.slb.virtual_server.create( self._meta_name(vip), vip['address'], status, axapi_args=vip_args) except acos_errors.Exists: pass LOG.debug("VPORT_LIST = %s", vport_list) try: if vport_list[0]: a10_common._set_auto_parameter(vport_list[0], c.device_cfg) a10_common._set_ipinip_parameter(vport_list[0], c.device_cfg) vport_args = {'vport': vport_list[0]} else: vport_meta = self.meta(vip, 'vport', {}) a10_common._set_auto_parameter(vport_meta, c.device_cfg) a10_common._set_ipinip_parameter(vport_meta, c.device_cfg) vport_args = {'vport': vport_meta} c.client.slb.virtual_server.vport.create( self._meta_name(vip), self._meta_name(vip) + '_VPORT', protocol=a10_os.vip_protocols(c, vip['protocol']), port=vip['protocol_port'], service_group_name=pool_name, s_pers_name=p.s_persistence(), c_pers_name=p.c_persistence(), status=status, axapi_args=vport_args) except acos_errors.Exists: pass i = 1 for vport in vport_list[1:]: i += 1 try: a10_common._set_auto_parameter(vport, c.device_cfg) a10_common._set_ipinip_parameter(vport, c.device_cfg) vport_args = {'vport': vport} c.client.slb.virtual_server.vport.create( self._meta_name(vip), self._meta_name(vip) + '_VPORT' + str(i), protocol=a10_os.vip_protocols(c, vip['protocol']), port=vip['protocol_port'], service_group_name=pool_name, s_pers_name=p.s_persistence(), c_pers_name=p.c_persistence(), status=status, axapi_args=vport_args) except acos_errors.Exists: pass self.hooks.after_vip_create(c, context, vip)
def create(self, context, member): with a10.A10WriteStatusContext(self, context, member) as c: self._create(c, context, member) self.hooks.after_member_create(c, context, member)