Release Notes

Next release scope

We expected to have a couple small releases with fixes and small improvements in next month, while we are working on big big feature RBAC.

  • Service and host delete logic should be complete.
  • Install dependencies between components.

2020.05.13.15

That one was huge. We made so many changes in log system and made initial step to create RBAC in ADCM.

Statistic

  • 702 commits;
  • 563 files changed;
  • 13K lines added, 4.5k lines removed;
  • 86 tickets closed;

New Features

  • UI: Most of forms react on Enter key.
  • UI: Consistency within shrink/expand dimming
  • UI: Put password confirmation on same line in config
  • UI: Select all services within “Add service” window
  • UI: Cluster/provider create dialog refactoring. It is more simple to choose latest version of bundle now.
  • UI: Unify “cancel” button position
  • Ansible: module for change hostcomponentmap
  • Ansible: action plugin for custom log.
  • Ansible: fixes for apt_rpm (for AltLinux)
  • Ansible: Speed up playbooks execution with optional Mitogen plugin.
  • Tests refactoring
  • Massive loging system refactoring:
    • Grouping for checks
    • SDK: Add Log object to SDK client
    • Logs now stored in DB
    • Logrotation on fs and in DB
    • adcm_check plugin allow grouping now
    • UI now reacts on new logs (like checks apearence)
    • Developers could show custom logs in UI with adcm_custom_log ansible plugin
  • SDK: Task wait method shoud log failed job.
  • SDK: Facility to differ release and non-release within bunde packing
  • SDK: pmon position could be optional in bundle root or ansible root
  • Ansible: refactoring adcm_add_host module to plugin
  • Ansilbe: new plugin adcm_delete_host
  • Tests: add tests to check max/min_stric imports
  • UI Test coverage: Master for Actions component
  • UI Test coverage: Configuration module

Fixes

  • Ansible: Host created by add_host plugin should be locked
  • UI: Config interface does not render anything if using “structure” config type
  • UI: Broken service paging
  • UI: Only first 50 bundles is available for cluster creation
  • Cluster actions doesn’t return after execution
  • SDK: adcm_client provides the ability to run actions regardless object state
  • UI: Broken warning layout
  • Can’t add item of dict with non-required keys in structure type config
  • UI: Possible to edit read only structure field
  • UI: Regression. open check section by default when checks are present in job
  • UI: Multi-job displaying is broken
  • UI: Possible to save config for required map field without default value if field invisible
  • UI: Activatable group doesn’t correct displayed in action config
  • read_only option in prototype config doesn’t work for structure config parameter type
  • UI: Missed frontend error for required empty list field
  • There is no way to add new dict in list for structure config type
  • Handling null or empty value for configs
  • UI: Save button active for group with one RO field
  • UI: Save button active for invisible groups
  • UI: Save button not active for group with one RO field
  • UI: Save button not active for advanced field with one group
  • bad link object to cluster in tasks
  • UI: Remove field body for log-list api method
  • UI: Save button not active for group with required field without default
  • UI: Save button active for active activatable group
  • UI: link object in tasks work after 2 click
  • Loading error on empty config
  • http 500 on api/v1/docs

2020.03.11.18

Small bugfix release while working on big features.

Statistic

  • 154 commits;
  • 137 files changed;
  • 2.6K lines added, 1.4k lines removed;
  • 22 tickets closed;

New Features

  • Ansible API: Add service version info into inventory
  • UI: Ability to reset configuration parameter to default value from UI
  • UI: Fixup advanced checkbox for action’s config

Fixes

  • ADCM Client: Doesn’t pass default actions config parametrs
  • ADCM Client: Function upload_from_fs doesn’t exclude redundant directories
  • Ansible: Apply ansible patch to support versioning in apt_rpm module
  • Issue with Nginx’s temporary files which cause HTTP 500 during bundles uploading
  • UI: Trouble with hc_map UI
  • Ansible API: No way to operate with host from provider context
  • UI: Broken paging at JOBS
  • ADCM Client: Global replacement of version on bundle build may corrupt config.yaml
  • There is a trouble while trying use adcm_config through service context
  • Empty inventory of reused host.

2020.02.20.14

Small release with a lot of fixes. Main fix of this release is “database is lock” fix. That was hard. Supposed that should be released as a big article to Habr :)

Statistics

  • 172 commits;
  • 203 files changed;
  • 3 lines added, 0.5k lines removed;
  • 25 tickets closed;

New Feature

  • Ansilbe API: add information is service added to cluster or not
  • Ansilbe API: Inventory in host context too wide. It should be only one host visible in inventoyr in host context
  • Bunldle Development: Extend import versions constraint with max(min)_strict
  • UI: Licence accept window should be shown on upgrade process.
  • ADCM Client: Call packer from upload_from_fs

