2023.1 Series Release Notes

14.0.0

Catatan Upgrade

  • Upgrade one of storage drivers, mongo driver with new version of pymongo. Pymongo has been updated to 4.0.0, there are some changes which are not supported in new version: 1. Collection.count and Cursor.count is removed. 2. Collection.ensure_index is removed. 3. Collection.__bool__ raises NotImplementedError. 4. Should use Binary.from_uuid to handle the UUID object. Those changes need to upgrade the mongo driver's code to work well.

13.0.0

Fitur baru

  • Introduce a new request header called "EXTRA-SPEC" and driver mechanism with stevedore to let developers to implement the task about how to deal with this informtaion. In Wallaby, there's just an empty handler by default.

12.0.0

Pendahuluan

Welcome to the Victoria release of the OpenStack Message service (zaqar). In this cycle, the Zaqar team would like to bring the following points to your attention. Details may be found below.

  • Support encrypted messages in queue.

  • Fixed bugs for stable and security.

Fitur baru

Catatan Upgrade

  • The default value of [oslo_policy] policy_file config option has been changed from policy.json to policy.yaml. Operators who are utilizing customized or previously generated static policy JSON files (which are not needed by default), should generate new policy files or convert them in YAML format. Use the oslopolicy-convert-json-to-yaml tool to convert a JSON to YAML formatted policy file in backward compatible way.

Catatan Deprekasi

  • Use of JSON policy files was deprecated by the oslo.policy library during the Victoria development cycle. As a result, this deprecation is being noted in the Wallaby cycle with an anticipated future removal of support by oslo.policy. As such operators will need to convert to YAML policy files. Please see the upgrade notes for details on migration of any custom policy files.

Bug Fixes

11.0.0

Fitur baru

  • To enhance the security of messaging service, the queue in Zaqar supports to encrypt messages before storing them into storage backends, also could support to decrypt messages when those are claimed by consumer. To enable this feature, user just need to take "_enable_encrypt_messages=True" when creating queue. AES-256 is used as the default of encryption algorithm and encryption key is configurable in the zaqar.conf.

10.0.0

Fitur baru

  • Support query queues with filter 'with_count=true' to return the amount of the queues. This will help users to quickly get the exact total number of queues which they own.

Catatan Upgrade

  • Python 2.7 support has been dropped. Last release of Zaqar to support py2.7 is OpenStack Train. The minimum version of Python now supported by Zaqar is Python 3.6.

8.0.0

Pendahuluan

Menambahkan alat baru zaqar-status upgrade check.

Fitur baru

  • Tambahkan opsi baru bernama 'message_delete_with_claim_id', ketika itu True, hapus pesan harus membutuhkan claim_ids dan message_ids keduanya dalam parameter permintaan. Ini akan meningkatkan keamanan pesan.

  • Saat ini langganan email di Zaqar menyampaikan pada alat bagian ketiga, seperti "sendmail". Ini berarti bahwa deployer harus menginstalnya dari Zaqar. Jika dia lupa, Zaqar akan meningkatkan kesalahan internal. Karya ini memungkinkan Zaqar mendukung langganan email dengan sendirinya menggunakan pustaka python smtp.

  • Introduce a new resource called Topic into Zaqar. Topic is a concept from AWS Simple Notification Service (SNS), it will has relevance with subscriptions. User can send message to a topic, and then the subscribers will get the message according to different protocols, like http, email, sms, etc. This feature will help Zaqar to split Messaging Queue Service and Notification Service clearly.

  • In Queens, we support the old way to use pool_group and the new way without it in Flavor both. In Stein, we will remove the pool_group totally and only keep the new way in Flavor and Pool.

  • Kerangka kerja baru untuk perintah zaqar-status upgrade check ditambahkan. Kerangka kerja ini memungkinkan menambahkan berbagai pemeriksaan yang dapat dijalankan sebelum pemutakhiran Zaqar untuk memastikan apakah pemutakhiran dapat dilakukan dengan aman.

Catatan Upgrade

  • Operator sekarang dapat menggunakan alat CLI baru zaqar-status upgrade check untuk memeriksa apakah penyebaran Zaqar dapat ditingkatkan secara aman dari rilis N-1 ke N.

