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 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351
|
.. _changelog:
Changelog
=========
4.2.5 (22 December 2016)
------------------------
**General**
* Add and increment test versions for Travis CI. #839 (untergeek)
* Make `filter_list` optional in snapshot, show_snapshot and show_indices
singleton actions. #853 (alexef)
**Bug Fixes**
* Fix cli integration test when different host/port are specified. Reported
in #843 (untergeek)
* Catch empty list condition during filter iteration in singleton actions.
Reported in #848 (untergeek)
**Documentation**
* Add docs regarding how filters are ANDed together, and how to do an OR with
the regex pattern filter type. Requested in #842 (untergeek)
* Fix typo in Click version in docs. #850 (breml)
* Where applicable, replace `[source,text]` with `[source,yaml]` for better
formatting in the resulting docs.
4.2.4 (7 December 2016)
-----------------------
**Bug Fixes**
* ``--wait_for_completion`` should be `True` by default for Snapshot singleton
action. Reported in #829 (untergeek)
* Increase `version_max` to 5.1.99. Prematurely reported in #832 (untergeek)
* Make the '.security' index visible for snapshots so long as proper
credentials are used. Reported in #826 (untergeek)
4.2.3.post1 (22 November 2016)
------------------------------
This fix is `only` going in for ``pip``-based installs. There are no other code
changes.
**Bug Fixes**
* Fixed incorrect assumption of PyPI picking up dependency for certifi. It
is still a dependency, but should not affect ``pip`` installs with an error
any more. Reported in #821 (untergeek)
4.2.3 (21 November 2016)
------------------------
4.2.2 was pulled immediately after release after it was discovered that the
Windows binary distributions were still not including the certifi-provided
certificates. This has now been remedied.
**General**
* ``certifi`` is now officially a requirement.
* ``setup.py`` now forcibly includes the ``certifi`` certificate PEM file in
the "frozen" distributions (i.e., the compiled versions). The
``get_client`` method was updated to reflect this and catch it for both the
Linux and Windows binary distributions. This should `finally` put to rest
#810
4.2.2 (21 November 2016)
------------------------
**Bug Fixes**
* The certifi-provided certificates were not propagating to the compiled
RPM/DEB packages. This has been corrected. Reported in #810 (untergeek)
**General**
* Added missing ``--ignore_empty_list`` option to singleton actions. Requested
in #812 (untergeek)
**Documentation**
* Add a FAQ entry regarding the click module's need for Unicode when using
Python 3. Kind of a bug fix too, as the entry_points were altered to catch
this omission and report a potential solution on the command-line. Reported
in #814 (untergeek)
* Change the "Command-Line" documentation header to be "Running Curator"
4.2.1 (8 November 2016)
-----------------------
**Bug Fixes**
* In the course of package release testing, an undesirable scenario was
caught where boolean flags default values for ``curator_cli`` were
improperly overriding values from a yaml config file.
**General**
* Adding in direct download URLs for the RPM, DEB, tarball and zip packages.
4.2.0 (4 November 2016)
-----------------------
**New Features**
* Shard routing allocation enable/disable. This will allow you to disable
shard allocation routing before performing one or more actions, and then
re-enable after it is complete. Requested in #446 (untergeek)
* Curator 3.x-style command-line. This is now ``curator_cli``, to
differentiate between the current binary. Not all actions are available,
but the most commonly used ones are. With the addition in 4.1.0 of schema
and configuration validation, there's even a way to still do filter chaining
on the command-line! Requested in #767, and by many other users (untergeek)
**General**
* Update testing to the most recent versions.
* Lock elasticsearch-py module version at >= 2.4.0 and <= 3.0.0. There are
API changes in the 5.0 release that cause tests to fail.
**Bug Fixes**
* Guarantee that binary packages are built from the latest Python + libraries.
This ensures that SSL/TLS will work without warning messages about insecure
connections, unless they actually are insecure. Reported in #780, though
the reported problem isn't what was fixed. The fix is needed based on what
was discovered while troubleshooting the problem. (untergeek)
4.1.2 (6 October 2016)
----------------------
This release does not actually add any new code to Curator, but instead improves
documentation and includes new linux binary packages.
**General**
* New Curator binary packages for common Linux systems!
These will be found in the same repositories that the python-based packages
are in, but have no dependencies. All necessary libraries/modules are
bundled with the binary, so everything should work out of the box.
This feature doesn't change any other behavior, so it's not a major release.
These binaries have been tested in:
* CentOS 6 & 7
* Ubuntu 12.04, 14.04, 16.04
* Debian 8
They do not work in Debian 7 (library mismatch). They may work in other
systems, but that is untested.
The script used is in the unix_packages directory. The Vagrantfiles for
the various build systems are in the Vagrant directory.
**Bug Fixes**
* The only bug that can be called a bug is actually a stray ``.exe`` suffix
in the binary package creation section (cx_freeze) of ``setup.py``. The
Windows binaries should have ``.exe`` extensions, but not unix variants.
* Elasticsearch 5.0.0-beta1 testing revealed that a document ID is required
during document creation in tests. This has been fixed, and a redundant bit
of code in the forcemerge integration test was removed.
**Documentation**
* The documentation has been updated and improved. Examples and installation
are now top-level events, with the sub-sections each having their own link.
They also now show how to install and use the binary packages, and the
section on installation from source has been improved. The missing
section on installing the voluptuous schema verification module has been
written and included. #776 (untergeek)
4.1.1 (27 September 2016)
-------------------------
**Bug Fixes**
* String-based booleans are now properly coerced. This fixes an issue where
`True`/`False` were used in environment variables, but not recognized.
#765 (untergeek)
* Fix missing `count` method in ``__map_method`` in SnapshotList. Reported in
#766 (untergeek)
**General**
* Update es_repo_mgr to use the same client/logging YAML config file.
Requested in #752 (untergeek)
**Schema Validation**
* Cases where ``source`` was not defined in a filter (but should have been)
were informing users that a `timestring` field was there that shouldn't have
been. This edge case has been corrected.
**Documentation**
* Added notifications and FAQ entry to explain that AWS ES is not supported.
4.1.0 (6 September 2016)
------------------------
**New Features**
* Configuration and Action file schema validation. Requested in #674
(untergeek)
* Alias filtertype! With this filter, you can select indices based on whether
they are part of an alias. Merged in #748 (untergeek)
* Count filtertype! With this filter, you can now configure Curator to only
keep the most recent _n_ indices (or snapshots!). Merged in #749
(untergeek)
* Experimental! Use environment variables in your YAML configuration files.
This was a popular request, #697. (untergeek)
**General**
* New requirement! ``voluptuous`` Python schema validation module
* Requirement version bump: Now requires ``elasticsearch-py`` 2.4.0
**Bug Fixes**
* ``delete_aliases`` option in ``close`` action no longer results in an error
if not all selected indices have an alias. Add test to confirm expected
behavior. Reported in #736 (untergeek)
**Documentation**
* Add information to FAQ regarding indices created before Elasticsearch 1.4.
Merged in #747
4.0.6 (15 August 2016)
----------------------
**Bug Fixes**
* Update old calls used with ES 1.x to reflect changes in 2.x+. This was
necessary to work with Elasticsearch 5.0.0-alpha5. Fixed in #728 (untergeek)
**Doc Fixes**
* Add section detailing that the value of a ``value`` filter element should be
encapsulated in single quotes. Reported in #726. (untergeek)
4.0.5 (3 August 2016)
---------------------
**Bug Fixes**
* Fix incorrect variable name for AWS Region reported in #679 (basex)
* Fix ``filter_by_space()`` to not fail when index age metadata is not
present. Indices without the appropriate age metadata will instead be
excluded, with a debug-level message. Reported in #724 (untergeek)
**Doc Fixes**
* Fix documentation for the space filter and the source filter element.
4.0.4 (1 August 2016)
---------------------
**Bug Fixes**
* Fix incorrect variable name in Allocation action. #706 (lukewaite)
* Incorrect error message in ``create_snapshot_body`` reported in #711
(untergeek)
* Test for empty index list object should happen in action initialization for
snapshot action. Discovered in #711. (untergeek)
**Doc Fixes**
* Add menus to asciidoc chapters #704 (untergeek)
* Add pyyaml dependency #710 (dtrv)
4.0.3 (22 July 2016)
--------------------
**General**
* 4.0.2 didn't work for ``pip`` installs due to an omission in the
MANIFEST.in file. This came up during release testing, but before the
release was fully published. As the release was never fully published, this
should not have actually affected anyone.
**Bug Fixes**
* These are the same as 4.0.2, but it was never fully released.
* All default settings are now values returned from functions instead of
constants. This was resulting in settings getting stomped on. New test
addresses the original complaint. This removes the need for ``deepcopy``.
See issue #687 (untergeek)
* Fix ``host`` vs. ``hosts`` issue in ``get_client()`` rather than the
non-functional function in ``repomgrcli.py``.
* Update versions being tested.
* Community contributed doc fixes.
* Reduced logging verbosity by making most messages debug level. #684
(untergeek)
* Fixed log whitelist behavior (and switched to blacklisting instead).
Default behavior will now filter traffic from the ``elasticsearch`` and
``urllib3`` modules.
* Fix Travis CI testing to accept some skipped tests, as needed. #695
(untergeek)
* Fix missing empty index test in snapshot action. #682 (sherzberg)
4.0.2 (22 July 2016)
--------------------
**Bug Fixes**
* All default settings are now values returned from functions instead of
constants. This was resulting in settings getting stomped on. New test
addresses the original complaint. This removes the need for ``deepcopy``.
See issue #687 (untergeek)
* Fix ``host`` vs. ``hosts`` issue in ``get_client()`` rather than the
non-functional function in ``repomgrcli.py``.
* Update versions being tested.
* Community contributed doc fixes.
* Reduced logging verbosity by making most messages debug level. #684
(untergeek)
* Fixed log whitelist behavior (and switched to blacklisting instead).
Default behavior will now filter traffic from the ``elasticsearch`` and
``urllib3`` modules.
* Fix Travis CI testing to accept some skipped tests, as needed. #695
(untergeek)
* Fix missing empty index test in snapshot action. #682 (sherzberg)
4.0.1 (1 July 2016)
-------------------
**Bug Fixes**
* Coerce Logstash/JSON logformat type timestamp value to always use UTC.
#661 (untergeek)
* Catch and remove indices from the actionable list if they do not have a
`creation_date` field in settings. This field was introduced in ES v1.4, so
that indicates a rather old index. #663 (untergeek)
* Replace missing ``state`` filter for ``snapshotlist``. #665 (untergeek)
* Restore ``es_repo_mgr`` as a stopgap until other CLI scripts are added. It
will remain undocumented for now, as I am debating whether to make
repository creation its own action in the API. #668 (untergeek)
* Fix dry run results for snapshot action. #673 (untergeek)
4.0.0 (24 June 2016)
--------------------
It's official! Curator 4.0.0 is released!
**Breaking Changes**
* New and improved API!
* Command-line changes. No more command-line args, except for ``--config``,
``--actions``, and ``--dry-run``:
- ``--config`` points to a YAML client and logging configuration file.
The default location is ``~/.curator/curator.yml``
- ``--actions`` arg points to a YAML action configuration file
- ``--dry-run`` will simulate the action(s) which would have taken place,
but not actually make any changes to the cluster or its indices.
**New Features**
* Snapshot restore is here!
* YAML configuration files. Now a single file can define an entire batch of
commands, each with their own filters, to be performed in sequence.
* Sort by index age not only by index name (as with previous versions of
Curator), but also by index `creation_date`, or by calculations from the
Field Stats API on a timestamp field.
* Atomically add/remove indices from aliases! This is possible by way of the
new `IndexList` class and YAML configuration files.
* State of indices pulled and stored in `IndexList` instance. Fewer API calls
required to serially test for open/close, `size_in_bytes`, etc.
* Filter by space now allows sorting by age!
* Experimental! Use AWS IAM credentials to sign requests to Elasticsearch.
This requires the end user to *manually* install the `requests_aws4auth`
python module.
* Optionally delete aliases from indices before closing.
* An empty index or snapshot list no longer results in an error if you set
``ignore_empty_list`` to `True`. If `True` it will still log that the
action was not performed, but will continue to the next action. If 'False'
it will log an ERROR and exit with code 1.
**API**
* Updated API documentation
* Class: `IndexList`. This pulls all indices at instantiation, and you apply
filters, which are class methods. You can iterate over as many filters as
you like, in fact, due to the YAML config file.
* Class: `SnapshotList`. This pulls all snapshots from the given repository at
instantiation, and you apply filters, which are class methods. You can
iterate over as many filters as you like, in fact, due to the YAML config
file.
* Add `wait_for_completion` to Allocation and Replicas actions. These will
use the client timeout, as set by default or `timeout_override`, to
determine how long to wait for timeout. These are handled in batches of
indices for now.
* Allow `timeout_override` option for all actions. This allows for different
timeout values per action.
* Improve API by giving each action its own `do_dry_run()` method.
**General**
* Updated use documentation for Elastic main site.
* Include example files for ``--config`` and ``--actions``.
4.0.0b2 (16 June 2016)
----------------------
**Second beta release of the 4.0 branch**
**New Feature**
* An empty index or snapshot list no longer results in an error if you set
``ignore_empty_list`` to `True`. If `True` it will still log that the
action was not performed, but will continue to the next action. If 'False'
it will log an ERROR and exit with code 1. (untergeek)
4.0.0b1 (13 June 2016)
----------------------
**First beta release of the 4.0 branch!**
The release notes will be rehashing the new features in 4.0, rather than the
bug fixes done during the alphas.
**Breaking Changes**
* New and improved API!
* Command-line changes. No more command-line args, except for ``--config``,
``--actions``, and ``--dry-run``:
- ``--config`` points to a YAML client and logging configuration file.
The default location is ``~/.curator/curator.yml``
- ``--actions`` arg points to a YAML action configuration file
- ``--dry-run`` will simulate the action(s) which would have taken place,
but not actually make any changes to the cluster or its indices.
**New Features**
* Snapshot restore is here!
* YAML configuration files. Now a single file can define an entire batch of
commands, each with their own filters, to be performed in sequence.
* Sort by index age not only by index name (as with previous versions of
Curator), but also by index `creation_date`, or by calculations from the
Field Stats API on a timestamp field.
* Atomically add/remove indices from aliases! This is possible by way of the
new `IndexList` class and YAML configuration files.
* State of indices pulled and stored in `IndexList` instance. Fewer API calls
required to serially test for open/close, `size_in_bytes`, etc.
* Filter by space now allows sorting by age!
* Experimental! Use AWS IAM credentials to sign requests to Elasticsearch.
This requires the end user to *manually* install the `requests_aws4auth`
python module.
* Optionally delete aliases from indices before closing.
**API**
* Updated API documentation
* Class: `IndexList`. This pulls all indices at instantiation, and you apply
filters, which are class methods. You can iterate over as many filters as
you like, in fact, due to the YAML config file.
* Class: `SnapshotList`. This pulls all snapshots from the given repository at
instantiation, and you apply filters, which are class methods. You can
iterate over as many filters as you like, in fact, due to the YAML config
file.
* Add `wait_for_completion` to Allocation and Replicas actions. These will
use the client timeout, as set by default or `timeout_override`, to
determine how long to wait for timeout. These are handled in batches of
indices for now.
* Allow `timeout_override` option for all actions. This allows for different
timeout values per action.
* Improve API by giving each action its own `do_dry_run()` method.
**General**
* Updated use documentation for Elastic main site.
* Include example files for ``--config`` and ``--actions``.
4.0.0a10 (10 June 2016)
-----------------------
**New Features**
* Snapshot restore is here!
* Optionally delete aliases from indices before closing. Fixes #644 (untergeek)
**General**
* Add `wait_for_completion` to Allocation and Replicas actions. These will
use the client timeout, as set by default or `timeout_override`, to
determine how long to wait for timeout. These are handled in batches of
indices for now.
* Allow `timeout_override` option for all actions. This allows for different
timeout values per action.
**Bug Fixes**
* Disallow use of `master_only` if multiple hosts are used. Fixes #615
(untergeek)
* Fix an issue where arguments weren't being properly passed and populated.
* ForceMerge replaced Optimize in ES 2.1.0.
* Fix prune_nones to work with Python 2.6. Fixes #619 (untergeek)
* Fix TimestringSearch to work with Python 2.6. Fixes #622 (untergeek)
* Add language classifiers to ``setup.py``. Fixes #640 (untergeek)
* Changed references to readthedocs.org to be readthedocs.io.
4.0.0a9 (27 Apr 2016)
---------------------
**General**
* Changed `create_index` API to use kwarg `extra_settings` instead of `body`
* Normalized Alias action to use `name` instead of `alias`. This simplifies
documentation by reducing the number of option elements.
* Streamlined some code
* Made `exclude` a filter element setting for all filters. Updated all
examples to show this.
* Improved documentation
**New Features**
* Alias action can now accept `extra_settings` to allow adding filters, and/or
routing.
4.0.0a8 (26 Apr 2016)
---------------------
**Bug Fixes**
* Fix to use `optimize` with versions of Elasticsearch < 5.0
* Fix missing setting in testvars
4.0.0a7 (25 Apr 2016)
---------------------
**Bug Fixes**
* Fix AWS4Auth error.
4.0.0a6 (25 Apr 2016)
---------------------
**General**
* Documentation updates.
* Improve API by giving each action its own `do_dry_run()` method.
**Bug Fixes**
* Do not escape characters other than ``.`` and ``-`` in timestrings. Fixes
#602 (untergeek)
** New Features**
* Added `CreateIndex` action.
4.0.0a4 (21 Apr 2016)
---------------------
**Bug Fixes**
* Require `pyyaml` 3.10 or better.
* In the case that no `options` are in an action, apply the defaults.
4.0.0a3 (21 Apr 2016)
---------------------
It's time for Curator 4.0 alpha!
**Breaking Changes**
* New API! (again?!)
* Command-line changes. No more command-line args, except for ``--config``,
``--actions``, and ``--dry-run``:
- ``--config`` points to a YAML client and logging configuration file.
The default location is ``~/.curator/curator.yml``
- ``--actions`` arg points to a YAML action configuration file
- ``--dry-run`` will simulate the action(s) which would have taken place,
but not actually make any changes to the cluster or its indices.
**General**
* Updated API documentation
* Updated use documentation for Elastic main site.
* Include example files for ``--config`` and ``--actions``.
**New Features**
* Sort by index age not only by index name (as with previous versions of
Curator), but also by index `creation_date`, or by calculations from the
Field Stats API on a timestamp field.
* Class: `IndexList`. This pulls all indices at instantiation, and you apply
filters, which are class methods. You can iterate over as many filters as
you like, in fact, due to the YAML config file.
* Class: `SnapshotList`. This pulls all snapshots from the given repository at
instantiation, and you apply filters, which are class methods. You can
iterate over as many filters as you like, in fact, due to the YAML config
file.
* YAML configuration files. Now a single file can define an entire batch of
commands, each with their own filters, to be performed in sequence.
* Atomically add/remove indices from aliases! This is possible by way of the
new `IndexList` class and YAML configuration files.
* State of indices pulled and stored in `IndexList` instance. Fewer API calls
required to serially test for open/close, `size_in_bytes`, etc.
* Filter by space now allows sorting by age!
* Experimental! Use AWS IAM credentials to sign requests to Elasticsearch.
This requires the end user to *manually* install the `requests_aws4auth`
python module.
3.5.1 (21 March 2016)
---------------------
**Bug fixes**
* Add more logging information to snapshot delete method #582 (untergeek)
* Improve default timeout, logging, and exception handling for `seal` command
#583 (untergeek)
* Fix use of default snapshot name. #584 (untergeek)
3.5.0 (16 March 2016)
---------------------
**General**
* Add support for the `--client-cert` and `--client-key` command line parameters
and client_cert and client_key parameters to the get_client() call. #520 (richm)
**Bug fixes**
* Disallow users from creating snapshots with upper-case letters, which is not
permitted by Elasticsearch. #562 (untergeek)
* Remove `print()` command from ``setup.py`` as it causes issues with command-
line retrieval of ``--url``, etc. #568 (thib-ack)
* Remove unnecessary argument from `build_filter()` #530 (zzugg)
* Allow day of year filter to be made up with 1, 2 or 3 digits #578 (petitout)
3.4.1 (10 February 2016)
------------------------
**General**
* Update license copyright to 2016
* Use slim python version with Docker #527 (xaka)
* Changed ``--master-only`` exit code to 0 when connected to non-master node #540 (wkruse)
* Add ``cx_Freeze`` capability to ``setup.py``, plus a ``binary_release.py``
script to simplify binary package creation. #554 (untergeek)
* Set Elastic as author. #555 (untergeek)
* Put repository creation methods into API and document them. Requested in #550 (untergeek)
**Bug fixes**
* Fix sphinx documentation build error #506 (hydrapolic)
* Ensure snapshots are found before iterating #507 (garyelephant)
* Fix a doc inconsistency #509 (pmoust)
* Fix a typo in `show` documentation #513 (pbamba)
* Default to trying the cluster state for checking whether indices are closed, and
then fall back to using the _cat API (for Amazon ES instances). #519 (untergeek)
* Improve logging to show time delay between optimize runs, if selected. #525 (untergeek)
* Allow elasticsearch-py module versions through 2.3.0 (a presumption at this point) #524 (untergeek)
* Improve logging in snapshot api method to reveal when a repository appears to be
missing. Reported in #551 (untergeek)
* Test that ``--timestring`` has the correct variable for ``--time-unit``.
Reported in #544 (untergeek)
* Allocation will exit with exit_code 0 now when there are no indices to work on.
Reported in #531 (untergeek)
3.4.0 (28 October 2015)
-----------------------
**General**
* API change in elasticsearch-py 1.7.0 prevented alias operations. Fixed in
#486 (HonzaKral)
* During index selection you can now select only closed indices with ``--closed-only``.
Does not impact ``--all-indices`` Reported in #476. Fixed in #487 (Basster)
* API Changes in Elasticsearch 2.0.0 required some refactoring. All tests pass
for ES versions 1.0.3 through 2.0.0-rc1. Fixed in #488 (untergeek)
* es_repo_mgr now has access to the same SSL options from #462. #489 (untergeek)
* Logging improvements requested in #475. (untergeek)
* Added ``--quiet`` flag. #494 (untergeek)
* Fixed ``index_closed`` to work with AWS Elasticsearch. #499 (univerio)
* Acceptable versions of Elasticsearch-py module are 1.8.0 up to 2.1.0 (untergeek)
3.3.0 (31 August 2015)
----------------------
**Announcement**
* Curator is tested in Jenkins. Each commit to the master branch is tested
with both Python versions 2.7.6 and 3.4.0 against each of the following
Elasticsearch versions:
* 1.7_nightly
* 1.6_nightly
* 1.7.0
* 1.6.1
* 1.5.1
* 1.4.4
* 1.3.9
* 1.2.4
* 1.1.2
* 1.0.3
* If you are using a version different from this, your results may vary.
**General**
* Allocation type can now also be ``include`` or ``exclude``, in addition to the
the existing default ``require`` type. Add ``--type`` to the allocation command
to specify the type. #443 (steffo)
* Bump elasticsearch python module dependency to 1.6.0+ to enable synced_flush
API call. Reported in #447 (untergeek)
* Add SSL features, ``--ssl-no-validate`` and ``certificate`` to provide other
ways to validate SSL connections to Elasticsearch. #436 (untergeek)
**Bug fixes**
* Delete by space was only reporting space used by primary shards. Fixed to
show all space consumed. Reported in #455 (untergeek)
* Update exit codes and messages for snapshot selection. Reported in #452 (untergeek)
* Fix potential int/float casting issues. Reported in #465 (untergeek)
3.2.3 (16 July 2015)
--------------------
**Bug fix**
* In order to address customer and community issues with bulk deletes, the
``master_timeout`` is now invoked for delete operations. This should address
503s with 30s timeouts in the debug log, even when ``--timeout`` is set to
a much higher value. The ``master_timeout`` is tied to the ``--timeout``
flag value, but will not exceed 300 seconds. #420 (untergeek)
**General**
* Mixing it up a bit here by putting `General` second! The only other changes
are that logging has been improved for deletes so you won't need to have the
``--debug`` flag to see if you have error codes >= 400, and some code
documentation improvements.
3.2.2 (13 July 2015)
--------------------
**General**
* This is a very minor change. The ``mock`` library recently removed support
for Python 2.6. As many Curator users are using RHEL/CentOS 6, which is
pinned to Python 2.6, this requires the mock version referenced by Curator
to also be pinned to a supported version (``mock==1.0.1``).
3.2.1 (10 July 2015)
--------------------
**General**
* Added delete verification & retry (fixed at 3x) to potentially cover an edge
case in #420 (untergeek)
* Since GitHub allows rST (reStructuredText) README documents, and that's what
PyPI wants also, the README has been rebuilt in rST. (untergeek)
**Bug fixes**
* If closing indices with ES 1.6+, and all indices are closed, ensure that the
seal command does not try to seal all indices. Reported in #426 (untergeek)
* Capture AttributeError when sealing indices if a non-TransportError occurs.
Reported in #429 (untergeek)
3.2.0 (25 June 2015)
--------------------
**New!**
* Added support to manually seal, or perform a [synced flush](http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-synced-flush.html)
on indices with the ``seal`` command. #394 (untergeek)
* Added *experimental* support for SSL certificate validation. In order for
this to work, you must install the ``certifi`` python module:
``pip install certifi``
This feature *should* automatically work if the ``certifi`` module is
installed. Please report any issues.
**General**
* Changed logging to go to stdout rather than stderr. Reopened #121 and
figured they were right. This is better. (untergeek)
* Exit code 99 was unpopular. It has been removed. Reported in #371 and #391
(untergeek)
* Add ``--skip-repo-validation`` flag for snapshots. Do not validate write
access to repository on all cluster nodes before proceeding. Useful for
shared filesystems where intermittent timeouts can affect validation, but
won't likely affect snapshot success. Requested in #396 (untergeek)
* An alias no longer needs to be pre-existent in order to use the alias
command. #317 (untergeek)
* es_repo_mgr now passes through upstream errors in the event a repository
fails to be created. Requested in #405 (untergeek)
**Bug fixes**
* In rare cases, ``*`` wildcard would not expand. Replaced with _all.
Reported in #399 (untergeek)
* Beginning with Elasticsearch 1.6, closed indices cannot have their replica
count altered. Attempting to do so results in this error:
``org.elasticsearch.ElasticsearchIllegalArgumentException: Can't update [index.number_of_replicas] on closed indices [[test_index]] - can leave index in an unopenable state``
As a result, the ``change_replicas`` method has been updated to prune closed
indices. This change will apply to all versions of Elasticsearch.
Reported in #400 (untergeek)
* Fixed es_repo_mgr repository creation verification error. Reported in #389
(untergeek)
3.1.0 (21 May 2015)
-------------------
**General**
* If ``wait_for_completion`` is true, snapshot success is now tested and logged.
Reported in #253 (untergeek)
* Log & return false if a snapshot is already in progress (untergeek)
* Logs individual deletes per index, even though they happen in batch mode.
Also log individual snapshot deletions. Reported in #372 (untergeek)
* Moved ``chunk_index_list`` from cli to api utils as it's now also used by ``filter.py``
* Added a warning and 10 second timer countdown if you use ``--timestring`` to filter
indices, but do not use ``--older-than`` or ``--newer-than`` in conjunction with it.
This is to address #348, which behavior isn't a bug, but prevents accidental
action against all of your time-series indices. The warning and timer are
not displayed for ``show`` and ``--dry-run`` operations.
* Added tests for ``es_repo_mgr`` in #350
* Doc fixes
**Bug fixes**
* delete-by-space needed the same fix used for #245. Fixed in #353 (untergeek)
* Increase default client timeout for ``es_repo_mgr`` as node discovery and
availability checks for S3 repositories can take a bit. Fixed in #352 (untergeek)
* If an index is closed, indicate in ``show`` and ``--dry-run`` output.
Reported in #327. (untergeek)
* Fix issue where CLI parameters were not being passed to the ``es_repo_mgr``
create sub-command.
Reported in #337. (feltnerm)
3.0.3 (27 Mar 2015)
-------------------
**Announcement**
This is a bug fix release. #319 and #320 are affecting a few users, so this
release is being expedited.
Test count: 228
Code coverage: 99%
**General**
* Documentation for the CLI converted to Asciidoc and moved to
http://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html
* Improved logging, and refactored a few methods to help with this.
* Dry-run output is now more like v2, with the index or snapshot in the log
line, along with the command. Several tests needed refactoring with this
change, along with a bit of documentation.
**Bug fixes**
* Fix links to repository in setup.py. Reported in #318 (untergeek)
* No more ``--delay`` with optimized indices. Reported in #319 (untergeek)
* ``--request_timeout`` not working as expected. Reinstate the version 2
timeout override feature to prevent default timeouts for ``optimize`` and
``snapshot`` operations. Reported in #320 (untergeek)
* Reduce index count to 200 for
test.integration.test_cli_commands.TestCLISnapshot.test_cli_snapshot_huge_list
in order to reduce or eliminate Jenkins CI test timeouts.
Reported in #324 (untergeek)
* ``--dry-run`` no longer calls ``show``, but will show output in the log, as
in v2. This was a recurring complaint. See #328 (untergeek)
3.0.2 (23 Mar 2015)
-------------------
**Announcement**
This is a bug fix release. #307 and #309 were big enough to warrant an
expedited release.
**Bug fixes**
* Purge unneeded constants, and clean up config options for snapshot. Reported in #303 (untergeek)
* Don't split large index list if performing snapshots. Reported in #307 (untergeek)
* Act correctly if a zero value for `--older-than` or `--newer-than` is provided. #309 (untergeek)
3.0.1 (16 Mar 2015)
-------------------
**Announcement**
The ``regex_iterate`` method was horribly named. It has been renamed to
``apply_filter``. Methods have been added to allow API users to build a
filtered list of indices similarly to how the CLI does. This was an oversight.
Props to @SegFaultAX for pointing this out.
**General**
* In conjunction with the rebrand to Elastic, URLs and documentation were updated.
* Renamed horribly named `regex_iterate` method to `apply_filter` #298 (untergeek)
* Added `build_filter` method to mimic CLI calls. #298 (untergeek)
* Added Examples page in the API documentation. #298 (untergeek)
**Bug fixes**
* Refactored to show `--dry-run` info for `--disk-space` calls. Reported in
#290 (untergeek)
* Added list chunking so acting on huge lists of indices won't result in a URL
bigger than 4096 bytes (Elasticsearch's default limit.) Reported in
https://github.com/elastic/curator/issues/245#issuecomment-77916081
* Refactored `to_csv()` method to be simpler.
* Added and removed tests according to changes. Code coverage still at 99%
3.0.0 (9 March 2015)
--------------------
**Release Notes**
The full release of Curator 3.0 is out! Check out all of the changes here!
*Note:* This release is _not_ reverse compatible with any previous version.
Because 3.0 is a major point release, there have been some major changes to both
the API as well as the CLI arguments and structure.
Be sure to read the updated command-line specific docs in the
[wiki](https://github.com/elasticsearch/curator/wiki) and change your
command-line arguments accordingly.
The API docs are still at http://curator.readthedocs.io. Be sure to read the
latest docs, or select the docs for 3.0.0.
**General**
* **Breaking changes to the API.** Because this is a major point revision,
changes to the API have been made which are non-reverse compatible. Before
upgrading, be sure to update your scripts and test them thoroughly.
* **Python 3 support** Somewhere along the line, Curator would no longer work
with curator. All tests now pass for both Python2 and Python3, with 99% code
coverage in both environments.
* **New CLI library.** Using Click now. http://click.pocoo.org/3/
This change is especially important as it allows very easy CLI integration
testing.
* **Pipelined filtering!** You can now use ``--older-than`` & ``--newer-than``
in the same command! You can also provide your own regex via the ``--regex``
parameter. You can use multiple instances of the ``--exclude`` flag.
* **Manually include indices!** With the ``--index`` paramter, you can add an
index to the working list. You can provide multiple instances of the
``--index`` parameter as well!
* **Tests!** So many tests now. Test coverage of the API methods is at 100%
now, and at 99% for the CLI methods. This doesn't mean that all of the tests
are perfect, or that I haven't missed some scenarios. It does mean, however,
that it will be much easier to write tests if something turns up missed. It
also means that any new functionality will now need to have tests.
* **Iteration changes** Methods now only iterate through each index when
appropriate! In fact, the only commands that iterate are `alias` and
`optimize`. The `bloom` command will iterate, but only if you have added the
`--delay` flag with a value greater than zero.
* **Improved packaging!** Methods have been moved into categories of
``api`` and ``cli``, and further broken out into individual modules to help
them be easier to find and read.
* Check for allocation before potentially re-applying an allocation rule.
#273 (ferki)
* Assigning replica count and routing allocation rules _can_ be done to closed
indices. #283 (ferki)
**Bug fixes**
* Don't accidentally delete ``.kibana`` index. #261 (malagoli)
* Fix segment count for empty indices. #265 (untergeek)
* Change bloom filter cutoff Elasticsearch version to 1.4. Reported in #267
(untergeek)
3.0.0rc1 (5 March 2015)
-----------------------
**Release Notes**
RC1 is here! I'm re-releasing the Changes from all betas here, minus the
intra-beta code fixes. Barring any show stoppers, the official release will be
soon.
**General**
* **Breaking changes to the API.** Because this is a major point revision,
changes to the API have been made which are non-reverse compatible. Before
upgrading, be sure to update your scripts and test them thoroughly.
* **Python 3 support** Somewhere along the line, Curator would no longer work
with curator. All tests now pass for both Python2 and Python3, with 99% code
coverage in both environments.
* **New CLI library.** Using Click now. http://click.pocoo.org/3/
This change is especially important as it allows very easy CLI integration
testing.
* **Pipelined filtering!** You can now use ``--older-than`` & ``--newer-than``
in the same command! You can also provide your own regex via the ``--regex``
parameter. You can use multiple instances of the ``--exclude`` flag.
* **Manually include indices!** With the ``--index`` paramter, you can add an
index to the working list. You can provide multiple instances of the
``--index`` parameter as well!
* **Tests!** So many tests now. Test coverage of the API methods is at 100%
now, and at 99% for the CLI methods. This doesn't mean that all of the tests
are perfect, or that I haven't missed some scenarios. It does mean, however,
that it will be much easier to write tests if something turns up missed. It
also means that any new functionality will now need to have tests.
* Methods now only iterate through each index when appropriate!
* Improved packaging! Hopefully the ``entry_point`` issues some users have had
will be addressed by this. Methods have been moved into categories of
``api`` and ``cli``, and further broken out into individual modules to help
them be easier to find and read.
* Check for allocation before potentially re-applying an allocation rule.
#273 (ferki)
* Assigning replica count and routing allocation rules _can_ be done to closed
indices. #283 (ferki)
**Bug fixes**
* Don't accidentally delete ``.kibana`` index. #261 (malagoli)
* Fix segment count for empty indices. #265 (untergeek)
* Change bloom filter cutoff Elasticsearch version to 1.4. Reported in #267
(untergeek)
3.0.0b4 (5 March 2015)
----------------------
**Notes**
Integration testing! Because I finally figured out how to use the Click
Testing API, I now have a good collection of command-line simulations,
complete with a real back-end. This testing found a few bugs (this is why
testing exists, right?), and fixed a few of them.
**Bug fixes**
* HUGE! `curator show snapshots` would _delete_ snapshots. This is fixed.
* Return values are now being sent from the commands.
* `scripttest` is no longer necessary (click.Test works!)
* Calling `get_snapshot` without a snapshot name returns all snapshots
3.0.0b3 (4 March 2015)
----------------------
**Bug fixes**
* setup.py was lacking the new packages "curator.api" and "curator.cli" The
package works now.
* Python3 suggested I had to normalize the beta tag to just b3, so that's also
changed.
* Cleaned out superfluous imports and logger references from the __init__.py
files.
3.0.0-beta2 (3 March 2015)
--------------------------
**Bug fixes**
* Python3 issues resolved. Tests now pass on both Python2 and Python3
3.0.0-beta1 (3 March 2015)
--------------------------
**General**
* **Breaking changes to the API.** Because this is a major point revision,
changes to the API have been made which are non-reverse compatible. Before
upgrading, be sure to update your scripts and test them thoroughly.
* **New CLI library.** Using Click now. http://click.pocoo.org/3/
* **Pipelined filtering!** You can now use ``--older-than`` & ``--newer-than``
in the same command! You can also provide your own regex via the ``--regex``
parameter. You can use multiple instances of the ``--exclude`` flag.
* **Manually include indices!** With the ``--index`` paramter, you can add an
index to the working list. You can provide multiple instances of the
``--index`` parameter as well!
* **Tests!** So many tests now. Unit test coverage of the API methods is at
100% now. This doesn't mean that all of the tests are perfect, or that I
haven't missed some scenarios. It does mean that any new functionality will
need to also have tests, now.
* Methods now only iterate through each index when appropriate!
* Improved packaging! Hopefully the ``entry_point`` issues some users have had
will be addressed by this. Methods have been moved into categories of
``api`` and ``cli``, and further broken out into individual modules to help
them be easier to find and read.
* Check for allocation before potentially re-applying an allocation rule.
#273 (ferki)
**Bug fixes**
* Don't accidentally delete ``.kibana`` index. #261 (malagoli)
* Fix segment count for empty indices. #265 (untergeek)
* Change bloom filter cutoff Elasticsearch version to 1.4. Reported in #267 (untergeek)
2.1.2 (22 January 2015)
-----------------------
**Bug fixes**
* Do not try to set replica count if count matches provided argument. #247 (bobrik)
* Fix JSON logging (Logstash format). #250 (magnusbaeck)
* Fix bug in `filter_by_space()` which would match all indices if the provided patterns found no matches. Reported in #254 (untergeek)
2.1.1 (30 December 2014)
------------------------
**Bug fixes**
* Renamed unnecessarily redundant ``--replicas`` to ``--count`` in args for ``curator_script.py``
2.1.0 (30 December 2014)
------------------------
**General**
* Snapshot name now appears in log output or STDOUT. #178 (untergeek)
* Replicas! You can now change the replica count of indices. Requested in #175 (untergeek)
* Delay option added to Bloom Filter functionality. #206 (untergeek)
* Add 2-digit years as acceptable pattern (y vs. Y). Reported in #209 (untergeek)
* Add Docker container definition #226 (christianvozar)
* Allow the use of 0 with --older-than, --most-recent and --delete-older-than. See #208. #211 (bobrik)
**Bug fixes**
* Edge case where 1.4.0.Beta1-SNAPSHOT would break version check. Reported in #183 (untergeek)
* Typo fixed. #193 (ferki)
* Type fixed. #204 (gheppner)
* Shows proper error in the event of concurrent snapshots. #177 (untergeek)
* Fixes erroneous index display of ``_, a, l, l`` when --all-indices selected. Reported in #222 (untergeek)
* Use json.dumps() to escape exceptions. Reported in #210 (untergeek)
* Check if index is closed before adding to alias. Reported in #214 (bt5e)
* No longer force-install argparse if pre-installed #216 (whyscream)
* Bloom filters have been removed from Elasticsearch 1.5.0. Update methods and tests to act accordingly. #233 (untergeek)
2.0.2 (8 October 2014)
----------------------
**Bug fixes**
* Snapshot name not displayed in log or STDOUT #185 (untergeek)
* Variable name collision in delete_snapshot() #186 (untergeek)
2.0.1 (1 October 2014)
----------------------
**Bug fix**
* Override default timeout when snapshotting --all-indices #179 (untergeek)
2.0.0 (25 September 2014)
-------------------------
**General**
* New! Separation of Elasticsearch Curator Python API and curator_script.py (untergeek)
* New! ``--delay`` after optimize to allow cluster to quiesce #131 (untergeek)
* New! ``--suffix`` option in addition to ``--prefix`` #136 (untergeek)
* New! Support for wildcards in prefix & suffix #136 (untergeek)
* Complete refactor of snapshots. Now supporting incrementals! (untergeek)
**Bug fix**
* Incorrect error msg if no indices sent to create_snapshot (untergeek)
* Correct for API change coming in ES 1.4 #168 (untergeek)
* Missing ``"`` in Logstash log format #143 (cassianoleal)
* Change non-master node test to exit code 0, log as ``INFO``. #145 (untergeek)
* `months` option missing from validate_timestring() (untergeek)
1.2.2 (29 July 2014)
--------------------
**Bug fix**
* Updated ``README.md`` to briefly explain what curator does #117 (untergeek)
* Fixed ``es_repo_mgr`` logging whitelist #119 (untergeek)
* Fixed absent ``months`` time-unit #120 (untergeek)
* Filter out ``.marvel-kibana`` when prefix is ``.marvel-`` #120 (untergeek)
* Clean up arg parsing code where redundancy exists #123 (untergeek)
* Properly divide debug from non-debug logging #125 (untergeek)
* Fixed ``show`` command bug caused by changes to command structure #126 (michaelweiser)
1.2.1 (24 July 2014)
--------------------
**Bug fix**
* Fixed the new logging when called by ``curator`` entrypoint.
1.2.0 (24 July 2014)
--------------------
**General**
* New! Allow user-specified date patterns: ``--timestring`` #111 (untergeek)
* New! Curate weekly indices (must use week of year) #111 (untergeek)
* New! Log output in logstash format ``--logformat logstash`` #111 (untergeek)
* Updated! Cleaner default logs (debug still shows everything) (untergeek)
* Improved! Dry runs are more visible in log output (untergeek)
Errata
* The ``--separator`` option was removed in lieu of user-specified date patterns.
* Default ``--timestring`` for days: ``%Y.%m.%d`` (Same as before)
* Default ``--timestring`` for hours: ``%Y.%m.%d.%H`` (Same as before)
* Default ``--timestring`` for weeks: ``%Y.%W``
1.1.3 (18 July 2014)
--------------------
**Bug fix**
* Prefix not passed in ``get_object_list()`` #106 (untergeek)
* Use ``os.devnull`` instead of ``/dev/null`` for Windows #102 (untergeek)
* The http auth feature was erroneously omitted #100 (bbuchacher)
1.1.2 (13 June 2014)
--------------------
**Bug fix**
* This was a showstopper bug for anyone using RHEL/CentOS with a Python 2.6 dependency for yum
* Python 2.6 does not like format calls without an index. #96 via #95 (untergeek)
* We won't talk about what happened to 1.1.1. No really. I hate git today :(
1.1.0 (12 June 2014)
--------------------
**General**
* Updated! New command structure
* New! Snapshot to fs or s3 #82 (untergeek)
* New! Add/Remove indices to alias #82 via #86 (cschellenger)
* New! ``--exclude-pattern`` #80 (ekamil)
* New! (sort of) Restored ``--log-level`` support #73 (xavier-calland)
* New! show command-line options #82 via #68 (untergeek)
* New! Shard Allocation Routing #82 via #62 (nickethier)
**Bug fix**
* Fix ``--max_num_segments`` not being passed correctly #74 (untergeek)
* Change ``BUILD_NUMBER`` to ``CURATOR_BUILD_NUMBER`` in ``setup.py`` #60 (mohabusama)
* Fix off-by-one error in time calculations #66 (untergeek)
* Fix testing with python3 #92 (untergeek)
Errata
* Removed ``optparse`` compatibility. Now requires ``argparse``.
1.0.0 (25 Mar 2014)
-------------------
**General**
* compatible with ``elasticsearch-py`` 1.0 and Elasticsearch 1.0 (honzakral)
* Lots of tests! (honzakral)
* Streamline code for 1.0 ES versions (honzakral)
**Bug fix**
* Fix ``find_expired_indices()`` to not skip closed indices (honzakral)
0.6.2 (18 Feb 2014)
-------------------
**General**
* Documentation fixes #38 (dharrigan)
* Add support for HTTPS URI scheme and ``optparse`` compatibility for Python 2.6 (gelim)
* Add elasticsearch module version checking for future compatibility checks (untergeek)
0.6.1 (08 Feb 2014)
-------------------
**General**
* Added tarball versioning to ``setup.py`` (untergeek)
**Bug fix**
* Fix ``long_description`` by including ``README.md`` in ``MANIFEST.in`` (untergeek)
* Incorrect version number in ``curator.py`` (untergeek)
0.6.0 (08 Feb 2014)
-------------------
**General**
* Restructured repository to a be a proper python package. (arieb)
* Added ``setup.py`` file. (arieb)
* Removed the deprecated file ``logstash_index_cleaner.py`` (arieb)
* Updated ``README.md`` to fit the new package, most importantly the usage
and installation. (arieb)
* Fixes and package push to PyPI (untergeek)
0.5.2 (26 Jan 2014)
-------------------
**General**
* Fix boolean logic determining hours or days for time selection (untergeek)
0.5.1 (20 Jan 2014)
-------------------
**General**
* Fix ``can_bloom`` to compare numbers (HonzaKral)
* Switched ``find_expired_indices()`` to use ``datetime`` and ``timedelta``
* Do not try and catch unrecoverable exceptions. (HonzaKral)
* Future proofing the use of the elasticsearch client (i.e. work with version
1.0+ of Elasticsearch) (HonzaKral)
Needs more testing, but should work.
* Add tests for these scenarios (HonzaKral)
0.5.0 (17 Jan 2014)
-------------------
**General**
* Deprecated ``logstash_index_cleaner.py``
Use new ``curator.py`` instead (untergeek)
* new script change: ``curator.py`` (untergeek)
* new add index optimization (Lucene forceMerge) to reduce segments
and therefore memory usage. (untergeek)
* update refactor of args and several functions to streamline operation
and make it more readable (untergeek)
* update refactor further to clean up and allow immediate (and future)
portability (HonzaKral)
0.4.0
-----
**General**
* First version logged in ``CHANGELOG``
* new ``--disable-bloom-days`` feature requires 0.90.9+
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-codec.html#bloom-postings
This can save a lot of heap space on cold indexes (i.e. not actively indexing documents)
|