Alex Crawford
9ba25550a1
datasource: use opaque object instead of string
...
Rather than serializing the network config into a string and then later
deserializing it, just pass the object through directly.
2015-08-24 09:03:29 -07:00
Alex Crawford
9605b5edf2
datasource: remove FetchNetworkConfig step
...
Its easier to let each datasource grab all metadata in the FetchMetadata
stage than to break it into multiple stages.
2015-01-26 16:08:26 -08:00
Alex Crawford
3e47c09b41
datasource: replace metadata map with struct
...
The loosely-typed metadata map is a load of crap. Make it a struct and
let the compiler help us out.
2015-01-26 15:57:57 -08:00
Jonathan Boulle
be68a8e5cc
*: switch to line comments for copyright
...
Build tags are not compatible with block comments. Also adds copyright
header to a few places it was missing.
2015-01-24 19:32:33 -08:00
Jonathan Boulle
6c1ba590aa
*: add license header to all source files
2014-10-17 15:36:22 -07:00
Alex Crawford
604ef7ecb4
datasource: Add FetchNetworkConfig
...
FetchNetworkConfig is currently only used by ConfigDrive to read the
network config file from the disk.
2014-08-26 13:04:43 -07:00
Alex Crawford
a923161f4a
metadata: Refactor common parts out of ec2
2014-08-26 12:02:56 -07:00
Alex Crawford
4eedca26e9
configdrive: Use the EC2 metadata over OpenStack
...
Standardize on specific EC2 and OpenStack versions and add tests.
2014-08-04 10:18:29 -07:00
Alex Crawford
c089216cb5
datasources: Add support for specifying multiple datasources
...
If multiple sources are specified, the first available source is used.
2014-06-26 22:32:39 -07:00
Alex Crawford
840c208b60
feat(metadata): Distinguish between userdata and metadata for datasources
2014-06-18 12:34:31 -07:00
Alex Crawford
29ed6b38bd
refactor(env): Add the config root and netconf type to datasource and env
2014-06-18 12:27:15 -07:00
Camilo Aguilar
3e00a37ef5
feat(util/http_client): Adds generic HTTP client
...
Supports retries with exponential backoff as well as connection
timeouts and the ability to skip SSL/TLS verification.
This commit also refactors datasource and initialize packages
in order to use the new HTTP client.
2014-05-21 13:31:50 -04:00
Camilo Aguilar
4b6fc63e8c
fix(datastore/fetch): off-by-one oversight
2014-05-16 12:36:05 -04:00
Camilo Aguilar
fcccfb085f
style(datastore/fetch): Adjusts comments formatting
2014-05-16 12:35:39 -04:00
Camilo Aguilar
ebf134f181
refactor(datastore/fetch): Makes more failure proof fetching user-data files
...
- Adds URL validations
- Adds timeout support for http client
- Limits the amount of retries to not spin forever
- Fails faster if response status code is 4xx
- Does a little bit more of logging
- Adds more tests
2014-05-16 12:35:06 -04:00
Camilo Aguilar
ff70a60fbc
Adds sleep cap to exponential backoff so it does not go too high
2014-05-15 13:04:37 -04:00
Kelsey Hightower
31f61d7531
Use exponential backoff when fetching user-data from an URL.
...
The user-cloudinit-proc-cmdline systemd unit is responsible for
fetching user-data from various sources during the cloud-init
process. When fetching user-data from an URL datasource we face
a race condition since the network may not be available, which
can cause the job to fail and no further attempts to fetch the
user-data are made.
Eliminate the race condition when fetching user-data from an URL
datasource. Retry the fetch using an exponential backoff until
the user-data is retrieved.
Fixes issue 105.
2014-05-14 23:15:49 -07:00
Brian Waldon
3de3d2c050
feat(proc-cmdline): Parse /proc/cmdline for cloud-config-url
...
If the --from-proc-cmdline flag is given to coreos-cloudinit, the local
/proc/cmdline file will be parsed for a cloud-config-url
2014-04-22 16:38:01 -07:00
Brian Waldon
d2dabee0c6
refactor(*): Break apart packages
2014-03-18 09:14:11 -07:00