kinetic_sdk 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/.yardoc-includes/yard-helpers.rb +14 -0
  3. data/.yardopts +7 -0
  4. data/CHANGELOG.md +41 -0
  5. data/GettingStarted.md +6 -12
  6. data/README.md +85 -37
  7. data/Rakefile +13 -0
  8. data/kinetic_sdk.gemspec +33 -0
  9. data/lib/kinetic_sdk/agent/agent-sdk.rb +90 -0
  10. data/lib/kinetic_sdk/agent/lib/bridges.rb +92 -0
  11. data/lib/kinetic_sdk/agent/lib/filestores.rb +91 -0
  12. data/lib/kinetic_sdk/agent/lib/handler.rb +91 -0
  13. data/lib/kinetic_sdk/bridgehub/bridgehub-sdk.rb +11 -3
  14. data/lib/kinetic_sdk/bridgehub/lib/access_keys.rb +5 -5
  15. data/lib/kinetic_sdk/bridgehub/lib/bridge.rb +5 -5
  16. data/lib/kinetic_sdk/{request_ce/request-ce-sdk.rb → core/core-sdk.rb} +30 -16
  17. data/lib/kinetic_sdk/core/lib/attribute_definitions.rb +500 -0
  18. data/lib/kinetic_sdk/core/lib/bridges.rb +141 -0
  19. data/lib/kinetic_sdk/{request_ce → core}/lib/categories.rb +3 -3
  20. data/lib/kinetic_sdk/{request_ce → core}/lib/datastore_form.rb +8 -8
  21. data/lib/kinetic_sdk/{request_ce → core}/lib/datastore_submissions.rb +20 -9
  22. data/lib/kinetic_sdk/{request_ce → core}/lib/form.rb +7 -7
  23. data/lib/kinetic_sdk/{request_ce → core}/lib/form_types.rb +4 -4
  24. data/lib/kinetic_sdk/{request_ce → core}/lib/jwt.rb +4 -4
  25. data/lib/kinetic_sdk/{request_ce → core}/lib/kapp.rb +7 -7
  26. data/lib/kinetic_sdk/{request_ce → core}/lib/meta.rb +3 -3
  27. data/lib/kinetic_sdk/{request_ce → core}/lib/oauth.rb +4 -4
  28. data/lib/kinetic_sdk/{request_ce → core}/lib/security_policy_definitions.rb +11 -11
  29. data/lib/kinetic_sdk/core/lib/space.rb +156 -0
  30. data/lib/kinetic_sdk/{request_ce → core}/lib/submissions.rb +11 -11
  31. data/lib/kinetic_sdk/{request_ce → core}/lib/system_api.rb +19 -7
  32. data/lib/kinetic_sdk/{request_ce → core}/lib/teams.rb +9 -9
  33. data/lib/kinetic_sdk/{request_ce → core}/lib/users.rb +15 -15
  34. data/lib/kinetic_sdk/{request_ce → core}/lib/webhook_jobs.rb +5 -5
  35. data/lib/kinetic_sdk/{request_ce → core}/lib/webhooks.rb +9 -9
  36. data/lib/kinetic_sdk/discussions/discussions-sdk.rb +12 -4
  37. data/lib/kinetic_sdk/discussions/lib/discussions.rb +8 -8
  38. data/lib/kinetic_sdk/discussions/lib/invitations.rb +9 -9
  39. data/lib/kinetic_sdk/discussions/lib/messages.rb +8 -8
  40. data/lib/kinetic_sdk/discussions/lib/meta.rb +1 -1
  41. data/lib/kinetic_sdk/discussions/lib/participants.rb +5 -5
  42. data/lib/kinetic_sdk/discussions/lib/related_items.rb +4 -4
  43. data/lib/kinetic_sdk/discussions/lib/websockets.rb +9 -9
  44. data/lib/kinetic_sdk/filehub/filehub-sdk.rb +11 -3
  45. data/lib/kinetic_sdk/filehub/lib/access_keys.rb +5 -5
  46. data/lib/kinetic_sdk/filehub/lib/filestores.rb +5 -5
  47. data/lib/kinetic_sdk/task/lib/access_keys.rb +35 -7
  48. data/lib/kinetic_sdk/task/lib/categories.rb +30 -17
  49. data/lib/kinetic_sdk/task/lib/config.rb +14 -14
  50. data/lib/kinetic_sdk/task/lib/engine.rb +1 -1
  51. data/lib/kinetic_sdk/task/lib/errors.rb +10 -10
  52. data/lib/kinetic_sdk/task/lib/export.rb +32 -0
  53. data/lib/kinetic_sdk/task/lib/groups.rb +23 -10
  54. data/lib/kinetic_sdk/task/lib/handlers.rb +27 -11
  55. data/lib/kinetic_sdk/task/lib/health.rb +11 -3
  56. data/lib/kinetic_sdk/task/lib/license.rb +4 -4
  57. data/lib/kinetic_sdk/task/lib/policy_rules.rb +25 -12
  58. data/lib/kinetic_sdk/task/lib/runs.rb +43 -0
  59. data/lib/kinetic_sdk/task/lib/setup.rb +2 -2
  60. data/lib/kinetic_sdk/task/lib/sources.rb +39 -8
  61. data/lib/kinetic_sdk/task/lib/tasks.rb +1 -1
  62. data/lib/kinetic_sdk/task/lib/trees.rb +84 -28
  63. data/lib/kinetic_sdk/task/lib/users.rb +6 -6
  64. data/lib/kinetic_sdk/task/task-sdk.rb +16 -4
  65. data/lib/kinetic_sdk/utils/kinetic-export-utils.rb +157 -0
  66. data/lib/kinetic_sdk/utils/kinetic-http.rb +388 -98
  67. data/lib/kinetic_sdk/utils/logger.rb +82 -46
  68. data/lib/kinetic_sdk/utils/prettier-xml-formatter.rb +60 -0
  69. data/lib/kinetic_sdk/version.rb +1 -1
  70. data/lib/kinetic_sdk.rb +5 -2
  71. metadata +41 -27
  72. data/lib/kinetic_sdk/request_ce/lib/attribute_definitions.rb +0 -153
  73. data/lib/kinetic_sdk/request_ce/lib/bridges.rb +0 -66
  74. data/lib/kinetic_sdk/request_ce/lib/space.rb +0 -89