7.0.0

Fitur baru

  • Dukungan untuk filter antrian ketika daftar antrian. Dengan fitur ini, pengguna dapat menambahkan filter nama atau metadata dalam parameter string kueri dalam daftar antrian ke filter antrian.

  • Karena beberapa klien menggunakan format berbeda dari id klien tidak hanya uuid, seperti id pengguna ldap, maka Zaqar akan menghapus format format id klien. Tambahkan satu opsi 'client_id_uuid_safe' untuk memungkinkan pengguna mengontrol validasi id klien. Tambahkan dua opsi 'min_length_client_id' dan 'max_length_client_id' untuk memungkinkan pengguna mengontrol panjang id klien jika tidak menggunakan uuid. Ini juga mengharuskan pengguna untuk memastikan id klien tidak dapat diubah.

  • Karena kami telah memperkenalkan 'pool_list' sebagai ganti pool_group di Queens, Sekarang kami akan memperbarui API untuk menyarankan pengguna menggunakan argumen baru.

  • Tambahkan tiga metdata cadangan baru di body respons antrian permintaan. "_dead_letter_queue", "_dead_letter_queue_messages_ttl" dan "_max_claim_count". Metadata tersebut akan membantu pengguna untuk mengetahui lebih baik tentang antrian surat mati (dead letter queue).

Catatan lain

  • Struktur kode untuk file konfigurasi diubah. Ini tidak masuk akal bagi pengguna akhir, tetapi orang yang bekerja untuk perubahan hilir harus memperhatikan. Silakan refactor konfigurasi pribadi Anda ke folder zaqar/conf/ juga.

6.0.0

Fitur baru

  • Zaqar mendukung cara baru untuk secara langsung menggunakan sumber daya pool tanpa pool_group saat membuat Flavour. Cara lama akan disimpan di Queens dan ditandai tidak berguna. Zaqar akan menghapus pool_group sepenuhnya di Rocky.

  • Mendukung lebih banyak fungsi retry backoff dalam tipe webhook. Ini akan berfungsi ketika Zaqar gagal mengirim pemberitahuan ke pelanggan. Pengguna dapat menentukan fungsi retry backoff dalam metadata antrian. Ada empat fungsi retry backoff termasuk 'linear', 'arithmetic', 'geometric' dan 'exponential'.

  • Mendukung Redis sebagai backend penyimpanan manajemen untuk meningkatkan kinerja dan kemudahan penyebaran. Untuk driver manajemen, pengguna perlu mengaktifkan opsi penyimpanan redis di redis.conf ke data persisten.

  • Dukungan untuk antrian tertunda ditambahkan untuk MongoDB, Redis dan Swift. Dengan fitur ini, jika antrian adalah antrian tertunda, pesannya akan ditunda beberapa saat untuk diklaim. Kunci metadata reseved baru dari antrian ditambahkan: _default_message_delay.

  • Mendukung fungsi checksum isi pesan yang tidak disandikan URL, algoritma defaultnya adalah MD5. Dukungan back-end untuk MongoDB, Redis dan Swift. Dengan fitur ini, ketika pengguna mengirim pesan ke antrian, Zaqar menghitung nilai "checksum" untuk isi pesan yang dikodekan bukan URL, yang kemudian bisa diterima pengguna setelah pesan diterima atau diklaim. Akhirnya, pengguna dapat menggunakannya untuk memverifikasi bahwa isi pesan yang baru diperoleh sudah benar.

  • Koneksi redis tidak mendukung konfigurasi kata sandi di zaqar, jadi redis-server tidak dapat mengatur kata sandi. Jika layanan redis tidak menetapkan kata sandi, itu akan menderita sejumlah besar serangan. Patch akan mendukung konfigurasi kata sandi untuk koneksi redis di zaqar.

5.0.0

