right_link 5.9.0
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/actors/agent_manager.rb +88 -0
- data/actors/instance_scheduler.rb +321 -0
- data/actors/instance_services.rb +64 -0
- data/actors/instance_setup.rb +567 -0
- data/bin/cloud +25 -0
- data/bin/cook_runner +44 -0
- data/bin/deploy +120 -0
- data/bin/enroll +385 -0
- data/bin/rad +32 -0
- data/bin/rchk +29 -0
- data/bin/rnac +39 -0
- data/bin/rs_connect +33 -0
- data/bin/rs_log_level +31 -0
- data/bin/rs_ohai +28 -0
- data/bin/rs_reenroll +31 -0
- data/bin/rs_run_recipe +34 -0
- data/bin/rs_run_right_script +34 -0
- data/bin/rs_shutdown +33 -0
- data/bin/rs_tag +33 -0
- data/bin/rs_thunk +33 -0
- data/bin/rstat +31 -0
- data/bin/system +16 -0
- data/ext/Rakefile +18 -0
- data/init/config.yml +5 -0
- data/init/init.rb +79 -0
- data/lib/chef/ohai_setup.rb +51 -0
- data/lib/chef/plugins/cloud.rb +91 -0
- data/lib/chef/plugins/cloudstack.rb +23 -0
- data/lib/chef/plugins/ec2.rb +23 -0
- data/lib/chef/plugins/linux/block_device2.rb +24 -0
- data/lib/chef/plugins/rackspace.rb +23 -0
- data/lib/chef/plugins/rightscale.rb +125 -0
- data/lib/chef/plugins/windows/network.rb +114 -0
- data/lib/chef/plugins.rb +74 -0
- data/lib/chef/providers/dns_dnsmadeeasy_provider.rb +81 -0
- data/lib/chef/providers/dns_resource.rb +100 -0
- data/lib/chef/providers/executable_schedule_provider.rb +70 -0
- data/lib/chef/providers/executable_schedule_resource.rb +144 -0
- data/lib/chef/providers/remote_recipe_provider.rb +86 -0
- data/lib/chef/providers/remote_recipe_resource.rb +101 -0
- data/lib/chef/providers/right_link_tag_provider.rb +73 -0
- data/lib/chef/providers/right_link_tag_resource.rb +59 -0
- data/lib/chef/providers/right_script_provider.rb +190 -0
- data/lib/chef/providers/right_script_resource.rb +113 -0
- data/lib/chef/providers/rs_shutdown_provider.rb +75 -0
- data/lib/chef/providers/rs_shutdown_resource.rb +55 -0
- data/lib/chef/providers/server_collection_provider.rb +66 -0
- data/lib/chef/providers/server_collection_resource.rb +93 -0
- data/lib/chef/providers/windows/powershell_provider.rb +151 -0
- data/lib/chef/providers/windows/powershell_resource.rb +111 -0
- data/lib/chef/providers/windows/unsupported_provider.rb +51 -0
- data/lib/chef/right_providers.rb +55 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/ChefNodeCmdlet.csproj +104 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/ChefNodeCmdlet.dll-Help.xml +141 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/Exceptions.cs +182 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetChefNodeCommand.cs +58 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetChefNodeRequest.cs +46 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetChefNodeResponse.cs +45 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetCurrentResourceCommand.cs +58 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetCurrentResourceRequest.cs +46 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetCurrentResourceResponse.cs +45 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNewResourceCommand.cs +58 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNewResourceRequest.cs +46 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNewResourceResponse.cs +45 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNextActionCommand.cs +178 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNextActionRequest.cs +67 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNextActionResponse.cs +58 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNodeValueCommandBase.cs +142 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNodeValueRequestBase.cs +64 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/GetNodeValueResponseBase.cs +69 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/JsonTransport.cs +110 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/PipeClient.cs +158 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/PipeServer.cs +142 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/Properties/AssemblyInfo.cs +16 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/ProtocolConstants.cs +55 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/ProtocolUtilities.cs +77 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/ReadMe.txt +53 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetChefNodeCommand.cs +59 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetChefNodeRequest.cs +46 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetChefNodeResponse.cs +58 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetCurrentResourceCommand.cs +59 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetCurrentResourceRequest.cs +46 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetCurrentResourceResponse.cs +40 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetNewResourceCommand.cs +59 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetNewResourceRequest.cs +46 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetNewResourceResponse.cs +40 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetNodeValueCommandBase.cs +293 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetNodeValueRequestBase.cs +75 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/SetNodeValueResponseBase.cs +45 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet/Transport.cs +91 -0
- data/lib/chef/windows/ChefNodeCmdlet/ChefNodeCmdlet.sln +35 -0
- data/lib/chef/windows/ChefNodeCmdlet/TestChefNodeCmdlet/Program.cs +374 -0
- data/lib/chef/windows/ChefNodeCmdlet/TestChefNodeCmdlet/Properties/AssemblyInfo.cs +16 -0
- data/lib/chef/windows/ChefNodeCmdlet/TestChefNodeCmdlet/TestChefNodeCmdlet.csproj +65 -0
- data/lib/chef/windows/ChefNodeCmdlet/TestNextActionCmdlet/Program.cs +136 -0
- data/lib/chef/windows/ChefNodeCmdlet/TestNextActionCmdlet/Properties/AssemblyInfo.cs +36 -0
- data/lib/chef/windows/ChefNodeCmdlet/TestNextActionCmdlet/ReadMe.txt +46 -0
- data/lib/chef/windows/ChefNodeCmdlet/TestNextActionCmdlet/TestNextActionCmdlet.csproj +68 -0
- data/lib/chef/windows/bin/Newtonsoft.Json.dll +0 -0
- data/lib/chef/windows/chef_node_server.rb +463 -0
- data/lib/chef/windows/dynamic_powershell_provider.rb +296 -0
- data/lib/chef/windows/pipe_server.rb +283 -0
- data/lib/chef/windows/powershell_host.rb +285 -0
- data/lib/chef/windows/powershell_pipe_server.rb +136 -0
- data/lib/chef/windows/powershell_provider_base.rb +92 -0
- data/lib/chef/windows/scripts/run_loop.ps1 +105 -0
- data/lib/clouds/cloud.rb +557 -0
- data/lib/clouds/cloud_factory.rb +250 -0
- data/lib/clouds/cloud_utilities.rb +244 -0
- data/lib/clouds/clouds/azure.rb +106 -0
- data/lib/clouds/clouds/cloudstack.rb +114 -0
- data/lib/clouds/clouds/ec2.rb +113 -0
- data/lib/clouds/clouds/eucalyptus.rb +46 -0
- data/lib/clouds/clouds/google.rb +102 -0
- data/lib/clouds/clouds/none.rb +76 -0
- data/lib/clouds/clouds/openstack.rb +30 -0
- data/lib/clouds/clouds/rackspace-ng.rb +54 -0
- data/lib/clouds/clouds/rackspace.rb +78 -0
- data/lib/clouds/clouds/softlayer.rb +91 -0
- data/lib/clouds/metadata_formatter.rb +108 -0
- data/lib/clouds/metadata_provider.rb +128 -0
- data/lib/clouds/metadata_source.rb +87 -0
- data/lib/clouds/metadata_sources/certificate_metadata_source.rb +207 -0
- data/lib/clouds/metadata_sources/config_drive_metadata_source.rb +129 -0
- data/lib/clouds/metadata_sources/file_metadata_source.rb +74 -0
- data/lib/clouds/metadata_sources/http_metadata_source.rb +277 -0
- data/lib/clouds/metadata_sources/selective_metadata_source.rb +122 -0
- data/lib/clouds/metadata_tree_climber.rb +144 -0
- data/lib/clouds/metadata_writer.rb +155 -0
- data/lib/clouds/metadata_writers/dictionary_metadata_writer.rb +72 -0
- data/lib/clouds/metadata_writers/ruby_metadata_writer.rb +76 -0
- data/lib/clouds/metadata_writers/shell_metadata_writer.rb +121 -0
- data/lib/clouds/register_clouds.rb +34 -0
- data/lib/clouds.rb +32 -0
- data/lib/gem_dependencies.rb +83 -0
- data/lib/git_hooks/commit-msg.rb +7 -0
- data/lib/instance/agent_config.rb +168 -0
- data/lib/instance/agent_watcher.rb +233 -0
- data/lib/instance/audit_cook_stub.rb +104 -0
- data/lib/instance/audit_proxy.rb +247 -0
- data/lib/instance/bundle_queue.rb +104 -0
- data/lib/instance/cook/agent_connection.rb +109 -0
- data/lib/instance/cook/audit_logger.rb +165 -0
- data/lib/instance/cook/audit_stub.rb +142 -0
- data/lib/instance/cook/ca-bundle.crt +2794 -0
- data/lib/instance/cook/chef_state.rb +211 -0
- data/lib/instance/cook/cook.rb +306 -0
- data/lib/instance/cook/cook_state.rb +298 -0
- data/lib/instance/cook/cookbook_path_mapping.rb +66 -0
- data/lib/instance/cook/cookbook_repo_retriever.rb +190 -0
- data/lib/instance/cook/executable_sequence.rb +765 -0
- data/lib/instance/cook/external_parameter_gatherer.rb +190 -0
- data/lib/instance/cook/repose_downloader.rb +349 -0
- data/lib/instance/cook/shutdown_request_proxy.rb +121 -0
- data/lib/instance/cook.rb +41 -0
- data/lib/instance/downloader.rb +208 -0
- data/lib/instance/duplicable.rb +67 -0
- data/lib/instance/exceptions.rb +49 -0
- data/lib/instance/executable_sequence_proxy.rb +278 -0
- data/lib/instance/instance_commands.rb +577 -0
- data/lib/instance/instance_state.rb +633 -0
- data/lib/instance/json_utilities.rb +102 -0
- data/lib/instance/login_manager.rb +533 -0
- data/lib/instance/login_user_manager.rb +522 -0
- data/lib/instance/message_encoder.rb +118 -0
- data/lib/instance/multi_thread_bundle_queue.rb +232 -0
- data/lib/instance/operation_context.rb +60 -0
- data/lib/instance/options_bag.rb +65 -0
- data/lib/instance/payload_formatter.rb +46 -0
- data/lib/instance/policy.rb +53 -0
- data/lib/instance/policy_audit.rb +100 -0
- data/lib/instance/policy_manager.rb +146 -0
- data/lib/instance/reenroll_manager.rb +104 -0
- data/lib/instance/right_scripts_cookbook.rb +181 -0
- data/lib/instance/shutdown_request.rb +221 -0
- data/lib/instance/single_thread_bundle_queue.rb +189 -0
- data/lib/instance/volume_management.rb +450 -0
- data/lib/instance.rb +50 -0
- data/lib/repo_conf_generators/apt_conf_generators.rb +106 -0
- data/lib/repo_conf_generators/gem_conf_generators.rb +80 -0
- data/lib/repo_conf_generators/rightscale_conf_generators.rb +254 -0
- data/lib/repo_conf_generators/rightscale_key.pub +17 -0
- data/lib/repo_conf_generators/yum_conf_generators.rb +225 -0
- data/lib/repo_conf_generators.rb +30 -0
- data/lib/run_shell.rb +28 -0
- data/scripts/agent_checker.rb +571 -0
- data/scripts/agent_controller.rb +247 -0
- data/scripts/agent_deployer.rb +148 -0
- data/scripts/bundle_runner.rb +336 -0
- data/scripts/cloud_controller.rb +176 -0
- data/scripts/log_level_manager.rb +142 -0
- data/scripts/ohai_runner.rb +33 -0
- data/scripts/reenroller.rb +193 -0
- data/scripts/server_importer.rb +293 -0
- data/scripts/shutdown_client.rb +183 -0
- data/scripts/system_configurator.rb +367 -0
- data/scripts/tagger.rb +381 -0
- data/scripts/thunker.rb +356 -0
- metadata +418 -0
@@ -0,0 +1,142 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
using System.IO;
|
25
|
+
using System.IO.Pipes;
|
26
|
+
using Newtonsoft.Json;
|
27
|
+
|
28
|
+
namespace RightScale
|
29
|
+
{
|
30
|
+
namespace Common
|
31
|
+
{
|
32
|
+
namespace Protocol
|
33
|
+
{
|
34
|
+
// represents a generic text-based pipe server which communicates via a user-supplied transport.
|
35
|
+
// the transport must convert requests/responses to discrete text messages delimited by newline.
|
36
|
+
public class PipeServer
|
37
|
+
{
|
38
|
+
// Summary:
|
39
|
+
// constructor for a named pipe server.
|
40
|
+
//
|
41
|
+
// Parameters:
|
42
|
+
// pipeName:
|
43
|
+
// name of pipe to use when connecting to server.
|
44
|
+
public PipeServer(string pipeName, ITransport transport)
|
45
|
+
{
|
46
|
+
this.pipeName = pipeName;
|
47
|
+
this.transport = transport;
|
48
|
+
}
|
49
|
+
|
50
|
+
// Summary:
|
51
|
+
// creates a bidirectional pipe server and waits for client to connect.
|
52
|
+
public void WaitForConnection()
|
53
|
+
{
|
54
|
+
// create bidirectional pipe server.
|
55
|
+
pipeServer = new NamedPipeServerStream(pipeName);
|
56
|
+
pipeServer.WaitForConnection();
|
57
|
+
|
58
|
+
// create writer.
|
59
|
+
streamWriter = new StreamWriter(pipeServer);
|
60
|
+
streamWriter.AutoFlush = true;
|
61
|
+
|
62
|
+
// create reader.
|
63
|
+
streamReader = new StreamReader(pipeServer);
|
64
|
+
}
|
65
|
+
|
66
|
+
// Summary:
|
67
|
+
// receives the next request.
|
68
|
+
//
|
69
|
+
// Parameters:
|
70
|
+
// T:
|
71
|
+
// expected type for request
|
72
|
+
//
|
73
|
+
// Returns:
|
74
|
+
// received request object or null if client closed connection
|
75
|
+
public T Receive<T>()
|
76
|
+
{
|
77
|
+
string text = streamReader.ReadLine();
|
78
|
+
|
79
|
+
return (null == text) ? default(T) : transport.ConvertStringToObject<T>(text);
|
80
|
+
}
|
81
|
+
|
82
|
+
// Summary:
|
83
|
+
// sends the next response.
|
84
|
+
//
|
85
|
+
// Parameters:
|
86
|
+
// response:
|
87
|
+
// response object to send
|
88
|
+
public void Send(object response)
|
89
|
+
{
|
90
|
+
string text = transport.ConvertObjectToString(response);
|
91
|
+
|
92
|
+
streamWriter.WriteLine(text);
|
93
|
+
}
|
94
|
+
|
95
|
+
// Summary:
|
96
|
+
// closes the client and releases all resources.
|
97
|
+
public void Close()
|
98
|
+
{
|
99
|
+
if (null != streamReader)
|
100
|
+
{
|
101
|
+
try
|
102
|
+
{
|
103
|
+
streamReader.Close();
|
104
|
+
}
|
105
|
+
catch (Exception)
|
106
|
+
{
|
107
|
+
}
|
108
|
+
streamReader = null;
|
109
|
+
}
|
110
|
+
if (null != streamWriter)
|
111
|
+
{
|
112
|
+
try
|
113
|
+
{
|
114
|
+
streamWriter.Close();
|
115
|
+
}
|
116
|
+
catch (Exception)
|
117
|
+
{
|
118
|
+
}
|
119
|
+
streamWriter = null;
|
120
|
+
}
|
121
|
+
if (null != pipeServer)
|
122
|
+
{
|
123
|
+
try
|
124
|
+
{
|
125
|
+
pipeServer.Close();
|
126
|
+
}
|
127
|
+
catch (Exception)
|
128
|
+
{
|
129
|
+
}
|
130
|
+
pipeServer = null;
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
private ITransport transport = null;
|
135
|
+
private NamedPipeServerStream pipeServer = null;
|
136
|
+
private StreamReader streamReader = null;
|
137
|
+
private StreamWriter streamWriter = null;
|
138
|
+
private string pipeName = null;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
using System.Reflection;
|
2
|
+
using System.Runtime.CompilerServices;
|
3
|
+
using System.Runtime.InteropServices;
|
4
|
+
|
5
|
+
[assembly: AssemblyTitle("ChefNodeCmdlet")]
|
6
|
+
[assembly: AssemblyDescription("")]
|
7
|
+
[assembly: AssemblyConfiguration("")]
|
8
|
+
[assembly: AssemblyCompany("RightScale")]
|
9
|
+
[assembly: AssemblyProduct("ChefNodeCmdlet")]
|
10
|
+
[assembly: AssemblyCopyright("Copyright (c) 2010-2011 RightScale Inc")]
|
11
|
+
[assembly: AssemblyTrademark("")]
|
12
|
+
[assembly: AssemblyCulture("")]
|
13
|
+
[assembly: ComVisible(false)]
|
14
|
+
[assembly: Guid("b3ea1d63-1b47-4e44-9077-fcd0707dcf57")]
|
15
|
+
[assembly: AssemblyVersion("1.0.0.1")]
|
16
|
+
[assembly: AssemblyFileVersion("1.0.0.1")]
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
|
25
|
+
namespace RightScale
|
26
|
+
{
|
27
|
+
namespace Chef
|
28
|
+
{
|
29
|
+
namespace Protocol
|
30
|
+
{
|
31
|
+
public class Constants
|
32
|
+
{
|
33
|
+
public enum CommandType
|
34
|
+
{
|
35
|
+
GET_CHEFNODE,
|
36
|
+
SET_CHEFNODE,
|
37
|
+
}
|
38
|
+
|
39
|
+
public static string JSON_COMMAND_KEY = "Command";
|
40
|
+
public static string JSON_PATH_KEY = "Path";
|
41
|
+
public static string JSON_NODE_VALUE_KEY = "NodeValue";
|
42
|
+
public static string JSON_NEXT_ACTION_KEY = "NextAction";
|
43
|
+
public static string JSON_LAST_EXIT_CODE_KEY = "LastExitCode";
|
44
|
+
|
45
|
+
public static string CHEF_NODE_PIPE_NAME = "chef_node_D1D6B540-5125-4c00-8ABF-412417774DD5";
|
46
|
+
|
47
|
+
public static int MAX_CLIENT_RETRIES = 10;
|
48
|
+
|
49
|
+
public static int CHEF_NODE_CONNECT_TIMEOUT_MSECS = 30 * 1000; // 30 seconds
|
50
|
+
public static int NEXT_ACTION_CONNECT_TIMEOUT_MSECS = 30 * 1000; // 30 seconds
|
51
|
+
public static int SLEEP_BETWEEN_CLIENT_RETRIES_MSECS = 100;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
using System.Collections;
|
25
|
+
|
26
|
+
namespace RightScale
|
27
|
+
{
|
28
|
+
namespace Chef
|
29
|
+
{
|
30
|
+
namespace Protocol
|
31
|
+
{
|
32
|
+
public class Utilities
|
33
|
+
{
|
34
|
+
// Summary:
|
35
|
+
// generates a printable form of an object passed via Chef node protocol.
|
36
|
+
//
|
37
|
+
// Returns:
|
38
|
+
// printable string for a node value.
|
39
|
+
public static string GetPrettyNodeValue(object nodeValue)
|
40
|
+
{
|
41
|
+
object prettyValue = nodeValue;
|
42
|
+
|
43
|
+
if (null == nodeValue)
|
44
|
+
{
|
45
|
+
prettyValue = "NULL";
|
46
|
+
}
|
47
|
+
else if (nodeValue is String)
|
48
|
+
{
|
49
|
+
prettyValue = "\"" + nodeValue + "\"";
|
50
|
+
}
|
51
|
+
|
52
|
+
// FIX: hash and array
|
53
|
+
|
54
|
+
return prettyValue.ToString();
|
55
|
+
}
|
56
|
+
|
57
|
+
// Summary:
|
58
|
+
// converts a collection of object to an array of strings.
|
59
|
+
//
|
60
|
+
// Returns:
|
61
|
+
// string array or empty
|
62
|
+
public static string[] CollectionToStringArray(ICollection collection)
|
63
|
+
{
|
64
|
+
string[] array = new string[collection.Count];
|
65
|
+
|
66
|
+
int index = 0;
|
67
|
+
foreach (object element in collection)
|
68
|
+
{
|
69
|
+
array[index++] = element.ToString();
|
70
|
+
}
|
71
|
+
|
72
|
+
return array;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
Copyright (c) 2010-2011 RightScale Inc
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
|
23
|
+
Overview
|
24
|
+
--------
|
25
|
+
|
26
|
+
The "ChefNodeCmdlet.dll" module provides a set of cmdlets which extend the
|
27
|
+
functionality of the PowerShell environment to include tools useful for writing
|
28
|
+
Chef recipes for Windows.
|
29
|
+
|
30
|
+
See https://rightscale.onconfluence.com/display/rightscale/RightLink+ChefNodeCmdlet
|
31
|
+
|
32
|
+
|
33
|
+
Debugging from Visual Studio
|
34
|
+
----------------------------
|
35
|
+
VS 2008 C# projects appear not to allow variable substitution in debug command
|
36
|
+
lines (as has been allowed previously by C++ projects). This is likely to
|
37
|
+
improve in future, but in the meantime hardcode the .dll path (which gets
|
38
|
+
saved in your personal "ChefNodeCmdlet.csproj.user" file and is never checked
|
39
|
+
into source control).
|
40
|
+
|
41
|
+
Use the installed PowerShell 2.0 location as the executable path and use the
|
42
|
+
following as the command line string (substituting .dll path as needed).
|
43
|
+
|
44
|
+
Example:
|
45
|
+
|
46
|
+
Start external program:
|
47
|
+
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
|
48
|
+
|
49
|
+
Command line arguments:
|
50
|
+
-NoExit -Command "&{ import-module 'C:\dev\right_net\instance\right_link\chef\lib\windows\ChefNodeCmdlet\Debug\ChefNodeCmdlet.dll' -verbose }"
|
51
|
+
|
52
|
+
More detailed debugging arguments for testing "get-NextAction" with right_net main loop using pipe name 'testing':
|
53
|
+
-NoExit -Command "&{ import-module 'C:\dev\right_net\instance\right_link\chef\lib\windows\ChefNodeCmdlet\Debug\ChefNodeCmdlet.dll'; $RS_pipeName = 'next_action_testing'; $VerbosePreference='Continue'; $DebugPreference='Continue'; &'C:\dev\right_net\instance\right_link\chef\lib\windows\scripts\run_loop.ps1' }"
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
using System.Collections;
|
25
|
+
using System.Management.Automation;
|
26
|
+
using System.Threading;
|
27
|
+
using RightScale.Common.Protocol;
|
28
|
+
using RightScale.Chef.Protocol;
|
29
|
+
using RightScale.Powershell.Exceptions;
|
30
|
+
|
31
|
+
namespace RightScale
|
32
|
+
{
|
33
|
+
namespace Powershell
|
34
|
+
{
|
35
|
+
namespace Commands
|
36
|
+
{
|
37
|
+
// Provides the Set-ChefNode cmdlet.
|
38
|
+
[Cmdlet(VerbsCommon.Set, "ChefNode")]
|
39
|
+
[CmdletBinding(DefaultParameterSetName = "ByPositionStringParameterSetName")]
|
40
|
+
public class SetChefNodeCommand : SetNodeValueCommandBase
|
41
|
+
{
|
42
|
+
protected override SetNodeValueRequestBase CreateRequest()
|
43
|
+
{
|
44
|
+
return new SetChefNodeRequest(Path, GetNormalizedValue());
|
45
|
+
}
|
46
|
+
|
47
|
+
protected override ChefNodeCmdletExceptionBase CreateException(string message)
|
48
|
+
{
|
49
|
+
return new SetChefNodeException(message);
|
50
|
+
}
|
51
|
+
|
52
|
+
protected override ChefNodeCmdletExceptionBase CreateException(IDictionary responseHash)
|
53
|
+
{
|
54
|
+
return new SetChefNodeException(responseHash);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
using System.Collections;
|
25
|
+
|
26
|
+
namespace RightScale
|
27
|
+
{
|
28
|
+
namespace Chef
|
29
|
+
{
|
30
|
+
namespace Protocol
|
31
|
+
{
|
32
|
+
// data for a Set-ChefNode request
|
33
|
+
public class SetChefNodeRequest : SetNodeValueRequestBase
|
34
|
+
{
|
35
|
+
public SetChefNodeRequest()
|
36
|
+
{
|
37
|
+
}
|
38
|
+
|
39
|
+
public SetChefNodeRequest(ICollection path, object nodeValue)
|
40
|
+
: base(path, nodeValue)
|
41
|
+
{
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
|
25
|
+
namespace RightScale
|
26
|
+
{
|
27
|
+
namespace Chef
|
28
|
+
{
|
29
|
+
namespace Protocol
|
30
|
+
{
|
31
|
+
// data for a Set-ChefNode response
|
32
|
+
public class SetChefNodeResponse : SetNodeValueResponseBase
|
33
|
+
{
|
34
|
+
public string[] Path
|
35
|
+
{
|
36
|
+
get { return path; }
|
37
|
+
set { path = value; }
|
38
|
+
}
|
39
|
+
|
40
|
+
public SetChefNodeResponse()
|
41
|
+
{
|
42
|
+
}
|
43
|
+
|
44
|
+
public SetChefNodeResponse(string[] path)
|
45
|
+
{
|
46
|
+
this.path = path;
|
47
|
+
}
|
48
|
+
|
49
|
+
public override string ToString()
|
50
|
+
{
|
51
|
+
return String.Format("SetChefNodeResponse: {{ Path = node[{0}] }}", String.Join("][", path));
|
52
|
+
}
|
53
|
+
|
54
|
+
private string[] path;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
using System.Collections;
|
25
|
+
using System.Management.Automation;
|
26
|
+
using System.Threading;
|
27
|
+
using RightScale.Common.Protocol;
|
28
|
+
using RightScale.Chef.Protocol;
|
29
|
+
using RightScale.Powershell.Exceptions;
|
30
|
+
|
31
|
+
namespace RightScale
|
32
|
+
{
|
33
|
+
namespace Powershell
|
34
|
+
{
|
35
|
+
namespace Commands
|
36
|
+
{
|
37
|
+
// Provides the Set-CurrentResource cmdlet.
|
38
|
+
[Cmdlet(VerbsCommon.Set, "CurrentResource")]
|
39
|
+
[CmdletBinding(DefaultParameterSetName = "ByPositionStringParameterSetName")]
|
40
|
+
public class SetCurrentResourceCommand : SetNodeValueCommandBase
|
41
|
+
{
|
42
|
+
protected override SetNodeValueRequestBase CreateRequest()
|
43
|
+
{
|
44
|
+
return new SetCurrentResourceRequest(Path, GetNormalizedValue());
|
45
|
+
}
|
46
|
+
|
47
|
+
protected override ChefNodeCmdletExceptionBase CreateException(string message)
|
48
|
+
{
|
49
|
+
return new SetCurrentResourceException(message);
|
50
|
+
}
|
51
|
+
|
52
|
+
protected override ChefNodeCmdletExceptionBase CreateException(IDictionary responseHash)
|
53
|
+
{
|
54
|
+
return new SetCurrentResourceException(responseHash);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
using System.Collections;
|
25
|
+
|
26
|
+
namespace RightScale
|
27
|
+
{
|
28
|
+
namespace Chef
|
29
|
+
{
|
30
|
+
namespace Protocol
|
31
|
+
{
|
32
|
+
// data for a Set-CurrentResource request
|
33
|
+
public class SetCurrentResourceRequest : SetNodeValueRequestBase
|
34
|
+
{
|
35
|
+
public SetCurrentResourceRequest()
|
36
|
+
{
|
37
|
+
}
|
38
|
+
|
39
|
+
public SetCurrentResourceRequest(ICollection path, object nodeValue)
|
40
|
+
: base(path, nodeValue)
|
41
|
+
{
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////
|
2
|
+
// Copyright (c) 2010-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
|
+
using System;
|
24
|
+
|
25
|
+
namespace RightScale
|
26
|
+
{
|
27
|
+
namespace Chef
|
28
|
+
{
|
29
|
+
namespace Protocol
|
30
|
+
{
|
31
|
+
// data for a Set-CurrentResource response
|
32
|
+
public class SetCurrentResourceResponse : SetNodeValueResponseBase
|
33
|
+
{
|
34
|
+
public SetCurrentResourceResponse()
|
35
|
+
{
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|