@@ -20,7 +20,7 @@ module KineticSdk
20
20
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
21
21
  def add_message(discussion_id, message, headers=default_jwt_headers)
22
22
  payload = message_content(message)
23
- info("Adding a message to the #{discussion_id} Discussion")
23
+ @logger.info("Adding a message to the #{discussion_id} Discussion")
24
24
  post("#{@api_url}/discussions/#{discussion_id}/messages", payload, headers)
25
25
  end
26
26
 
@@ -46,7 +46,7 @@ module KineticSdk
46
46
  def add_message_with_attachments(discussion_id, properties={}, headers=default_jwt_headers)
47
47
  payload = message_content(properties['message'])
48
48
  payload["attachments"] = properties['attachments']
49
- info("Adding a message to the #{discussion_id} Discussion")
49
+ @logger.info("Adding a message to the #{discussion_id} Discussion")
50
50
  post_multipart("#{@api_url}/discussions/#{discussion_id}/messages", payload, headers)
51
51
  end
52
52
 
@@ -57,7 +57,7 @@ module KineticSdk
57
57
  # @param headers [Hash] hash of headers to send, default is bearer authentication and accept JSON content type
58
58
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
59
59
  def find_messages(discussion_id, params={}, headers=default_jwt_headers)
60
- info("Finding messages in the #{discussion_id} Discussion")
60
+ @logger.info("Finding messages in the #{discussion_id} Discussion")
61
61
  get("#{@api_url}/discussions/#{discussion_id}/messages", params, headers)
62
62
  end
63
63
 
@@ -69,7 +69,7 @@ module KineticSdk
69
69
  # @param headers [Hash] hash of headers to send, default is bearer authentication and accept JSON content type
70
70
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
71
71
  def find_message(discussion_id, message_id, params={}, headers=default_jwt_headers)
72
- info("Finding the #{message_id} message in the #{discussion_id} Discussion")
72
+ @logger.info("Finding the #{message_id} message in the #{discussion_id} Discussion")
73
73
  get("#{@api_url}/discussions/#{discussion_id}/messages/#{message_id}", params, headers)
74
74
  end
75
75
 
@@ -93,7 +93,7 @@ module KineticSdk
93
93
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
94
94
  def update_message(discussion_id, message_id, message, headers=default_jwt_headers)
95
95
  payload = message_content(message)
96
- info("Updating the #{message_id} message in the #{discussion_id} Discussion")
96
+ @logger.info("Updating the #{message_id} message in the #{discussion_id} Discussion")
97
97
  put("#{@api_url}/discussions/#{discussion_id}/messages/#{message_id}", payload, headers)
98
98
  end
99
99
 
@@ -118,7 +118,7 @@ module KineticSdk
118
118
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
119
119
  def update_message_with_attachments(discussion_id, message_id, message, attachments=[], headers=header_bearer_auth)
120
120
  payload = { "message" => message_content(message).to_json, "attachments" => attachments }
121
- info("Updating the #{message_id} message in the #{discussion_id} Discussion")
121
+ @logger.info("Updating the #{message_id} message in the #{discussion_id} Discussion")
122
122
  post_multipart("#{@api_url}/discussions/#{discussion_id}/messages/#{message_id}", payload, headers)
123
123
  end
124
124
 
