Class: Resources::ServiceDefinition
- Inherits:
-
BaseResource
- Object
- BaseResource
- Resources::ServiceDefinition
- Defined in:
- lib/pvdgm-svc-client/resources/service_definition.rb
Constant Summary collapse
- VALIDATE_PORT =
->(answer) do return true if answer.is_a?(Fixnum) return true if answer.nil? || (answer.is_a?(String) && (answer.empty? || answer == '^')) answer =~ /\A[0-9]+\z/ end
Instance Attribute Summary
Attributes inherited from BaseResource
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #get_port_number(prev_value = nil) ⇒ Object
- #list ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Methods included from ServiceDefinitionPrompter
Methods included from ServicePrompter
Methods included from ThirdPartyPrompter
Methods inherited from BaseResource
Constructor Details
This class inherits a constructor from BaseResource
Instance Method Details
#create ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# 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 ⇒ Object
131 132 133 134 135 136 137 138 139 140 141 142 143 |
# 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) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# 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 ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# 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 ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# 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 ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# 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 |