class Resources::ServiceDefinition
Constants
- VALIDATE_PORT
Public Instance Methods
create()
click to toggle source
# File lib/pvdgm-svc-client/resources/service_definition.rb, line 78 def create tp_id = third_party_id params = { service_definition: { service_id: service_id, hostname: prompter.ask("\nHost name: ") { |q| q.validate = /\A.{1,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid host name" }, port: get_port_number, base_uri: prompter.ask("\nBase URI: ") { |q| q.validate = /\A.{1,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid base URI" }, username: prompter.ask("\nUser name: ") { |q| q.validate = /\A.{0,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid user name" }, service_class: prompter.ask("\nService Class: ") { |q| q.validate = /\A.{1,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid service class" } } } password = prompter.ask("\nPassword: ") token = prompter.ask("\nToken: ") if (password && password.size > 0) || (token && token.size > 0) params[:credential] = { } params[:credential][:password] = password if password && password.size > 0 params[:credential][:token] = token if token && token.size > 0 end result = post("services/third_parties/#{tp_id}/service_definitions", params) puts "\nID of new service definition: #{result['id']}" puts end
destroy()
click to toggle source
# File lib/pvdgm-svc-client/resources/service_definition.rb, line 131 def destroy tp_id = third_party_id sd_id = service_definition_id show if prompter.agree("\nAre you sure you want to destroy this service definition? (y/n) ", true) puts result = delete("services/third_parties/#{tp_id}/service_definitions/#{sd_id}") puts "\nID of deleted service_definition: #{result['id']}" else puts "\nCancelled deletion" end puts end
get_port_number(prev_value=nil)
click to toggle source
# File lib/pvdgm-svc-client/resources/service_definition.rb, line 64 def get_port_number(prev_value=nil) clear_default = ->(field) { field == "^" ? nil : field } prompt = "\nPort" prompt << " (^ to clear)" unless prev_value.nil? prompt << ": " v = prompter.ask(prompt, clear_default) do |q| q.default = prev_value.to_s unless prev_value.nil? q.validate = VALIDATE_PORT q.responses[:ask_on_error] = :question q.responses[:not_valid] = "\nNot a valid port number" end v == "0" ? nil : v end
list()
click to toggle source
# File lib/pvdgm-svc-client/resources/service_definition.rb, line 14 def list tp_id = third_party_id result = get("services/third_parties/#{tp_id}/service_definitions") puts "\nService definitions for third party: #{tp_id}" table = Terminal::Table.new headings: [ 'Third Party', 'Service', 'Hostname', 'Port', 'Base URI', 'User Name', 'Service Class', 'Password', 'Token' ] do |t| result.each do | service_definition | t << [ "#{service_definition['third_party_name']} (#{service_definition['third_party_id']})", "#{service_definition['service_name']} (#{service_definition['service_id']})", service_definition['hostname'], service_definition['port'], service_definition['base_uri'], service_definition['username'], service_definition['service_class'], service_definition['password'], service_definition['token'] ] end end puts table puts end
show()
click to toggle source
# File lib/pvdgm-svc-client/resources/service_definition.rb, line 35 def show tp_id = third_party_id sd_id = service_definition_id service_definition = get("services/third_parties/#{tp_id}/service_definitions/#{sd_id}") @sd_third_party_id = service_definition['third_party_id'] @sd_service_id = service_definition['service_id'] @sd_hostname = service_definition['hostname'] @sd_port = service_definition['port'] @sd_base_uri = service_definition['base_uri'] @sd_username = service_definition['username'] @sd_service_class = service_definition['service_class'] @sd_password = service_definition['password'] @sd_token = service_definition['token'] puts "\nService Definition for third party: #{tp_id}/#{sd_id}" table = Terminal::Table.new headings: [ 'Third Party', 'Service', 'Hostname', 'Port', 'Base URI', 'User Name', 'Service Class', 'Password', 'Token' ] do |t| t << [ "#{service_definition['third_party_name']} (#{service_definition['third_party_id']})", "#{service_definition['service_name']} (#{service_definition['service_id']})", service_definition['hostname'], service_definition['port'], service_definition['base_uri'], service_definition['username'], service_definition['service_class'], service_definition['password'], service_definition['token'] ] end puts table puts end
update()
click to toggle source
# File lib/pvdgm-svc-client/resources/service_definition.rb, line 103 def update clear_default = ->(field) { field == "^" ? '' : field } tp_id = third_party_id sd_id = service_definition_id show params = { service_definition: { service_id: service_id, hostname: prompter.ask("\nHost name: ") { |q| q.default = @sd_hostname; q.validate = /\A.{1,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid host name" }, port: get_port_number(@sd_port), base_uri: prompter.ask("\nBase URI: ", String) { |q| q.default = @sd_base_uri.gsub("<%=", "<%%="); q.validate = /\A.{1,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid base URI" }.gsub("<%%=", "<%="), username: prompter.ask("\nUser name (^ to clear): ", clear_default) { |q| q.default = @sd_username; q.validate = /\A.{0,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid user name" }, service_class: prompter.ask("\nService Class: ") { |q| q.default = @sd_service_class; q.validate = /\A.{1,255}\z/; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nNot a valid service class" } } } password = prompter.ask("\nPassword (^ to clear): ", clear_default) { |q| q.default = @sd_password } token = prompter.ask("\nToken (^ to clear): ", clear_default) { |q| q.default = @sd_token } if (password && password.size > 0) || (token && token.size > 0) params[:credential] = { } params[:credential][:password] = password if password && password.size > 0 params[:credential][:token] = token if token && token.size > 0 end result = put("services/third_parties/#{tp_id}/service_definitions/#{sd_id}", params) puts "\nID of updated service definition: #{result['id']}" puts end