@@ -137,7 +137,7 @@ module KineticSdk
137
137
  # @param headers [Hash] hash of headers to send, default is bearer authentication
138
138
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
139
139
  def download_message_attachment(discussion_id, message_id, document_id, filename, params={}, headers=header_bearer_auth)
140
- info("Downloading the #{filename} file attachment in the #{discussion_id} Discussion")
140
+ @logger.info("Downloading the #{filename} file attachment in the #{discussion_id} Discussion")
141
141
  get("#{@api_url}/discussions/#{discussion_id}/messages/#{message_id}/files/#{document_id}/#{filename}", params, headers)
142
142
  end
143
143
 
@@ -164,7 +164,7 @@ module KineticSdk
164
164
  # @param headers [Hash] hash of headers to send, default is bearer authentication
165
165
  def export_message_attachment(discussion_id, message_id, document_id, filename, params={}, headers=header_bearer_auth)
166
166
  raise StandardError.new "An export directory must be defined to export a file attachment." if @options[:export_directory].nil?
167
- info("Exporting the #{filename} file attachment in the #{discussion_id} Discussion")
167
+ @logger.info("Exporting the #{filename} file attachment in the #{discussion_id} Discussion")
168
168
  # Create the export directory if it doesn't yet exist
169
169
  export_dir = FileUtils::mkdir_p(File.join(@options[:export_directory], discussion_id, "files", message_id))
170
170
  export_file = File.join(export_dir, filename)
@@ -6,7 +6,7 @@ module KineticSdk
6
6
  # @param headers [Hash] hash of headers to send, default is accept JSON content type
7
7
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
8
8
  def app_version(headers=header_accept_json)
9
- info("Retrieving Discussions application version.")
9
+ @logger.info("Retrieving Discussions application version.")
10
10
  get("#{@api_url}/version", {}, headers)
11
11
  end
12
12
 
@@ -9,7 +9,7 @@ module KineticSdk
9
9
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
10
10
  def add_participant(discussion_id, username, headers=default_jwt_headers)
11
11
  payload = { "username" => username }
12
- info("Participant #{username} joining the #{discussion_id} Discussion")
12
+ @logger.info("Participant #{username} joining the #{discussion_id} Discussion")
13
13
  post("#{@api_url}/discussions/#{discussion_id}/participants", payload, headers)
14
14
  end
15
15
 
@@ -20,7 +20,7 @@ module KineticSdk
20
20
  # @param headers [Hash] hash of headers to send, default is bearer authentication
21
21
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
22
22
  def delete_participant(discussion_id, username, headers=header_bearer_auth)
23
- info("Participant #{username} is leaving the #{discussion_id} Discussion")
23
+ @logger.info("Participant #{username} is leaving the #{discussion_id} Discussion")
24
24
  delete("#{@api_url}/discussions/#{discussion_id}/participants/#{encode(username)}", headers)
25
25
  end
26
26
 
@@ -31,7 +31,7 @@ module KineticSdk
31
31
  # @param headers [Hash] hash of headers to send, default is bearer authentication and accept JSON content type
32
32
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
33
33
  def find_participants(discussion_id, params={}, headers=default_jwt_headers)
34
- info("Finding Participants in the #{discussion_id} Discussion")
34
+ @logger.info("Finding Participants in the #{discussion_id} Discussion")
35
35
  get("#{@api_url}/discussions/#{discussion_id}/participants", params, headers)
36
36
  end
37
37
 
@@ -43,7 +43,7 @@ module KineticSdk
43
43
  # @param headers [Hash] hash of headers to send, default is bearer authentication and accept JSON content type
44
44
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
45
45
  def find_participant(discussion_id, username, params={}, headers=default_jwt_headers)
46
- info("Finding the #{username} Participant in the #{discussion_id} Discussion")
46
+ @logger.info("Finding the #{username} Participant in the #{discussion_id} Discussion")
47
47
  get("#{@api_url}/discussions/#{discussion_id}/participants/#{encode(username)}", params, headers)
48
48
  end
49
49
 
@@ -56,7 +56,7 @@ module KineticSdk
56
56
  # @param headers [Hash] hash of headers to send, default is bearer authentication and accept JSON content type
57
57
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
58
58
  def update_participant(discussion_id, username, properties={}, headers=default_jwt_headers)
59
- info("Updating the #{username} Participant in the #{discussion_id} Discussion")
59
+ @logger.info("Updating the #{username} Participant in the #{discussion_id} Discussion")
60
60
  put("#{@api_url}/discussions/#{discussion_id}/participants/#{encode(username)}", properties, headers)
61
61
  end
62
62
 
@@ -10,7 +10,7 @@ module KineticSdk
10
10
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
11
11
  def add_related_item(discussion_id, type, key, headers=default_jwt_headers)
12
12
  payload = {"type": type, "key": key}
