{"record":{"id":"afa88dbd55f6f746","repo":"theforeman/foreman","slug":"unable-to-obtain-subnets-in-group-group-from-ex","errorCode":null,"errorMessage":"Unable to obtain subnets in group %{group} from External IPAM.","messagePattern":"Unable to obtain subnets in group %(.+?) from External IPAM\\.","errorType":"exception","errorClass":"ProxyException","httpStatus":null,"severity":"error","filePath":"app/services/proxy_api/external_ipam.rb","lineNumber":179,"sourceCode":"    #   {[\n    #     {subnet\":\"100.10.10.0\",\"mask\":\"24\",\"description\":\"Test Subnet 1\"},\n    #     {subnet\":\"100.20.20.0\",\"mask\":\"24\",\"description\":\"Test Subnet 2\"}\n    #   ]}\n    #   Response if groups not supported:\n    #     {\"error\": \"Groups are not supported\"}\n    #   Response if no subnets exist in group.\n    #     {\"error\": \"Subnet not found in External IPAM\"}\n    #   Response if group not found:\n    #     {\"error\": \"Group not found in External IPAM\"}\n    #   Response if can't connect to External IPAM server\n    #     {\"error\": \"Unable to connect to External IPAM\"}\n    def get_subnets_by_group(group)\n      raise \"group must be provided\" if group.blank?\n      response = parse get(\"/groups/#{CGI.escape(group)}/subnets\")\n      raise(response['error']) if response.is_a?(Hash) && response['error'].present?\n      response\n    rescue => e\n      raise ProxyException.new(url, e, N_(\"Unable to obtain subnets in group %{group} from External IPAM.\"), group: group)\n    end\n\n    # Returns an array of subnets from External IPAM matching the given subnet.\n    #\n    # Params:  1. subnet:           The IPv4 or IPv6 subnet CIDR. (Examples: IPv4 - \"100.10.10.0/24\",\n    #                               IPv6 - \"2001:db8:abcd:12::/124\")\n    #          2. group(optional):  The name of the External IPAM group containing the subnet.\n    #\n    # Responses:\n    #   Response if subnet(s) exists:\n    #     {\"subnet\": \"44.44.44.0\", \"description\": \"\", \"mask\":\"29\"}\n    #   Response if subnet not exists:\n    #     {\"error\": \"No subnets found\"}\n    #   Response if groups not supported(only checked if a group is specified):\n    #     {\"error\": \"Groups are not supported\"}\n    #   Response if can't connect to External IPAM server\n    #     {\"error\": \"Unable to connect to External IPAM server\"}\n    def get_subnet(subnet, group = \"\")","sourceCodeStart":161,"sourceCodeEnd":197,"githubUrl":"https://github.com/theforeman/foreman/blob/6b05625475cfe6aac31a88f8c8ee6e62e4efe620/app/services/proxy_api/external_ipam.rb#L161-L197","documentation":"Error \"Unable to obtain subnets in group %{group} from External IPAM.\" thrown in theforeman/foreman.","triggerScenarios":"Thrown at app/services/proxy_api/external_ipam.rb:179 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6b05625475cfe6aac31a88f8c8ee6e62e4efe620","analyzedAt":"2026-08-23T17:46:34.094Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}