Age | Commit message (Collapse) | Author | Files |
|
|
|
|
|
|
|
* src/eclat.h (eclat_command_env) <curl>: Remove.
<xmltree>: New field.
* src/util.c (translate_ids): Close the map when no longer needed
(eclat_send_request): Implement exponential backoff.
* src/ec2map.c: Reflect the above changes.
* src/eclat.c: Likewise.
* lib/libeclat.h (eclat_request_dup): New proto.
* lib/reqcreat.c (eclat_request_dup): New function.
* src/config.c: New configuration statements: max-retry-interval and
retry-timeout.
|
|
New commands: mksubnet, rmsubnet, lssubnet, setsubnetattr.
* TODO: Update.
* lib/libeclat.h (EC2_API_VERSION): Update.
* src/Makefile.am: Add subnet.c.
* src/subnet.c: New file.
* src/eclat.c (cmdtab): Register new commands.
* src/eclat.h: Add new prototypes.
|
|
* NEWS: Update.
* doc/eclat-stop.1: Update.
* doc/eclat.1man: Update.
* etc/default.fln: Special handling for DryRunOperation
and UnauthorizedOperation codes.
* lib/paramlist.c: New file.
* lib/Makefile.am (libeclat_a_SOURCES): Add paramlist.c
* lib/forlan.c: New function dequote.
* lib/libeclat.h (eclat_request_add_param0)
(ec2_param_free, ec2_param_list_create)
(ec2_param_list_append)
(eclat_request_add_param_list): New protos.
* lib/reqcreat.c (ec2_param_free): Remove static qualifier.
* src/stop-cl.opt: New file.
* src/Makefile.am (OPTFILES): Add stop-cl.opt
* src/cmdline.opt: New options: --check-permissions and --add-parameter.
* src/eclat.c (extra_param): New global.
(find_format): print error message if no such format is found.
* src/startstop.c (eclat_stop_instance): Use parse_stop_options
|
|
* NEWS: Update.
* doc/eclat.conf.5: Document http-method. Reorganize description of
endpoints and regions.
* lib/libeclat.h (ec2_request) <postdata>: New member
(eclat_request_finalize): New proto.
* lib/req2url.c (eclat_request_to_url): Remove second argument.
All uses changed.
(eclat_request_finalize): New function.
* lib/reqfree.c: Free postdata.
* lib/reqsign.c (requestsign4): Implement post.
* src/config.c: New configuration statement http-method.
* src/eclat.c (use_post): New variable.
* src/eclat.h (use_post): New extern.
* src/util.c (eclat_send_request): Implement post.
|
|
|
|
|
|
* NEWS: Update.
* doc/eclat.conf.5: Update.
* lib/Makefile.am: Add new sources.
* lib/istore.c: New file.
* lib/path.c: New file.
* lib/libeclat.h (path_concat)
(instance_store_curl_new)
(instance_store_read): New protos.
* src/config.c (cb_authentication_provider): second argument is
optional for instance-store type.
New compound statement: instance-store.
* src/eclat.h (instance_store_base_url)
(instance_store_port,instance_store_document_path):
(instance_store_credentials_path): New externs.
* src/ispeek.c: Rewrite using new functions.
* src/util.c: Likewise.
|
|
* src/ispeek.c: New file.
* src/ispeek-cl.opt: New file
* src/Makefile.am: Add ispeek
* src/io.c (dump, eclat_trace_fun): Moved to the library.
(eclat_io_setup): Use eclat_set_curl_trace.
* NEWS: Document ispeek.
* doc/Makefile.inc: Add ispeek.1
* doc/eclat.1man: Mention ispeek(1) in the "see also" section.
* doc/eclat.conf.5: Update.
* doc/ispeek.1: New file.
* lib/Makefile.am (libeclat_a_SOURCES): Add trace.c
* lib/libeclat.h (eclat_trace_fun)
(eclat_set_curl_trace): New proto.
* lib/trace.c: New file.
|
|
* NEWS: Update.
* doc/eclat.1man: Update.
* lib/.gitignore: Update.
* lib/Makefile.am (libeclat_a_SOURCES): Add new files.
* lib/json.h: New file.
* lib/jsongrm.y: New file.
* lib/jsonlex.l: New file.
* lib/yytrans: New file.
* lib/libeclat.h (ec2_query) <token>: New member
(eclat_query_create): Change signature.
* lib/qcreat.c (eclat_query_create): Take security token as 5th
argument.
* lib/reqsign.c (querysign2): Add security token.
* src/cmdline.opt: Update copyright years
* src/ec2map.c (ec2_map_get): Pass security token to
eclat_query_create.
* src/eclat.c (security_token): New variable.
(eclat_do_command): Pass security token to
eclat_query_create.
(main): Get authentication credentials from the instance
store, if not found in the access file.
* src/eclat.h (security_token): New extern.
(eclat_get_instance_creds): New proto.
* src/util.c (eclat_get_instance_zone): Use json parser.
(eclat_get_instance_creds): New function.
* tests/Makefile.am (noinst_PROGRAMS): add tjson
* tests/tjson.c: New file.
|
|
* lib/libeclat.h (ec2_param) <encoded>: New member.
(ec2_query) <signature>: Remove.
<headers,region,access_key>: New members
(eclat_query_create): Take two more arguments. All uses changed.
(eclat_query_add_param_encoded)
(eclat_query_add_header): New functions.
* lib/q2url.c (eclat_query_to_url): Don't create Signature param:
it is already in the param list (for v2 process).
* lib/qaddparm.c (eclat_query_add_param_encoded): New function.
(eclat_query_add_header): New function.
* lib/qcreat.c (eclat_query_create): Take region and access key
as additional parameters.
* lib/qencode.c (encode_param): Skip parameters that have encoded
set to true.
* lib/reqsign.c (querysign2): Store access key in AWSAccessKeyId
and the generated signature in the Signature parameters.
(eclat_hex_encode): New function.
(querysign4): Implement signature version 4 signing process.
* src/ec2map.c: Update call to eclat_query_create.
* src/eclat.c: Likewise.
* src/util.c (eclat_send_query): Sign the query and add
requested headers prior to sending.
* doc/eclat.conf.5: Document signature-version.
* NEWS: Likewise.
|
|
|
|
* lib/hmac_sha256.c: New file.
* lib/sha256.c: New file.
* lib/sha256.h: New file.
* lib/Makefile.am (libeclat_a_SOURCES): Add new files.
* lib/libeclat.h (hmac_sha256): New proto.
(eclat_query_signature): Rename to eclat_query_sign,
take signature version as argument.
(eclat_encode_devmap): Remove prototype.
* lib/reqsign.c: Use HMAC256
* src/config.c (eclat_kw): New keyword: signature-version,
* src/devmap.c (eclat_encode_devmap): Bugfixes. Translate snapshot ids.
* src/eclat.c (signature_version): New variable.
* src/eclat.h (signature_version): New proto.
(eclat_encode_devmap): New proto.
* src/util.c (eclat_send_query): Use eclat_query_sign.
* tests/hmac01.at: Update.
* tests/hmac02.at: Update.
* tests/hmac03.at: Update.
* tests/thmac.c: Use HMAC256
|
|
* doc/eclat.conf.5: Document EC2 maps.
* etc/eclat.cfin: Provide default maps.
* lib/Makefile.am (AM_LFLAGS): Remove -v.
* lib/bidimap.c (cb_submap): Remove unused variable.
* lib/forlan.c: Minor change.
* lib/forlangrm.y: Declare prototype for yylex.
* lib/forlanlex.l: Add option nounput
* lib/libeclat.h (eclat_map) <locus>: New member.
* lib/map.c (eclat_map_config): Warn if attempting to
redeclare an existing map.
* src/ec2map.c (ec2_map_get): Minor change.
|
|
* TODO: Update.
* lib/libeclat.h (EC2_API_VERSION): Update.
* src/Makefile.am: Add new file.
* src/cpimg-cl.opt: New file.
* src/cpimg.c: New file.
* src/cpsnap-cl.opt: New file.
* src/cpsnap.c: New file.
* src/eclat.c (cmdtab): Add new commands.
* src/eclat.h (eclat_copy_image)
(eclat_copy_snapshot): New protos.
* etc/copy-snapshot.fln: New file.
* etc/copy-image.fln: New file.
* etc/Makefile.am (FLNFILES): Add copy-image.fln
|
|
* TODO: Update.
* etc/create-image.fln: New file.
* etc/deregister-image.fln: New file.
* etc/Makefile.am (FLNFILES): Add new files.
* lib/envmap.c: New file.
* lib/Makefile.am (libeclat_a_SOURCES): Add new files.
* lib/libeclat.h (eclat_encode_devmap): New proto.
* src/creimg-cl.opt: New file.
* src/creimg.c: New file.
* src/drgimg.c: New file.
* src/Makefile.am: Add new files.
* src/dscrimgs-cl.opt: Change short option to -u for
consistency with other commands.
* src/eclat.c: New commands create-image and
deregister-image.
* src/eclat.h (eclat_create_image)
(eclat_deregister_image): New prototypes.
* src/runinsts.c (encode_devmap): Move to the library.
|
|
|
|
Not all maps support reverse lookups generically (for
example, gdbm does not), therefore introduce a new
"bidi" (bi-directional) map, which is a compound of
two maps, each one used for a particular lookup direction.
* lib/Makefile.am (maps): List all maps here.
* lib/bidimap.c: New file. Implementation of a
bi-directional map.
* lib/filemap.c: Update to the changes in API.
Implement reverse lookup.
* lib/gdbmmap.c: Update to the changes in API.
* lib/nullmap.c: Likewise.
* lib/seqmap.c: Likewise.
* lib/ldapmap.c: Update to the changes in API.
Implement reverse lookup.
New configuration keywords: reverse-filter, reverse-attr.
* lib/libeclat.h (eclat_map_drv) <map_get>: Change signature,
take search direction as a new argument.
(eclat_map_get): Likewise.
(eclat_map) <eclat_map_bad_dir>: New status code.
(MAP_DIR, MAP_REV): New macros.
(eclat_map_name_split): New function.
(eclat_map_drv_bidi): New extern.
* lib/map.c (eclat_map_get): Change signature,
take search direction as a new argument.
Pass new keyword to the "key" translation: "dir".
(eclat_map_strerror): Handle new status code.
(eclat_map_name_split): New function.
* src/eclat.c (main): Register eclat_map_drv_bidi.
* src/util.c (translate_ids): Use eclat_map_name_split
to obtain direction code from the map name.
(translate_resource_ids): Use direct lookups.
* tests/Makefile.am: Add new testcases.
* tests/testsuite.at: Likewise.
* tests/bidimap.at: New testcase.
* tests/filemap.at: Test reverse lookups.
|
|
* doc/eclat-delete-volume.1: Update.
* doc/eclat-release-address.1: Update.
* doc/eclat.1: Update.
* doc/eclat.conf.5: New section "CONFIRMATION"
* lib/getyn.c (eclat_vgetyn): Negative default stands for no
default at all.
* lib/confirm.c (eclat_confirm_mode): Remove.
(eclat_confirm): Change signature. Act according to the
first argument.
* lib/libeclat.h (eclat_confirm_mode): New enum.
(eclat_confirm): Change signature.
* src/cmdline.opt: Change handling of -Y and -N options.
* src/config.c: New statement "confirm".
* src/cretags.c: Remove call to eclat_confirm. This is done by
the caller.
* src/delvol.c: Likewise.
* src/reladdr.c: Likewise.
* src/eclat.c (confirm_mode): New variable.
(command) <flags>: New member.
(cmdtab): Mark commands with appropriate flags.
(main): Call eclat_confirm to confirm the command.
* src/eclat.h (confirm_mode): New extern.
(set_command_confirmation): New proto.
* etc/eclat.cfin: Set a reasonably safe confirmation default.
* lib/forlan.c (strtots): Remove unused variable.
|
|
* TODO: Update.
* doc/Makefile.am: Add new files.
* doc/eclat-allocate-address.1: New file.
* doc/eclat-release-address.1: New file.
* doc/eclat-associate-address.1: Update.
* doc/eclat-describe-addresses.1: Update.
* doc/eclat-disassociate-address.1: Update.
* doc/eclat.1: Update.
* etc/Makefile.am: Add new files.
* etc/release-address.fln: New file.
* lib/Makefile.am: Add new files.
* lib/confirm.c: New file.
* lib/getyn.c: New file.
* lib/libeclat.h (eclat_getyn,eclat_vgetyn)
(eclat_confirm): New protos.
(eclat_confirm_mode): New extern.
* src/Makefile.am: Add new files.
* src/cmdline.opt: New options -Y (--yes) and -N (--no).
* src/eclat.c: Register the release-address command.
* src/eclat.h (EX_CANCELLED): New constant.
(eclat_release_address): New proto.
* src/reladdr-cl.opt: New file.
* src/reladdr.c: New file.
|
|
* doc/eclat.conf.5: Document sequence maps.
* lib/Makefile.am: Add new files.
* lib/libeclat.h (eclat_map_drv_seq): New extern.
* lib/seqmap.c: New file.
* src/eclat.c: Minor fixes.
* tests/Makefile.am: Add new testcase.
* tests/testsuite.at: Likewise.
* tests/seqmap.at: New file.
|
|
|
|
* doc/eclat.conf.5: Document the null map.
* lib/nullmap.c: New file.
* lib/Makefile.am: Add new files.
* lib/gdbmmap.c (gdbm_map_open): Fix gdbm_open arguments.
Report a detailed error description if it fails.
* lib/libeclat.h (eclat_map_drv_null): New extern.
* src/eclat.c (main): Register the null map.
* tests/.gitignore: Update.
* tests/Makefile.am: Add new files.
* tests/filemap.at: New file.
* tests/gdbmload.c: New file.
* tests/gdbmmap.at: New file.
* tests/nullmap.at: New file.
* tests/atlocal.in (GDBMLOAD): New variable.
* tests/testsuite.at: Include new files.
|
|
* grecs: Upgrade.
* lib/filemap.c: Revamp configuration routine.
Provide configuration syntax help.
* lib/gdbmmap.c: Likewamp.
* lib/ldapmap.c: Provide configuration syntax help.
* lib/libeclat.h (eclat_map_drv) <map_confhelp>: New member.
(eclat_map_confhelp): New proto.
* lib/map.c (eclat_map_confhelp): New function.
* src/config.c (config_help): Call eclat_map_confhelp.
|
|
* lib/expand.c: New file.
* lib/getans.c: New file.
* lib/Makefile.am: Add new files.
* lib/ldapmap.c (ldap_map) <passfile,prompt>: New members.
(ldapmap_kw) <passfile,prompt>: New keywords.
(ldap_map_open): Prompt for undefined credentials if the
"prompt" statement is set to true.
(ldap_map_get): Use eclat_expand_kw to expand the filter.
* lib/libeclat.h (eclat_trimnl,eclat_getans)
(eclat_expand_kw): New protos.
* lib/map.c (eclat_map_get): Use eclat_expand_kw.
* src/eclat.c (read_format): Likewise.
|
|
* configure.ac: Check for openldap.
* lib/Makefile.am (maps) [COND_LDAP]: Add ldapmap.c
* lib/ldapmap.c: New file.
* lib/libeclat.h (eclat_map_drv_ldap): New extern.
* src/eclat.c (main) [WITH_LDAP]: Register eclat_map_drv_ldap.
|
|
* README: Document --with-gdbm
* configure.ac: Detect libgdbm. New option --with-gdbm.
* lib/gdbmmap.c
* lib/Makefile.am (maps) [COND_GDBM]: Add new file.
* lib/libeclat.h (eclat_map_drv_gdbm): New extern.
* src/Makefile.am (LDADD): Add MAPLIBS.
* src/eclat.c (mail) [WITH_GDBM]: Register eclat_map_drv_gdbm.
|
|
Resource identifier mapping permits to use more customized identifiers
instead of the Amazon resource identifiers. For instance, you can use
hostnames instead of the instance IDs, etc.
* lib/Makefile.am: Add new files.
* lib/filemap.c: New file.
* lib/map.c: New file.
* lib/libeclat.h (eclat_map_drv,eclat_map): New structs.
(eclat_map_status): New enum.
(eclat_map_init,eclat_map_lookup,eclat_map_config)
(eclat_map_free,eclat_map_open,eclat_map_close)
(eclat_map_get,eclat_map_strerror,eclat_map_drv_register)
(eclat_map_foreach,eclat_map_free_all)
(eclat_get_string_node): New protos.
(eclat_map_drv_file): New extern.
* src/accfile.c (access_file_lookup): Fix memory leak.
* src/cmdline.opt: New option: --translate (-x)
* src/config.c (eclat_kw) <map>: New block statement.
(config_finish): Parse map configs.
* src/asscaddr.c: Translate key.
* src/dscrinstattr.c: Likewise.
* src/dscrinsts.c: Likewise.
* src/dscrinststat.c: Likewise.
* src/dscrsecgrps.c: Likewise.
* src/getconout.c: Likewise.
* src/startinst.c: Likewise.
* src/eclat.c (main): Initialize maps and free them when no
more needed.
* src/eclat.h (translate_option): New extern.
(translate_ids): New proto.
* src/util.c (translate_option): New variable.
(translate_ids): New function.
|
|
* configure.ac: Check for lex and yacc.
* lib/diag.c: New file (moved from ../src with edits)
* lib/forlan.c: New file.
* lib/forlan.h: New file.
* lib/forlangrm.y: New file.
* lib/forlanlex.l: New file.
* lib/.gitignore: Add new files.
* lib/Makefile.am: Add new file.
* lib/libeclat.h: Add diagnostics-related stuff.
* src/Makefile.am (eclat_SOURCES): Remove diag.c
* src/cmdline.opt (set_program_name): Move to ../lib/diag.c
* src/diag.c: Remove (see above).
* src/config.c: Reflect changes to the diagnostics subsystem.
* src/eclat.c: Likewise.
* src/eclat.h: Remove diagnostics-related stuff.
It lives in libeclat.h from now on.
* src/error.c: Remove.
* tests/forlan01.at: New testcase.
* tests/testsuite.at: Include forlan01.at
* tests/tforlan.c: New file.
* tests/.gitignore: Add new files.
* tests/Makefile.am: Add new files.
|
|
* lib/xmltree.c: New file.
* lib/Makefile.am: Add new file.
* lib/libeclat.h: Include expat.h and grecs.h
(eclat_partial_tree_t): New typedef.
(eclat_partial_tree_create,eclat_partial_tree_destroy)
(eclat_partial_tree_finish,eclat_partial_tree_data_handler)
(eclat_partial_tree_start_handler)
(eclat_partial_tree_end_handler): New protos.
* src/eclat.c (main): Initialize XML parser with eclat_partial_tree
handlers and bind it to the CURL output handler.
* tests/.gitignore: Add txml
* tests/Makefile.am (TESTSUITE_AT): Add xml01.at
Build txml
* tests/testsuite.at: Include xml01.at
* tests/txml.c: New file.
* tests/xml01.at: New file.
|
|
* lib/libeclat.h (EC2_API_VERSION): New define.
* lib/qcreat.c: Add "Version: parameter here.
* src/startinst.c: Update.
|
|
* lib/qaddparm.c: New file.
* lib/qcreat.c: New file.
* lib/qencode.c: New file.
* lib/qfree.c: new file.
* lib/Makefile.am: Add new files.
* lib/libeclat.h (ec2_query) <https, verb>: Remove.
<flags>: New member.
(eclat_query_create, eclat_query_free)
(eclat_query_encode): New protos.
* lib/q2url.c (eclat_query_to_url): Fix.
* lib/reqsign.c (eclat_query_signature): Bugfixes.
* src/config.c (config_finish): Call grecs_tree_process.
* src/eclat.c (url_base): Remove.
(main): Install curl debugging function if required.
* src/eclat.h: Update.
* src/startinst.c (eclat_start_instance): Implement.
|
|
* lib/q2url.c: New file.
* lib/Makefile.am: Add new file.
* lib/libeclat.h (ec2_query) <signature>: New member.
(eclat_query_to_url): New proto.
(eclat_query_signature): Change signature.
* lib/reqsign.c (eclat_query_signature): Store signature to
req->signature.
|
|
* lib/reqsign.c: New file
* lib/libeclat.h (eclat_query_signature): New proto.
* lib/Makefile.am: Add reqsign.c
|
|
|