13
- info("Adding a related item of type #{type} and key #{key} to the #{discussion_id} Discussion")
13
+ @logger.info("Adding a related item of type #{type} and key #{key} to the #{discussion_id} Discussion")
14
14
  post("#{@api_url}/discussions/#{discussion_id}/relatedItems", payload, headers)
15
15
  end
16
16
 
@@ -22,7 +22,7 @@ module KineticSdk
22
22
  # @param headers [Hash] hash of headers to send, default is bearer authentication
23
23
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
24
24
  def delete_related_item(discussion_id, type, key, headers=header_bearer_auth)
25
- info("Deleting related item of type #{type} and key #{key} from the #{discussion_id} Discussion")
25
+ @logger.info("Deleting related item of type #{type} and key #{key} from the #{discussion_id} Discussion")
26
26
  delete("#{@api_url}/discussions/#{discussion_id}/relatedItems/#{encode(type)}/#{encode(key)}", payload, headers)
27
27
  end
28
28
 
@@ -33,7 +33,7 @@ module KineticSdk
33
33
  # @param headers [Hash] hash of headers to send, default is bearer authentication and accept JSON content type
34
34
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
35
35
  def find_related_items(discussion_id, params={}, headers=default_jwt_headers)
36
- info("Finding related items in the #{discussion_id} Discussion")
36
+ @logger.info("Finding related items in the #{discussion_id} Discussion")
37
37
  get("#{@api_url}/discussions/#{discussion_id}/relatedItems", params, headers)
38
38
  end
39
39
 
@@ -46,7 +46,7 @@ module KineticSdk
46
46
  # @param headers [Hash] hash of headers to send, default is bearer authentication and accept JSON content type
47
47
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
48
48
  def find_related_item(discussion_id, type, key, params={}, headers=default_jwt_headers)
49
- info("Finding the related item of type #{type} and key #{key} in the #{discussion_id} Discussion")
49
+ @logger.info("Finding the related item of type #{type} and key #{key} in the #{discussion_id} Discussion")
50
50
  get("#{@api_url}/discussions/#{discussion_id}/relatedItems/#{encode(type)}/#{encode(key)}", params, headers)
51
51
  end
52
52
 
@@ -47,18 +47,18 @@ module KineticSdk
47
47
 
48
48
 
49
49
  def ws_writer(ws, msg)
50
- info("Websocket send message: #{msg}")
50
+ @logger.info("Websocket send message: #{msg}")
51
51
  ws.send(msg)
52
52
  end
53
53
 
54
54
  def ws_reader(ws, send_msg=nil)
55
55
  ws.read do |msg|
56
- info("Websocket read: #{msg}")
56
+ @logger.info("Websocket read: #{msg}")
57
57
  o = JSON.parse(msg)
58
58
  if ("error$".match(o['event']))
59
- info("Websocket failure: #{o['payload']}")
59
+ @logger.info("Websocket failure: #{o['payload']}")
60
60
  elsif (o['event'] == "participant:updated")
61
- info("Websocket close: EOF")
61
+ @logger.info("Websocket close: EOF")
62
62
  ws.close(1000, "EOF")
63
63
  break
64
64
  else
@@ -72,19 +72,19 @@ module KineticSdk
72
72
 
73
73
  def ws_client(message)
74
74
  write_thread = nil
75
- info("Websocket connecting to #{@topics_ws_server}")
75
+ @logger.info("Websocket connecting to #{@topics_ws_server}")
76
76
  Kontena::Websocket::Client.connect(@topics_ws_server) do |ws|
77
- info("Websocket connected to #{ws.url}")
77
+ @logger.info("Websocket connected to #{ws.url}")
78
78
  write_thread = Thread.new {
79
79
  ws_writer(ws, identify_msg())
80
80
  }
81
81
  ws_reader(ws, message)
82
- info("Websocket client closed connection with code #{ws.close_code}: #{ws.close_reason}")
82
+ @logger.info("Websocket client closed connection with code #{ws.close_code}: #{ws.close_reason}")
83
83
  end
84
84
  rescue Kontena::Websocket::CloseError => e
85
- info(e)
85
+ @logger.info(e)
86
86
  rescue Kontena::Websocket::Error => e
87
- info(e)
87
+ @logger.info(e)
88
88
  ensure
89
89
  if write_thread
90
90
  write_thread.kill
@@ -10,7 +10,7 @@ module KineticSdk
10
10
  # Include the KineticHttpUtils module
11
11
  include KineticSdk::Utils::KineticHttpUtils
12
12
 
13
- attr_reader :api_url, :username, :options, :password, :server, :version
13
+ attr_reader :api_url, :username, :options, :password, :server, :version, :logger
14
14
 
15
15
  # Initalize the FileHub SDK with the web server URL and configuration user
16
16
  # credentials, along with any custom option values.
@@ -28,8 +28,11 @@ module KineticSdk
28
28
  # @option opts [String] :password the password for the user
