Skip to content

Commit

Permalink
Add Hybrid Cloud rake task (theforeman#803)
Browse files Browse the repository at this point in the history
  • Loading branch information
chris1984 authored and ShimShtein committed Mar 13, 2023
1 parent 1721a59 commit 62e84f0
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions lib/tasks/hybrid_cloud.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
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

0 comments on commit 62e84f0

Please sign in to comment.