Are you interested in our Early Access Program (EAP)? This program allows you to preview code, test in your lab and provide feedback prior to General Availability (GA) release of all Infoblox products. If so, please click the link here.

API & Integration, DevOps,NetOps,SecOps

Reply

How do i update Network DHCP options using WAPI?

Adviser
Posts: 9
485     0

I'm am writing a script to resize a subnet and need to update the Routers option and an extensible attribute.

The resize works fine as well as the attribute update, however i am stuck on updating the Routers field.

I use postman to test then write in python and I can't find a solution for this using either.

 

Since we are updating an existing network, i'm assuming this is going to be a PUT request.  I am also assuming, like the Perl API, that the options have to be added as a whole, not as individual options.

 Anyone have any insight on this?

 I have tried a few different things and am coming up empty with a 400 Bad Request error.   Postman with the same data gives me "AdmConProtoError: Input is not an object"

        '''
        # 6. Change dhcp options
        -> GET https://lab-gm/wapi/v2.10.5/network?network=10.64.35.0/26&_return_as_object=1\
        &_return_fields%2B=options
        Update "routers"
        {
            "name": "routers",
            "num": 3,
            "use_option": true,
            "value": "10.64.35.62",
            "vendor_class": "DHCP"
         }
         '''
        # TODO - Not currently working
        iotvlanopts = iotvlanoutput[0]['options']
        # print(iotvlanopts)
        for options in iotvlanopts:
            for key, value in options.items():
                if value == 'routers':
                    print("Updating default gateway")
                    options.update({"value": "10.64.39.62"})
                if key == 'use_option':
                    options.update({"use_option": "True"})
        print(iotvlanopts)
        # newopts = json.dumps(iotvlanopts)
        newopts = iotvlanopts
        print(newopts)
        optsupdate = api_put(baseurl + '/' + iotvlanref, newopts, ibapauth_cookie, debug)
        if optsupdate.status_code != requests.codes.ok:
            error_msg = 'Error {} updating default gateway: {}'
            print(error_msg.format(optsupdate.status_code, optsupdate.reason))
        else:
            success_msg = 'Default Gateway updated {}'
            print(success_msg.format(optsupdate.reason))
Showing results for 
Search instead for 
Did you mean: 

Recommended for You

Demo: Infoblox IPAM plug-in integration with OpenStack Newton