aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFiles
2021-01-06Update copyright yearsSergey Poznyakoff88
2019-11-26Implement MoveAddressToVpc (addr2vpc) and RestoreAddressToClassic (addr2ec2)Sergey Poznyakoff4
* TODO: Document changes. * doc/Makefile.inc: Add new files. * doc/eclat-addr2ec2.1: New file. * doc/eclat-addr2vpc.1: New file. * etc/Makefile.am: Add new files. * etc/move-address-to-vpc.fln: New file. * etc/restore-address-to-classic.fln: New file. * src/Makefile.am: Add new file. * src/mvaddr.c: New file. * src/eclat.c (cmdtab): New commands: addr2vpc and addr2ec2. * src/eclat.h (eclat_move_address): New proto. * etc/describe-images.fln: List creation date.
2018-12-15Fix rmaddr -vSergey Poznyakoff1
* src/rmaddr.c: Fix a long-standing typo
2018-12-15Implement ModifyVolume and DescribeVolumesModificationsSergey Poznyakoff5
2018-11-17Implement the terminate-instances commandSergey Poznyakoff3
* TODO: Update. * doc/Makefile.inc: Add new files. * doc/eclat-mkinst.1: Mention the terminate command. * doc/eclat-terminate.1: New file. * etc/Makefile.am: Add new files. * etc/terminate-instances.fln: New file. * src/eclat.c (cmdtab): Register new command. * src/eclat.h (eclat_terminate_instances): New proto. * src/startstop.c (eclat_terminate_instances): New function. * tests/Makefile.am: Add new test. * tests/testsuite.at: Likewise. * tests/terminate-instances.at: New test.
2018-03-19Fix coredumpSergey Poznyakoff1
* src/eclat.c (find_command_name): Avoid calling ident_matches with NULL argument.
2018-03-15Update copyright yearsSergey Poznyakoff75
2018-03-15Minor fixesSergey Poznyakoff2
2018-03-15Upgrade grecsSergey Poznyakoff7
* grecs: pull * configure.ac: Enable json * lib/Makefile.am (AM_CPPFLAGS): Use @GRECS_INCLUDES@ (libeclat_a_SOURCES): Remove json sources. * src/Makefile.am (AM_CPPFLAGS): Use @GRECS_INCLUDES@ * tests/Makefile.am: Likewise. * lib/json.h: Remove. * lib/jsongrm.y: Remove. * lib/jsonlex.l: Remove. * tests/tjson.c: Remove. * src/config.c (eclat_kw): Mark statically initialized memory locations as such. * src/mktags.c (process_tags): Use wordsplit to process quoted arguments. * lib/bidimap.c (bidimap_config): Fill allocated memory with 0's * lib/filemap.c (filemap_config): Likewise. * lib/gdbmmap.c (gdbm_map_config): Likewise. * lib/seqmap.c (seqmap_config): Likewise.
2018-03-15Update docsSergey Poznyakoff2
2018-03-15Minor changesSergey Poznyakoff1
* src/util.c (eclat_send_request): Fix the AWS error string. Print a warning before sleeping. Fix memory leak.
2018-03-14Implement exponential backoff with jitter to handle RequestLimitExceededSergey Poznyakoff8
* 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.
2015-11-19Restore missing translation mapsSergey Poznyakoff3
2015-11-19Add missing files to repoSergey Poznyakoff1
2015-11-19Add operations on egress rules for VPC security groups.Sergey Poznyakoff2
* src/sg-cl.opt: New options: --input (--ingress, -I), and --output (--egress, -O). * src/sg.c (command): const. * doc/eclat-sg.1: Document --input/--output modifiers. * TODO: Likewise. * etc/sg.fln: Add support for egress responses.
2015-11-19New commands: assocrtab, mkrtab, rmrtab, lsrtab, disasrtab, routeSergey Poznyakoff5
These implement the following EC2 actions: AssociateRouteTable, CreateRoute, CreateRouteTable, DeleteRoute, DeleteRouteTable, DescribeRouteTables, DisassociateRouteTable, ReplaceRoute. * TODO: Update. * etc/Makefile.am: Add new formats. * etc/associate-route-table.fln: New file. * etc/create-route-table.fln: New file. * etc/create-route.fln: New file. * etc/delete-route-table.fln: New file. * etc/delete-route.fln: New file. * etc/describe-route-tables.fln: New file. * etc/disassociate-route-table.fln: New file. * etc/replace-route.fln: New file. * etc/route.fln: New file. * src/Makefile.am: Add routetable.c * src/routetable.c: New file. * src/eclat.c (cmdtab): Register new subcommands. * src/eclat.h (ECLAT_DEBCAT_DUMP): New category. Add new protos. * src/io.c (write_callback): Enable XML dump if dump debug category is set.
2015-11-19Implement subnet commandsSergey Poznyakoff5
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.
2015-11-18Implement VPC and Internet Gateway commands.Sergey Poznyakoff15
New commands: lsvpc, lsvpcattr, mkvpc, setvpcattr, rmvpc, lsigw, mkigw, rmigw, atigw, deigw. * TODO: Update. * doc/Makefile.inc: Add mkvpc manpage. * etc/Makefile.am: Add create-vpc.fl and describe-vpcs.fln * etc/describe-vpc-attribute.fln: New file. * etc/describe-vpcs.fln: New file. * src/Makefile.am: Add new files. * src/igw.c: New file. * src/lsvpc.c: New file. * src/mkvpc-cl.opt: New file. * src/mkvpc.c: New file. * src/rmvpc.c: New file. * src/vpcattr.c: New file. * src/eclat.c (cmdtab): Register new subcommands. * src/eclat.h: Add new prototypes. * src/mksg-cl.opt: New option: --internet-gateway, -g * src/lsinst.c (parse_options): Define args_doc. * src/lsreg.c (parse_options): Remove useless return. * src/lstag-cl.opt: Likewise. * src/mktags-cl.opt: Remove stray character.
2015-02-02New options: --check-permissions and --add-parameterSergey Poznyakoff5
* 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
2015-01-27sg: accept -1 as argument to --portSergey Poznyakoff2
* src/sg-cl.opt (--port option): Accept -1 * src/sg.c (str2port): Likewise. (add_source_cidr): Fix coredump
2015-01-23Improve ispeekSergey Poznyakoff1
* src/ispeek.c (is_user_data): New function (print_dir,ispeek_do): Always treat user-data as file.
2015-01-23Use signature version 4 by defaultSergey Poznyakoff1
2015-01-23Implement HTTP POSTSergey Poznyakoff4
* 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.
2015-01-23Namespace fixup: use "request" consistentlySergey Poznyakoff43
2015-01-22Update copyright years.Sergey Poznyakoff64
2015-01-22Improve setting UserData attribute. Change lsistat defaults.Sergey Poznyakoff9
* NEWS: Update. * doc/eclat-setiattr.1: Document new options. * doc/eclat-lsistat.1: Update. * etc/describe-instance-attribute.fln: Decode userData. * grecs: Upgrade. * src/setiattr-cl.opt: New file. * src/Makefile.am (OPTFILES): Add setiattr-cl.opt * src/setiattr.c: Encode UserData. * src/eclat.h (read_file): New proto. * src/lsistat-cl.opt: New option -r (--running). * src/lsistat.c: Change default to show all instances, no matter their state. * src/mkinst-cl.opt (read_user_data): Remove. Use read_file instead. * src/sg.c: Add missing include. * src/util.c (read_file): New function.
2015-01-22Fix a typoSergey Poznyakoff1
2015-01-22authentication-provider instance-store does not require role name argumentSergey Poznyakoff4
* 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.
2015-01-21Improve ispeekSergey Poznyakoff2
* doc/ispeek.1: Update. * grecs: Upgrade * src/ispeek-cl.opt: New options. * src/ispeek.c: Optionally print variable types, quote strings, etc. Add heuristics to determine whether the obtained data are a directory listing or a text.
2015-01-21Add ispeek.Sergey Poznyakoff4
* 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.
2015-01-19New configuration statement authentication-provideSergey Poznyakoff4
* NEWS: Update. * src/config.c: New statement "authentication-provider" * src/eclat.c (authentication_provider): New variable. (main): Select credentials depending on the value of authentication_provider. * src/eclat.h (authentication_provider): New enum and extern.
2015-01-19Initial support for IAMSergey Poznyakoff6
* 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.
2015-01-18If no region is specified, get it from the instance storeSergey Poznyakoff4
* src/eclat.c: If no region is specified, try to get it from the instance store. * src/eclat.h (eclat_trace_fun): New proto. (eclat_get_instance_zone): New proto. * src/io.c (eclat_trace_fun): Remove static qualifier. * src/util.c (eclat_get_instance_meta_data): New function. (eclat_get_instance_zone): New function.
2015-01-15BugfixesSergey Poznyakoff1
* grecs: Upgrade * src/sg.c (add_source_cidr): Accept /0 mask; improve error detection.
2014-07-09Implement signature version 4 signing processSergey Poznyakoff3
* 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.
2014-02-04New commands: lsaattr and setaattr.Sergey Poznyakoff10
* TODO: Update. * doc/Makefile.inc: Add new files. * doc/eclat-lsaattr.1: New file. * doc/eclat-setaattr.1: New file. * etc/Makefile.am (FLNFILES): Add new files. * etc/describe-image-attribute.fln: New file. * etc/modify-image-attribute.fln: New file. * src/Makefile.am (eclat_SOURCES,OPTFILES): Add new files. * src/eclat.c (cmdtab): New commands: lsaattr and setaattr. * src/eclat.h (eclat_describe_image_attribute) (eclat_modify_image_attribute,canonattrname): New protos. * src/lsaattr.c: New file. * src/lsiattr.c: Use canonattrname to simplify usage. * src/lssattr.c (canonattrname): Remove. Use external version. * src/setaattr-cl.opt: New file. * src/setaattr.c: New file. * src/setiattr.c: New file. * src/util.c (canonattrname): New function.
2014-02-03Update copyright yearsSergey Poznyakoff69
2013-12-20Version 1.0Sergey Poznyakoff1
2013-12-20Rename conmesg to dmesgSergey Poznyakoff1
2013-12-20Ask for confirmation before doing rmsgSergey Poznyakoff1
2013-12-19Implement security group creation and deletion.Sergey Poznyakoff11
* doc/eclat-lssg.1: New file. * doc/eclat-sg.1: New file. * doc/Makefile.inc: Add new files. * etc/create-security-group.fln: New file. * etc/delete-security-group.fln: New file. * etc/Makefile.am: Add new files. * src/mksg-cl.opt: New file. * src/mksg.c: New file. * src/rmsg-cl.opt: New file. * src/rmsg.c: New file. * src/sg.h: New file. * src/Makefile.am: Add new files. * src/eclat.c (cmdtab): New commands "mksg" and "rmsg". * src/eclat.h (eclat_create_security_group) (eclat_delete_security_group): New protos. * src/lssg.c: Include sg.h. Use groupkw instead of the static rt[], which is removed. * src/sg-cl.opt: Use groupkw * src/sg.c (groupkw): New global. * TODO: Update.
2013-12-19sg: accept port 0Sergey Poznyakoff1
2013-12-17Group sg options by functionality in --help output.Sergey Poznyakoff1
2013-12-17Document sgSergey Poznyakoff1
* TODO: Update. * doc/Makefile.inc: Add eclat-sg.1 * doc/eclat-lssg.1: Update. * doc/eclat-sg.1: New file. * src/sg-cl.opt: Fix docstrings.
2013-12-16Improve sg.Sergey Poznyakoff2
Accept --list without argument (list all groups). Accept host and service names as arguments to the --source and --port options. * src/sg-cl.opt (parse_options): Accept --list without argument. * src/sg.c (add_source_cidr, str2port): New functions. (flush_rule): Use the above to process source CIDRs and port numbers.
2013-12-09eclat sg: make --port optional.Sergey Poznyakoff2
2013-12-03Iprove sgSergey Poznyakoff1
* src/sg.c (flush_rule): Add default source address, unless specified.
2013-12-03Implement sg --listSergey Poznyakoff2
* etc/Makefile.am (FLNFILES): Add lsattr.fln (.fln.forlan): Use all prerequisites, not only the first one. (FORMATFILES): Remove lsattr.forlan (lsattr.forlan): Use implicit rule. (sg.forlan): New rule * etc/flncat.c (comment): Optionally output the comment. (main): Output " else " only if some non-whitespace and non-comment characters were output before. * etc/lsattr.fln: New file * src/sg-cl.opt: New option --list. * src/sg.c (list_option): New variable.
2013-12-03Bugfix and compatibility change in lssg/sgSergey Poznyakoff2
* src/lssg.c (eclat_describe_security_groups): Fix the --name option. * src/sg-cl.opt: Use -N as a shorcut for --next, and -n as the one for --name, for compatibility with lssg.
2013-11-28Implement sg commandSergey Poznyakoff5
* etc/sg.fln: New file. * etc/Makefile.am (FLNFILES): Add sg.fln * src/sg.c: New file. * src/sg-cl.opt: New file. * src/Makefile.am (eclat_SOURCES): Add sg.c (OPTFILES): Add sg-cl.opt * src/eclat.c (cmdtab): Add entry for "sg". (eclat_do_command): Ignore tag if it is NULL. * src/eclat.h (eclat_sg): New proto.

Return to:

Send suggestions and report system problems to the System administrator.