Fitur baru

  • Backend penyimpanan Swift baru ditambahkan ke Zaqar di Ocata. Ini masih eksperimental. Untuk menggunakan backend ini, Anda harus memodifikasi bagian "drivers" di file konfigurasi. [Blueprint swift-storage-driver]

  • Perkenalkan Guru ke Zaqar. Guru adalah mekanisme di mana pengembang dan administrator sistem dapat menghasilkan laporan tentang keadaan Zaqar yang sedang berjalan yang dapat dieksekusi. Laporan ini disebut Guru Meditation Report. Sekarang Guru dapat mendukung mode wsgi, websocket, dan uwsgi semuanya.

  • Fitur ini adalah bagian ketiga dari fitur konfirmasi berlangganan. Dukungan untuk mengirim email ke pelanggan jika konfirmasi diperlukan. Untuk menggunakan fitur ini, pengguna perlu mengatur opsi konfigurasi "external_confirmation_url", "subscription_confirmation_email_template" dan "unsubscribe_confirmation_email_template". Url halaman konfirmasi yang akan digunakan dalam konfirmasi berlangganan email sebelum pemberitahuan, halaman ini tidak di-host di server Zaqar, pengguna harus membangun layanan web mereka sendiri untuk menyediakan halaman web ini. The subscription_confirmation_email_template memungkinkan pengguna untuk menyesuaikan konten email konfigurasi langganan, termasuk topik, isi dan pengirim. The unsubscribe_confirmation_email_template memungkinkan pengguna untuk menyesuaikan konten email konfigurasi berhenti berlangganan, termasuk topik, body, dan pengirim juga.

  • Zaqar sekarang mendukung Cross-Origin Resource Sharing (CORS).

  • Mendukung karakter titik (dot) dalam nama antrian, seperti 'service.test_queue'.

  • Mendukung kebijakan pengiriman pemberitahuan dalam tipe webhook. Ini akan berfungsi ketika notifikasi yang dikirim dari Zaqar ke pelanggan gagal. Pengguna dapat menentukan kebijakan retry dalam opsi langganan atau metadata antrian.

  • Dukungan untuk antrian surat mati (dead letter queue) ditambahkan untuk MongoDB, Redis dan Swift. Dengan fitur ini, pesan akan dipindahkan ke antrian huruf mati (dead letter queue) yang ditentukan jika diklaim berulang kali tetapi masih tidak berhasil diproses oleh klien. Kunci metadata reseved baru dari antrian (reseved metadata keys of queue) ditambahkan ditambahkan: _max_claim_count, _dead_letter_queue dan _dead_letter_queue_messages_ttl.

Critical Issues

  • Saat menggunakan driver sqlalchemy, operator sekarang diharuskan menjalankan "zaqar-sql-db-manage upgrade" sebelum menyediakan layanan. Layanan sebelumnya mencoba membuat database berdasarkan permintaan pertama, tetapi terikat pada kondisi race.

Bug Fixes

  • Tambahkan dua konfigurasi untuk endpoint notifikasi server websocket, bukan port acak dan alamat lokal. Salah satunya adalah 'notifikasi-bind', alamat di mana server notifikasi akan mendengarkan. Lainnya adalah 'port notifikasi', port yang mana server notifikasi akan mendengarkan.

  • Zaqar tidak mengembalikan metadata yang dipesan saat daftar antrian terperinci. Setelah perbaikan ini, Zaqar akan mengembalikan metadata reserved '_default_message_ttl' dan '_max_messages_post_size' sebagai respons dari daftar antrian terperinci.

4.0.0.0rc1

Fitur baru

  • OSprofiler terintegrasi ke Zaqar di Ocata. Ini adalah perpustakaan dari oslo. Ini bertujuan untuk menganalisis masalah bottleneck kinerja dengan memungkinkan untuk menghasilkan satu jejak per permintaan (one trace per request) yang mempengaruhi semua layanan yang terlibat dan membangun pohon panggilan (tree of call).

4.0.0.0b2

Fitur baru

  • Tindakan antrian baru ditambahkan sehingga pengguna dapat membersihkan antrian dengan cepat. Itu berarti semua pesan dan langganan akan dihapus secara otomatis tetapi metadata antrian akan disimpan.

  • Tambahkan dukungan migrasi untuk driver penyimpanan sqlalchemy Zaqar.

