Sha256: 489d92400f95329d7320291f979e536b7f1bf97f5119fe143e5ff0447cb7246d
Contents?: true
Size: 1.73 KB
Versions: 5
Compression:
Stored size: 1.73 KB
Contents
require 'io/console' namespace :rh_cloud do |args| desc 'Register Satellite Organization with Hybrid Cloud API. \ Specify org_id=x replace your organization ID with x. \ Specify SATELLITE_RH_CLOUD_URL=https://x with the Hybrid Cloud endpoint you are connecting to.' task hybridcloud_register: [:environment] do include ::ForemanRhCloud::CertAuth include ::InsightsCloud::CandlepinCache def logger @logger ||= Logger.new(STDOUT) end def registrations_url logger.warn("Custom url is not set, using the default one: #{ForemanRhCloud.base_url}") if ENV['SATELLITE_RH_CLOUD_URL'].empty? ForemanRhCloud.base_url + '/api/identity/certificate/registrations' end if ENV['org_id'].nil? logger.error('ERROR: org_id needs to be specified.') exit(1) end organization = Organization.find_by(id: ENV['org_id'].to_i) # saw this coming in as a string, so making sure it gets passed as an integer. @uid = cp_owner_id(organization) logger.error('Organization provided does not have a manifest imported.') + exit(1) if @uid.nil? puts 'Paste your token, output will be hidden.' @token = STDIN.noecho(&:gets).chomp logger.error('Token was not entered.') + exit(1) if @token.empty? def headers { Authorization: "Bearer #{@token}" } end def payload { "uid": @uid } end def method :post end begin response = execute_cloud_request( organization: organization, method: method, url: registrations_url, headers: headers, payload: payload.to_json ) logger.debug(response) rescue Exception => ex logger.error(ex) end end end
Version data entries
5 entries across 5 versions & 1 rubygems