Fixes

  • Sqlite atomic transaction trouble. Bigest trouble we have so far. We spend a month in fixing, and finally seems to done with it. Hope we will never see “Database is locked” again.
  • UI: Fixes with ordering at HOSTS tab
  • UI: Cannot select read-only config value from Firefox
  • UI: Long hostnames couldn’t fit in their area
  • UI: Upgrade icon at cluster page appears only after going out and back at cluster page
  • UI: Move to top and bottom buttons overlay other elements at job page
  • Backend: HTTP 500 error. Upgrade cluster with import
  • Backend: api/v1/docs/md/ returns 500
  • UI: Save config button permanently disabled for advanced variables
  • UI: Page reload after first login
  • UI: Cluster addition/removal doesn’t affect cluster list
  • UI: CONFIG_VALUE_ERROR when saving with no changes
  • UI: Action with config dont start from provider context

2020.01.30.15

Long New Year Holiday. Long long time to release a new version, fix bugs and create a new one.

Statistics

  • 548 commits;
  • 399 files changed;
  • 11k lines added, 7k lines removed;
  • 90 tickets closed;

New Features

  • Allow end user to kill a jobs. Job should be described as “terminatable” in bundle.
  • UI changes and improvents of advanced configs
  • Add context to config.json generated for ansible
  • Support relative path in config.yaml
  • Redesign status and time on job page
  • Change job list page to handle new job interactivly withou closing focused one
  • Add rsync package in base docker image to provide ansible synchronize module
  • License window improvements
  • Make provider vars inherited from “all” level of inventory
  • UI: ability to change disclaimer on start action dialog by bundle developer
  • New constraint on components (odd)
  • Remove host (when no components mapped) operation.
  • First steps in custom structures (experimental still)

Fixes

  • Big refacoring of atomic transactions (still in progress) to fix annoeing “Database is locked” on sqllite”
  • Check log may be corrupted on simultaneously changes
  • No action list reload on cluster page
  • After shrink displayed status of service is not actualizing automatically
  • Regression after bumping restframework to 3.10.2
  • key-value aligning in configs
  • Ui_options doesn’t work for the group
  • ADCMClient error “cluster already binded” when it’s not
  • Action config key with type file not work properly
  • Undesired config option
  • Possibility to edit read only map field.
  • Zebra killed itself on invisible fields.
  • Save button active for ro password field for cluster in ro state for field
  • Don’t add edition names to update names
  • Frontend don’t check max value for numbers.
  • A negative number does not pass validation on the frontend
  • SDK: Unable to build bundle whithout .git directory
  • Unable to pass default host actions when use rent(count=1)
  • Config hints rendering is broken
  • Doubling of services at Hosts-Components
  • It seems custom host_conf not apply when use rent
  • job.command really contains a name of a task
  • No name on components in case of missing display_name
  • With long hostnames hosts-components section couldn’t fit in it’s area
  • New host always adds to some cluster.
  • Password field is broken
  • Exclamation mark aligning problem
  • adcm_sdk_pack crash if block python_mod not presents in requirements file
  • Job display_name at job page is a task display_name
  • Missed required path and format directives for access_log in nginx configuration
  • cm.models.Action.DoesNotExist: Action matching query does not exist.
  • Smart scroll at Hosts-Components is broken
  • Can’t save Service configuration due to CONFIG_VALUE_ERROR

2019.12.16.23

Fixes

  • Status page hang on loading.

2019.11.20.16

With that release we have ability to ship different variants (editions) for end users with different licenses and feature with upgrade from one edition to another one. Beside we made a lot of works with refactoring and testings and create new type of action (multijob)

Statistics

  • 425 commit;
  • 874 files changed;
  • 22k lines added, 2k lines removed;
  • 54 issues closed.

Features

  • Multijob functionality. There is a posibility for application developers to run a lot of jobs from one task (one action button)
    • UI: Massive refactoring of job page and job statistic.
    • Backend: support simple one by one job chain. If one job fails than task (action) fails too.
  • Actions on some regular buttons. For example button “Add Host” could be an action defined by bundle developer.
  • Support of “editions” of application. For example “community” and “entriprise” edition.
  • Support license acceptance in ADCM. It is possible to ship license inside application to be accepted by end user.
  • UI: Configuration section refactoring for more stability and speed.
  • UI: Status page redesign
  • UI: Display time marks at the job page
  • Add curl package to ADCM image
  • Adcm-client as separate pip package. Just call pip install adcm-client to have that on your venv.

Fixes

  • It is not userfriendly go from jobs pages to cluster for run any action.
  • Change packs for bundles from tar.gz to tgz to support Apple Safari
  • Status server should allow to set and get host status outside of cluster
  • Orange exclamation mark at ADCM “path” doesn’t disappear after solving problems
  • Advanced config entry disappears after save
  • Invisible options don’t work with groups
  • Missed validation for groups without fields
  • Internal server error for number fields in config without min and max keys.
  • Too narrow block with upgrade list without popup hints
  • UI: Small over wrap in config
  • Field visible with invisible true for field but with advanced true and invsibile true for group
  • Rerror on host status page
  • Massive CSS fixes

