Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 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})
Ejemplo n.º 7
0
 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})
Ejemplo n.º 8
0
 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)