29
29
  # @option opts [Hash<Symbol, Object>] :options ({}) optional settings
30
30
  #
31
- # * :log_level (String) (_defaults to: off_) level of logging - off | info | debug | trace
32
- # * :max_redirects (Fixnum) (_defaults to: 10_) maximum number of redirects to follow
31
+ # * :gateway_retry_limit (FixNum) (_defaults to: 5_) max number of times to retry a bad gateway
32
+ # * :gateway_retry_delay (Float) (_defaults to: 1.0_) number of seconds to delay before retrying a bad gateway
33
+ # * :log_level (String) (_defaults to: off_) level of logging - off | error | warn | info | debug
34
+ # * :log_output (String) (_defaults to: STDOUT_) where to send output - STDOUT | STDERR
35
+ # * :max_redirects (Fixnum) (_defaults to: 5_) maximum number of redirects to follow
33
36
  # * :ssl_ca_file (String) full path to PEM certificate used to verify the server
34
37
  # * :ssl_verify_mode (String) (_defaults to: none_) - none | peer
35
38
  #
@@ -69,6 +72,11 @@ module KineticSdk
69
72
 
70
73
  # process any individual options
71
74
  @options = options.delete(:options) || {}
75
+ # setup logging
76
+ log_level = @options[:log_level] || @options["log_level"]
77
+ log_output = @options[:log_output] || @options["log_output"]
78
+ @logger = KineticSdk::Utils::KLogger.new(log_level, log_output)
79
+
72
80
  @username = options[:username]
73
81
  @password = options[:password]
74
82
  @server = options[:app_server_url].chomp('/')
@@ -11,7 +11,7 @@ module KineticSdk
11
11
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
12
12
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
13
13
  def add_access_key(slug, payload, headers=default_headers)
14
- info("Adding Access Key for Filestore \"#{slug}\"")
14
+ @logger.info("Adding Access Key for Filestore \"#{slug}\"")
15
15
  post("#{@api_url}/filestores/#{slug}/access-keys", payload, headers)
16
16
  end
17
17
 
@@ -22,7 +22,7 @@ module KineticSdk
22
22
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
23
23
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
24
24
  def delete_access_key(slug, id, headers=default_headers)
25
- info("Deleting Access Key #{id} for Filestore \"#{slug}\"")
25
+ @logger.info("Deleting Access Key #{id} for Filestore \"#{slug}\"")
26
26
  delete("#{@api_url}/filestores/#{slug}/access-keys/#{id}", headers)
27
27
  end
28
28
 
@@ -33,7 +33,7 @@ module KineticSdk
33
33
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
34
34
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
35
35
  def find_access_keys(slug, params={}, headers=default_headers)
36
- info("Finding Access Keys for Filestore \"#{slug}\"")
36
+ @logger.info("Finding Access Keys for Filestore \"#{slug}\"")
37
37
  get("#{@api_url}/filestores/#{slug}/access-keys", params, headers)
38
38
  end
39
39
 
@@ -45,7 +45,7 @@ module KineticSdk
45
45
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
46
46
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
47
47
  def find_access_key(slug, id, params={}, headers=default_headers)
48
- info("Finding Access Key \"#{id}\" for Filestore \"#{slug}\"")
48
+ @logger.info("Finding Access Key \"#{id}\" for Filestore \"#{slug}\"")
49
49
  get("#{@api_url}/filestores/#{slug}/access-keys/#{id}", params, headers)
50
50
  end
51
51
 
@@ -59,7 +59,7 @@ module KineticSdk
59
59
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
60
60
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
61
61
  def update_access_key(slug, id, payload, headers=default_headers)
62
- info("Updating Access Key \"#{id}\" for Filestore \"#{slug}\"")
62
+ @logger.info("Updating Access Key \"#{id}\" for Filestore \"#{slug}\"")
63
63
  put("#{@api_url}/filestores/#{slug}/access-keys/#{id}", payload, headers)
64
64
  end
65
65
 
@@ -12,7 +12,7 @@ module KineticSdk
12
12
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
13
13
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
14
14
  def add_filestore(payload, headers=default_headers)
15
- info("Adding Filestore \"#{payload['name']}\" with slug \"#{payload['slug']}\"")
15
+ @logger.info("Adding Filestore \"#{payload['name']}\" with slug \"#{payload['slug']}\"")
16
16
  post("#{@api_url}/filestores", payload, headers)
17
17
  end
18
18
 
@@ -22,7 +22,7 @@ module KineticSdk
22
22
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
23
23
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
24
24
  def delete_filestore(slug, headers=default_headers)
25
- info("Deleting Filestore \"#{slug}\"")
25
+ @logger.info("Deleting Filestore \"#{slug}\"")
26
26
  delete("#{@api_url}/filestores/#{slug}", headers)
27
27
  end