2019.10.15.18

Just a fixups

  • Cluster button is pressable even if there are warinings.
  • POST request data types (upload) and GET (list) for bundles.
  • Statuses for “monitoring: passive” components are shown.
  • Unexpected issues in new cluster from bundle that uploaded before ADCM upgrade.
  • No issues on config after upgrade.

2019.10.08.15

That was one of the biggest release in ADCM history. We did a lot of refactoring and add new functionality. Most of the changes relates to UI and SDK. So we expect a number of new features in bundles soon.

Statistics

  • 471 commit;
  • 290 files changed;
  • 18k lines added, 2k lines removed;
  • 76 issues closed.

Features

  • Massive improvements in import/export mechanism and shared services (services that could be add to any cluster).
    • Service can be marked as “shared” it means that it can be installed two another cluster. For example that allow to add monitoring agents to cluster or client libraries.
    • Default value for import (aka manual bind).
    • Multibind support.
    • Add unbind operation.
    • Unbind operation is not allowed when default exists and not active.
    • Bind compatibility check during upgrade.
    • Required bind. That allow to forbid any actions until bind will be done.
    • New UI for import/export functionality.
  • “Activatable” groups of config parameters.
  • UI options and display names for groups in config. We made some changes in config.yaml that allow developers to define options on groups of parameters.
  • Support paginations in SDK.
  • Smart scroll in “Hosts - Components” section.
  • Add backend filtering for various api end points.
  • Config UI look and feel changes.
  • Status page rework. Now user could switch view on this page.
  • Up to 10x faster bundle upload.
  • Speed up config page. Tested up to 1.5K parameters now.

Small Changes

  • Move “Next” button to right side on run action dialog.
  • Replace state ‘locked’ with animated icon.
  • Add information about ADCM version to /api/v1/info/.

Fixes

  • Bind could be silently rebinded.
  • Refresh drop-down for bundles after upload.
  • Unable to upgrade bunble (Error 500).
  • Cannot save adcm_url over adcm_client.
  • We got pagination on /stack/service and may be on other places.
  • Cannot save config due to possible racing with issues.
  • There is no display_names on config with legacy groups after migration.
  • Non-expandable json-log panel in Safari.
  • No default value for required.
  • Missed backend notification for incorrect login and password.
  • Cannot save config when there is empty fields in inactive block.
  • Saved fields in fields of inactive blocks are lost.
  • Incorrect ordering key on bundles (display_name) instead of name.
  • Multicolumn ordering not working in UI.
  • There is no mark for required empty map.
  • No reaction on service button press.
  • Add separator in unique config field name.
  • Field width in window of parametrized action in host too narrow.
  • Cannot set read-only config without ignoring it.
  • Config keys with list type or map type has no popup description on UI.
  • Missed adcm_test attribute for app-fields-list and app-fields-map.
  • Long msg in adcm_check module causes web-interface to widen.
  • Password confirmation field validates nothing.
  • Link from exclamation mark popup leads to “Page not found”.
  • Advanced UI options don’t work for group variables.
  • Empty host list for jobs started from hostprovider context.
  • Search for config fields don’t work.
  • Internal server error for missed name field in config.
  • Activatable group activated by itself after using adcm_config module.
  • Unable to save config with variable type option inside.
  • UI doesn’t expect pagination on /stack/cluster.
  • Error: 500 Internal Server Error after action.
  • Backend Bug: Duplicating the same cluster on import page.
  • host.config() returns value with type other than in bundle.
  • After upgrade new configs of service is absent.
  • UI: Reload UI during upgrade is dead.
  • After first login adcm_url is unconditionally overwritten. Racing with adcm_client.
  • Config comparator is broken.
  • Success message is pushed by title in check-out.json.

2019.08.01.18

Features

  • Ordering was fixed to use more accurate algorithm for comparing versions (using rpm version notation).
  • Ordering in UI more accurate with paging and uses backend functionality.
  • Action log autoscroll during action run.
  • Default view for object printed in ansible log is yaml.
  • Events handling in UI has been refactoring to get more speed and stability.

Fixes

  • UI: improve hostcomponent page speed.
  • UI: display_name of cluster is not respected by ADCM UI.
  • Backend: Unable to upload bunble (Error 500).
  • UI: config block with single entry is not showed as block in UI.
  • UI: Readonly flags may be (un)checked (view only).
  • UI: Column name inconsistency.
  • UI: Hide empty contextual action menu when object doesn’t have actions.

2019.07.10

