Ejemplo n.º 1
0
def removeElement(request,
                  descriptor_type=None,
                  descriptor_id=None,
                  element_type=None):
    user = osmutils.get_user(request)
    client = Client()
    if descriptor_type == 'nsd':
        descriptor_result = client.nsd_get(user.get_token(), descriptor_id)
        element_id = request.POST.get('id', '')
        util = OsmUtil()
        descriptor_updated = util.remove_node('nsd', descriptor_result,
                                              element_type, element_id,
                                              request.POST.dict())
        result = client.nsd_update(user.get_token(), descriptor_id,
                                   descriptor_updated)
        if result['error'] == True:
            return __response_handler(request,
                                      result['data'],
                                      url=None,
                                      status=result['data']['status']
                                      if 'status' in result['data'] else 500)
        else:
            parser = OsmParser()
            # print nsr_object
            if descriptor_type == 'nsd':
                result_graph = parser.nsd_to_graph(descriptor_updated)

        return __response_handler(request, result_graph, url=None, status=200)

    elif descriptor_type == 'vnfd':
        descriptor_result = client.vnfd_get(user.get_token(), descriptor_id)
        element_id = request.POST.get('id', '')
        util = OsmUtil()
        descriptor_updated = util.remove_node('vnfd', descriptor_result,
                                              element_type, element_id,
                                              request.POST.dict())
        result = client.vnfd_update(user.get_token(), descriptor_id,
                                    descriptor_updated)
        if result['error'] == True:
            return __response_handler(request,
                                      result['data'],
                                      url=None,
                                      status=result['data']['status']
                                      if 'status' in result['data'] else 500)
        else:
            parser = OsmParser()
            # print nsr_object
            if descriptor_type == 'vnfd':
                result_graph = parser.vnfd_to_graph(descriptor_updated)

            return __response_handler(request,
                                      result_graph,
                                      url=None,
                                      status=200)
Ejemplo n.º 2
0
def updateElement(request,
                  descriptor_type=None,
                  descriptor_id=None,
                  element_type=None):
    user = osmutils.get_user(request)
    client = Client()
    payload = request.POST.dict()
    util = OsmUtil()

    if descriptor_type == 'nsd':
        descriptor_result = client.nsd_get(user.get_token(), descriptor_id)
    elif descriptor_type == 'vnfd':
        descriptor_result = client.vnfd_get(user.get_token(), descriptor_id)

    if element_type == 'graph_params':
        descriptor_updated = util.update_graph_params(
            descriptor_type, descriptor_result, json.loads(payload['update']))
    else:
        descriptor_updated = util.update_node(descriptor_type,
                                              descriptor_result, element_type,
                                              json.loads(payload['old']),
                                              json.loads(payload['update']))

    if descriptor_type == 'nsd':
        result = client.nsd_update(user.get_token(), descriptor_id,
                                   descriptor_updated)
    elif descriptor_type == 'vnfd':
        result = client.vnfd_update(user.get_token(), descriptor_id,
                                    descriptor_updated)
    if result['error'] == True:
        return __response_handler(request,
                                  result['data'],
                                  url=None,
                                  status=result['data']['status']
                                  if 'status' in result['data'] else 500)
    else:
        parser = OsmParser()
        if descriptor_type == 'vnfd':
            result_graph = parser.vnfd_to_graph(descriptor_updated)
        elif descriptor_type == 'nsd':
            result_graph = parser.nsd_to_graph(descriptor_updated)
        return __response_handler(request, result_graph, url=None, status=200)
Ejemplo n.º 3
0
def open_composer(request):
    user = osmutils.get_user(request)
    descriptor_id = request.GET.get('id')
    descriptor_type = request.GET.get('type')
    result = {}
    client = Client()
    if descriptor_id:
        raw_content_types = request.META.get('HTTP_ACCEPT', '*/*').split(',')
        if 'application/json' not in raw_content_types:
            return __response_handler(request, {'type': descriptor_type},
                                      'composer.html')
        try:
            if descriptor_type == 'nsd':
                descriptor_result = client.nsd_get(user.get_token(),
                                                   descriptor_id)
            elif descriptor_type == 'vnfd':
                descriptor_result = client.vnfd_get(user.get_token(),
                                                    descriptor_id)

        except Exception as e:
            descriptor_result = {'error': True, 'data': str(e)}

        if isinstance(
                descriptor_result, dict
        ) and 'error' in descriptor_result and descriptor_result['error']:
            return render(request, 'error.html')

        test = OsmParser()
        # print nsr_object
        if descriptor_type == 'nsd':
            result = test.nsd_to_graph(descriptor_result)
        elif descriptor_type == 'vnfd':
            result = test.vnfd_to_graph(descriptor_result)
        return __response_handler(request, result, 'composer.html')

    return __response_handler(request, result, 'composer.html')