28
28
 
@@ -32,7 +32,7 @@ module KineticSdk
32
32
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
33
33
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
34
34
  def find_filestores(params={}, headers=default_headers)
35
- info("Find Filestores")
35
+ @logger.info("Find Filestores")
36
36
  get("#{@api_url}/filestores", params, headers)
37
37
  end
38
38
 
@@ -43,7 +43,7 @@ module KineticSdk
43
43
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
44
44
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
45
45
  def find_filestore(slug, params={}, headers=default_headers)
46
- info("Finding Filestore \"#{slug}\"")
46
+ @logger.info("Finding Filestore \"#{slug}\"")
47
47
  get("#{@api_url}/filestores/#{slug}", params, headers)
48
48
  end
49
49
 
@@ -59,7 +59,7 @@ module KineticSdk
59
59
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
60
60
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
61
61
  def update_filestore(slug, payload, headers=default_headers)
62
- info("Updating Filestore \"#{slug}\"")
62
+ @logger.info("Updating Filestore \"#{slug}\"")
63
63
  put("#{@api_url}/filestores/#{slug}", payload, headers)
64
64
  end
65
65
 
@@ -26,7 +26,8 @@ module KineticSdk
26
26
  # add_access_key()
27
27
  #
28
28
  def add_access_key(access_key={}, headers=default_headers)
29
- info("Adding access key " + (access_key.has_key?('identifier') ? access_key['identifier'] : ""))
29
+ @logger.info("Adding access key " + (access_key.has_key?('identifier') ? access_key['identifier'] : ""))
30
+ access_key["secret"] = "SETME" if access_key["secret"].nil?
30
31
  post("#{@api_url}/access-keys", access_key, headers)
31
32
  end
32
33
 
@@ -36,7 +37,7 @@ module KineticSdk
36
37
  # @param headers [Hash] hash of headers to send, default is basic authentication
37
38
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
38
39
  def delete_access_key(identifier, headers=header_basic_auth)
39
- info("Deleting access key \"#{identifier}\"")
40
+ @logger.info("Deleting access key \"#{identifier}\"")
40
41
  delete("#{@api_url}/access-keys/#{encode(identifier)}", headers)
41
42
  end
42
43
 
@@ -45,19 +46,46 @@ module KineticSdk
45
46
  # @param headers [Hash] hash of headers to send, default is basic authentication
46
47
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
47
48
  def delete_access_keys(headers=header_basic_auth)
48
- info("Deleting all access keys")
49
+ @logger.info("Deleting all access keys")
49
50
  (find_access_keys(headers).content["accessKeys"] || []).each do |access_key|
50
51
  delete("#{@api_url}/access_keys/#{encode(access_key['identifier'])}", headers)
51
52
  end
52
53
  end
53
54
 
55
+ # Export all access keys to :identifier.json file in export_directory/access-keys
56
+ #
57
+ # @param headers [Hash] hash of headers to send, default is basic authentication
58
+ # @return nil
59
+ def export_access_keys(headers=header_basic_auth)
60
+ raise StandardError.new "An export directory must be defined to export access keys." if @options[:export_directory].nil?
61
+ response = find_access_keys
62
+ access_keys_dir = FileUtils::mkdir_p(File.join(@options[:export_directory], "access-keys"))
63
+ (response.content["accessKeys"] || []).each do |access_key|
64
+ access_key_file = File.join(access_keys_dir, "#{access_key['identifier'].slugify}.json")
65
+ write_object_to_file(access_key_file, access_key)
66
+ end
67
+ end
68
+
69
+ # Import all access keys from :identifier.json file in export_directory/access-keys
70
+ #
71
+ # @param headers [Hash] hash of headers to send, default is basic authentication
72
+ # @return nil
73
+ def import_access_keys(headers=default_headers)
74
+ raise StandardError.new "An export directory must be defined to import access keys from." if @options[:export_directory].nil?
75
+ @logger.info("Importing all Access Keys in Export Directory")
76
+ Dir["#{@options[:export_directory]}/access-keys/*.json"].sort.each do |file|
77
+ access_key = JSON.parse(File.read(file))
78
+ add_access_key(access_key, headers)
79
+ end
80
+ end
81
+
54
82
  # Find all access keys
55
83
  #
56
84
  # @param params [Hash] Query parameters that are added to the URL, such as +include+
57
85
  # @param headers [Hash] hash of headers to send, default is basic authentication
58
86
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
59
87
  def find_access_keys(params={}, headers=header_basic_auth)
60
- info("Finding all access keys")
88
+ @logger.info("Finding all access keys")
61
89
  get("#{@api_url}/access-keys", params, headers)
62
90
  end
63
91
 
@@ -68,7 +96,7 @@ module KineticSdk
68
96
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
69
97
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
70
98
  def find_access_key(identifier, params={}, headers=default_headers)