Feature

  • UI: events refactoring and improvements.
  • UI: Forbit to remove status user (it’s mandatory for status server to work).
  • SDK: allow bundle developers to set minimal allowed version of ADCM.
  • SDK: new ui_options parameter for config, that allow user to tweak UI.

Fixes

  • Selected hosts in shrink/expand window could not be unselected.
  • Cannot uncheck boolean config entry.
  • Sorting in bundle chooser should be descending.
  • Magic behavior when user’s profile not found.
  • Garbage at profile page.
  • Failed bundles should be removed.
  • Unable to load same bundle twice.
  • Job log is blinking on updating by scroll.

2019.06.20

Features

  • Add google auth to ADCM.
  • New config types: map and list.
  • Massive logging improvements.
  • Add API to allow shrink and expand actions.
  • New ansible plugins for changing config and states of object over action (instead of lookup).
  • Internal storage refactoring.
  • Check log should be default view on job details page.
  • New event: change_task_status.
  • Add change state and change config modules for providers.

Fixes

  • 500 error when trying to upload corrupted bundle.
  • Unhandled exception in lookup plugin.
  • The ADCM UI should resizing the modal forms according to the browser window resolution.
  • Add hosts tab closes after adding one host.
  • Upload bundle filters tar.gz files.
  • Cluster Object state function doesn’t return actual cluster state.
  • Incorrect status after restart until F5.
  • Inconveniently displays the result of the configs comparison.
  • Forbid addition for one more component if there are one is already existing.
  • It takes to long to shutdown ADCM.
  • Jobs page doesn’t show earliest failed tasks.
  • loglevel parameter ignored by runserver.
  • Hostcomponentmap definition lose on ADCM upgrade.
  • Hosts cluster binding.
  • Components in shrink window are not clickable.
  • SIGCHLD hook in startup.sh too noisy.
  • Strange buttons on expand action.

2019.05.14

Fixes

  • It is not possible to connect to ADCM web portal if IPv6 is disabled on host.
  • Service actions handler is not cleared when page is closed.
  • Service component’s status does not show all hosts.
  • Null value in ansible_host in inventory cause unexpected result of delegate_to task direcive (upstream Ansible bug).
  • Sometimes we have an unauthorized error when we try to connect to the websocket with the right token.

2019.04.25

Features

  • We have statuses for every object now. Bundles with enhansed status support is on the road right now.
  • UI notification has been enhansed and we have a lot of new reactions in UI for background process. Like creation of object by another user or script, upgrades, job run and so on.
  • Top menu redesign.

Fixes

  • Action config logic is not the same logic as object config.
  • Cluster actions should be refreshed after upgrade.
  • Cluster hosts list is not updated when host state changed.
  • sdk: action_list method sometimes returns empty list.
  • HTTP-500 while getting an internal docs by address /api/v1/docs.
  • Unexpected value of imported config key with file type.
  • HTTP-500 while saving hostcomponent map.
  • After updating the bundle, the import of the cluster disappeared.
  • Log viewer is updating when another job change its status.
  • HTTP-500 on host-component after upgrade to 2019.03.18.
  • Actions with parameters – context is lost when change parameters.
  • Actions are not displayed on the service page.
  • Issue check broken on first cluster addition.
  • Timeout while status server trying connect to the ADCM backend.
  • Save button on the form where we advise add bundle with services prototypes.
  • Incorrect URL while running provider action.
  • Upload bundle button does not work on second upload.
  • Does not return action display_names in cluster view=interface.

2019.03.18

Features

  • New menu item “settings” with gloabal config parameters for all installation.
  • Adcm_url item in global settings. That allowss to stop forcing user to add adcm url for every cluster. (Note: It should be fixed in bundles too).
  • Fixup job counter logic. It becomes zero after visiting job list page. All counters are per user now.
  • We made small UI changes for inactive config fields.
  • Highlight newly created hosts.
  • “Cancel” button on host-components page allow to clean your selection.
  • It is allowed now to have host and hostprovider prototypes with the same name.
  • New “issue” for UI when required service was not selected.
  • Left global menu has been removed and new global menu on top has been added.

Fixes

  • Yandex bundle is not working due to the conflict between openssh and ansible register function.
  • Validate map-host-component after service addition.
  • There is no sense to allow null value on boolean for required true.
  • Add space to host-cluster info in JOBS.
  • HTTP-500 while create the hostprovider from UI.
  • Upgrade buttons should be locked until cluster has unresolved issues.
  • Incorrect link on the bundle on the cluster details page.
  • Change POST parameter to cluster/bind/.
  • Sometimes ADCM abort task right after start container.
  • When cluster has issues alignment on the cluster, list page doesn’t work.
  • Сluster and service __main_info was lost.
  • Adding a service with required components to a cluster does not make its state invalid.
  • Total count of paginated records is wrong.
  • That should be /task/<task_id>/ calls intead of /task/<id>/.