3.0.0.0rc1

Fitur baru

  • Saat ini, API v1 masih dapat diakses meskipun telah ditinggalkan untuk sementara waktu. Dan kita akan segera menghentikan v1.1. Untuk menjaga kompatibilitas ke belakang, opsi konfigurasi baru - `` enable_deprecated_api_versions`` ditambahkan sehingga operator dapat sepenuhnya menonaktifkan versi API atau masih mendukungnya dengan menambahkan versi API ke daftar opsi konfigurasi baru.

Catatan Deprekasi

  • Zaqar API v2 telah dirilis selama beberapa siklus dan terintegrasi sebagai versi API default oleh sebagian besar layanan OpenStack. Jadi sekarang saatnya untuk v1.1 usang yang mendukung v2. Sekarang dalam siklus Newton, Zaqar API v1.1 secara resmi tidak digunakan lagi.

3.0.0.0b3

Fitur baru

  • Sekarang sebelum pengguna mengirim pesan ke pelanggan melalui antrian, pelanggan harus dikonfirmasi terlebih dahulu. Zaqar hanya mengirim pesan ke pelanggan yang dikonfirmasi. Fitur ini mendukung pelanggan "webhook" dan "mailto" dengan mongoDB atau redis backend. Bagian "mailto" akan dilakukan dalam siklus O. Setel "require_confirmation = True" untuk mengaktifkan fitur ini. Nilai default adalah "False" sekarang dan kami akan mengaktifkannya secara default setelah satu atau dua siklus.

3.0.0.0b2

Fitur baru

  • Tambahkan notifikasi webhook baru menggunakan otentikasi kepercayaan. Saat menggunakan awalan URL 'trust +', Zaqar akan membuat kepercayaan Keystone untuk pengguna, dan kemudian menggunakannya ketika pemberitahuan terjadi untuk mengotentikasi terhadap Keystone dan mengirim token ke endpoint.

  • Mendukung opsi 'post_data' dan 'post_headers' pada pelanggan, memungkinkan kustomisasi payload ketika memiliki pelanggan webhook. Opsi 'post_data' mendukung templat string '$zaqar_message $', yang akan diganti dengan pesan JSON bersambung jika ditentukan.

  • Antrian sekarang berperilaku malas dalam langganan juga. Jadi tidak perlu bagi pengguna untuk membuat antrian sebelum membuat berlangganan untuk antrian ini. Zaqar akan membuat antrian secara otomatis berdasarkan permintaan pembuatan langganan. Seperti sebelumnya, semua langganan akan tetap aktif meskipun antrian yang sesuai telah dihapus.

  • Saat ini Zaqar dapat mendukung lebih banyak atribut built-in/reserved dalam antrian. Untuk saat ini ada dua atribut penting 'max_messages_post_size' dan 'max_message_ttl'. Dengan fitur ini, ketika ada antrian permintaan pengguna, Zaqar akan menampilkan dua atribut tersebut (baca dari file konfigurasi jika tidak ada nilai yang disesuaikan dari pengguna) dalam metadata antrian sehingga pengguna dapat mengetahui nilainya.

Bug Fixes

  • Saat mengakses jalur root layanan Zaqar, misalnya: curl GET http://127.0.0.1:8888/, pengguna akan melihat 401 kesalahan. Hal ini akan menyebabkan beberapa proxy front end (seperti HAProxy) mengeluh. Sekarang masalah ini telah diperbaiki.

  • Permintaan untuk semua langganan pada antrian yang diberikan dengan memperhitungkan penanda yang dikembalikan, jika ada. Tanpa perbaikan ini, hanya 10 langganan yang dapat diekstraksi dari database untuk mengirim pemberitahuan.

  • Dalam lingkungan jaringan manajemen IPv6, memulai server Zaqar akan mengalami kesalahan 'Address family for hostname not support' saat menggunakan server sederhana WSGI. Akar penyebabnya adalah bahwa implementasi TCPServer Python adalah hard-coded untuk menggunakan IPv4, bahkan di lingkungan IPv6. Sekarang masalah ini telah diperbaiki.