Skip to content

v5.3.6

Compare
Choose a tag to compare
@yuce yuce released this 12 Jan 12:59
· 4 commits to main since this release
fe5d802

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The changes since v5.3.5 are below.

Breaking Changes

  • script command is renamed to script run.
  • Project creator uses the defaults field in template.yaml instead of the defaults.yaml.
  • Template name is optional with clc project create command. A selector is displayed if the template name is not specified.
  • clc viridian download-logs command outputs all log paths instead of the parent directory.
  • The behaviour of clc compact serializer was improved.
  • multi-map is renamed to multimap.
  • atomic-long was renamed to atomiclong.
  • Advanced script time duration constants were renamed to the corresponding uppercase name:
    • NANOSECOND
    • MICROSECOND
    • MILLISECOND
    • SECOND
    • MINUTE
    • HOUR
    • DAY

New Features

AtomicRef Support

Added the following atomicreference commands:

  • clear
  • compare-and-set
  • contains
  • destroy
  • get
  • get-and-set
  • is-null
  • set

The following advanced script functions are also supported:

  • atomicreference_clear(name='default')
  • atomicreference_compare_and_set(expected:any, value:any, name='default')
  • atomicreference_contains(value:any, name='default')
  • atomicreference_destroy(name='default')
  • atomicreference_get(name='default')
  • atomicreference_get_and_set(value:any, name='default')
  • atomicreference_is_null(name='default')
  • atomicreference_set(value:any, name='default')

Viridian Advanced Script Functions

Added the viridian_api type.
Create an instance using Viridian(API_KEY).

The type has the following methods:

  • create_cluster(name:string, development=False, prerelease=False, wait=False) -> Cluster
  • list_clusters() -> list(Cluster)
  • delete_cluster(cluster:id | name | Cluster)
  • get_cluster(cluster:id | name | Cluster) -> Cluster
  • import_config(cluster:id | name | Cluster, name='') -> path
  • stop_cluster(cluster:id | name | Cluster, wait=False)
  • resume_cluster(cluster:id | name | Cluster, wait=False)
  • list_custom_classes(cluster:id | name | Cluster) -> list(Class)
  • upload_custom_class(cluster:id | name | Cluster, path:string, wait=False)
  • download_custom_class(cluster:id | name | Cluster, artifact:any, output_path:string) -> path
  • delete_custom_class(cluster:id | name | Cluster, artifact_id:any, wait=False)
  • download_logs(cluster:id | name | Cluster, dir:string) -> list(path)

Added the viridian_cluster type with the following attributes:

  • id
  • name
  • cluster_type
  • state
  • desired_state
  • creation_time
  • start_time
  • client_count
  • hot_backup_enabled
  • hot_restart_enabled
  • ip_white_list_enabled

Add viridian_custom_class type with the following attributes:

  • id
  • name
  • status
  • temporary_id
  • generated_filename

Job Advanced Script Functions

  • job_submit(path:string, params:string*, name='', snapshot='', class_name='')
  • job_list(include_sql=False, include_user_cancelled=False) -> list(dict)
  • job_cancel(job_name_or_id:string, force=False)
  • job_restart(job_name_or_id:string, force=False)
  • job_suspend(job_name_or_id:string, force=False)
  • job_resume(job_name_or_id:string)
  • job_export_snapshot(job_name_or_id:string, name:string, cancel=False)

Snapshot Advanced Script Functions

  • snapshot_list() -> list(dict)
  • snapshot_delete(name:string)

Configuration Advanced Script Functions

  • config_add(config_name_or_path:string, config:dict) -> path
  • config_list() -> list(config_name)

List Advanced Script Functions

  • list_add(value:any, name='default', index=0)
  • list_clear(name='default')
  • list_contains(value:any, name='default')
  • list_destroy(name='default')
  • list_remove_index(index:int, name='default')
  • list_remove_value(value:any, name='default')
  • list_set(index:int, value:any, name='default')
  • list_size(name='default')

MultiMap Advanced Script Functions

  • multimap_clear(name='default')
  • multimap_destroy(name='default')
  • multimap_entry_set(name='default')
  • multimap_get(key:any, name='default')
  • multimap_key_set(name='default')
  • multimap_lock(key:any, name='default', ttl=-1)
  • multimap_put(key:any, value:any, name='default')
  • multimap_remove(key:any, name='default')
  • multimap_size(name='default')
  • multimap_try_lock(key:any, name='default', ttl=-1)
  • multimap_unlock(key:any, name='default')
  • multimap_values(name='default')

Queue Advanced Script Functions

  • queue_clear(name='default')
  • queue_destroy(name='default')
  • queue_offer(value:any*, name='default')
  • queue_poll(name='default')
  • queue_size(name='default')

Topic Advanced Script Functions

  • topic_destroy(name='default')
  • topic_publish(value:any+, name='default')

Other Advanvced Script Functions

  • object_list(dds:string?, show_hidden=False) -> list(object_name) | list(service_name, object_name)
  • exit(code:int)
  • home() -> path
  • version() -> string
  • write(value:any, location:string, format='')
  • read(location:string, format='default')
  • write_data(data:data, location:string)
  • read_data(location:string)
  • decode_data(value:data)

Other Features

  • Added doc strings support to advanced scripts. All lines starting with # doc: are doc strings.
  • Added script list command.
  • Added the sql advanced script command.
  • Added the file template action, which can read from a file with an extension of .yaml, .json or .txt.
  • Added the \exit and \echo commands. These commands are available in the script and interactive modes. See the echo and exit command documentation.
  • Added --wait flag to viridian commands.
  • Added the ability to change the interactive mode prompt and banner. See the def topic.

Improvements

  • clc demo map-setmany command shows a progress bar and is faster for small values.
  • \echo command takes 0 or more arguments.
  • Viridian commands display an API key selector if more than one API keys exists.
  • Viridian cluster list is paged.

Fixes

  • \di command panics when indexes for a map cannot be retrieved.
  • Removed the extra OK line in config list.
  • Restored the --format flag to home and version commands.
  • Fixed column names produced by advanced script output function.
  • Fixed time and date actions in templates.
  • Fixed the prompt suffix.