Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Kindly
- class << self
- attr_accessor :logger
- def for_service(service)
- service.driver_type.camelize.constantize.new(service)
- end
- end
- end
- class Kindly::Cpanel
- attr_accessor :service, :lumberg_client
- def initialize(service)
- @service = service
- @lumberg_client = ::Lumberg::Whm::Server.new(host: service.hardware.name, hash: service.hardware.data[:whm_hash])
- end
- def provision(params = {})
- log_params params
- parse lumberg_client.account.create(username: service.username, password: service.password, domain: service.description)
- end
- private
- def parse(response)
- Kindly.logger.debug("CPanel response with: #{response}")
- if response[:success]
- response
- else
- raise KindlyError, "Cpanel error: #{result.fetch(:message, 'Unknown Error')}"
- end
- end
- def log_request(params)
- Kindly.logger.debug("CPanel request with: #{params}")
- end
- end
- class Service
- delegate :driver, to: -> { Kindly.for_service(self) }
- end
- class ServiceObserver
- def before_active(service, transition)
- driver.provision transition.args[0]
- end
- def before_suspend(service, transition)
- driver.suspend transition.args[0]
- end
- end
Add Comment
Please, Sign In to add comment