def create_vip_on_vport(self, params): req_params = { 'vport_id': params['vport_id'], 'externalID': get_vsd_external_id(params['externalID']) } extra_params = { 'vip': params['vip'], 'subnet': params['subnet_id'], 'mac': params['mac'] } if params.get('IPType') == constants.IPV6: extra_params['IPType'] = constants.IPV6 else: extra_params['IPType'] = constants.IPV4 nuage_vip = nuagelib.NuageVIP(create_params=req_params, extra_params=extra_params) vip = self.restproxy.post(nuage_vip.get_resource_for_vport(), nuage_vip.post_vip_data())[0] LOG.debug( "VIP with ip %(vip)s and mac %(mac)s created for %(vport)s", { 'vip': params['vip'], 'mac': params['mac'], 'vport': params['vport_id'] }) return vip
def get_vips_on_vport(self, vport_id): req_params = {'vport_id': vport_id} nuage_vip = nuagelib.NuageVIP(create_params=req_params) vips = self.restproxy.get(nuage_vip.get_resource_for_vport(), required=True) resp = [] if vips: for vip in vips: ret = { 'vip': nuagelib.NuageVIP.get_ip_addr(vip), 'mac': nuagelib.NuageVIP.get_mac_addr(vip), 'vip_id': nuagelib.NuageVIP.get_vip_id(vip) } resp.append(ret) return resp
def delete_vips(self, vport_id, vip_dict, vips): nuage_vips = self.get_vips_on_vport(vport_id) nuage_vip_dict = dict() for vip in vips: nuage_vip_dict[vip] = vip_dict[vip] for nuage_vip in nuage_vips: if nuage_vip['vip'] in nuage_vip_dict: req_params = { 'vip_id': nuage_vip['vip_id'] } nuage_vip = nuagelib.NuageVIP(create_params=req_params) try: self.restproxy.delete(nuage_vip.delete_resource()) except restproxy.ResourceNotFoundException: LOG.error("Error in deleting vip with ip %(vip)s and mac " "%(mac)s", {'vip': nuage_vip['vip'], 'mac': nuage_vip['mac']}) raise
def delete_vips(self, vport_id, vip_dict, vips): nuage_vips = self.get_vips_on_vport(vport_id) nuage_vip_dict = dict() for vip in vips: nuage_vip_dict[vip] = vip_dict[vip] for nuage_vip in nuage_vips: if nuage_vip['vip'] in nuage_vip_dict: req_params = { 'vip_id': nuage_vip['vip_id'] } nuage_vip = nuagelib.NuageVIP(create_params=req_params) response = self.restproxy.rest_call( 'DELETE', nuage_vip.delete_resource(), '') if not nuage_vip.validate(response): LOG.error("Error in deleting vip with ip %(vip)s and mac " "%(mac)s", {'vip': nuage_vip['vip'], 'mac': nuage_vip['mac']}) raise restproxy.RESTProxyError(nuage_vip.error_msg)
def get_vips_on_vport(self, vport_id): req_params = { 'vport_id': vport_id } nuage_vip = nuagelib.NuageVIP(create_params=req_params) response = self.restproxy.rest_call('GET', nuage_vip.get_resource_for_vport(), '') if not nuage_vip.validate(response): raise restproxy.RESTProxyError(nuage_vip.error_msg) vips = nuage_vip.get_response_objlist(response) resp = [] if vips: for vip in vips: ret = { 'vip': nuagelib.NuageVIP.get_ip_addr(vip), 'mac': nuagelib.NuageVIP.get_mac_addr(vip), 'vip_id': nuagelib.NuageVIP.get_vip_id(vip) } resp.append(ret) return resp
def _disassociate_fip_from_vip(self, vip): create_params = {'vip_id': vip['ID']} nuage_vip = nuagelib.NuageVIP(create_params=create_params) self.restproxy.put(nuage_vip.put_resource(), {'associatedFloatingIPID': None})
def _associate_fip_to_vip(self, vip, vsd_fip_id): create_params = {'vip_id': vip['ID']} nuage_vip = nuagelib.NuageVIP(create_params=create_params) self.restproxy.put(nuage_vip.put_resource(), {'associatedFloatingIPID': vsd_fip_id})
def get_vips(self, parent, parent_id, **filters): nuage_vip = nuagelib.NuageVIP() headers = nuage_vip.extra_header_filter(**filters) return self.restproxy.get( nuage_vip.get_child_resource(parent, parent_id), extra_headers=headers)