{"record":{"id":"c9c2d85bc2fb360f","repo":"theforeman/foreman","slug":"unable-to-obtain-groups-from-external-ipam","errorCode":null,"errorMessage":"Unable to obtain groups from External IPAM.","messagePattern":"Unable to obtain groups from External IPAM\\.","errorType":"exception","errorClass":"ProxyException","httpStatus":null,"severity":"error","filePath":"app/services/proxy_api/external_ipam.rb","lineNumber":129,"sourceCode":"    #\n    # Responses:\n    #   Response if success:\n    #     {[\n    #       {name\":\"Test Group\",\"description\": \"A Test Group\"},\n    #       {name\":\"Awesome Group\",\"description\": \"A totally awesome Group\"}\n    #     ]}\n    #   Response if no groups exist:\n    #     []\n    #   Response if groups are not supported:\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_groups\n      response = parse get(\"/groups\")\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 groups from External IPAM.\"))\n    end\n\n    # Get a group from External IPAM. A group is a logical grouping of subnets/ips (e.g. 'Section' in\n    # in phpIPAM, or 'VRF' in Netbox)\n    #\n    # Params:   1. group:     The name of the External IPAM group\n    #\n    # Responses:\n    #   Response if success:\n    #     {\"name\":\"Awesome Group\", \"description\": \"Awesome Group\"}\n    #   Response if group doesn't exist:\n    #     {\"error\": \"Group not found in External IPAM\"}\n    #   Response if groups are not supported:\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_group(group)\n      raise \"group must be provided\" if group.blank?","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/theforeman/foreman/blob/6b05625475cfe6aac31a88f8c8ee6e62e4efe620/app/services/proxy_api/external_ipam.rb#L111-L147","documentation":"Error \"Unable to obtain groups from External IPAM.\" thrown in theforeman/foreman.","triggerScenarios":"Thrown at app/services/proxy_api/external_ipam.rb:129 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"}