def get_child_floatingips(self, parent_resource, parent_id, required=False, **filters): floatingip = nuagelib.NuageFloatingIP() return self.restproxy.get( floatingip.get_child_resource(parent_resource, parent_id), extra_headers=floatingip.extra_header_filter(**filters), required=required)
def delete_nuage_floatingip(self, id): nuagefip = nuagelib.NuageFloatingIP() resp = self.restproxy.rest_call('DELETE', nuagefip.delete_resource(id), '') if not nuagefip.validate(resp): code = nuagefip.get_error_code(resp) raise restproxy.RESTProxyError(nuagefip.error_msg, error_code=code)
def get_nuage_fip(restproxy_serv, nuage_fip_id): req_params = {'fip_id': nuage_fip_id} nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) resp = restproxy_serv.rest_call('GET', nuage_fip.get_fip_resource(), '') if not nuage_fip.validate(resp): raise restproxy.RESTProxyError(nuage_fip.error_msg) return nuage_fip.get_response_obj(resp)
def get_nuage_floatingip(self, id, required=False, **filters): floatingip = nuagelib.NuageFloatingIP() floatingips = self.restproxy.get( floatingip.get_resource_by_id(id), extra_headers=floatingip.extra_header_filter(**filters), required=required) if floatingips: return floatingips[0]
def create_nuage_floatingip_details(self, params): req_params = { 'domain_id': params['nuage_rtr_id'], 'shared_netid': params['nuage_fippool_id'], 'address': params['neutron_fip_ip'], 'externalID': get_vsd_external_id(params['neutron_fip_id']) } nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) response = self.restproxy.post(nuage_fip.post_resource(), nuage_fip.post_data()) return response[0]
def get_nuage_fip_by_id(self, neutron_fip_id): req_params = { 'externalID': get_vsd_external_id(neutron_fip_id) } nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) nuage_extra_headers = nuage_fip.extra_headers() fips = self.restproxy.get(nuage_fip.get_resource(), extra_headers=nuage_extra_headers, required=True) return fips[0] if fips else None
def get_nuage_fip_by_id(self, params): req_params = {'externalID': get_vsd_external_id(params['fip_id'])} nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) nuage_extra_headers = nuage_fip.extra_headers() fips = self.restproxy.get(nuage_fip.get_resource(), extra_headers=nuage_extra_headers, required=True) return { 'nuage_fip_id': fips[0]['ID'], 'nuage_assigned': fips[0]['assigned'] } if fips else None
def create_nuage_fip_for_vpnaas(self, params): req_params = { 'domain_id': params['nuage_rtr_id'], 'shared_netid': params['nuage_fippool_id'], 'externalID': params['vpn_id'] } nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) response = self.restproxy.rest_call('POST', nuage_fip.post_resource(), nuage_fip.post_fip_data()) if not nuage_fip.validate(response): code = nuage_fip.get_error_code(response) raise restproxy.RESTProxyError(nuage_fip.error_msg, code) return response[3][0]
def create_nuage_floatingip(self, params): req_params = { 'domain_id': params['nuage_rtr_id'], 'shared_netid': params['nuage_fippool_id'], 'address': params['neutron_fip_ip'], 'externalID': get_vsd_external_id(params['neutron_fip_id']) } nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) response = self.restproxy.rest_call('POST', nuage_fip.post_resource(), nuage_fip.post_data()) if not nuage_fip.validate(response): code = nuage_fip.get_error_code(response) raise restproxy.RESTProxyError(nuage_fip.error_msg, code) return nuage_fip.get_fip_id(response)
def delete_fip_qos(self, nuage_fip): fip_updates = {} ratelimiters_to_be_deleted = [] for os_direction, vsd_direction in constants.DIRECTIONS_OS_VSD.items(): existing_ratelimit = nuage_fip['{}RateLimiterID'.format( vsd_direction)] if existing_ratelimit: fip_updates['{}RateLimiterID'.format(vsd_direction)] = None ratelimiters_to_be_deleted.append(existing_ratelimit) if fip_updates: floatingip = nuagelib.NuageFloatingIP(create_params={'domain_id'}) self.restproxy.put(floatingip.put_resource() % nuage_fip['ID'], fip_updates) if ratelimiters_to_be_deleted: # We can only delete a rate limiter once it is no longer in use for ratelimiter in ratelimiters_to_be_deleted: self._delete_ratelimiter(ratelimiter)
def get_nuage_fip_by_id(self, params): req_params = {'externalID': get_vsd_external_id(params['fip_id'])} nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) nuage_extra_headers = nuage_fip.extra_headers() response = self.restproxy.rest_call('GET', nuage_fip.get_resource(), '', extra_headers=nuage_extra_headers) if not nuage_fip.validate(response): raise restproxy.RESTProxyError(nuage_fip.error_msg) ret = None if len(response[3]) > 0: ret = { 'nuage_fip_id': response[3][0]['ID'], 'nuage_assigned': response[3][0]['assigned'] } return ret
def create_update_fip_qos(self, neutron_fip, nuage_fip): fip_updates = {} ratelimiters_to_be_deleted = [] for os_direction, vsd_direction in constants.DIRECTIONS_OS_VSD.items(): existing_ratelimit = nuage_fip['{}RateLimiterID'.format( vsd_direction)] new_rate = neutron_fip['nuage_{}_fip_rate_kbps'.format( os_direction)] if new_rate is None: continue if float(new_rate) == -1: # remove fip rate limit if exists if existing_ratelimit: ratelimiters_to_be_deleted.append(existing_ratelimit) fip_updates['{}RateLimiterID'.format(vsd_direction)] = None else: # VSD is defined as mbps, OS as kbps new_rate = float(new_rate) / 1000 if existing_ratelimit: self._update_ratelimiter(existing_ratelimit, new_rate) else: name = '{}_{}'.format(vsd_direction, neutron_fip['id']) rl = self._create_ratelimiter( name=name, description='Openstack FIP Rate Limiter for FIP {}, ' 'vsd direction: {}.'.format(neutron_fip['id'], vsd_direction), external_id=get_vsd_external_id(name), peak_information_rate=new_rate) fip_updates['{}RateLimiterID'.format( vsd_direction)] = rl['ID'] if fip_updates: floatingip = nuagelib.NuageFloatingIP(create_params={'domain_id'}) self.restproxy.put(floatingip.put_resource() % nuage_fip['ID'], fip_updates) if ratelimiters_to_be_deleted: # We can only delete a rate limiter once it is no longer in use for ratelimiter in ratelimiters_to_be_deleted: self._delete_ratelimiter(ratelimiter)
def get_nuage_fip(restproxy_serv, nuage_fip_id): req_params = {'fip_id': nuage_fip_id} nuage_fip = nuagelib.NuageFloatingIP(create_params=req_params) return restproxy_serv.get(nuage_fip.get_fip_resource(), required=True)[0]
def update_vport_floatingip(self, vport_id, floatingip_id): floatingip = nuagelib.NuageFloatingIP() self.restproxy.put( floatingip.get_child_resource(nuagelib.NuageVPort.resource, vport_id), floatingip_id)
def delete_nuage_floatingip(self, id): nuagefip = nuagelib.NuageFloatingIP() self.restproxy.delete(nuagefip.delete_resource(id))