71
- info("Finding access key \"#{identifier}\"")
99
+ @logger.info("Finding access key \"#{identifier}\"")
72
100
  get("#{@api_url}/access-keys/#{encode(identifier)}", params, headers)
73
101
  end
74
102
 
@@ -79,14 +107,14 @@ module KineticSdk
79
107
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
80
108
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
81
109
  #
82
- # Exammple
110
+ # Example
83
111
  #
84
112
  # update_identifier("X54DLNU", {
85
113
  # "description": "Updated access key"
86
114
  # })
87
115
  #
88
116
  def update_access_key(identifier, body={}, headers=default_headers)
89
- info("Updating the \"#{identifier}\" access key")
117
+ @logger.info("Updating the \"#{identifier}\" access key")
90
118
  put("#{@api_url}/access-keys/#{encode(identifier)}", body, headers)
91
119
  end
92
120
 
@@ -11,7 +11,7 @@ module KineticSdk
11
11
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
12
12
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
13
13
  def add_category(category, headers=default_headers)
14
- info("Add category \"#{category['name']}\"")
14
+ @logger.info("Add category \"#{category['name']}\"")
15
15
  post("#{@api_url}/categories", category, headers)
16
16
  end
17
17
 
@@ -21,7 +21,7 @@ module KineticSdk
21
21
  # @param headers [Hash] hash of headers to send, default is basic authentication
22
22
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
23
23
  def delete_category(name, headers=header_basic_auth)
24
- info("Deleting Category \"#{name}\"")
24
+ @logger.info("Deleting Category \"#{name}\"")
25
25
  delete("#{@api_url}/categories/#{encode(name)}", headers)
26
26
  end
27
27
 
@@ -30,7 +30,7 @@ module KineticSdk
30
30
  # @param headers [Hash] hash of headers to send, default is basic authentication
31
31
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
32
32
  def delete_categories(headers=header_basic_auth)
33
- info("Deleting all categories")
33
+ @logger.info("Deleting all categories")
34
34
  (find_categories(headers).content["categories"] || []).each do |category|
35
35
  delete_category(category['name'], headers)
36
36
  end
@@ -44,14 +44,14 @@ module KineticSdk
44
44
  # - +policyRules+ - array of policy rule names associated to the category
45
45
  # - +trees+ - array of tree (routine) definitionIds associated to the category
46
46
  # @param headers [Hash] hash of headers to send, default is basic authentication
47
- # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
47
+ # @return nil
48
48
  def export_category(category, headers=header_basic_auth)
49
49
  raise StandardError.new "An export directory must be defined to export a category." if @options[:export_directory].nil?
50
50
  if category.is_a? String
51
51
  response = find_category(category, { "include" => "handlers,trees,policyRules" }, headers)
52
52
  category = response.content
53
53
  end
54
- info("Exporting category \"#{category['name']}\" to #{@options[:export_directory]}.")
54
+ @logger.info("Exporting category \"#{category['name']}\" to #{@options[:export_directory]}.")
55
55
  # Create the category directory if it doesn't yet exist
56
56
  category_dir = FileUtils::mkdir_p(File.join(@options[:export_directory], "categories"))
57
57
  category_file = File.join(category_dir, "#{category['name'].slugify}.json")
@@ -63,13 +63,13 @@ module KineticSdk
63
63
 
64
64
  # write the file
65
65
  File.write(category_file, JSON.pretty_generate(category))
66
- info("Exported category: #{category['name']} to #{category_file}")
66
+ @logger.info("Exported category: #{category['name']} to #{category_file}")
67
67
  end
68
68
 
69
69
  # Export Categories
70
70
  #
71
71
  # @param headers [Hash] hash of headers to send, default is basic authentication
72
- # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
72
+ # @return nil
73
73
  def export_categories(headers=header_basic_auth)
74
74
  raise StandardError.new "An export directory must be defined to export categories." if @options[:export_directory].nil?
75
75
  (find_categories({ "include" => "handlers,trees,policyRules" }).content["categories"] || []).each do |category|
@@ -77,13 +77,26 @@ module KineticSdk
77
77
  end
78
78
  end
79
79
 
80
+ # Import Categories
81
+ #
82
+ # @param headers [Hash] hash of headers to send, default is basic authentication
83
+ # @return nil
84
+ def import_categories(headers=default_headers)
85
+ raise StandardError.new "An export directory must be defined to import categories from." if @options[:export_directory].nil?
86
+ @logger.info("Importing all Categories in Export Directory")
87
+ Dir["#{@options[:export_directory]}/categories/*.json"].sort.each do |file|
88
+ category = JSON.parse(File.read(file))
89
+ add_category(category, headers)
90
+ end
91
+ end
92
+
80
93
  # Find all categories
81
94
  #
82
95
  # @param params [Hash] Query parameters that are added to the URL, such as +include+
