def run(self, terms, variables=None, **kwargs): try: network = terms[0] except IndexError: raise AnsibleError('missing argument in the form of A.B.C.D/E') provider = kwargs.pop('provider', {}) wapi = WapiLookup(provider) network_obj = wapi.get_object('network', {'network': network}) if network_obj is None: raise AnsibleError('unable to find network object %s' % network) num = kwargs.get('num', 1) exclude_ip = kwargs.get('exclude', []) try: ref = network_obj[0]['_ref'] avail_ips = wapi.call_func('next_available_ip', ref, { 'num': num, 'exclude': exclude_ip }) return [avail_ips['ips']] except Exception as exc: raise AnsibleError(to_text(exc))
def run(self, terms, variables=None, **kwargs): try: obj_type = terms[0] except IndexError: raise AnsibleError('the object_type must be specified') return_fields = kwargs.pop('return_fields', None) filter_data = kwargs.pop('filter', {}) extattrs = normalize_extattrs(kwargs.pop('extattrs', {})) provider = kwargs.pop('provider', {}) wapi = WapiLookup(provider) res = wapi.get_object(obj_type, filter_data, return_fields=return_fields, extattrs=extattrs) if res is not None: for obj in res: if 'extattrs' in obj: obj['extattrs'] = flatten_extattrs(obj['extattrs']) else: res = [] return res