right_agent 2.0.7-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +20 -0
- data/README.rdoc +82 -0
- data/Rakefile +113 -0
- data/lib/right_agent.rb +59 -0
- data/lib/right_agent/actor.rb +182 -0
- data/lib/right_agent/actor_registry.rb +76 -0
- data/lib/right_agent/actors/agent_manager.rb +232 -0
- data/lib/right_agent/agent.rb +1149 -0
- data/lib/right_agent/agent_config.rb +480 -0
- data/lib/right_agent/agent_identity.rb +210 -0
- data/lib/right_agent/agent_tag_manager.rb +237 -0
- data/lib/right_agent/audit_formatter.rb +107 -0
- data/lib/right_agent/clients.rb +31 -0
- data/lib/right_agent/clients/api_client.rb +383 -0
- data/lib/right_agent/clients/auth_client.rb +247 -0
- data/lib/right_agent/clients/balanced_http_client.rb +369 -0
- data/lib/right_agent/clients/base_retry_client.rb +495 -0
- data/lib/right_agent/clients/right_http_client.rb +279 -0
- data/lib/right_agent/clients/router_client.rb +493 -0
- data/lib/right_agent/command.rb +30 -0
- data/lib/right_agent/command/agent_manager_commands.rb +150 -0
- data/lib/right_agent/command/command_client.rb +136 -0
- data/lib/right_agent/command/command_constants.rb +33 -0
- data/lib/right_agent/command/command_io.rb +126 -0
- data/lib/right_agent/command/command_parser.rb +87 -0
- data/lib/right_agent/command/command_runner.rb +118 -0
- data/lib/right_agent/command/command_serializer.rb +63 -0
- data/lib/right_agent/connectivity_checker.rb +179 -0
- data/lib/right_agent/console.rb +65 -0
- data/lib/right_agent/core_payload_types.rb +44 -0
- data/lib/right_agent/core_payload_types/cookbook.rb +61 -0
- data/lib/right_agent/core_payload_types/cookbook_position.rb +46 -0
- data/lib/right_agent/core_payload_types/cookbook_repository.rb +116 -0
- data/lib/right_agent/core_payload_types/cookbook_sequence.rb +70 -0
- data/lib/right_agent/core_payload_types/dev_repositories.rb +100 -0
- data/lib/right_agent/core_payload_types/dev_repository.rb +76 -0
- data/lib/right_agent/core_payload_types/event_categories.rb +38 -0
- data/lib/right_agent/core_payload_types/executable_bundle.rb +130 -0
- data/lib/right_agent/core_payload_types/login_policy.rb +72 -0
- data/lib/right_agent/core_payload_types/login_user.rb +79 -0
- data/lib/right_agent/core_payload_types/planned_volume.rb +94 -0
- data/lib/right_agent/core_payload_types/recipe_instantiation.rb +73 -0
- data/lib/right_agent/core_payload_types/repositories_bundle.rb +50 -0
- data/lib/right_agent/core_payload_types/right_script_attachment.rb +95 -0
- data/lib/right_agent/core_payload_types/right_script_instantiation.rb +94 -0
- data/lib/right_agent/core_payload_types/runlist_policy.rb +44 -0
- data/lib/right_agent/core_payload_types/secure_document.rb +66 -0
- data/lib/right_agent/core_payload_types/secure_document_location.rb +63 -0
- data/lib/right_agent/core_payload_types/software_repository_instantiation.rb +61 -0
- data/lib/right_agent/daemonize.rb +35 -0
- data/lib/right_agent/dispatched_cache.rb +109 -0
- data/lib/right_agent/dispatcher.rb +272 -0
- data/lib/right_agent/enrollment_result.rb +221 -0
- data/lib/right_agent/exceptions.rb +87 -0
- data/lib/right_agent/history.rb +145 -0
- data/lib/right_agent/log.rb +460 -0
- data/lib/right_agent/minimal.rb +46 -0
- data/lib/right_agent/monkey_patches.rb +30 -0
- data/lib/right_agent/monkey_patches/ruby_patch.rb +55 -0
- data/lib/right_agent/monkey_patches/ruby_patch/array_patch.rb +29 -0
- data/lib/right_agent/monkey_patches/ruby_patch/darwin_patch.rb +24 -0
- data/lib/right_agent/monkey_patches/ruby_patch/linux_patch.rb +24 -0
- data/lib/right_agent/monkey_patches/ruby_patch/linux_patch/file_patch.rb +30 -0
- data/lib/right_agent/monkey_patches/ruby_patch/object_patch.rb +49 -0
- data/lib/right_agent/monkey_patches/ruby_patch/windows_patch.rb +32 -0
- data/lib/right_agent/monkey_patches/ruby_patch/windows_patch/file_patch.rb +60 -0
- data/lib/right_agent/monkey_patches/ruby_patch/windows_patch/process_patch.rb +63 -0
- data/lib/right_agent/monkey_patches/ruby_patch/windows_patch/stdio_patch.rb +27 -0
- data/lib/right_agent/monkey_patches/ruby_patch/windows_patch/time_patch.rb +55 -0
- data/lib/right_agent/monkey_patches/ruby_patch/windows_patch/win32ole_patch.rb +34 -0
- data/lib/right_agent/multiplexer.rb +102 -0
- data/lib/right_agent/offline_handler.rb +270 -0
- data/lib/right_agent/operation_result.rb +300 -0
- data/lib/right_agent/packets.rb +673 -0
- data/lib/right_agent/payload_formatter.rb +104 -0
- data/lib/right_agent/pending_requests.rb +128 -0
- data/lib/right_agent/pid_file.rb +159 -0
- data/lib/right_agent/platform.rb +770 -0
- data/lib/right_agent/platform/unix/darwin/platform.rb +102 -0
- data/lib/right_agent/platform/unix/linux/platform.rb +305 -0
- data/lib/right_agent/platform/unix/platform.rb +226 -0
- data/lib/right_agent/platform/windows/mingw/platform.rb +447 -0
- data/lib/right_agent/platform/windows/mswin/platform.rb +236 -0
- data/lib/right_agent/platform/windows/platform.rb +1808 -0
- data/lib/right_agent/protocol_version_mixin.rb +69 -0
- data/lib/right_agent/retryable_request.rb +195 -0
- data/lib/right_agent/scripts/agent_controller.rb +543 -0
- data/lib/right_agent/scripts/agent_deployer.rb +400 -0
- data/lib/right_agent/scripts/common_parser.rb +160 -0
- data/lib/right_agent/scripts/log_level_manager.rb +192 -0
- data/lib/right_agent/scripts/stats_manager.rb +268 -0
- data/lib/right_agent/scripts/usage.rb +58 -0
- data/lib/right_agent/secure_identity.rb +92 -0
- data/lib/right_agent/security.rb +32 -0
- data/lib/right_agent/security/cached_certificate_store_proxy.rb +77 -0
- data/lib/right_agent/security/certificate.rb +102 -0
- data/lib/right_agent/security/certificate_cache.rb +89 -0
- data/lib/right_agent/security/distinguished_name.rb +56 -0
- data/lib/right_agent/security/encrypted_document.rb +83 -0
- data/lib/right_agent/security/rsa_key_pair.rb +76 -0
- data/lib/right_agent/security/signature.rb +86 -0
- data/lib/right_agent/security/static_certificate_store.rb +85 -0
- data/lib/right_agent/sender.rb +792 -0
- data/lib/right_agent/serialize.rb +29 -0
- data/lib/right_agent/serialize/message_pack.rb +107 -0
- data/lib/right_agent/serialize/secure_serializer.rb +151 -0
- data/lib/right_agent/serialize/secure_serializer_initializer.rb +47 -0
- data/lib/right_agent/serialize/serializable.rb +151 -0
- data/lib/right_agent/serialize/serializer.rb +159 -0
- data/lib/right_agent/subprocess.rb +38 -0
- data/lib/right_agent/tracer.rb +124 -0
- data/right_agent.gemspec +101 -0
- data/spec/actor_registry_spec.rb +80 -0
- data/spec/actor_spec.rb +162 -0
- data/spec/agent_config_spec.rb +235 -0
- data/spec/agent_identity_spec.rb +78 -0
- data/spec/agent_spec.rb +734 -0
- data/spec/agent_tag_manager_spec.rb +319 -0
- data/spec/clients/api_client_spec.rb +423 -0
- data/spec/clients/auth_client_spec.rb +272 -0
- data/spec/clients/balanced_http_client_spec.rb +576 -0
- data/spec/clients/base_retry_client_spec.rb +635 -0
- data/spec/clients/router_client_spec.rb +594 -0
- data/spec/clients/spec_helper.rb +111 -0
- data/spec/command/agent_manager_commands_spec.rb +51 -0
- data/spec/command/command_io_spec.rb +93 -0
- data/spec/command/command_parser_spec.rb +79 -0
- data/spec/command/command_runner_spec.rb +107 -0
- data/spec/command/command_serializer_spec.rb +51 -0
- data/spec/connectivity_checker_spec.rb +83 -0
- data/spec/core_payload_types/dev_repositories_spec.rb +64 -0
- data/spec/core_payload_types/dev_repository_spec.rb +33 -0
- data/spec/core_payload_types/executable_bundle_spec.rb +67 -0
- data/spec/core_payload_types/login_user_spec.rb +102 -0
- data/spec/core_payload_types/recipe_instantiation_spec.rb +81 -0
- data/spec/core_payload_types/right_script_attachment_spec.rb +65 -0
- data/spec/core_payload_types/right_script_instantiation_spec.rb +79 -0
- data/spec/core_payload_types/spec_helper.rb +23 -0
- data/spec/dispatched_cache_spec.rb +136 -0
- data/spec/dispatcher_spec.rb +324 -0
- data/spec/enrollment_result_spec.rb +53 -0
- data/spec/history_spec.rb +246 -0
- data/spec/log_spec.rb +192 -0
- data/spec/monkey_patches/eventmachine_spec.rb +62 -0
- data/spec/multiplexer_spec.rb +48 -0
- data/spec/offline_handler_spec.rb +340 -0
- data/spec/operation_result_spec.rb +208 -0
- data/spec/packets_spec.rb +461 -0
- data/spec/pending_requests_spec.rb +136 -0
- data/spec/platform/spec_helper.rb +216 -0
- data/spec/platform/unix/darwin/platform_spec.rb +181 -0
- data/spec/platform/unix/linux/platform_spec.rb +540 -0
- data/spec/platform/unix/spec_helper.rb +149 -0
- data/spec/platform/windows/mingw/platform_spec.rb +222 -0
- data/spec/platform/windows/mswin/platform_spec.rb +259 -0
- data/spec/platform/windows/spec_helper.rb +720 -0
- data/spec/retryable_request_spec.rb +306 -0
- data/spec/secure_identity_spec.rb +50 -0
- data/spec/security/cached_certificate_store_proxy_spec.rb +62 -0
- data/spec/security/certificate_cache_spec.rb +71 -0
- data/spec/security/certificate_spec.rb +49 -0
- data/spec/security/distinguished_name_spec.rb +46 -0
- data/spec/security/encrypted_document_spec.rb +55 -0
- data/spec/security/rsa_key_pair_spec.rb +55 -0
- data/spec/security/signature_spec.rb +66 -0
- data/spec/security/static_certificate_store_spec.rb +58 -0
- data/spec/sender_spec.rb +1045 -0
- data/spec/serialize/message_pack_spec.rb +131 -0
- data/spec/serialize/secure_serializer_spec.rb +132 -0
- data/spec/serialize/serializable_spec.rb +90 -0
- data/spec/serialize/serializer_spec.rb +197 -0
- data/spec/spec.opts +2 -0
- data/spec/spec.win32.opts +1 -0
- data/spec/spec_helper.rb +130 -0
- data/spec/tracer_spec.rb +114 -0
- metadata +447 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2009-2011 RightScale Inc
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module RightScale
|
25
|
+
|
26
|
+
# Recipe with json
|
27
|
+
class RecipeInstantiation
|
28
|
+
|
29
|
+
include Serializable
|
30
|
+
|
31
|
+
# (String) Recipe nickname
|
32
|
+
attr_accessor :nickname
|
33
|
+
|
34
|
+
# (Hash) Recipe override attributes (JSON string for RightLink v5.0)
|
35
|
+
attr_accessor :attributes
|
36
|
+
|
37
|
+
# (Integer) Recipe id
|
38
|
+
attr_accessor :id
|
39
|
+
|
40
|
+
# (Boolean) Whether recipe inputs are ready
|
41
|
+
attr_accessor :ready
|
42
|
+
|
43
|
+
# (Array of SecureDocumentLocation) attributes that must be resolved by the instance
|
44
|
+
attr_accessor :external_inputs
|
45
|
+
|
46
|
+
# (Hash) nil or Hash of input name to flags (array of string tokens) indicating additional
|
47
|
+
# boolean properties of the input which are useful to the instance. the presence of the
|
48
|
+
# flag means true, absence means false.
|
49
|
+
attr_accessor :input_flags
|
50
|
+
|
51
|
+
def initialize(*args)
|
52
|
+
@nickname = args[0] if args.size > 0
|
53
|
+
@attributes = args[1] if args.size > 1
|
54
|
+
@id = args[2] if args.size > 2
|
55
|
+
@ready = args[3] if args.size > 3
|
56
|
+
@external_inputs = args[4] if args.size > 4
|
57
|
+
@input_flags = args[5] if args.size > 5
|
58
|
+
end
|
59
|
+
|
60
|
+
# Array of serialized fields given to constructor
|
61
|
+
def serialized_members
|
62
|
+
[ @nickname, @attributes, @id, @ready, @external_inputs, @input_flags ]
|
63
|
+
end
|
64
|
+
|
65
|
+
# Human readable title
|
66
|
+
#
|
67
|
+
# === Return
|
68
|
+
# @return [String] title for display
|
69
|
+
def title
|
70
|
+
nickname
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2009-2011 RightScale Inc
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module RightScale
|
25
|
+
|
26
|
+
# Software repositories together with audit id
|
27
|
+
# The instance agent can use the audit created by the core agent to audit messages
|
28
|
+
# associated with the processing of the software repositories
|
29
|
+
class RepositoriesBundle
|
30
|
+
|
31
|
+
include Serializable
|
32
|
+
|
33
|
+
# (Array) Repositories instantiations
|
34
|
+
attr_accessor :repositories
|
35
|
+
|
36
|
+
# (Integer) ID of corresponding audit entry
|
37
|
+
attr_accessor :audit_id
|
38
|
+
|
39
|
+
def initialize(*args)
|
40
|
+
@repositories = args[0]
|
41
|
+
@audit_id = args[1]
|
42
|
+
end
|
43
|
+
|
44
|
+
# Array of serialized fields given to constructor
|
45
|
+
def serialized_members
|
46
|
+
[ @repositories, @audit_id ]
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2009-2011 RightScale Inc
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'digest/sha1'
|
25
|
+
require 'uri'
|
26
|
+
|
27
|
+
module RightScale
|
28
|
+
|
29
|
+
# RightScript attachment
|
30
|
+
class RightScriptAttachment
|
31
|
+
|
32
|
+
include Serializable
|
33
|
+
|
34
|
+
# (String) S3 attachment URL
|
35
|
+
attr_accessor :url
|
36
|
+
|
37
|
+
# (String) Attachment file name
|
38
|
+
attr_accessor :file_name
|
39
|
+
|
40
|
+
# (String) Cache identifier
|
41
|
+
attr_accessor :etag
|
42
|
+
|
43
|
+
# (Binary string) Repose token for attachment
|
44
|
+
attr_accessor :token
|
45
|
+
|
46
|
+
# (String) Content digest
|
47
|
+
attr_accessor :digest
|
48
|
+
|
49
|
+
def initialize(*args)
|
50
|
+
@url = args[0] if args.size > 0
|
51
|
+
@file_name = args[1] if args.size > 1
|
52
|
+
@etag = args[2] if args.size > 2
|
53
|
+
@token = args[3] if args.size > 3
|
54
|
+
@digest = args[4] if args.size > 4
|
55
|
+
end
|
56
|
+
|
57
|
+
# Array of serialized fields given to constructor
|
58
|
+
def serialized_members
|
59
|
+
[ @url, @file_name, @etag, @token, @digest ]
|
60
|
+
end
|
61
|
+
|
62
|
+
# Return the Repose hash for this attachment.
|
63
|
+
def to_hash
|
64
|
+
RightScriptAttachment.hash_for(@url, @file_name, @etag)
|
65
|
+
end
|
66
|
+
|
67
|
+
# Fill out the session cookie appropriately for this attachment.
|
68
|
+
def fill_out(session)
|
69
|
+
session['scope'] = "attachments"
|
70
|
+
if @digest
|
71
|
+
session['resource'] = @digest
|
72
|
+
else
|
73
|
+
session['resource'] = to_hash
|
74
|
+
session['url'] = @url
|
75
|
+
session['etag'] = @etag
|
76
|
+
end
|
77
|
+
@token = session.to_s
|
78
|
+
end
|
79
|
+
|
80
|
+
# Return the Repose hash for the given URL/filename/ETag triple.
|
81
|
+
#
|
82
|
+
# === Parameters
|
83
|
+
# url(String):: URL to request
|
84
|
+
# filename(String):: local filename
|
85
|
+
# etag(String):: expected ETag
|
86
|
+
#
|
87
|
+
# === Return
|
88
|
+
# String:: hashed token suitable for communicating to Repose
|
89
|
+
def self.hash_for(url, filename, etag)
|
90
|
+
uri = URI::parse(url).dup
|
91
|
+
uri.query = nil
|
92
|
+
Digest::SHA1.hexdigest("#{uri}\000#{etag}")
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2009-2013 RightScale Inc
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module RightScale
|
25
|
+
|
26
|
+
# RightScript with parameters and attachments
|
27
|
+
class RightScriptInstantiation
|
28
|
+
|
29
|
+
include Serializable
|
30
|
+
|
31
|
+
# (String) RightScript name
|
32
|
+
attr_accessor :nickname
|
33
|
+
|
34
|
+
# (String) RightScript source
|
35
|
+
attr_accessor :source
|
36
|
+
|
37
|
+
# (Hash) RightScript parameters
|
38
|
+
# Hash of parameters names with associated value
|
39
|
+
attr_accessor :parameters
|
40
|
+
|
41
|
+
# (Array) RightScript attachments URLs, array of RightScriptAttachment
|
42
|
+
attr_accessor :attachments
|
43
|
+
|
44
|
+
# (String) RightScripts required packages as a space-delimited list of package names or empty
|
45
|
+
attr_accessor :packages
|
46
|
+
|
47
|
+
# (Integer) RightScript id
|
48
|
+
attr_accessor :id
|
49
|
+
|
50
|
+
# (Boolean) Whether script inputs are ready
|
51
|
+
attr_accessor :ready
|
52
|
+
|
53
|
+
# (Hash) a map of input names to CredentialLocations which must be retrieved by the instance or nil or empty
|
54
|
+
attr_accessor :external_inputs
|
55
|
+
|
56
|
+
# (Hash) nil or Hash of input name to flags (array of string tokens) indicating additional
|
57
|
+
# boolean properties of the input which are useful to the instance. the presence of the
|
58
|
+
# flag means true, absense means false.
|
59
|
+
attr_accessor :input_flags
|
60
|
+
|
61
|
+
# (String) Displayable version for RightScript (revision, etc.) or nil
|
62
|
+
attr_accessor :display_version
|
63
|
+
|
64
|
+
def initialize(*args)
|
65
|
+
@nickname = args[0] if args.size > 0
|
66
|
+
@source = args[1] if args.size > 1
|
67
|
+
@parameters = args[2] if args.size > 2
|
68
|
+
@attachments = args[3] if args.size > 3
|
69
|
+
@packages = args[4] if args.size > 4
|
70
|
+
@id = args[5] if args.size > 5
|
71
|
+
@ready = args[6] if args.size > 6
|
72
|
+
@external_inputs = args[7] if args.size > 7
|
73
|
+
@input_flags = args[8] if args.size > 8
|
74
|
+
@display_version = args[9] if args.size > 9
|
75
|
+
end
|
76
|
+
|
77
|
+
# Array of serialized fields given to constructor
|
78
|
+
def serialized_members
|
79
|
+
[ @nickname, @source, @parameters, @attachments, @packages, @id, @ready, @external_inputs, @input_flags, @display_version ]
|
80
|
+
end
|
81
|
+
|
82
|
+
# Human readable title
|
83
|
+
#
|
84
|
+
# === Return
|
85
|
+
# @return [String] title for display
|
86
|
+
def title
|
87
|
+
if @display_version
|
88
|
+
"'#{nickname}' #{@display_version}"
|
89
|
+
else
|
90
|
+
nickname
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2009-2012 RightScale Inc
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module RightScale
|
25
|
+
|
26
|
+
class RunlistPolicy
|
27
|
+
include Serializable
|
28
|
+
|
29
|
+
attr_accessor :policy_name, :thread_name, :audit_period
|
30
|
+
|
31
|
+
# Initialize fields from given arguments
|
32
|
+
def initialize(*args)
|
33
|
+
@policy_name = args[0]
|
34
|
+
@thread_name = args[1]
|
35
|
+
@audit_period = args[2]
|
36
|
+
end
|
37
|
+
|
38
|
+
# Array of serialized fields given to constructor
|
39
|
+
def serialized_members
|
40
|
+
[ @policy_name, @thread_name, @audit_period ]
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2011 RightScale Inc
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module RightScale
|
25
|
+
|
26
|
+
# Class encapsulating the actual value of a credential.
|
27
|
+
class SecureDocument
|
28
|
+
|
29
|
+
include Serializable
|
30
|
+
|
31
|
+
# (String) Namespace-unique identifier for this credential value
|
32
|
+
attr_accessor :name
|
33
|
+
|
34
|
+
# (Integer) Monotonic version number of this document
|
35
|
+
attr_accessor :version
|
36
|
+
|
37
|
+
# The content of this document; if envelope_mime_type is not nil, then this value
|
38
|
+
# is actually an envelope that contains the document value
|
39
|
+
attr_accessor :content
|
40
|
+
|
41
|
+
# (String) Name of the storage policy used to encrypt this document (if any).
|
42
|
+
attr_accessor :storage_policy_name
|
43
|
+
|
44
|
+
# (String) MIME type of the document itself e.g. "text/plain"
|
45
|
+
attr_accessor :mime_type
|
46
|
+
|
47
|
+
# (String) MIME type of the value's envelope, e.g. an encoding or encryption format,
|
48
|
+
# or nil if there is no envelope MIME type.
|
49
|
+
attr_accessor :envelope_mime_type
|
50
|
+
|
51
|
+
# Initialize fields from given arguments
|
52
|
+
def initialize(*args)
|
53
|
+
@name = args[0] if args.size > 0
|
54
|
+
@version = args[1] if args.size > 1
|
55
|
+
@content = args[2] if args.size > 2
|
56
|
+
@storage_policy_name = args[3] if args.size > 3
|
57
|
+
@mime_type = args[4] if args.size > 4
|
58
|
+
@envelope_mime_type = args[5] if args.size > 5
|
59
|
+
end
|
60
|
+
|
61
|
+
# Array of serialized fields given to constructor
|
62
|
+
def serialized_members
|
63
|
+
[ @name, @version, @content, @storage_policy_name, @mime_type, @envelope_mime_type ]
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2011 RightScale Inc
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module RightScale
|
25
|
+
|
26
|
+
# Everything necessary to retrieve a SecureDocument from a RightNet agent.
|
27
|
+
class SecureDocumentLocation
|
28
|
+
|
29
|
+
include Serializable
|
30
|
+
|
31
|
+
# (String):: Namespace within which the document resides
|
32
|
+
attr_accessor :namespace
|
33
|
+
|
34
|
+
# (String):: Namespace-unique identifier of the document that should be retrieved.
|
35
|
+
attr_accessor :name
|
36
|
+
|
37
|
+
# (Integer):: Monotonic version of the document to be requested
|
38
|
+
attr_accessor :version
|
39
|
+
|
40
|
+
# (String):: Access token that should be used to fetch the document
|
41
|
+
attr_accessor :ticket
|
42
|
+
|
43
|
+
# Array(String):: Identities of RightNet agents capable of providing the document.
|
44
|
+
# If nil, then no target should be specified when sending RightNet requests;
|
45
|
+
# this is used to route requests to "trusted infrastructure" nodes at the
|
46
|
+
# discretion of the RightNet router.
|
47
|
+
attr_accessor :targets
|
48
|
+
|
49
|
+
# Initialize fields from given arguments
|
50
|
+
def initialize(*args)
|
51
|
+
@namespace = args[0] if args.size > 0
|
52
|
+
@name = args[1] if args.size > 1
|
53
|
+
@version = args[2] if args.size > 2
|
54
|
+
@ticket = args[3] if args.size > 3
|
55
|
+
@targets = args[4] if args.size > 4
|
56
|
+
end
|
57
|
+
|
58
|
+
# Array of serialized fields given to constructor
|
59
|
+
def serialized_members
|
60
|
+
[ @namespace, @name, @version, @ticket, @targets ]
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|