83
96
  # @param headers [Hash] hash of headers to send, default is basic authentication
84
97
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
85
98
  def find_categories(params={}, headers=header_basic_auth)
86
- info("Finding all categories")
99
+ @logger.info("Finding all categories")
87
100
  get("#{@api_url}/categories", params, headers)
88
101
  end
89
102
 
@@ -94,7 +107,7 @@ module KineticSdk
94
107
  # @param headers [Hash] hash of headers to send, default is basic authentication
95
108
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
96
109
  def find_category(name, params={}, headers=header_basic_auth)
97
- info("Finding Category \"#{name}\"")
110
+ @logger.info("Finding Category \"#{name}\"")
98
111
  get("#{@api_url}/categories/#{encode(name)}", params, headers)
99
112
  end
100
113
 
@@ -104,13 +117,13 @@ module KineticSdk
104
117
  # @param body [Hash] the updated property values
105
118
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
106
119
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
107
- #
120
+ #
108
121
  # Example
109
122
  #
110
123
  # update_category("Foo", { "name" => "Bar" })
111
124
  #
112
125
  def update_category(original_name, body={}, headers=default_headers)
113
- info("Updating Category \"#{original_name}\"")
126
+ @logger.info("Updating Category \"#{original_name}\"")
114
127
  put("#{@api_url}/categories/#{encode(original_name)}", body, headers)
115
128
  end
116
129
 
@@ -123,7 +136,7 @@ module KineticSdk
123
136
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
124
137
  def add_handler_to_category(handler_id, category_name, headers=default_headers)
125
138
  body = { "definitionId" => handler_id }
126
- info("Adding handler \"#{handler_id}\" to category \"#{category_name}\"")
139
+ @logger.info("Adding handler \"#{handler_id}\" to category \"#{category_name}\"")
127
140
  post("#{@api_url}/categories/#{encode(category_name)}/handlers", body, headers)
128
141
  end
129
142
 
@@ -134,7 +147,7 @@ module KineticSdk
134
147
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
135
148
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
136
149
  def remove_handler_from_category(handler_id, category_name, headers=default_headers)
137
- info("Removing handler \"#{handler_id}\" from category \"#{category_name}\"")
150
+ @logger.info("Removing handler \"#{handler_id}\" from category \"#{category_name}\"")
138
151
  delete("#{@api_url}/categories/#{encode(category_name)}/handlers/#{encode(handler_id)}", headers)
139
152
  end
140
153
 
@@ -146,7 +159,7 @@ module KineticSdk
146
159
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
147
160
  def add_routine_to_category(routine_id, category_name, headers=default_headers)
148
161
  body = { "definitionId" => routine_id }
149
- info("Adding routine \"#{routine_id}\" to category \"#{category_name}\"")
162
+ @logger.info("Adding routine \"#{routine_id}\" to category \"#{category_name}\"")
150
163
  post("#{@api_url}/categories/#{encode(category_name)}/routines", body, headers)
151
164
  end
152
165
 
@@ -157,7 +170,7 @@ module KineticSdk
157
170
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
158
171
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
159
172
  def remove_routine_from_category(routine_id, category_name, headers=default_headers)
160
- info("Removing routine \"#{routine_id}\" from category \"#{category_name}\"")
173
+ @logger.info("Removing routine \"#{routine_id}\" from category \"#{category_name}\"")
161
174
  delete("#{@api_url}/categories/#{encode(category_name)}/routines/#{encode(routine_id)}", headers)
162
175
  end
163
176
 
@@ -170,7 +183,7 @@ module KineticSdk
170
183
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
171
184
  def add_policy_rule_to_category(policy_rule_type, policy_rule_name, category_name, headers=default_headers)
172
185
  body = { "type" => policy_rule_type, "name" => policy_rule_name }
173
- info("Adding policy rule \"#{policy_rule_type} - #{policy_rule_name}\" to category \"#{category_name}\"")
186
+ @logger.info("Adding policy rule \"#{policy_rule_type} - #{policy_rule_name}\" to category \"#{category_name}\"")
174
187
  post("#{@api_url}/categories/#{encode(category_name)}/policyRules", body, headers)
175
188
  end
176
189
 
@@ -182,7 +195,7 @@ module KineticSdk
182
195
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
183
196
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
184
197
  def remove_policy_rule_from_category(policy_rule_type, policy_rule_name, category_name, headers=default_headers)
185
- info("Removing policy rule \"#{policy_rule_type} - #{policy_rule_name}\" from category \"#{category_name}\"")
198
+ @logger.info("Removing policy rule \"#{policy_rule_type} - #{policy_rule_name}\" from category \"#{category_name}\"")
186
199
  delete("#{@api_url}/categories/#{encode(category_name)}/policyRules/#{encode(policy_rule_type)}/#{encode(policy_rule_name)}", headers)
187
200
  end
188
201