예제 #1
0
 def _create_nuage_def_l3domain_adv_fwd_template(self, l3dom_id,
                                                 neutron_router_id):
     nuageadvfwdtmplt = nuagelib.NuageInAdvFwdTemplate()
     fwd_temps = self.restproxy.post(
         nuageadvfwdtmplt.post_resource_l3(l3dom_id),
         nuageadvfwdtmplt.post_data_default_l3(
             l3dom_id, get_vsd_external_id(neutron_router_id)))
     return fwd_temps[0]['ID'] if fwd_temps else None
예제 #2
0
 def _create_nuage_def_l2domain_adv_fwd_template(self, l2dom_id,
                                                 neutron_subnet):
     nuageadvfwdtmplt = nuagelib.NuageInAdvFwdTemplate()
     external_id = helper.get_subnet_external_id(neutron_subnet)
     response = self.restproxy.post(
         nuageadvfwdtmplt.post_resource_l2(l2dom_id),
         nuageadvfwdtmplt.post_data_default_l2(l2dom_id, external_id),
         ignore_err_codes=[restproxy.REST_DUPLICATE_ACL_PRIORITY])
     return response[0]['ID']
예제 #3
0
def get_in_adv_fwd_policy(restproxy_serv, parent_type, parent_id):
    template = None
    nuageadvfwdtmplt = nuagelib.NuageInAdvFwdTemplate()
    if parent_type == constants.L2DOMAIN:
        template = restproxy_serv.get(
            nuageadvfwdtmplt.get_resource_l2(parent_id), required=True)
    elif parent_type == constants.DOMAIN:
        template = restproxy_serv.get(
            nuageadvfwdtmplt.get_resource_l3(parent_id), required=True)
    return template[0]['ID'] if template else None
예제 #4
0
def create_in_adv_fwd_policy_template(rest_proxy, parent_type, parent_id,
                                      params):
    params['externalID'] = get_vsd_external_id(params['externalID'])
    adv_fwd_tmplt = nuagelib.NuageInAdvFwdTemplate()
    if parent_type == constants.L2DOMAIN:
        return rest_proxy.post(adv_fwd_tmplt.post_resource_l2(parent_id),
                               params)[0]
    else:
        return rest_proxy.post(adv_fwd_tmplt.post_resource_l3(parent_id),
                               params)[0]
예제 #5
0
 def _create_nuage_def_l2domain_adv_fwd_template(self, l2dom_id,
                                                 neutron_subnet_id):
     nuageadvfwdtmplt = nuagelib.NuageInAdvFwdTemplate()
     response = self.restproxy.rest_call(
         'POST', nuageadvfwdtmplt.post_resource_l2(l2dom_id),
         nuageadvfwdtmplt.post_data_default_l2(
             l2dom_id, get_vsd_external_id(neutron_subnet_id)))
     if not nuageadvfwdtmplt.validate(response):
         raise restproxy.RESTProxyError(nuageadvfwdtmplt.error_msg)
     return nuageadvfwdtmplt.get_response_objid(response)
예제 #6
0
def get_in_adv_fwd_policy_by_cmsid(restproxy_serv, parent_type, parent_id):
    nuageadvfwdtmplt = nuagelib.NuageInAdvFwdTemplate()
    if parent_type == constants.L2DOMAIN:
        response = restproxy_serv.get(
            nuageadvfwdtmplt.get_resource_l2(parent_id),
            extra_headers=extra_headers_get())
    else:
        response = restproxy_serv.get(
            nuageadvfwdtmplt.get_resource_l3(parent_id),
            extra_headers=extra_headers_get())
    return response
예제 #7
0
def get_in_adv_fwd_policy_by_externalid(restproxy_serv, parent_type, parent_id,
                                        neutron_id):
    headers = {
        'X-NUAGE-FilterType': "predicate",
        'X-Nuage-Filter':
        "externalID IS '%s'" % get_vsd_external_id(neutron_id)
    }
    nuageadvfwdtmplt = nuagelib.NuageInAdvFwdTemplate()
    if parent_type == constants.L2DOMAIN:
        response = restproxy_serv.get(
            nuageadvfwdtmplt.get_resource_l2(parent_id), extra_headers=headers)
    else:
        response = restproxy_serv.get(
            nuageadvfwdtmplt.get_resource_l3(parent_id), extra_headers=headers)
    return response
예제 #8
0
def get_in_adv_fwd_policy(restproxy_serv, parent_type, parent_id):
    nuageadvfwdtmplt = nuagelib.NuageInAdvFwdTemplate()
    if parent_type == constants.L2DOMAIN:
        response = restproxy_serv.rest_call(
            'GET', nuageadvfwdtmplt.get_resource_l2(parent_id), '')
    elif parent_type == 'domain':
        response = restproxy_serv.rest_call(
            'GET', nuageadvfwdtmplt.get_resource_l3(parent_id), '')
    if not nuageadvfwdtmplt.validate(response):
        raise restproxy.RESTProxyError(nuageadvfwdtmplt.error_msg)

    if not response[3]:
        msg = ("%s %s does not have default advanced forwarding template" %
               (parent_type, parent_id))
        raise restproxy.RESTProxyError(msg)

    return nuageadvfwdtmplt.get_response_objid(response)
예제 #9
0
def delete_in_adv_fwd_policy_template(rest_proxy, tmplt_id, required=False):
    adv_fwd_tmplt = nuagelib.NuageInAdvFwdTemplate()
    rest_proxy.delete(
        adv_fwd_tmplt.get_resource(tmplt_id) + '?responseChoice=1', required)
예제 #10
0
def update_in_adv_fwd_policy_template(rest_proxy, nuage_id, params):
    adv_fwd_tmplt = nuagelib.NuageInAdvFwdTemplate()
    return rest_proxy.put(
        adv_fwd_tmplt.get_resource(nuage_id) + '?responseChoice=1', params)