1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
|
Eclat NEWS -- history of user-visible changes. 2018-03-15
Copyright (C) 2012-2018 Sergey Poznyakoff
See the end of file for copying conditions.
Please send Eclat bug reports to <bug-eclat@gnu.org.ua>
Version 1.1.91 (Git)
* Exponential backoff with jitter
If AWS responds with a RequestLimitExceeded code, eclat retries the
request using exponential backoff with jitter algorithm. The algorithm
is controlled by two values: max-retry-interval and total-retry-timeout.
When the RequestLimitExceeded error is returned, eclat will sleep for
2 seconds and then retry the request. For each subsequent
RequestLimitExceeded error, it will calculate the timeout using the
following formula:
t = rand(0, min(M, 2 ** N)) + 1
where N is the attempt number, M is the value of max-retry-interval
parameter, 'rand(a,b)' selects the integer random number X such that
0 <= X <= b, and '**' denotes power operator. The attempts to resend
the request will continue until either a response other than
RequestLimitExceeded is received (be it a response to the query or
another error response), or the total time spent in the retry loop
becomes equal to or greater than total-retry-timeout, whichever occurs
first.
* VPC Support
The following new commands provide full support for manipulating
the EC2 VPC objects:
lsvpc describe-vpcs
lsvpcattr describe-vpc-attribute
mkvpc create-vpc
setvpcattr modify-vpc-attribute
rmvpc delete-vpc
* Route table support
The following new commands provide full support for manipulating
the EC2 Route Table objects:
assocrtab AssociateRouteTable
mkrtab CreateRouteTable
rmrtab DeleteRouteTable
lsrtab DescribeRouteTables
disasrtab DisassociateRouteTable
* Route support
The route subcommand allows you to add, delete and modify routes in
route tables.
** Create route:
eclat route rtb-12345678 add CIDR gw ID
** Delete route:
eclat route rtb-12345678 del CIDR
** ReplaceRoute
eclat route rtb-12345678 repl CIDR gw ID
* Subnet support
The following new commands provide full support for manipulating
the EC2 Subnet objects:
mksubnet create-subnet
rmsubnet delete-subnet
lssubnet describe-subnets
setsubnetattr modify-subnet-attribute
* Internet Gateway support
The following new commands provide full support for manipulating
the EC2 Internet Gateway objects:
lsigw describe-internet-gateways
mkigw create-internet-gateway
rmigw delete-internet-gateway
atigw attach-internet-gateway
deigw detach-internet-gateway
Version 1.1, 2015-02-26
* New commands:
lsaattr describe-image-attribute
setaattr modify-image-attribute
* New options:
-A, --add-parameter=NAME=VALUE
Adds parameter NAME with the given VALUE to the generated AWS request.
This option is intended for testing new AWS functionality for which
eclat does not yet provide native support.
-p, --check-permissions
Checks if you have the required permissions for the action, without
actually making the request.
* forcibly stop the instance
eclat stop now supports -f (--force) option, which stops the instance
forcibly.
* Implement signature version 4 signing
The signature version 4 signing process is now the default. Version
2 can enabled by using the following statement in the eclat
configuration file:
signature-version 2;
* POST support
POST HTTP method is supported. It is enabled by the following
configuration statement:
http-method post;
* If availability region is not supplied, it is read from the instance store.
* Authentication providers
Support for different authentication providers is introduced.
Authentication provider is a service that supplies AWS access key ID and
secret key. It is configured by the "authentication-provider"
statement in the configuration file. The syntax is:
authentication-provider TYPE [ARG];
TYPE can be one of:
- file
Credentials are obtained from a disk file named by the second
argument. The statement
authentication-provider file NAME
is equivalent to
access-file NAME
of eclat 1.0 and prior. The "access-file" statement is retained for
backward compatibility.
- instance-store
Credentials are obtained from the instance store. Second argument
is optional. If present, it should be the name of the IAM role the
instance is launched with.
* IAM support
If authentication provider is set to "instance-store", its argument
specifies IAM role name. The authentication credentials are then
taken from the instance store.
* New program: ispeek
Lists content of the instance store.
* Setting UserData instance attribute.
The setiattr (modify-instance-attribute) command automatically encodes
the value of UserData attribute in base64. A command line option is
provided to read the value from a file.
* lsistat
The default for lsistat (describe-instance-status) command has been
changed to display all instances, no matter their status. Use the
-r (--running) option to get prior behavior. The -a (--all) option
has been retained for backward compatibility.
Version 1.0, 2013-12-20
First official release. Implements a basic set of commands.
Version 0.1, 2012-10-23
First alpha release.
=========================================================================
Copyright information:
Copyright (C) 2012-2015 Sergey Poznyakoff
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
copyright notice and this permission notice are preserved,
thus giving the recipient permission to redistribute in turn.
Permission is granted to distribute modified versions
of this document, or of portions of it,
under the above conditions, provided also that they
carry prominent notices stating who last changed them.
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
eval: (add-hook 'write-file-hooks 'time-stamp)
time-stamp-start: "changes. "
time-stamp-format: "%:y-%02m-%02d"
time-stamp-end: "\n"
end:
|