././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5198948 designate_dashboard-22.0.0+git20260709.20.98a0a76/0000755000000000000000000000000015243025054030652 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/.eslintrc0000644000000000000000000000215215243025017032475 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Set up globals globals: angular: false extends: openstack # Most environment options are not explicitly enabled or disabled, only # included here for completeness' sake. They are commented out, because the # global updates.py script would otherwise override them during a global # requirements synchronization. # # Individual projects should choose which platforms they deploy to. env: # browser global variables. browser: true # Adds all of the Jasmine testing global variables for version 1.3 and 2.0. jasmine: true # Enable eslint-plugin-angular plugins: - angular # Below we adjust rules specific to horizon's usage of openstack's linting # rules, and its own plugin inclusions. rules: ############################################################################# # Disabled Rules from eslint-config-openstack ############################################################################# valid-jsdoc: 1 brace-style: 1 no-extra-parens: 1 consistent-return: 1 callback-return: 1 guard-for-in: 1 block-scoped-var: 1 semi-spacing: 1 no-redeclare: 1 no-new: 1 no-warning-comments: 0 ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/.zuul.yaml0000644000000000000000000000041315243025017032610 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com- project: templates: - check-requirements - horizon-non-primary-django-jobs - horizon-nodejs-jobs - openstack-cover-jobs-horizon - openstack-python3-jobs-horizon - publish-openstack-docs-pti - release-notes-jobs-python3 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.4800088 designate_dashboard-22.0.0+git20260709.20.98a0a76/AUTHORS0000644000000000000000000000573315243025053031731 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comAggelos Kolaitis Akihiro Motoki Akihiro Motoki Alex Monk Alexandre Detiste Andreas Jaeger Andreas Jaeger Anusree BubaVV Cao Xuan Hoang Charles Short Chris Johnson Chuck Short Corey Bryant Dmitry Galkin Doug Hellmann Endre Karlson Enrique Garcia Erik Olof Gunnar Andersson Federico Ceratto Flavio Percoco Ghanshyam Mann Graham Hayes Graham Hayes Graham Hayes Hervé Beraud Ingo Fischer Ivan Anfimov Ivan Kolodyazhny James E. Blair Janonymous Jens Harbott Jingjing Ren Kiall Mac Innes Kiall Mac Innes LeopardMa MasayaAoyama Matt Borland Michael Johnson Monty Taylor Nguyen Hai Nicolas Bock Omer OpenStack Release Bot Pavlo Shchelokovskyy Praveen Yalagandula Qian Min Chen Rajiv Kumar Sean McGinnis Stephen Finucane Steve McLellan Swapnil Kulkarni (coolsvap) Takashi Kajinami Takashi Kajinami Tatiana Ovchinnikova Thierry Carrez Tobias Urdin Tony Xu Tyr Johanson Vadym Markov Vu Cong Tuan ZhijunWei andrewbogott avnish eric huang.zhiping jacky06 jiaqi07 likui lingyongxu ljhuang luke.li manchandavishal mareklycka qiaomin ricolin shashi.kant sonu.kumar sunqingliang6 wangzihao xhzhf ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/CONTRIBUTING.rst0000644000000000000000000000110015243025017033302 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comIf you would like to contribute to the development of OpenStack, you must follow the steps in the "If you're a developer, start here" section of this page: https://wiki.openstack.org/wiki/How_To_Contribute Once those steps have been completed, changes to OpenStack should be submitted for review via the Gerrit tool, following the workflow documented at: https://docs.openstack.org/infra/manual/developers.html Pull requests submitted through GitHub will be ignored. Bugs should be filed on Launchpad, not GitHub: https://bugs.launchpad.net/designate-dashboard ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.4613018 designate_dashboard-22.0.0+git20260709.20.98a0a76/ChangeLog0000644000000000000000000003617315243025053032435 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comCHANGES ======= * Rework zone create API arguments handling * Fix releasenotes tox environment missing deps * Drop Python 3.10 * Add support for Python 3.14 * Migrate setup configuration to pyproject.toml * Drop unused testrepository * Update Babel configuration * Remove delete steps for pyc files * Add zone attributes support to zone creation form * Imported Translations from Zanata * Add batch delete support for record sets * Imported Translations from Zanata * Update master for stable/2026.1 22.0.0 ------ * Imported Translations from Zanata * Imported Translations from Zanata * Imported Translations from Zanata * reno: Update master for unmaintained/2024.1 * Imported Translations from Zanata * Update master for stable/2025.2 21.0.0 ------ * Imported Translations from Zanata * Fix undefined in success toast for update calls * Check description before using it in update\_zone() * Imported Translations from Zanata * Imported Translations from Zanata * Ability to translate the group name into other languages * Imported Translations from Zanata * Drop environments for nose * Remove unicode prefix from code * Drop support for Python 3.9 * Remove unused doc8 * docs: update openstackdocstheme to 3.5.0 and remove unicode from code * Remove tags from README * Update master for stable/2025.1 20.0.0 ------ * tox: Remove basepython * reno: Update master for unmaintained/2023.1 * Remove Python 3.8 support * Drop unnecessary 'x' bit from doc config file * Remove openstacksdk workaround for floating IP * Update master for stable/2024.2 19.0.0 ------ * reno: Update master for unmaintained/zed * Imported Translations from Zanata * Imported Translations from Zanata * Update master for stable/2024.1 18.0.0 ------ * reno: Update master for unmaintained/xena * reno: Update master for unmaintained/wallaby * reno: Update master for unmaintained/victoria * reno: Update master for unmaintained/yoga * tox: Drop envdir * Bump hacking * remove reference to old unittest2 * Update python classifier in setup.cfg * Migrate passthrough to openstacksdk * Update master for stable/2023.2 * Remove extra spaces in tox.ini 17.0.0 ------ * Add python3.10 support in testing runtime * Imported Translations from Zanata * Fix "Masters IP Address" for Zone update form * Update master for stable/2023.1 16.0.0 ------ * Remove hard-coded Python path in karma.conf.js * Imported Translations from Zanata * Use py3 as the default runtime for tox * Imported Translations from Zanata * Imported Translations from Zanata * Switch to 2023.1 Python3 unit tests and generic template name * Update master for stable/zed 15.0.0 ------ * Fix details pages reload behaviour * Fix issue with missing elements in the dashboard * Imported Translations from Zanata * Imported Translations from Zanata * Imported Translations from Zanata * Imported Translations from Zanata * Replace deprecated ugettext\_lazy * Fix designate-dashboard lint * Update Designate dashboard for Angular 1.8.2.2 * Update python testing as per zed cycle testing runtime * Add Python 3.9 to supported runtumes * Imported Translations from Zanata * Fix manage.py for the default case * Replace usage of oslo.log * Remove unused designateclient * Use Horizon project template for nodejs jobs * Drop lower-constraints.txt and its testing * Address RemovedInDjango40Warning * Add Python3 zed unit tests * Update master for stable/yoga * Add example dashboard config file * Remove reference to the removed parameter * Rename "Floating IP Description" field 14.0.0 ------ * Imported Translations from Zanata * Add Python3 yoga unit tests * Update master for stable/xena 13.0.0 ------ * Changed minversion in tox to 3.18.0 * Drop horizon-nodejs10-jobs template * setup.cfg: Replace dashes with underscores * Use TOX\_CONSTRAINTS\_FILE * Add horizon-nodejs14-job template * Fix a missing font for PDF doc generation * Add Python3 xena unit tests * Update master for stable/wallaby 12.0.0 ------ * Imported Translations from Zanata * Fix lower-constrains job * Run npm nodejs job with Firefox browser * Disable nodjs an lower constraint job temporarily * Add default index URL to resource modules * Imported Translations from Zanata * Add Python3 wallaby unit tests * Update master for stable/victoria 11.0.0 ------ * [goal] Migrate testing to ubuntu focal * Fix hacking min version to 3.0.1 * Remove obsolete setup * drop mock from lower-constraints and requirements * Imported Translations from Zanata * Switch to newer openstackdocstheme and reno versions * Imported Translations from Zanata * Bump default tox env from py37 to py38 * Add py38 package metadata * Imported Translations from Zanata * Add Python3 victoria unit tests * Update master for stable/ussuri 10.0.0 ------ * Imported Translations from Zanata * Cleanup py27 support * Imported Translations from Zanata * Imported Translations from Zanata * Fix pyScss version in lower-constraints.txt * Add CAA record type support * Drop Django 1.11 support * translation: drop babel extractor definitions * Imported Translations from Zanata * Imported Translations from Zanata * [ussuri][goal] Drop python 2.7 support and testing * Generate PDF documentation * Switch to official Ussuri jobs * Use Horizon project template for django jobs * Fix list zones updated at same time * Imported Translations from Zanata * Update master for stable/train 9.0.0 ----- * Imported Translations from Zanata * Update the constraints url * Cleanup release notes * Fix releasenotes index page * Swith nodejs10 jobs to voting * Add release-note-job to designate-dashboard * Removed deprecated v1 api dashboard * Sync Sphinx requirement * Add Python 3 Train unit tests * Fix broken tests * Imported Translations from Zanata * Imported Translations from Zanata * Changes for url transition to OpenDev * OpenDev Migration Patch * Dropping the py35 testing * Drop nodejs4 job * Update master for stable/stein * Add nodejs10 jobs on bionic 8.0.0 ----- * Switch to horizon-nodejs4-jobs-nonvoting template * Imported Translations from Zanata * Imported Translations from Zanata * Update hacking version to latest * add python 3.7 unit test job * Imported Translations from Zanata * Imported Translations from Zanata * Set lower-requirements to use stable horizon * Imported Translations from Zanata * Change openstack-dev to openstack-discuss * update wiki http links to https * Enable py36 testing * Increment versioning with pbr instruction * Allow creation of NS records in zones * Use templates for lower-constraints, cover * Fix coverage * Imported Translations from Zanata * Imported Translations from Zanata * switch documentation job to new PTI * import zuul job settings from project-config * Drop nose dependencies * Imported Translations from Zanata * Update reno for stable/rocky 7.0.0 ----- * Imported Translations from Zanata * Replaces ng-views with the horizon streamlined version * Updates to new Horizon action API 7.0.0.0b3 --------- * Drop mox - no longer needed * Add test 'node\_modules' in tox.ini for flake8 exclude * Imported Translations from Zanata * Imported Translations from Zanata * Drop python-cinderclient usage * Add python3 django 1.11 job instead of django 2.0 job * fix tox python3 overrides * Cleanup unnecessary entries in test-requirements.txt 7.0.0.0b2 --------- * Drop mox3 from test-requirements.txt * Require the (soon-to-be) Rocky version of Horizon * Django 2.0 support * Remove "-y" option for package install command * Fix horizon install for tox * Use Horizon UT framework * Fix lower-constraints.txt 7.0.0.0b1 --------- * Sender Policy Framework record is SPF in short * Updated from global requirements * add lower-constraints job * Install horizon directly from pypi * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * Imported Translations from Zanata * Imported Translations from Zanata * Fixing v1 Dashboard * Imported Translations from Zanata * Imported Translations from Zanata * Update reno for stable/queens * Remove commented code + unneeded mox 6.0.0.0rc1 ---------- * Zuul: Remove project name 6.0.0.0b3 --------- * Updated from global requirements * Updated from global requirements * Use 'trimmed' for blocktrans in multi-line strings * Imported Translations from Zanata * Optimize the link address 6.0.0.0b2 --------- * Use jobs from designate repo * Updated from global requirements * Imported Translations from Zanata * Remove setting of version/release from releasenotes * Updated from global requirements * Drop django\_openstack\_auth from requirements.txt 6.0.0.0b1 --------- * Imported Translations from Zanata * Imported Translations from Zanata * Updated from global requirements * Updated from global requirements * Fix viewing detail resources * Updated from global requirements * Imported Translations from Zanata * AngularJS unittest with Jasmine and Karma * Imported Translations from Zanata * Updated from global requirements * Updated from global requirements * Imported Translations from Zanata * Update reno for stable/pike 5.0.0 ----- * Updated from global requirements 5.0.0.0b3 --------- * Updated from global requirements * switch from oslosphinx to openstackdocstheme * rearrange content using the new standard layout * Updated from global requirements * Stop using deprecated 'message' attribute in Exception * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * use base.html instead of adminui/base.html for not working * Fixing a potential unbound local error 5.0.0.0b1 --------- * Updated from global requirements * [Fix gate]Update test requirement * Updated from global requirements * Imported Translations from Zanata * Imported Translations from Zanata * Update reno for stable/ocata * Remove link to modindex 4.0.0.0rc1 ---------- * Actually show attribute on zone info page 4.0.0.0b3 --------- * Ensure slash character for URL of dns service Solves a pep8 warning too * Updated from global requirements * Remove support for py33 and update to py35 * Enable release notes translation * Switch to oslo\_log * Imported Translations from Zanata * H803 hacking have been deprecated 4.0.0.0b2 --------- * Imported Translations from Zanata * Updated from global requirements * Added release notes for Designate-dashboard * Show team and repo badges on README * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * Imported Translations from Zanata * Updated from global requirements * Updated from global requirements * Remove vim header 3.0.0.0rc1 ---------- * API v2 Dashboard * Add Upper constraints to dashboard * Allow SRV/MX records to have priority 0 * Remove token logging * Update home-page info in the configuration file * Imported Translations from Zanata 3.0.0.0b3 --------- * Updated from global requirements * Follow-up Ibddffc5f: Also allow PTR records pointing to the domain itself * Updated from global requirements * SSHFP validation: Allow algorithm 4 - ED25519 * Remove discover from test-requirements * Updated from global requirements 3.0.0.0b2 --------- * Updated from global requirements * Add option for records pointing to domain * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements * Updated from global requirements * Imported Translations from Zanata * Imported Translations from Zanata * Imported Translations from Zanata * Imported Translations from Zanata * Updated from global requirements 3.0.0.0b1 --------- * Updated from global requirements * Updated from global requirements * Updated from global requirements * Imported Translations from Zanata * Imported Translations from Zanata * Updated from global requirements * Fix package name in init.py * Imported Translations from Zanata * Updated from global requirements 2.0.0 ----- * Imported Translations from Zanata * Fix unit tests under Django 1.9 * Add ADD\_INSTALLED\_APPS to 'enabled' file * Extract strings from django templates * Imported Translations from Zanata * Fix unit tests under Django 1.9 * Extract strings from django templates * Add ADD\_INSTALLED\_APPS to 'enabled' file * Imported Translations from Zanata * Update .gitreview for stable/mitaka 2.0.0.0rc1 ---------- * Imported Translations from Zanata * Modernize README.rst * Updated from global requirements 2.0.0.0b3 --------- * Updated from global requirements * Imported Translations from Zanata * Update numbering of enable panels * Imported Translations from Zanata * Update translation setup * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements 2.0.0.0b2 --------- * Updated from global requirements * Put py34 first in the env order of tox * Empty hidden "Create Record" form fields * Updated from global requirements * Drop MANIFEST.in as it is not needed explicitely by PBR * Pass environment variables of proxy to tox * Remove version from setup.cfg 2.0.0.0b1 --------- * Remove py26 support * Clearing out .pyc file before a tox run * Updated from global requirements * Check for get\_quota policy before calling the API * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements 1.0.0 ----- * Imported Translations from Zanata * Imported Translations from Zanata * Open Mitaka development 1.0.0.0rc1 ---------- * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Transifex * Updated from global requirements * Updated from global requirements * Added test cases for domain's SPF record * Added test cases for domain's PTR record * Added test cases for domain's SSHFP record * Updated from global requirements * Replaces minimum ttl value from 0 to 1 * Imported Translations from Transifex * Imported Translations from Transifex 1.0.0.0b2 --------- * Set correct name and version in setup.cfg * Imported Translations from Transifex * Updated from global requirements * Record creation / update screen simplification * Updated from global requirements * Improving record create update buttons * Adding record-editor fip dropdown * Updated from global requirements * Update from global-requirements * Conform to Consistent Testing Interface * Setup for translation * Add .gitreview file * Fix pep8 failures * Correcting missing import for dashboard messaging * Add domain record detail screen * Update Dashboard requirements * updating tox pep8 issues * Add quota check for domain create * Improve UX of create and update record screen * Minor fixes: pep8 and redundant code * Include README.rst in dashboard sdist * Correct designate-dashboard domain detail screen * Add policy support to designatedashboard * forgot missing \_\_init\_\_.py file * improving designatedashboard packaging * Validate SSHFP records * Fix exception handling * Remove bulk actions from records page * Pass SSL CA Cert to client * Pass ssl no verify to client * Added designate-dashboard code to contrib/designate-dashboard ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/HACKING.rst0000644000000000000000000000023615243025017032450 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comdesignatedashboard Style Commandments ===================================== Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/ ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/LICENSE0000644000000000000000000002363615243025017031670 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5198805 designate_dashboard-22.0.0+git20260709.20.98a0a76/PKG-INFO0000644000000000000000000000653615243025054031761 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comMetadata-Version: 2.4 Name: designate-dashboard Version: 22.0.0+git20260709.20.98a0a76 Summary: Designate Horizon UI bits Author-email: OpenStack License-Expression: Apache-2.0 Project-URL: Homepage, https://docs.openstack.org/designate-dashboard/latest/ Project-URL: Repository, https://opendev.org/openstack/designate-dashboard Project-URL: Bug Tracker, https://bugs.launchpad.net/designate-dashboard/ Classifier: Environment :: OpenStack Classifier: Intended Audience :: Information Technology Classifier: Intended Audience :: System Administrators Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Classifier: Programming Language :: Python :: 3.14 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython Requires-Python: >=3.11 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: pbr!=2.1.0,>=2.0.0 Requires-Dist: horizon>=17.1.0 Requires-Dist: openstacksdk>=2.1.0 Dynamic: license-file Dynamic: requires-dist =================== Designate Dashboard =================== .. image:: https://governance.openstack.org/tc/badges/designate-dashboard.svg .. Change things from this point on Designate Horizon UI bits * Free software: Apache license Howto ----- 1. Package the designatedashboard by running:: python setup.py sdist This will create a python egg in the dist folder, which can be used to install on the horizon machine or within horizon's python virtual environment. -- or -- Install directly from source by running "python setup.py --install" Note: On some systems python may throw an error like 'Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository' this seems to be a result of mismatched pbr versioning. A hacking workaround for development purposes is replacing the pbr call with a hard-coded version (e.g. '1.0.1') in designatedashboard/__init__.py. 2. Copy panel plugin files into your Horizon config. These files can be found in designatedashboard/enabled and should be copied to /usr/share/openstack-dashboard/openstack_dashboard/local/enabled or the equivalent directory for your openstack-dashboard install. 3. Copy default config file into your Horizon config. The file can be found in designatedashboard/local_settings.d and should be copied to /etc/openstack-dashboard/local_settings.d or the equivalent directory for your openstack-dashboard install. 3. Make sure your keystone catalog contains endpoints for service type 'dns'. If no such endpoints are found, the designatedashboard panels will not render. 4. (Optional) Copy the designate policy file into horizon's policy files folder. Test ---- * How to run JS tests: * Install npm and nodejs=4.8.4 $ ``sudo apt-get install npm`` $ ``curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -`` $ ``sudo apt-get install nodejs`` 1. ``npm install`` (to create virtual environment and install all dependencies in package.json) 2. ``npm run lint`` for eslint 3. ``npm run test`` for JS unit tests ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/README.rst0000644000000000000000000000412315243025017032340 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=================== Designate Dashboard =================== .. image:: https://governance.openstack.org/tc/badges/designate-dashboard.svg .. Change things from this point on Designate Horizon UI bits * Free software: Apache license Howto ----- 1. Package the designatedashboard by running:: python setup.py sdist This will create a python egg in the dist folder, which can be used to install on the horizon machine or within horizon's python virtual environment. -- or -- Install directly from source by running "python setup.py --install" Note: On some systems python may throw an error like 'Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository' this seems to be a result of mismatched pbr versioning. A hacking workaround for development purposes is replacing the pbr call with a hard-coded version (e.g. '1.0.1') in designatedashboard/__init__.py. 2. Copy panel plugin files into your Horizon config. These files can be found in designatedashboard/enabled and should be copied to /usr/share/openstack-dashboard/openstack_dashboard/local/enabled or the equivalent directory for your openstack-dashboard install. 3. Copy default config file into your Horizon config. The file can be found in designatedashboard/local_settings.d and should be copied to /etc/openstack-dashboard/local_settings.d or the equivalent directory for your openstack-dashboard install. 3. Make sure your keystone catalog contains endpoints for service type 'dns'. If no such endpoints are found, the designatedashboard panels will not render. 4. (Optional) Copy the designate policy file into horizon's policy files folder. Test ---- * How to run JS tests: * Install npm and nodejs=4.8.4 $ ``sudo apt-get install npm`` $ ``curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -`` $ ``sudo apt-get install nodejs`` 1. ``npm install`` (to create virtual environment and install all dependencies in package.json) 2. ``npm run lint`` for eslint 3. ``npm run test`` for JS unit tests ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/babel-django.cfg0000644000000000000000000000016715243025017033643 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com[python: **.py] [django: **/templates/**.html] [extractors] django = horizon.utils.babel_extract_django:extract_django ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/bindep.txt0000644000000000000000000000041515243025017032653 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# This is a cross-platform list tracking distribution packages needed for install and tests; # see https://docs.openstack.org/infra/bindep/ for additional information. libfontconfig1 [nodejs platform:dpkg] # PDF Docs package dependencies tex-gyre [doc platform:dpkg] ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5134017 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/0000755000000000000000000000000015243025054036316 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.481835 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/PKG-INFO0000644000000000000000000000653615243025053037424 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comMetadata-Version: 2.4 Name: designate-dashboard Version: 22.0.0+git20260709.20.98a0a76 Summary: Designate Horizon UI bits Author-email: OpenStack License-Expression: Apache-2.0 Project-URL: Homepage, https://docs.openstack.org/designate-dashboard/latest/ Project-URL: Repository, https://opendev.org/openstack/designate-dashboard Project-URL: Bug Tracker, https://bugs.launchpad.net/designate-dashboard/ Classifier: Environment :: OpenStack Classifier: Intended Audience :: Information Technology Classifier: Intended Audience :: System Administrators Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Classifier: Programming Language :: Python :: 3.14 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython Requires-Python: >=3.11 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: pbr!=2.1.0,>=2.0.0 Requires-Dist: horizon>=17.1.0 Requires-Dist: openstacksdk>=2.1.0 Dynamic: license-file Dynamic: requires-dist =================== Designate Dashboard =================== .. image:: https://governance.openstack.org/tc/badges/designate-dashboard.svg .. Change things from this point on Designate Horizon UI bits * Free software: Apache license Howto ----- 1. Package the designatedashboard by running:: python setup.py sdist This will create a python egg in the dist folder, which can be used to install on the horizon machine or within horizon's python virtual environment. -- or -- Install directly from source by running "python setup.py --install" Note: On some systems python may throw an error like 'Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository' this seems to be a result of mismatched pbr versioning. A hacking workaround for development purposes is replacing the pbr call with a hard-coded version (e.g. '1.0.1') in designatedashboard/__init__.py. 2. Copy panel plugin files into your Horizon config. These files can be found in designatedashboard/enabled and should be copied to /usr/share/openstack-dashboard/openstack_dashboard/local/enabled or the equivalent directory for your openstack-dashboard install. 3. Copy default config file into your Horizon config. The file can be found in designatedashboard/local_settings.d and should be copied to /etc/openstack-dashboard/local_settings.d or the equivalent directory for your openstack-dashboard install. 3. Make sure your keystone catalog contains endpoints for service type 'dns'. If no such endpoints are found, the designatedashboard panels will not render. 4. (Optional) Copy the designate policy file into horizon's policy files folder. Test ---- * How to run JS tests: * Install npm and nodejs=4.8.4 $ ``sudo apt-get install npm`` $ ``curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -`` $ ``sudo apt-get install nodejs`` 1. ``npm install`` (to create virtual environment and install all dependencies in package.json) 2. ``npm run lint`` for eslint 3. ``npm run test`` for JS unit tests ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5068808 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/SOURCES.txt0000644000000000000000000002021315243025054040200 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com.eslintrc .zuul.yaml AUTHORS CONTRIBUTING.rst ChangeLog HACKING.rst LICENSE README.rst babel-django.cfg bindep.txt karma.conf.js manage.py package.json pyproject.toml requirements.txt setup.cfg setup.py test test-requirements.txt test-shim.js tox.ini designate_dashboard.egg-info/PKG-INFO designate_dashboard.egg-info/SOURCES.txt designate_dashboard.egg-info/dependency_links.txt designate_dashboard.egg-info/not-zip-safe designate_dashboard.egg-info/pbr.json designate_dashboard.egg-info/requires.txt designate_dashboard.egg-info/top_level.txt designatedashboard/__init__.py designatedashboard/sdk_connection.py designatedashboard/api/__init__.py designatedashboard/api/rest/__init__.py designatedashboard/api/rest/designate.py designatedashboard/dashboards/__init__.py designatedashboard/dashboards/project/__init__.py designatedashboard/dashboards/project/ngdns/__init__.py designatedashboard/dashboards/project/ngdns/reverse_dns/__init__.py designatedashboard/dashboards/project/ngdns/reverse_dns/panel.py designatedashboard/dashboards/project/ngdns/reverse_dns/urls.py designatedashboard/dashboards/project/ngdns/zones/__init__.py designatedashboard/dashboards/project/ngdns/zones/panel.py designatedashboard/dashboards/project/ngdns/zones/urls.py designatedashboard/enabled/_1710_project_dns_panel_group.py designatedashboard/enabled/_1721_dns_zones_panel.py designatedashboard/enabled/_1722_dns_reversedns_panel.py designatedashboard/enabled/__init__.py designatedashboard/local_settings.d/_1799_dns_settings.py designatedashboard/locale/cs/LC_MESSAGES/django.po designatedashboard/locale/de/LC_MESSAGES/django.po designatedashboard/locale/en_GB/LC_MESSAGES/django.po designatedashboard/locale/es/LC_MESSAGES/django.po designatedashboard/locale/fr/LC_MESSAGES/django.po designatedashboard/locale/id/LC_MESSAGES/django.po designatedashboard/locale/ja/LC_MESSAGES/django.po designatedashboard/locale/ko_KR/LC_MESSAGES/django.po designatedashboard/locale/ne/LC_MESSAGES/django.po designatedashboard/locale/pt_BR/LC_MESSAGES/django.po designatedashboard/locale/ru/LC_MESSAGES/django.po designatedashboard/locale/tr_TR/LC_MESSAGES/django.po designatedashboard/static/designatedashboard/designatedashboard.module.js designatedashboard/static/designatedashboard/designatedashboard.scss designatedashboard/static/designatedashboard/reverse_dns.html designatedashboard/static/designatedashboard/zones.html designatedashboard/static/designatedashboard/resources/resources.module.js designatedashboard/static/designatedashboard/resources/util.service.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/api.service.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/os-designate-floatingip.module.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/actions/actions.module.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/actions/set.service.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/actions/unset.service.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/details.module.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/drawer.html designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/overview.controller.js designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/overview.html designatedashboard/static/designatedashboard/resources/os-designate-recordset/api.service.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/os-designate-recordset.module.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/actions.module.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/actions.module.spec.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/common-forms.service.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/create.service.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/delete.service.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/update.service.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/details.module.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/drawer.html designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/overview.controller.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/overview.html designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/zone-recordsets.controller.js designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/zone-recordsets.html designatedashboard/static/designatedashboard/resources/os-designate-zone/api.service.js designatedashboard/static/designatedashboard/resources/os-designate-zone/os-designate-zone.module.js designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/actions.module.js designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/actions.module.spec.js designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/common-forms.service.js designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/create.html designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/create.service.js designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/delete.service.js designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/update.service.js designatedashboard/static/designatedashboard/resources/os-designate-zone/details/details.module.js designatedashboard/static/designatedashboard/resources/os-designate-zone/details/drawer.html designatedashboard/static/designatedashboard/resources/os-designate-zone/details/overview.controller.js designatedashboard/static/designatedashboard/resources/os-designate-zone/details/overview.html designatedashboard/tests/.secret_key_store designatedashboard/tests/__init__.py designatedashboard/tests/base.py designatedashboard/tests/settings.py doc/requirements.txt doc/source/conf.py doc/source/index.rst doc/source/contributor/index.rst doc/source/install/index.rst doc/source/user/index.rst releasenotes/notes/batch-delete-recordsets-a1b2c3d4e5f6g7h8.yaml releasenotes/notes/drop-py-2-7-ae8cade4a0ee1da8.yaml releasenotes/notes/drop-python-3-6-and-3-7-8d166b2f80b27277.yaml releasenotes/notes/drop-python-39.yaml releasenotes/notes/min-openstacksdk-b7e4661f8800bb9c.yaml releasenotes/notes/openstacksdk-11483491f9978bd1.yaml releasenotes/notes/remove-designateclient-e98963b8baa4aa4f.yaml releasenotes/notes/remove-oslo-log-078df11995380f36.yaml releasenotes/notes/remove-py38-1bc6676c8e5e880c.yaml releasenotes/notes/removed-v1-dashboard-56d4697d57baef09.yaml releasenotes/notes/zone-attributes-f1eed62987954b8c.yaml releasenotes/source/2023.1.rst releasenotes/source/2023.2.rst releasenotes/source/2024.1.rst releasenotes/source/2024.2.rst releasenotes/source/2025.1.rst releasenotes/source/2025.2.rst releasenotes/source/2026.1.rst releasenotes/source/conf.py releasenotes/source/index.rst releasenotes/source/train.rst releasenotes/source/unreleased.rst releasenotes/source/ussuri.rst releasenotes/source/victoria.rst releasenotes/source/wallaby.rst releasenotes/source/xena.rst releasenotes/source/yoga.rst releasenotes/source/zed.rst releasenotes/source/locale/cs/LC_MESSAGES/releasenotes.po releasenotes/source/locale/de/LC_MESSAGES/releasenotes.po releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po releasenotes/source/locale/id/LC_MESSAGES/releasenotes.po releasenotes/source/locale/ja/LC_MESSAGES/releasenotes.po releasenotes/source/locale/ko_KR/LC_MESSAGES/releasenotes.po releasenotes/source/locale/ne/LC_MESSAGES/releasenotes.po releasenotes/source/locale/pt_BR/LC_MESSAGES/releasenotes.po releasenotes/source/locale/ru/LC_MESSAGES/releasenotes.po releasenotes/source/locale/zh_CN/LC_MESSAGES/releasenotes.po././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.4820209 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/dependency_links.txt0000644000000000000000000000000115243025053042363 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.4819303 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/not-zip-safe0000644000000000000000000000000115243025053040543 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com ././@PaxHeader0000000000000000000000000000007600000000000010220 xustar0018 uid=1360376536 18 gid=1360376536 26 mtime=1787570731.49323 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/pbr.json0000644000000000000000000000005715243025053037775 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com{"git_version": "98a0a76", "is_release": false}././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.482206 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/requires.txt0000644000000000000000000000006715243025053040720 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.compbr!=2.1.0,>=2.0.0 horizon>=17.1.0 openstacksdk>=2.1.0 ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.482261 designate_dashboard-22.0.0+git20260709.20.98a0a76/designate_dashboard.egg-info/top_level.txt0000644000000000000000000000002315243025053041042 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comdesignatedashboard ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.513492 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/0000755000000000000000000000000015243025054034465 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.355963 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/__init__.py0000644000000000000000000000124315243025017036575 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# -*- coding: utf-8 -*- # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import pbr.version __version__ = pbr.version.VersionInfo( 'designate-dashboard').version_string() ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5135362 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/api/0000755000000000000000000000000015243025054035236 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3568146 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/api/__init__.py0000644000000000000000000000000015243025017037334 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5136297 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/api/rest/0000755000000000000000000000000015243025054036213 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3568397 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/api/rest/__init__.py0000644000000000000000000000127415243025017040327 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# (c) Copyright Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """REST API for Horizon dashboard Javascript code. """ from . import designate # noqa ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3568947 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/api/rest/designate.py0000644000000000000000000001662615243025017040542 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Copyright (c) 2023 Binero # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from designatedashboard.sdk_connection import get_sdk_connection from django.views import generic import logging from openstack_dashboard.api.rest import urls from openstack_dashboard.api.rest import utils as rest_utils LOG = logging.getLogger(__name__) def _sdk_object_to_list(object): """Converts an SDK generator object to a list of dictionaries. :param object: SDK generator object :returns: List of dictionaries """ result_list = [] for item in object: result_list.append(item.to_dict()) return result_list def create_zone(request): """Create zone.""" data = request.DATA conn = get_sdk_connection(request) build_kwargs = dict( name=data['name'], type=data['type'], ) if data.get('description', None): build_kwargs['description'] = data['description'] if data['type'] == 'PRIMARY': build_kwargs['email'] = data['email'] if data.get('ttl', None): build_kwargs['ttl'] = data['ttl'] elif data['type'] == 'SECONDARY': build_kwargs['masters'] = data['masters'] if data.get('attributes', None): build_kwargs['attributes'] = data['attributes'] zone = conn.dns.create_zone(**build_kwargs) return zone.to_dict() def update_zone(request, **kwargs): """Update zone.""" data = request.DATA zone_id = kwargs.get('zone_id') conn = get_sdk_connection(request) build_kwargs = dict( email=data['email'], ttl=data['ttl'], ) if data.get('description', None): build_kwargs['description'] = data['description'] zone = conn.dns.update_zone( zone_id, **build_kwargs) return zone.to_dict() @urls.register class Zones(generic.View): """API for zones.""" url_regex = r'dns/v2/zones/$' @rest_utils.ajax() def get(self, request): """List zones for current project.""" conn = get_sdk_connection(request) zones = _sdk_object_to_list(conn.dns.zones()) return {'zones': zones} @rest_utils.ajax(data_required=True) def post(self, request): """Create zone.""" return create_zone(request) @urls.register class Zone(generic.View): """API for zone.""" url_regex = r'dns/v2/zones/(?P[^/]+)/$' @rest_utils.ajax() def get(self, request, zone_id): """Get zone.""" conn = get_sdk_connection(request) zone = conn.dns.find_zone(zone_id) return zone.to_dict() @rest_utils.ajax(data_required=True) def patch(self, request, zone_id): """Edit zone.""" kwargs = {'zone_id': zone_id} update_zone(request, **kwargs) @rest_utils.ajax() def delete(self, request, zone_id): """Delete zone.""" conn = get_sdk_connection(request) conn.dns.delete_zone(zone_id, ignore_missing=True) def create_recordset(request, **kwargs): """Create recordset.""" data = request.DATA zone_id = kwargs.get('zone_id') conn = get_sdk_connection(request) build_kwargs = dict( name=data['name'], type=data['type'], ttl=data['ttl'], records=data['records'], ) if data.get('description', None): build_kwargs['description'] = data['description'] rs = conn.dns.create_recordset( zone_id, **build_kwargs) return rs.to_dict() def update_recordset(request, **kwargs): """Update recordset.""" data = request.DATA zone_id = kwargs.get('zone_id') rs_id = kwargs.get('rs_id') conn = get_sdk_connection(request) build_kwargs = dict() if data.get('description', None): build_kwargs['description'] = data['description'] if data.get('ttl', None): build_kwargs['ttl'] = data['ttl'] if data.get('records', None): build_kwargs['records'] = data['records'] build_kwargs['zone_id'] = zone_id rs = conn.dns.update_recordset( rs_id, **build_kwargs) return rs.to_dict() def _populate_zone_id(items, zone_id): for item in items: item['zone_id'] = zone_id return items @urls.register class RecordSets(generic.View): """API for recordsets.""" url_regex = r'dns/v2/zones/(?P[^/]+)/recordsets/$' @rest_utils.ajax() def get(self, request, zone_id): """Get recordsets.""" conn = get_sdk_connection(request) rsets = _sdk_object_to_list(conn.dns.recordsets(zone_id)) return {'recordsets': _populate_zone_id(rsets, zone_id)} @rest_utils.ajax(data_required=True) def post(self, request, zone_id): """Create recordset.""" kwargs = {'zone_id': zone_id} return create_recordset(request, **kwargs) @urls.register class RecordSet(generic.View): """API for recordset.""" url_regex = r'dns/v2/zones/(?P[^/]+)/recordsets/(?P[^/]+)/$' # noqa @rest_utils.ajax() def get(self, request, zone_id, rs_id): """Get recordset.""" conn = get_sdk_connection(request) rs = conn.dns.get_recordset(rs_id, zone_id) rs_dict = rs.to_dict() rs_dict['zone_id'] = zone_id return rs_dict @rest_utils.ajax(data_required=True) def put(self, request, zone_id, rs_id): """Edit recordset.""" kwargs = {'zone_id': zone_id, 'rs_id': rs_id} update_recordset(request, **kwargs) @rest_utils.ajax() def delete(self, request, zone_id, rs_id): """Delete recordset.""" conn = get_sdk_connection(request) conn.dns.delete_recordset(rs_id, zone_id, ignore_missing=True) @urls.register class DnsFloatingIps(generic.View): """API for floatingips.""" url_regex = r'dns/v2/reverse/floatingips/$' @rest_utils.ajax() def get(self, request): """Get floatingips.""" conn = get_sdk_connection(request) fips = _sdk_object_to_list(conn.dns.floating_ips()) return {'floatingips': fips} def update_dns_floatingip(request, **kwargs): """Update recordset.""" data = request.DATA fip_id = kwargs.get('fip_id') conn = get_sdk_connection(request) build_kwargs = dict( ptrdname=data['ptrdname'], ) if data.get('description', None): build_kwargs['description'] = data['description'] if data.get('ttl', None): build_kwargs['ttl'] = data['ttl'] fip = conn.dns.update_floating_ip( fip_id, **build_kwargs) return fip.to_dict() @urls.register class DnsFloatingIp(generic.View): """API for dns floatingip.""" url_regex = r'dns/v2/reverse/floatingips/(?P[^/]+)/$' @rest_utils.ajax() def get(self, request, fip_id): """Get floatingip.""" conn = get_sdk_connection(request) fip = conn.dns.get_floating_ip(fip_id) return fip.to_dict() @rest_utils.ajax(data_required=True) def patch(self, request, fip_id): """Edit floatingip.""" kwargs = {'fip_id': fip_id} update_dns_floatingip(request, **kwargs) ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5136745 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/0000755000000000000000000000000015243025054036577 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3568947 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/__init__.py0000644000000000000000000000000015243025017040675 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5137248 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/0000755000000000000000000000000015243025054040245 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3569865 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/__init__.py0000644000000000000000000000000015243025017042343 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.513768 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/0000755000000000000000000000000015243025054041356 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026300000000000010216 xustar00115 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/__init__.py 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3570092 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/__init0000644000000000000000000000006015243025017042535 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comfrom designatedashboard.api import rest # noqa ././@PaxHeader0000000000000000000000000000026400000000000010217 xustar00116 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/reverse_dns/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5138988 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/revers0000755000000000000000000000000015243025054042605 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000027700000000000010223 xustar00127 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/reverse_dns/__init__.py 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3570368 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/revers0000644000000000000000000000000015243025017042574 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000027300000000000010217 xustar00124 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/reverse_dns/panel.py 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357055 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/revers0000644000000000000000000000163015243025017042606 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from django.utils.translation import gettext_lazy as _ import horizon from openstack_dashboard.dashboards.project import dashboard class ReverseDns(horizon.Panel): name = _("Reverse DNS") slug = 'reverse_dns' permissions = ('openstack.services.dns',) dashboard.Project.register(ReverseDns) ././@PaxHeader0000000000000000000000000000027200000000000010216 xustar00123 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/reverse_dns/urls.py 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357055 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/revers0000644000000000000000000000153115243025017042606 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from django.urls import re_path from django.utils.translation import gettext_lazy as _ from horizon.browsers import views title = _("Reverse DNS") urlpatterns = [ re_path('', views.AngularIndexView.as_view(title=title), name='index'), ] ././@PaxHeader0000000000000000000000000000007600000000000010220 xustar0018 uid=1360376536 18 gid=1360376536 26 mtime=1787570731.51404 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/zones/0000755000000000000000000000000015243025054042514 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000027000000000000010214 xustar00121 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/zones/__init__.py 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357055 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/zones/0000644000000000000000000000000015243025017042503 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026600000000000010221 xustar00118 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/zones/panel.py 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3571608 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/zones/0000644000000000000000000000160515243025017042517 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from django.utils.translation import gettext_lazy as _ import horizon from openstack_dashboard.dashboards.project import dashboard class Zones(horizon.Panel): name = _("Zones") slug = 'dnszones' permissions = ('openstack.services.dns',) dashboard.Project.register(Zones) ././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/zones/urls.py 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3571608 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/dashboards/project/ngdns/zones/0000644000000000000000000000152215243025017042515 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# (c) Copyright 2015 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from django.urls import re_path from django.utils.translation import gettext_lazy as _ from horizon.browsers import views title = _("Zones") urlpatterns = [ re_path('', views.AngularIndexView.as_view(title=title), name='index') ] ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.514219 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/0000755000000000000000000000000015243025054036057 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026700000000000010222 xustar00119 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/_1710_project_dns_panel_group.py 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3571608 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/_1710_project_dns_panel0000644000000000000000000000165015243025017042303 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Copyright 2013 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from django.utils.translation import gettext_lazy as _ # The name of the panel group to be added to HORIZON_CONFIG. Required. PANEL_GROUP = 'dns' # The display name of the PANEL_GROUP. Required. PANEL_GROUP_NAME = _('DNS') # The name of the dashboard the PANEL_GROUP associated with. Required. PANEL_GROUP_DASHBOARD = 'project' ././@PaxHeader0000000000000000000000000000025600000000000010220 xustar00111 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/_1721_dns_zones_panel.py 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357237 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/_1721_dns_zones_panel.p0000644000000000000000000000224215243025017042231 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Copyright 2013 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # The name of the panel to be added to HORIZON_CONFIG. Required. PANEL = 'dnszones' # The name of the dashboard the PANEL associated with. Required. PANEL_DASHBOARD = 'project' # The name of the panel group the PANEL is associated with. PANEL_GROUP = 'dns' ADD_INSTALLED_APPS = ['designatedashboard'] # Python panel class of the PANEL to be added. ADD_PANEL = ( 'designatedashboard.dashboards.project.ngdns.zones.panel.Zones') ADD_ANGULAR_MODULES = ['designatedashboard'] ADD_SCSS_FILES = ['designatedashboard/designatedashboard.scss'] AUTO_DISCOVER_STATIC_FILES = True ././@PaxHeader0000000000000000000000000000026300000000000010216 xustar00116 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/_1722_dns_reversedns_panel.py 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357237 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/_1722_dns_reversedns_pa0000644000000000000000000000220315243025017042314 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Copyright 2013 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # The name of the panel to be added to HORIZON_CONFIG. Required. PANEL = 'reverse_dns' # The name of the dashboard the PANEL associated with. Required. PANEL_DASHBOARD = 'project' # The name of the panel group the PANEL is associated with. PANEL_GROUP = 'dns' # Python panel class of the PANEL to be added. ADD_PANEL = ( 'designatedashboard.dashboards.project.ngdns.reverse_dns.panel.ReverseDns') ADD_ANGULAR_MODULES = ['designatedashboard'] ADD_SCSS_FILES = ['designatedashboard/designatedashboard.scss'] AUTO_DISCOVER_STATIC_FILES = True ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357237 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/enabled/__init__.py0000644000000000000000000000000015243025017040155 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5142658 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/local_settings.d/0000755000000000000000000000000015243025054037721 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026400000000000010217 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/local_settings.d/_1799_dns_settings.py 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357237 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/local_settings.d/_1799_dns_sett0000644000000000000000000000151015243025017042313 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # This file is to be included for configuring application which relates # to dns(Designate) functions. from django.conf import settings settings.POLICY_FILES.update({ 'dns': 'designate_policy.yaml' }) settings.DEFAULT_POLICY_FILES.update({ 'dns': 'default_policies/designate.yaml' }) ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/0000755000000000000000000000000015243025054035724 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5083022 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/cs/0000755000000000000000000000000015243025054036331 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5143056 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/cs/LC_MESSAGES/0000755000000000000000000000000015243025054040116 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3573513 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/cs/LC_MESSAGES/django.po0000644000000000000000000000124215243025017041716 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Zbyněk Schwarz , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-11-17 05:49+0000\n" "Last-Translator: Zbyněk Schwarz \n" "Language-Team: Czech\n" "Language: cs\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" msgid "Reverse DNS" msgstr "Reverzní DNS" msgid "Zones" msgstr "Zóny" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5083022 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/de/0000755000000000000000000000000015243025054036314 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5143533 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/de/LC_MESSAGES/0000755000000000000000000000000015243025054040101 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3575373 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/de/LC_MESSAGES/django.po0000644000000000000000000000123615243025017041704 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Frank Kloeker , 2016. #zanata # Frank Kloeker , 2018. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2018-07-29 10:32+0000\n" "Last-Translator: Frank Kloeker \n" "Language-Team: German\n" "Language: de\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "Reverse DNS" msgstr "Reverse DNS" msgid "Zones" msgstr "Zonen" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/en_GB/0000755000000000000000000000000015243025054036676 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5143993 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/en_GB/LC_MESSAGES/0000755000000000000000000000000015243025054040463 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026100000000000010214 xustar00113 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/en_GB/LC_MESSAGES/django.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3576133 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/en_GB/LC_MESSAGES/django0000644000000000000000000000133015243025017041644 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Andreas Jaeger , 2016. #zanata # Andi Chandler , 2026. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2025-12-08 22:46+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2026-01-07 11:22+0000\n" "Last-Translator: Andi Chandler \n" "Language-Team: English (United Kingdom)\n" "Language: en_GB\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "DNS" msgstr "DNS" msgid "Reverse DNS" msgstr "Reverse DNS" msgid "Zones" msgstr "Zones" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/es/0000755000000000000000000000000015243025054036333 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.514446 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/es/LC_MESSAGES/0000755000000000000000000000000015243025054040120 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357707 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/es/LC_MESSAGES/django.po0000644000000000000000000000121715243025017041722 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Alberto Molina Coballes , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-02-22 06:47+0000\n" "Last-Translator: Alberto Molina Coballes \n" "Language-Team: Spanish\n" "Language: es\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "Reverse DNS" msgstr "DNS inverso" msgid "Zones" msgstr "Zonas" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/fr/0000755000000000000000000000000015243025054036333 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.514495 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/fr/LC_MESSAGES/0000755000000000000000000000000015243025054040120 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357816 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/fr/LC_MESSAGES/django.po0000644000000000000000000000157715243025017041733 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Translations template for designate-dashboard. # Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the designate-dashboard # project. # # Translators: # Lucas Mascaro , 2015 # Gérald LONLAS , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-10-27 03:42+0000\n" "Last-Translator: Gérald LONLAS \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Generated-By: Babel 2.0\n" "X-Generator: Zanata 4.3.3\n" "Language-Team: French\n" msgid "Reverse DNS" msgstr "Reverse DNS" msgid "Zones" msgstr "Zones" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/id/0000755000000000000000000000000015243025054036320 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5145411 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/id/LC_MESSAGES/0000755000000000000000000000000015243025054040105 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3578715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/id/LC_MESSAGES/django.po0000644000000000000000000000117715243025017041714 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# suhartono , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-10-13 01:36+0000\n" "Last-Translator: suhartono \n" "Language-Team: Indonesian\n" "Language: id\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=1; plural=0\n" msgid "Reverse DNS" msgstr "Reverse DNS " msgid "Zones" msgstr "Zones (zona)" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ja/0000755000000000000000000000000015243025054036316 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5145872 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ja/LC_MESSAGES/0000755000000000000000000000000015243025054040103 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.357953 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ja/LC_MESSAGES/django.po0000644000000000000000000000126515243025017041710 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Yoshiki Eguchi , 2016. #zanata # Akihiro Motoki , 2018. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2018-02-08 08:47+0000\n" "Last-Translator: Akihiro Motoki \n" "Language-Team: Japanese\n" "Language: ja\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=1; plural=0\n" msgid "Reverse DNS" msgstr "リバース DNS" msgid "Zones" msgstr "ゾーン" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ko_KR/0000755000000000000000000000000015243025054036731 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5146337 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ko_KR/LC_MESSAGES/0000755000000000000000000000000015243025054040516 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026100000000000010214 xustar00113 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ko_KR/LC_MESSAGES/django.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3580441 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ko_KR/LC_MESSAGES/django0000644000000000000000000000120015243025017041673 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Sungjin Kang , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-12-19 03:03+0000\n" "Last-Translator: Ian Y. Choi \n" "Language-Team: Korean (South Korea)\n" "Language: ko_KR\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=1; plural=0\n" msgid "Reverse DNS" msgstr "Reverse DNS" msgid "Zones" msgstr "존" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ne/0000755000000000000000000000000015243025054036326 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5146797 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ne/LC_MESSAGES/0000755000000000000000000000000015243025054040113 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.358132 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ne/LC_MESSAGES/django.po0000644000000000000000000000116615243025017041720 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Surit Aryal , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2019-06-07 05:03+0000\n" "Last-Translator: Surit Aryal \n" "Language-Team: Nepali\n" "Language: ne\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "Reverse DNS" msgstr "Reverse DNS" msgid "Zones" msgstr "Zones" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/pt_BR/0000755000000000000000000000000015243025054036732 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5147321 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/pt_BR/LC_MESSAGES/0000755000000000000000000000000015243025054040517 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026100000000000010214 xustar00113 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/pt_BR/LC_MESSAGES/django.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3582215 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/pt_BR/LC_MESSAGES/django0000644000000000000000000000117215243025017041704 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Marcio , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-03-15 07:16+0000\n" "Last-Translator: Marcio \n" "Language-Team: Portuguese (Brazil)\n" "Language: pt_BR\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "Reverse DNS" msgstr "DNS Reverso" msgid "Zones" msgstr "Zonas" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ru/0000755000000000000000000000000015243025054036352 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5147884 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ru/LC_MESSAGES/0000755000000000000000000000000015243025054040137 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3583567 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/ru/LC_MESSAGES/django.po0000644000000000000000000000214615243025017041743 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Translations template for designate-dashboard. # Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the designate-dashboard # project. # # Translators: # Denis Gubanov , 2015 # Ivan Startsev , 2016. #zanata # Ivan Anfimov , 2025. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2025-07-31 13:36+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2025-07-31 01:42+0000\n" "Last-Translator: Ivan Anfimov \n" "Language: ru\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " "(n%100>=11 && n%100<=14)? 2 : 3);\n" "Generated-By: Babel 2.0\n" "X-Generator: Zanata 4.3.3\n" "Language-Team: Russian\n" msgid "DNS" msgstr "DNS" msgid "Reverse DNS" msgstr "Обратный DNS" msgid "Zones" msgstr "Зоны" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/tr_TR/0000755000000000000000000000000015243025054036756 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5148356 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/tr_TR/LC_MESSAGES/0000755000000000000000000000000015243025054040543 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026100000000000010214 xustar00113 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/tr_TR/LC_MESSAGES/django.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3584027 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/locale/tr_TR/LC_MESSAGES/django0000644000000000000000000000162415243025017041732 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Translations template for designate-dashboard. # Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the designate-dashboard # project. # # Translators: # Alper Çiftçi , 2015 # işbaran akçayır , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" "POT-Creation-Date: 2019-09-23 21:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-22 08:57+0000\n" "Last-Translator: Copied by Zanata \n" "Language: tr_TR\n" "Plural-Forms: nplurals=1; plural=0;\n" "Generated-By: Babel 2.0\n" "X-Generator: Zanata 4.3.3\n" "Language-Team: Turkish (Turkey)\n" msgid "Reverse DNS" msgstr "Ters DNS" msgid "Zones" msgstr "Bölgeler" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3584027 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/sdk_connection.py0000644000000000000000000000420415243025017040036 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Copyright Red Hat # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from django.conf import settings import designatedashboard from openstack import config as occ from openstack import connection def get_sdk_connection(request): """Creates an SDK connection based on the request. :param request: Django request object :returns: SDK connection object """ # NOTE(mordred) Nothing says love like two inverted booleans # The config setting is NO_VERIFY which is, in fact, insecure. # get_one_cloud wants verify, so we pass 'not insecure' to verify. insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False) cacert = getattr(settings, 'OPENSTACK_SSL_CACERT', None) # Pass interface to honor 'OPENSTACK_ENDPOINT_TYPE' interface = getattr(settings, 'OPENSTACK_ENDPOINT_TYPE', 'publicURL') # Pass load_yaml_config as this is a Django service with its own config # and we don't want to accidentally pick up a clouds.yaml file. We want to # use the settings we're passing in. cloud_config = occ.OpenStackConfig(load_yaml_config=False).get_one_cloud( verify=not insecure, cacert=cacert, interface=interface, region_name=request.user.services_region, auth_type='token', auth=dict( project_id=request.user.project_id, project_domain_id=request.user.domain_id, auth_token=request.user.token.unscoped_token, auth_url=request.user.endpoint), app_name='designate-dashboard', app_version=designatedashboard.__version__) return connection.from_config(cloud_config=cloud_config) ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5093021 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/0000755000000000000000000000000015243025054035754 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5150292 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/0000755000000000000000000000000015243025054041567 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000030500000000000010213 xustar00133 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/designatedashboard.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3585567 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/desig0000644000000000000000000000414315243025017042606 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2015 Hewlett-Packard Development Company, L.P. * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard * * @description * Provides the services and widgets required * to support and display the project search panel. */ angular .module('designatedashboard', [ 'ngRoute', 'designatedashboard.resources' ]) .constant( 'designatedashboard.apiPassthroughUrl', '/api/dns/') .config(config) .run(run); config.$inject = [ '$provide', '$routeProvider', '$windowProvider' ]; /** * @name designatedashboard.basePath * @description Base path for the project dashboard * * @param {function} $provide ng provide service * * @param {function} $routeProvider ng route service * * @param {function} $windowProvider NG window provider * * @returns {undefined} */ function config($provide, $routeProvider, $windowProvider) { var path = $windowProvider.$get().STATIC_URL + 'designatedashboard/'; $provide.constant('designatedashboard.basePath', path); $routeProvider .when('/project/dnszones/', { templateUrl: path + 'zones.html' }) .when('/project/reverse_dns/', { templateUrl: path + 'reverse_dns.html' }); } run.$inject = [ 'horizon.framework.conf.resource-type-registry.service', 'designatedashboard.basePath' ]; function run() { // function run(registry, basePath) { //registry.setDefaultSummaryTemplateUrl(basePath + 'table/default-drawer.html'); } })(); ././@PaxHeader0000000000000000000000000000030000000000000010206 xustar00128 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/designatedashboard.scss 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3585567 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/desig0000644000000000000000000000000015243025017042572 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026300000000000010216 xustar00115 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5151196 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000031300000000000010212 xustar00139 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5152118 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000032300000000000010213 xustar00147 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/actions/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5154293 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000034400000000000010216 xustar00164 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/actions/actions.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3586228 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000337315243025017042654 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-floatingip.actions * * @description * Provides all of the actions for DNS Floating IPs. */ angular.module('designatedashboard.resources.os-designate-floatingip.actions', [ 'horizon.framework.conf', 'horizon.app.core' ]) .run(run); run.$inject = [ 'horizon.framework.conf.resource-type-registry.service', 'designatedashboard.resources.os-designate-floatingip.resourceType', 'designatedashboard.resources.os-designate-floatingip.actions.set', 'designatedashboard.resources.os-designate-floatingip.actions.unset' ]; function run(registry, resourceTypeString, setAction, unsetAction) { var resourceType = registry.getResourceType(resourceTypeString); resourceType .itemActions .append({ id: 'setFloatingIp', service: setAction, template: { text: gettext('Set') } }) .append({ id: 'unsetFloatingIp', service: unsetAction, template: { text: gettext('Unset') } }); } })(); ././@PaxHeader0000000000000000000000000000034100000000000010213 xustar00161 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/actions/set.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3586867 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001132215243025017042645 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-floatingip.actions') .factory('designatedashboard.resources.os-designate-floatingip.actions.set', action); action.$inject = [ '$q', 'designatedashboard.resources.os-designate-floatingip.api', 'designatedashboard.resources.os-designate-floatingip.resourceType', 'designatedashboard.resources.util', 'horizon.app.core.openstack-service-api.serviceCatalog', 'horizon.framework.widgets.form.ModalFormService', 'horizon.framework.widgets.toast.service', 'horizon.framework.widgets.modal-wait-spinner.service' ]; /* * @ngDoc factory * @name designatedashboard.resources.os-designate-floatingip.actions.set * * @Description * Brings up the Set Floating IP modal. */ function action($q, api, resourceTypeName, util, serviceCatalog, schemaFormModalService, toast, waitSpinner) { var dnsServiceEnabled; var title = null; // Set once perform is called var formConfig = { schema: { type: "object", properties: { ptrdname: { type: "string", pattern: /^.+\.$/ }, description: { type: "string" }, ttl: { type: "integer", minimum: 0, maximum: 2147483647 } } }, form: [ { key: "ptrdname", title: gettext("Domain Name"), description: gettext("Domain name ending in '.'"), validationMessage: gettext("Domain must end with '.'"), placeholder: "smtp.example.com.", type: "text", required: true }, { key: "description", type: "textarea", title: gettext("Description"), description: gettext("Details about the PTR record.") }, { key: "ttl", title: gettext("TTL"), description: gettext("Time To Live in seconds."), type: "number" } ] }; var message = { success: gettext('Domain name PTR was successfully set.') }; var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ///////////////// function initAction() { dnsServiceEnabled = serviceCatalog.ifTypeEnabled('dns'); } function allowed(item) { return $q.all([ // TODO (tyr) designate currently has no floating ips policy rules dnsServiceEnabled, util.notPending(item) ]); } function perform(item) { // Initialize the per-item title for use now and during submit title = gettext("Set Domain Name PTR for ") + item.address; formConfig.title = title; // Get a form model based on the current item formConfig.model = util.getModel(formConfig.form, item); // Initialize default data formConfig.model.ttl = formConfig.model.ttl || 3600; // Remember the ID for use during submit formConfig.model.floatingIpId = item.id; return schemaFormModalService.open(formConfig).then(onSubmit, onCancel); } function onSubmit(context) { var model = angular.copy(context.model); var floatingIpId = formConfig.model.floatingIpId; waitSpinner.showModalSpinner(title); return api.set(floatingIpId, model).then(onSuccess, onFailure); } function onCancel() { waitSpinner.hideModalSpinner(); } function onSuccess(response) { waitSpinner.hideModalSpinner(); var floatingIp = response.data; toast.add('success', message.success); // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form return { created: [], updated: [{type: resourceTypeName, id: floatingIp.id}], deleted: [], failed: [] }; } function onFailure() { waitSpinner.hideModalSpinner(); } } })(); ././@PaxHeader0000000000000000000000000000034300000000000010215 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/actions/unset.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3586867 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000765215243025017042660 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-floatingip.actions') .factory('designatedashboard.resources.os-designate-floatingip.actions.unset', action); action.$inject = [ '$q', 'designatedashboard.resources.os-designate-floatingip.api', 'designatedashboard.resources.os-designate-floatingip.resourceType', 'designatedashboard.resources.util', 'horizon.app.core.openstack-service-api.serviceCatalog', 'horizon.framework.util.q.extensions', 'horizon.framework.widgets.form.ModalFormService', 'horizon.framework.widgets.toast.service', 'horizon.framework.widgets.modal-wait-spinner.service' ]; /* * @ngDoc factory * @name designatedashboard.resources.os-designate-floatingip.actions.unset * * @Description * Brings up the Unset Floating IP modal. */ function action($q, api, resourceTypeName, util, serviceCatalog, $qExtensions, schemaFormModalService, toast, waitSpinner) { var title = null; // Set on perform // currentFloatingIpId is used to remember the ID we are modifying since // it isn't returned by the unset API call var dnsServiceEnabled, currentFloatingIpId; // Unset it just a simple case of "set", but with ptrdname of 'null' var formConfig = { schema: { type: "object", properties: { } }, form: [ ], model: { } }; var message = { success: gettext('Domain name PTR successfully unset.') }; var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ///////////////// function initAction() { dnsServiceEnabled = serviceCatalog.ifTypeEnabled('dns'); } function allowed(item) { return $q.all([ // TODO (tyr) designate currently has no floating ip policy rules dnsServiceEnabled, domainNameSet(item), util.notPending(item) ]); } function domainNameSet(item) { return $qExtensions.booleanAsPromise( angular.isString(item.ptrdname) ); } function perform(item) { title = gettext("Unset Domain Name PTR for ") + item.address; // Store the zone ID so it can be used on submit formConfig.model.floatingIpId = item.id; formConfig.title = title; return schemaFormModalService.open(formConfig).then(onSubmit, onCancel); } function onSubmit(context) { waitSpinner.showModalSpinner(title); currentFloatingIpId = context.model.floatingIpId; return api.unset(currentFloatingIpId).then(onSuccess, onFailure); } function onCancel() { waitSpinner.hideModalSpinner(); } function onSuccess() { waitSpinner.hideModalSpinner(); toast.add('success', message.success); // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form return { created: [], updated: [{type: resourceTypeName, id: currentFloatingIpId}], deleted: [], failed: [] }; } function onFailure() { waitSpinner.hideModalSpinner(); } } })(); ././@PaxHeader0000000000000000000000000000033100000000000010212 xustar00153 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/api.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3586867 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000710115243025017042645 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-floatingip') .factory('designatedashboard.resources.os-designate-floatingip.api', apiService); apiService.$inject = [ 'designatedashboard.apiPassthroughUrl', 'horizon.framework.util.http.service', 'horizon.framework.widgets.toast.service' ]; /* * @ngdoc service * @param {Object} httpService * @param {Object} toastService * @name apiService * @description Provides direct access to Designate Floating IP APIs. * @returns {Object} The service */ function apiService(apiPassthroughUrl, httpService, toastService) { var service = { list: list, get: get, set: set, unset: unset }; return service; /////////////// /** * @name list * @description * Get a list of DNS floating ips. * * The listing result is an object with property "items." Each item is * a floating IP PTR record. * * @param {Object} params * Query parameters. Optional. * * @returns {Object} The result of the API call */ function list(params) { var config = params ? {params: params} : {}; return httpService.get(apiPassthroughUrl + 'v2/reverse/floatingips/', config) .catch(function () { toastService.add('error', gettext('Unable to retrieve the floating ip PTRs.')); }); } function get(id, params) { var config = params ? {params: params} : {}; return httpService.get(apiPassthroughUrl + 'v2/reverse/floatingips/' + id + '/', config) .catch(function () { toastService.add('error', gettext('Unable to get the floating ip PTR ' + id)); }); } /** * @name set * @description * Set a floating ip PTR record * * @param {string} floatingIpID - ID of PTR record to unset * @param {Object} data * Specifies the PTR information to set * * @returns {Object} The updated DNS floating IP object */ function set(floatingIpID, data) { // The update API will not accept extra data. Restrict the input to only the allowed // fields var apiData = { ptrdname: data.ptrdname, description: data.description, ttl: data.ttl }; return httpService.patch( apiPassthroughUrl + 'v2/reverse/floatingips/' + floatingIpID + '/', apiData) .catch(function () { toastService.add('error', gettext('Unable to set the floating IP PTR record.')); }); } /** * @name unset * @description * Unset a floating ip PTR record * * @param {string} floatingIpID - ID of PTR record to unset * * @returns {Object} The updated DNS floating IP object */ function unset(floatingIpID) { // Unset is just a special case of 'set' return set(floatingIpID, { ptrdname: null, description: null, ttl: null }); } } }()); ././@PaxHeader0000000000000000000000000000032300000000000010213 xustar00147 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5156841 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000034400000000000010216 xustar00164 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/details.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3586867 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000364315243025017042654 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-floatingip.details * * @description * Provides details features for floating IPs. */ angular.module('designatedashboard.resources.os-designate-floatingip.details', ['horizon.framework.conf', 'horizon.app.core']) .run(run); run.$inject = [ 'designatedashboard.resources.os-designate-floatingip.resourceType', 'designatedashboard.resources.os-designate-floatingip.api', 'designatedashboard.resources.os-designate-floatingip.basePath', 'horizon.framework.conf.resource-type-registry.service' ]; function run( resourceTypeName, api, basePath, registry ) { var resourceType = registry.getResourceType(resourceTypeName); resourceType .setLoadFunction(loadFunction) .setSummaryTemplateUrl(basePath + 'details/drawer.html') .setItemNameFunction(itemNameFunction); resourceType.detailsViews .prepend({ id: 'floatingIpDetailsOverview', name: gettext('Overview'), template: basePath + 'details/overview.html' }, 0); function loadFunction(identifier) { return api.get(identifier); } function itemNameFunction(floatingIp) { return floatingIp.address; } } })(); ././@PaxHeader0000000000000000000000000000033600000000000010217 xustar00158 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/drawer.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3588865 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000034615243025017042651 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com ././@PaxHeader0000000000000000000000000000035100000000000010214 xustar00169 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/overview.controller.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3588865 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000254715243025017042656 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function() { "use strict"; angular .module('designatedashboard.resources.os-designate-floatingip.details') .controller( 'designatedashboard.resources.os-designate-floatingip.details.overviewController', controller); controller.$inject = [ 'designatedashboard.resources.os-designate-floatingip.resourceType', 'horizon.framework.conf.resource-type-registry.service', '$scope' ]; function controller( resourceTypeCode, registry, $scope ) { var ctrl = this; ctrl.item = {}; ctrl.resourceType = registry.getResourceType(resourceTypeCode); $scope.context.loadPromise.then(onGetResponse); function onGetResponse(response) { ctrl.item = response.data; } } })(); ././@PaxHeader0000000000000000000000000000034000000000000010212 xustar00160 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/details/overview.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3588865 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000063615243025017042653 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com
././@PaxHeader0000000000000000000000000000035400000000000010217 xustar00172 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-floatingip/os-designate-floatingip.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3588865 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001067715243025017042661 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-floatingip * * @description * Provides all of the services and widgets required * to support and display DNS (designate) floating ip related content. */ angular .module('designatedashboard.resources.os-designate-floatingip', [ 'ngRoute', 'designatedashboard.resources.os-designate-floatingip.actions', 'designatedashboard.resources.os-designate-floatingip.details' ]) .constant( 'designatedashboard.resources.os-designate-floatingip.resourceType', 'OS::Designate::FloatingIp') .config(config) .run(run); config.$inject = [ '$provide', '$windowProvider' ]; function config($provide, $windowProvider) { var path = $windowProvider.$get().STATIC_URL + 'designatedashboard/resources/os-designate-floatingip/'; $provide.constant('designatedashboard.resources.os-designate-floatingip.basePath', path); } run.$inject = [ 'horizon.app.core.detailRoute', 'horizon.framework.conf.resource-type-registry.service', 'designatedashboard.resources.os-designate-floatingip.api', 'designatedashboard.resources.os-designate-floatingip.resourceType', 'designatedashboard.resources.util' ]; function run(detailRoute, registry, api, resourceTypeString, util) { var resourceType = registry.getResourceType(resourceTypeString); resourceType .setNames(gettext('Floating IP'), gettext('Floating IPs')) .setDefaultIndexUrl('/project/reverse_dns/') .setListFunction(listFloatingIps) .setProperty('id', { label: gettext('ID') }) .setProperty('ptrdname', { label: gettext('PTR Domain Name'), filters: ['noName'] }) .setProperty('description', { label: gettext('PTR Description'), filters: ['noName'] }) .setProperty('ttl', { label: gettext('Time To Live'), filters: ['noValue'] }) .setProperty('address', { label: gettext('Address'), filters: ['noName'] }) .setProperty('status', { label: gettext('Status'), filters: ['lowercase', 'noName'], values: util.statusMap() }) .setProperty('action', { label: gettext('Action'), filters: ['lowercase', 'noName'], values: util.actionMap() }); resourceType .tableColumns .append({ id: 'address', priority: 1, sortDefault: true, template: '{$ item.address $}' }) .append({ id: 'ptrdname', filters: ['noValue'], priority: 1 }) .append({ id: 'status', filters: ['lowercase'], values: util.statusMap(), priority: 2 }); resourceType .filterFacets .append({ label: gettext('Address'), name: 'address', isServer: false, singleton: true, persistent: false }) .append({ label: gettext('PTR Domain Name'), name: 'ptrdname', isServer: false, singleton: true, persistent: false }) .append({ label: gettext('Status'), name: 'status', isServer: false, singleton: true, persistent: false, options: [ {label: gettext('Active'), key: 'active'}, {label: gettext('Pending'), key: 'pending'} ] }); function listFloatingIps() { return api.list().then(function onList(response) { // listFunctions are expected to return data in "items" response.data.items = response.data.floatingips; util.addTimestampIds(response.data.items); return response; }); } } })(); ././@PaxHeader0000000000000000000000000000031200000000000010211 xustar00138 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5157506 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000032200000000000010212 xustar00146 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5159442 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000034300000000000010215 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/actions.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3590565 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000476415243025017042661 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-recordset.actions * * @description * Provides all of the actions for DNS Recordsets. */ angular.module('designatedashboard.resources.os-designate-recordset.actions', [ 'horizon.framework.conf', 'horizon.app.core' ]) .run(run); run.$inject = [ 'horizon.framework.conf.resource-type-registry.service', 'designatedashboard.resources.os-designate-recordset.resourceType', 'designatedashboard.resources.os-designate-recordset.actions.create', 'designatedashboard.resources.os-designate-recordset.actions.delete', 'designatedashboard.resources.os-designate-recordset.actions.update' ]; function run(registry, resourceTypeString, createAction, deleteAction, updateAction) { var resourceType = registry.getResourceType(resourceTypeString); resourceType .itemActions .append({ id: 'updateRecordset', service: updateAction, template: { text: gettext('Update') } }) .append({ id: 'deleteRecordset', service: deleteAction, template: { text: gettext('Delete'), type: 'delete' } }); resourceType .batchActions .append({ id: 'batchDeleteRecordset', service: deleteAction, template: { text: gettext('Delete Record Sets'), type: 'delete-selected' } }); // Append a record set view to the zones actions var zoneResourceType = registry.getResourceType("OS::Designate::Zone"); zoneResourceType .itemActions .append({ id: 'createRecordset', service: createAction, template: { text: gettext('Create Record Set') } }); } })(); ././@PaxHeader0000000000000000000000000000034700000000000010221 xustar00168 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/actions.module.spec.js 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359102 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000367715243025017042663 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; describe('recordset actions module', function() { var registry; beforeEach(module('designatedashboard')); beforeEach(inject(function($injector) { registry = $injector.get('horizon.framework.conf.resource-type-registry.service'); })); it('registers Update as an item action', function() { var actions = registry.getResourceType('OS::Designate::RecordSet').itemActions; expect(actionHasId(actions, 'updateRecordset')).toBe(true); }); it('registers Delete as an item action', function() { var actions = registry.getResourceType('OS::Designate::RecordSet').itemActions; expect(actionHasId(actions, 'deleteRecordset')).toBe(true); }); it('registers Delete Record Sets as a batch action', function() { var actions = registry.getResourceType('OS::Designate::RecordSet').batchActions; expect(actionHasId(actions, 'batchDeleteRecordset')).toBe(true); }); it('registers Create Record Set as a zone item action', function() { var actions = registry.getResourceType('OS::Designate::Zone').itemActions; expect(actionHasId(actions, 'createRecordset')).toBe(true); }); function actionHasId(list, value) { return list.filter(matchesId).length === 1; function matchesId(action) { if (action.id === value) { return true; } } } }); })(); ././@PaxHeader0000000000000000000000000000035000000000000010213 xustar00169 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/common-forms.service.js 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359102 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001121515243025017042646 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-recordset.actions') .factory('designatedashboard.resources.os-designate-recordset.actions.common-forms', service); service.$inject = [ 'designatedashboard.resources.os-designate-recordset.editableTypes', 'designatedashboard.resources.os-designate-recordset.typeMap' ]; /* * Service to return a schema form config for action forms. Especially useful for forms * like create and update that differ only in the readonly state of certain form fields. * * @returns {object} A schema form config */ function service(editableTypes, typeMap) { var service = { getCreateFormConfig: getCreateFormConfig, getUpdateFormConfig: getUpdateFormConfig }; return service; ///////////////// /* * Returns the create form config * @returns {{schema, form, model}|*} */ function getCreateFormConfig() { return getCreateUpdateFormConfig(false); } /* * Return the update form config * @returns {{schema, form, model}|*} */ function getUpdateFormConfig() { return getCreateUpdateFormConfig(true); } /* * Return the create/update form. The two forms are identical except for * during update, some fields are read-only. * * @param readonly - sets readonly value on form fields that change between update and create * @returns {object} a schema form config, including default model */ function getCreateUpdateFormConfig(readonly) { return { schema: { type: "object", properties: { name: { type: "string", pattern: /^.+\.$/ }, description: { type: "string" }, type: { type: "string", enum: editableTypes }, ttl: { type: "integer", minimum: 1, maximum: 2147483647 }, records: { type: "array", items: { type: "object", properties: { record: { type: "string" } } }, minItems: 1, uniqueItems: true } } }, form: [ { key: "type", readonly: readonly, title: gettext("Type"), description: gettext("Select the type of record set"), type: "select", titleMap: editableTypes.map(function toTitleMap(type) { return { value: type, name: typeMap[type] }; }), required: true }, { key: "name", readonly: readonly, type: "text", title: gettext("Name"), description: gettext("DNS name for the record set, ending in '.'"), validationMessage: gettext("DNS name must end with '.'"), placeholder: "www.example.com.", required: true }, { key: "description", type: "textarea", title: gettext("Description"), description: gettext("Details about the zone.") }, { key: "ttl", title: gettext("TTL"), description: gettext("Time To Live in seconds."), type: "number", required: true }, { key: "records", title: gettext("Records"), type: "array", description: gettext("Records for the record set."), add: gettext("Add Record"), items: [ { key: "records[].record", title: gettext("Record") } ], required: true } ], model: { type: "A", ttl: 3600 } }; } } })(); ././@PaxHeader0000000000000000000000000000034200000000000010214 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/create.service.js 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359102 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000766015243025017042657 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-recordset.actions') .factory('designatedashboard.resources.os-designate-recordset.actions.create', action); action.$inject = [ '$q', 'designatedashboard.resources.os-designate-recordset.actions.common-forms', 'designatedashboard.resources.os-designate-recordset.api', 'designatedashboard.resources.os-designate-recordset.resourceType', 'horizon.app.core.openstack-service-api.policy', 'horizon.app.core.openstack-service-api.serviceCatalog', 'horizon.framework.conf.resource-type-registry.service', 'horizon.framework.widgets.form.ModalFormService', 'horizon.framework.widgets.toast.service', 'horizon.framework.widgets.modal-wait-spinner.service' ]; /* * @ngDoc factory * @name designatedashboard.resources.os-designate-recordset.actions.create * * @Description * Brings up the Create Record Set modal. */ function action($q, forms, api, resourceTypeName, policy, serviceCatalog, registry, schemaFormModalService, toast, waitSpinner) { var createRecordSetPolicy, dnsServiceEnabled; var title = gettext("Create Record Set"); var message = { success: gettext('Record Set %s was successfully created.') }; var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ///////////////// function initAction() { createRecordSetPolicy = policy.ifAllowed({rules: [['dns', 'create_recordset']]}); dnsServiceEnabled = serviceCatalog.ifTypeEnabled('dns'); } function allowed() { return $q.all([ createRecordSetPolicy, dnsServiceEnabled ]); } function perform(item) { var formConfig = forms.getCreateFormConfig(); // Store the zone ID so it can be used on submit formConfig.model.zoneId = item.id; formConfig.title = title; return schemaFormModalService.open(formConfig).then(onSubmit, onCancel); } function onSubmit(context) { var model = angular.copy(context.model); var zoneId = model.zoneId; delete model.zoneId; // schema form doesn't appear to support populating arrays directly // Map the records objects to simple array of records var records = context.model.records.map(function (item) { return item.record; }); model.records = records; waitSpinner.showModalSpinner(gettext('Creating Record Set')); return api.create(zoneId, model).then(onSuccess, onFailure); } function onCancel() { waitSpinner.hideModalSpinner(); } function onSuccess(response) { waitSpinner.hideModalSpinner(); var zone = response.data; toast.add('success', interpolate(message.success, [zone.name])); // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form return { created: [{type: resourceTypeName, id: zone.id}], updated: [], deleted: [], failed: [] }; } function onFailure() { waitSpinner.hideModalSpinner(); } } })(); ././@PaxHeader0000000000000000000000000000034200000000000010214 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/delete.service.js 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359102 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001332115243025017042646 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; angular .module('designatedashboard.resources.os-designate-recordset.actions') .factory('designatedashboard.resources.os-designate-recordset.actions.delete', action); action.$inject = [ '$q', 'designatedashboard.resources.os-designate-recordset.api', 'designatedashboard.resources.os-designate-recordset.editableTypes', 'designatedashboard.resources.os-designate-recordset.resourceType', 'horizon.app.core.openstack-service-api.policy', 'horizon.framework.util.actions.action-result.service', 'horizon.framework.util.i18n.gettext', 'horizon.framework.util.q.extensions', 'horizon.framework.widgets.modal.deleteModalService', 'horizon.framework.widgets.toast.service' ]; /* * @ngdoc factory * @name designatedashboard.resources.os-designate-recordset.actions.delete * * @Description * Brings up the delete recordset confirmation modal dialog. * On submit, delete given recordset. * On cancel, do nothing. */ function action( $q, recordsetApi, editableTypes, resourceType, policy, actionResultService, gettext, $qExtensions, deleteModal, toast ) { var context, deletePromise; var notAllowedMessage = gettext("You are not allowed to delete record sets: %s"); var allowedRecordsets = []; var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ////////////// function initAction() { context = { }; deletePromise = policy.ifAllowed({rules: [['dns', 'delete_recordset']]}); } function perform(items, scope) { var recordsets = angular.isArray(items) ? items : [items]; context.labels = labelize(recordsets.length); context.deleteEntity = deleteRecordSet; return $qExtensions .allSettled(recordsets.map(checkPermission)) .then(afterCheck.bind(this, scope)); } function allowed(recordset) { // only row actions pass in recordset // otherwise, assume it is a batch action if (recordset) { return $q.all([ deletePromise, editableRecordType(recordset) ]); } else { return policy.ifAllowed({ rules: [['dns', 'delete_recordset']] }); } } function checkPermission(recordset) { return {promise: allowed(recordset), context: recordset}; } function afterCheck(scope, result) { var outcome = $q.reject().catch(angular.noop); // Reject the promise by default if (result.fail.length > 0) { toast.add('error', getMessage(notAllowedMessage, result.fail)); outcome = $q.reject(result.fail).catch(angular.noop); } if (result.pass.length > 0) { // Remember the record sets we are allowed to delete so that on delete modal submit // we can map the recordset ID back to the full recordset. Then we can fetch the // corresponding zone ID allowedRecordsets = result.pass.map(getEntity); outcome = deleteModal.open(scope, allowedRecordsets, context).then(createResult); } return outcome; } function createResult(deleteModalResult) { // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form var actionResult = actionResultService.getActionResult(); deleteModalResult.pass.forEach(function markDeleted(item) { actionResult.deleted(resourceType, getEntity(item).id); }); deleteModalResult.fail.forEach(function markFailed(item) { actionResult.failed(resourceType, getEntity(item).id); }); return actionResult.result; } function labelize(count) { return { title: ngettext( 'Confirm Delete Record Set', 'Confirm Delete Record Sets', count), message: ngettext( 'You have selected "%s". Deleted record set is not recoverable.', 'You have selected "%s". Deleted record sets are not recoverable.', count), submit: ngettext( 'Delete Record Set', 'Delete Record Sets', count), success: ngettext( 'Deleted Record Set: %s.', 'Deleted Record Sets: %s.', count), error: ngettext( 'Unable to delete Record Set: %s.', 'Unable to delete Record Sets: %s.', count) }; } function editableRecordType(recordset) { return $qExtensions.booleanAsPromise( !(recordset.type === 'NS' && recordset.name === recordset.zone_name) && // not apex NS editableTypes.indexOf(recordset.type) > -1 ); } function deleteRecordSet(recordSetId) { var recordSet = allowedRecordsets.find(function(element) { return element.id === recordSetId; }); return recordsetApi.deleteRecordSet(recordSet.zone_id, recordSet.id); } function getMessage(message, entities) { return interpolate(message, [entities.map(getName).join(", ")]); } function getName(result) { return getEntity(result).name; } function getEntity(result) { return result.context; } } })(); ././@PaxHeader0000000000000000000000000000034200000000000010214 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/actions/update.service.js 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359102 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001163715243025017042656 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-recordset.actions') .factory('designatedashboard.resources.os-designate-recordset.actions.update', action); action.$inject = [ '$q', 'designatedashboard.resources.util', 'designatedashboard.resources.os-designate-recordset.actions.common-forms', 'designatedashboard.resources.os-designate-recordset.api', 'designatedashboard.resources.os-designate-recordset.editableTypes', 'designatedashboard.resources.os-designate-recordset.resourceType', 'horizon.app.core.openstack-service-api.policy', 'horizon.app.core.openstack-service-api.serviceCatalog', 'horizon.framework.util.q.extensions', 'horizon.framework.widgets.form.ModalFormService', 'horizon.framework.widgets.toast.service', 'horizon.framework.widgets.modal-wait-spinner.service' ]; /* * @ngDoc factory * @name designatedashboard.resources.os-designate-recordset.actions.update * * @Description * Brings up the Update modal. */ function action($q, util, forms, api, editableTypes, resourceTypeName, policy, serviceCatalog, $qExtensions, schemaFormModalService, toast, waitSpinner) { var updateRecordSetPolicy; var title = gettext("Update Record Set"); var message = { success: gettext('Record Set was successfully updated.') }; var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ///////////////// function initAction() { updateRecordSetPolicy = policy.ifAllowed({rules: [['dns', 'update_recordset']]}); } function allowed(recordset) { // only supports row action (exactly 1 recordset) if (recordset) { return $q.all([ updateRecordSetPolicy, util.notDeleted(recordset), util.notPending(recordset), editableRecordType(recordset) ]); } else { return false; } } function editableRecordType(recordset) { return $qExtensions.booleanAsPromise( !(recordset.type === 'NS' && recordset.name === recordset.zone_name) && // not apex NS editableTypes.indexOf(recordset.type) > -1 ); } function perform(item) { var formConfig = forms.getUpdateFormConfig(); formConfig.title = title; formConfig.model = util.getModel(formConfig.form, item); // Append the id and zoneId so it can be used on submit formConfig.model.id = item.id; formConfig.model.zoneId = item.zone_id; // schema form doesn't appear to support populating the records array directly // Map the records objects to record objects if (item.hasOwnProperty("records")) { var records = item.records.map(function (item) { return {record: item}; }); formConfig.model.records = records; } return schemaFormModalService.open(formConfig).then(onSubmit, onCancel); } function onSubmit(context) { var model = angular.copy(context.model); // schema form doesn't appear to support populating the records array directly // Map the records objects to simple array of records if (context.model.hasOwnProperty("records")) { var records = context.model.records.map(function (item) { return item.record; }); model.records = records; } waitSpinner.showModalSpinner(gettext('Updating Record Set')); return api.update(model.zoneId, model.id, model).then(onSuccess, onFailure); } function onCancel() { waitSpinner.hideModalSpinner(); } function onSuccess(response) { waitSpinner.hideModalSpinner(); var recordset = response.data; toast.add('success', message.success); // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form return { created: [], updated: [{type: resourceTypeName, id: recordset.id}], deleted: [], failed: [] }; } function onFailure() { waitSpinner.hideModalSpinner(); } } })(); ././@PaxHeader0000000000000000000000000000032700000000000010217 xustar00152 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/api.service.js 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359102 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001054515243025017042653 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-recordset') .factory('designatedashboard.resources.os-designate-recordset.api', apiService); apiService.$inject = [ '$q', 'designatedashboard.apiPassthroughUrl', 'horizon.framework.util.http.service', 'horizon.framework.widgets.toast.service' ]; /* * @ngdoc service * @param {Object} httpService * @param {Object} toastService * @name apiService * @description Provides direct access to Designate Record Set APIs. * @returns {Object} The service */ function apiService($q, apiPassthroughUrl, httpService, toastService) { var service = { get: get, list: list, deleteRecordSet: deleteRecordSet, create: create, update: update }; return service; /////////////// /* * @name list * @description * Get a list of record sets. * * The listing result is an object with property "items." Each item is * a record set. * * @param {Object} params * Query parameters. Optional. * * @returns {Object} The result of the API call */ function list(zoneId, params) { return httpService.get(apiPassthroughUrl + 'v2/zones/' + zoneId + '/recordsets/', params) .catch(function () { toastService.add('error', gettext('Unable to retrieve the record sets.')); }); } /* * @name get * @description * Get a single record set by ID. * * @param {string} zoneId * Specifies the id of the zone containing the record set to request. * * @param {string} recordSetId * Specifies the id of the record set to request. * * @returns {Object} The result of the API call */ function get(zoneId, recordSetId) { // Unfortunately routed-details-view is not happy when load fails, which is // common when then delete action removes a record set. Mask this failure by // always returning a successful promise instead of terminating the $http promise // in the .error handler. return httpService.get( apiPassthroughUrl + 'v2/zones/' + zoneId + '/recordsets/' + recordSetId + '/') .then(undefined, function onError() { toastService.add('error', gettext('Unable to retrieve the record set.')); return $q.when({}); }); } /* * @name delete * @description * Delete a single record set by ID * @param {string} zoneId * The id of the zone containing the recordset * * @param {string} recordSetId * The id of the recordset within the zone * * @returns {*} */ function deleteRecordSet(zoneId, recordSetId) { return httpService.delete( apiPassthroughUrl + 'v2/zones/' + zoneId + '/recordsets/' + recordSetId + '/') .catch(function () { toastService.add('error', gettext('Unable to delete the record set.')); }); } function create(zoneId, data) { return httpService.post(apiPassthroughUrl + 'v2/zones/' + zoneId + '/recordsets/', data) .catch(function () { toastService.add('error', gettext('Unable to create the record set.')); }); } function update(zoneId, recordSetId, data) { // The update API will not accept extra data. Restrict the input to only the allowed // fields var apiData = { ttl: data.ttl, description: data.description, records: data.records }; return httpService.put( apiPassthroughUrl + 'v2/zones/' + zoneId + '/recordsets/' + recordSetId + '/', apiData) .catch(function () { toastService.add('error', gettext('Unable to update the record set.')); }); } } }()); ././@PaxHeader0000000000000000000000000000032200000000000010212 xustar00146 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5161252 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000034200000000000010214 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/details.module.js 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359102 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000625015243025017042651 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-recordset.details * * @description * Provides details features for record sets. */ angular.module('designatedashboard.resources.os-designate-recordset.details', ['horizon.framework.conf', 'horizon.app.core']) .run(run); run.$inject = [ 'designatedashboard.resources.os-designate-recordset.resourceType', 'designatedashboard.resources.os-designate-recordset.api', 'designatedashboard.resources.os-designate-recordset.basePath', 'horizon.framework.conf.resource-type-registry.service' ]; function run( recordSetResourceType, recordSetApi, basePath, registry ) { var resourceType = registry.getResourceType(recordSetResourceType); resourceType .setLoadFunction(loadFunction) .setPathGenerator(pathGenerator) .setPathParser(pathParser) .setSummaryTemplateUrl(basePath + 'details/drawer.html'); /* * * @param identifier * The object returned by the pathParser containing the zone ID and record set ID to load */ function loadFunction(identifier) { return recordSetApi.get(identifier.zoneId, identifier.recordSetId); } /* * Because a record set is contained by a zone, we implement a custom * pathGenerator to encode the zone ID and record set ID for the generic * details panel. * * @param item * A record set * * @returns {string} In format "/" */ function pathGenerator(item) { return item.zone_id + '/' + item.id; } /* * Given a path, extract the zone and record set ids * * @param path * created by pathGenerator * * @returns {{zoneId: *, recordSetId: *}} * The identifier to pass to the load function needed to uniquely identify * a record set. */ function pathParser(path) { var split = path.split('/'); return { zoneId: split[0], recordSetId: split[1] }; } resourceType.detailsViews .prepend({ id: 'recordsetDetailsOverview', name: gettext('Overview'), template: basePath + 'details/overview.html' }, 0); // Append a record set view to the zones resource view var zoneResourceType = registry.getResourceType("OS::Designate::Zone"); zoneResourceType.detailsViews .append({ id: 'zoneRecordSets', name: gettext('Record Sets'), template: basePath + 'details/zone-recordsets.html' }); } })(); ././@PaxHeader0000000000000000000000000000033500000000000010216 xustar00157 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/drawer.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3593895 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000037115243025017042647 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com ././@PaxHeader0000000000000000000000000000035000000000000010213 xustar00168 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/overview.controller.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3593895 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000250115243025017042644 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function() { "use strict"; angular .module('designatedashboard.resources.os-designate-recordset') .controller('designatedashboard.resources.os-designate-recordset.detailController', controller); controller.$inject = [ 'designatedashboard.resources.os-designate-recordset.resourceType', 'horizon.framework.conf.resource-type-registry.service', '$scope' ]; function controller( resourceTypeCode, registry, $scope ) { var ctrl = this; ctrl.item = {}; ctrl.resourceType = registry.getResourceType(resourceTypeCode); $scope.context.loadPromise.then(onGetResponse); function onGetResponse(response) { ctrl.item = response.data; } } })(); ././@PaxHeader0000000000000000000000000000033700000000000010220 xustar00159 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/overview.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3593895 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000257315243025017042655 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com

Details


Associations


Modification Times


././@PaxHeader0000000000000000000000000000035700000000000010222 xustar00175 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/zone-recordsets.controller.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3593895 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000226715243025017042655 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function() { "use strict"; angular .module('designatedashboard.resources.os-designate-recordset') .controller( 'designatedashboard.resources.os-designate-recordset.zoneRecordSetsController', controller); controller.$inject = [ '$scope', 'designatedashboard.resources.os-designate-recordset.resourceType' ]; function controller( $scope, resourceTypeName ) { var ctrl = this; ctrl.item = {}; ctrl.resourceTypeName = resourceTypeName; ctrl.extraListParams = { zoneId: $scope.context.identifier }; } })(); ././@PaxHeader0000000000000000000000000000034600000000000010220 xustar00166 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/zone-recordsets.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3593895 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000044715243025017042653 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com
././@PaxHeader0000000000000000000000000000035200000000000010215 xustar00170 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-recordset/os-designate-recordset.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3593895 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001604115243025017042650 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-recordset * * @description * Provides all of the services and widgets required * to support and display DNS (designate) record set related content. */ angular .module('designatedashboard.resources.os-designate-recordset', [ 'ngRoute', 'designatedashboard.resources.os-designate-recordset.actions', 'designatedashboard.resources.os-designate-recordset.details' ]) .constant( 'designatedashboard.resources.os-designate-recordset.resourceType', 'OS::Designate::RecordSet') .constant( 'designatedashboard.resources.os-designate-recordset.typeMap', { A: gettext('A - Address record'), AAAA: gettext('AAAA - IPv6 address record'), CNAME: gettext('CNAME - Canonical name record'), MX: gettext('MX - Mail exchange record'), PTR: gettext('PTR - Pointer record'), SPF: gettext('SPF - Sender Policy Framework'), SRV: gettext('SRV - Service locator'), SSHFP: gettext('SSHFP - SSH Public Key Fingerprint'), TXT: gettext('TXT - Text record'), SOA: gettext('SOA - Start of authority record'), NS: gettext('NS - Name server'), CAA: gettext('CAA - Certificate Authority Authorization record') }) .constant( 'designatedashboard.resources.os-designate-recordset.editableTypes', [ "A", "AAAA", "CNAME", "MX", "NS", "PTR", "SPF", "SRV", "SSHFP", "TXT", "CAA" ]) .config(config) .run(run); config.$inject = ['$provide', '$windowProvider']; function config($provide, $windowProvider) { var path = $windowProvider.$get().STATIC_URL + 'designatedashboard/resources/os-designate-recordset/'; $provide.constant('designatedashboard.resources.os-designate-recordset.basePath', path); } run.$inject = [ 'horizon.app.core.detailRoute', 'horizon.framework.conf.resource-type-registry.service', 'designatedashboard.resources.os-designate-recordset.api', 'designatedashboard.resources.os-designate-recordset.resourceType', 'designatedashboard.resources.os-designate-recordset.typeMap', 'designatedashboard.resources.util' ]; function run(detailRoute, registry, recordSetApi, resourceTypeString, typeMap, util) { var resourceType = registry.getResourceType(resourceTypeString); resourceType .setNames(gettext('DNS Record Set'), gettext('DNS Record Sets')) .setDefaultIndexUrl('/project/dnszones/') .setListFunction(list) .setProperty('id', { label: gettext('ID') }) .setProperty('zone_id', { label: gettext('Zone ID'), filters: ['noValue'] }) .setProperty('zone_name', { label: gettext('Zone Name'), filters: ['noName'] }) .setProperty('project_id', { label: gettext('Project ID'), filters: ['noValue'] }) .setProperty('name', { label: gettext('Name'), filters: ['noName'] }) .setProperty('description', { label: gettext('Description'), filters: ['noName'] }) .setProperty('type', { label: gettext('Type'), filters: ['uppercase'], values: typeMap }) .setProperty('ttl', { label: gettext('Time To Live'), filters: ['noValue'] }) .setProperty('records', { label: gettext('Records'), filters: ['noValue'] }) .setProperty('notes', { label: gettext('Notes'), filters: ['noName'] }) .setProperty('status', { label: gettext('Status'), filters: ['lowercase', 'noName'], values: util.statusMap() }) .setProperty('action', { label: gettext('Action'), filters: ['lowercase', 'noName'], values: util.actionMap() }) .setProperty('version', { label: gettext('Version'), filters: ['noValue'] }) .setProperty('created_at', { label: gettext('Created At'), filters: ['noValue'] }) .setProperty('updated_at', { label: gettext('Updated At'), filters: ['noValue'] }); resourceType .tableColumns .append({ id: 'name', priority: 1, sortDefault: true, filters: ['noName'], // For link format, see pathGenerator in details.module.js template: '{$ item.name $}' }) .append({ id: 'type', priority: 2, filters: ['uppercase'], values: typeMap }) .append({ id: 'records', priority: 2, filters: ['noValue'] }) .append({ id: 'status', filters: ['lowercase'], values: util.statusMap(), priority: 2 }); resourceType .filterFacets .append({ label: gettext('Type'), name: 'type', isServer: false, singleton: true, persistent: false, options: Object.keys(typeMap).map(function toOptionLabel(key) { return { label: typeMap[key], key: key }; }) }) .append({ label: gettext('Name'), name: 'name', isServer: false, singleton: true, persistent: false }) .append({ label: gettext('Status'), name: 'status', isServer: false, singleton: true, persistent: false, options: [ {label: gettext('Active'), key: 'active'}, {label: gettext('Pending'), key: 'pending'} ] }); /* * list all recordsets within a zone. Requires "zoneId" in the params. All other * params will be passed unmodified as URL params to the API. * * @param params * zoneId (required) list recordsets within the zone * * @returns {*|Object} */ function list(params) { return recordSetApi.list(params.zoneId, params).then(function onList(response) { // listFunctions are expected to return data in "items" response.data.items = response.data.recordsets; util.addTimestampIds(response.data.items); return response; }); } } })(); ././@PaxHeader0000000000000000000000000000030500000000000010213 xustar00133 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5161881 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000031500000000000010214 xustar00141 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5164025 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000033600000000000010217 xustar00158 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/actions.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595126 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000407215243025017042651 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-zone.actions * * @description * Provides all of the actions for DNS Zones. */ angular.module('designatedashboard.resources.os-designate-zone.actions', [ 'horizon.framework.conf', 'horizon.app.core' ]) .run(run); run.$inject = [ 'horizon.framework.conf.resource-type-registry.service', 'designatedashboard.resources.os-designate-zone.resourceType', 'designatedashboard.resources.os-designate-zone.actions.create', 'designatedashboard.resources.os-designate-zone.actions.delete', 'designatedashboard.resources.os-designate-zone.actions.update' ]; function run(registry, resourceTypeString, createAction, deleteAction, updateAction) { var resourceType = registry.getResourceType(resourceTypeString); resourceType .globalActions .append({ id: 'create', service: createAction, template: { text: gettext('Create Zone') } }); resourceType .itemActions .append({ id: 'update', service: updateAction, template: { text: gettext('Update') } }) .append({ id: 'delete', service: deleteAction, template: { text: gettext('Delete'), type: 'delete' } }); } })(); ././@PaxHeader0000000000000000000000000000034300000000000010215 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/actions.module.spec.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000273015243025017042650 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; describe('zone actions module', function() { var registry; beforeEach(module('designatedashboard')); beforeEach(inject(function($injector) { registry = $injector.get('horizon.framework.conf.resource-type-registry.service'); })); it('registers Create Zone as a global action', function() { var actions = registry.getResourceType('OS::Designate::Zone').globalActions; expect(actionHasId(actions, 'create')).toBe(true); }); it('registers Update Zone as a item action', function() { var actions = registry.getResourceType('OS::Designate::Zone').itemActions; expect(actionHasId(actions, 'update')).toBe(true); }); function actionHasId(list, value) { return list.filter(matchesId).length === 1; function matchesId(action) { if (action.id === value) { return true; } } } }); })(); ././@PaxHeader0000000000000000000000000000034400000000000010216 xustar00164 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/common-forms.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001411515243025017042650 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-zone.actions') .factory('designatedashboard.resources.os-designate-zone.actions.common-forms', service); service.$inject = [ ]; /** * Service to return a schema form config for action forms. Especially useful for forms * like create and update that differ only in the readonly state of certain form fields. * * @returns {object} A schema form config */ function service() { var service = { getCreateFormConfig: getCreateFormConfig, getUpdateFormConfig: getUpdateFormConfig }; return service; ///////////////// /* * Returns the create zone form config * @returns {{schema, form, model}|*} */ function getCreateFormConfig() { return getCreateUpdateFormConfig(false); } /* * Return the update zone form config * @returns {{schema, form, model}|*} */ function getUpdateFormConfig() { return getCreateUpdateFormConfig(true); } /* * Return the create/update zone form. The two forms are identical except for * during update, some fields are read-only. * * @param readonly - sets readonly value on form fields that change between update and create * @returns {object} a schema form config, including default model */ function getCreateUpdateFormConfig(readonly) { return { schema: { type: "object", properties: { name: { type: "string", pattern: /^.+\.$/ }, description: { type: "string" }, email: { type: "string", format: "email", pattern: /^[^@]+@[^@]+$/ }, type: { type: "string", enum: [ "PRIMARY", "SECONDARY" ] }, ttl: { type: "integer", minimum: 1, maximum: 2147483647 }, masters: { type: "array", items: { type: "object", properties: { address: { type: "string" } } }, minItems: 1, uniqueItems: true }, attributes: { type: "array", items: { type: "object", properties: { key: { type: "string" }, value: { type: "string" } } } } } }, form: [ { key: "name", readonly: readonly, title: gettext("Name"), description: gettext("Zone name ending in '.'"), validationMessage: gettext("Zone must end with '.'"), placeholder: "example.com.", type: "text", required: true }, { key: "description", type: "textarea", title: gettext("Description"), description: gettext("Details about the zone.") }, { key: "email", title: gettext("Email Address"), description: gettext("Email address to contact the zone owner."), validationMessage: gettext("Email address must contain a single '@' character"), type: "text", condition: "model.type == 'PRIMARY'", required: true }, { key: "ttl", title: gettext("TTL"), description: gettext("Time To Live in seconds."), type: "number", condition: "model.type == 'PRIMARY'", required: true }, { key: "type", readonly: readonly, title: gettext("Type"), description: gettext("Select the type of zone"), type: "select", titleMap: [ { value: "PRIMARY", name: gettext("Primary") }, { value: "SECONDARY", name: gettext("Secondary") } ] }, { key: "masters", readonly: readonly, title: gettext("Masters"), type: "array", description: gettext("DNS master(s) for the Secondary zone."), condition: "model.type == 'SECONDARY'", add: gettext("Add Master"), items: [ { key: "masters[].address", title: gettext("IP Address") } ] }, { key: "attributes", readonly: readonly, title: gettext("Attributes"), type: "array", description: gettext("Key-value pairs for pool scheduling " + "(e.g. pool_id, az)."), add: gettext("Add Attribute"), items: [ { key: "attributes[].key", title: gettext("Key") }, { key: "attributes[].value", title: gettext("Value") } ] } ], model: { type: "PRIMARY", ttl: 3600 } }; } } })(); ././@PaxHeader0000000000000000000000000000033000000000000010211 xustar00152 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/create.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000003015243025017042637 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com

CREATE TEMPLATE

././@PaxHeader0000000000000000000000000000033600000000000010217 xustar00158 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/create.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000776015243025017042660 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-zone.actions') .factory('designatedashboard.resources.os-designate-zone.actions.create', action); action.$inject = [ '$q', 'designatedashboard.resources.os-designate-zone.actions.common-forms', 'designatedashboard.resources.os-designate-zone.api', 'designatedashboard.resources.os-designate-zone.resourceType', 'horizon.app.core.openstack-service-api.policy', 'horizon.app.core.openstack-service-api.serviceCatalog', 'horizon.framework.widgets.form.ModalFormService', 'horizon.framework.widgets.toast.service', 'horizon.framework.widgets.modal-wait-spinner.service' ]; /* * @ngDoc factory * @name designatedashboard.resources.os-designate-zone.actions.create * * @Description * Brings up the Create Zone modal. */ function action($q, forms, api, resourceTypeName, policy, serviceCatalog, schemaFormModalService, toast, waitSpinner) { var createZonePolicy, dnsServiceEnabled; var title = gettext("Create Zone"); var message = { success: gettext('Zone %s was successfully created.') }; var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ///////////////// function initAction() { createZonePolicy = policy.ifAllowed({rules: [['dns', 'create_zone']]}); dnsServiceEnabled = serviceCatalog.ifTypeEnabled('dns'); } function allowed() { return $q.all([ createZonePolicy, dnsServiceEnabled ]); } function perform() { var formConfig = forms.getCreateFormConfig(); formConfig.title = title; return schemaFormModalService.open(formConfig).then(onSubmit, onCancel); } function onSubmit(context) { var zoneModel = angular.copy(context.model); // schema form doesn't appear to support populating the masters array directly // Map the masters objects to simple array of addresses if (context.model.hasOwnProperty("masters")) { var masters = context.model.masters.map(function (item) { return item.address; }); zoneModel.masters = masters; } if (context.model.hasOwnProperty("attributes") && context.model.attributes.length > 0) { var attributes = {}; context.model.attributes.forEach(function (item) { attributes[item.key] = item.value; }); zoneModel.attributes = attributes; } waitSpinner.showModalSpinner(gettext('Creating Zone')); return api.create(zoneModel).then(onSuccess, onFailure); } function onCancel() { waitSpinner.hideModalSpinner(); } function onSuccess(response) { waitSpinner.hideModalSpinner(); var zone = response.data; toast.add('success', interpolate(message.success, [zone.name])); // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form return { created: [{type: resourceTypeName, id: zone.id}], updated: [], deleted: [], failed: [] }; } function onFailure() { waitSpinner.hideModalSpinner(); } } })(); ././@PaxHeader0000000000000000000000000000033600000000000010217 xustar00158 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/delete.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001157415243025017042656 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; angular .module('designatedashboard.resources.os-designate-zone.actions') .factory('designatedashboard.resources.os-designate-zone.actions.delete', action); action.$inject = [ '$q', 'designatedashboard.resources.os-designate-zone.api', 'designatedashboard.resources.util', 'horizon.app.core.openstack-service-api.policy', 'horizon.framework.util.actions.action-result.service', 'horizon.framework.util.i18n.gettext', 'horizon.framework.util.q.extensions', 'horizon.framework.widgets.modal.deleteModalService', 'horizon.framework.widgets.toast.service', 'designatedashboard.resources.os-designate-zone.resourceType' ]; /* * @ngdoc factory * @name designatedashboard.resources.os-designate-zone.actions.delete * * @Description * Brings up the delete zone confirmation modal dialog. * On submit, delete given zone. * On cancel, do nothing. */ function action( $q, zoneApi, util, policy, actionResultService, gettext, $qExtensions, deleteModal, toast, resourceType ) { var context, deleteZonePromise; var notAllowedMessage = gettext("You are not allowed to delete zones: %s"); var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ////////////// function initAction() { context = { }; deleteZonePromise = policy.ifAllowed({rules: [['dns', 'delete_zone']]}); } function perform(items, scope) { var zones = angular.isArray(items) ? items : [items]; context.labels = labelize(zones.length); context.deleteEntity = deleteZone; return $qExtensions .allSettled(zones.map(checkPermission)) .then( afterCheck.bind(this, scope) ); } function allowed(zone) { // only row actions pass in zone // otherwise, assume it is a batch action if (zone) { return $q.all([ deleteZonePromise, util.notDeleted(zone), util.notPending(zone) ]); } else { return policy.ifAllowed({ rules: [['dns', 'delete_zone']] }); } } function checkPermission(zone) { return {promise: allowed(zone), context: zone}; } function afterCheck(scope, result) { var outcome = $q.reject().catch(angular.noop); // Reject the promise by default if (result.fail.length > 0) { toast.add('error', getMessage(notAllowedMessage, result.fail)); outcome = $q.reject(result.fail).catch(angular.noop); } if (result.pass.length > 0) { outcome = deleteModal.open(scope, result.pass.map(getEntity), context).then(createResult); } return outcome; } function createResult(deleteModalResult) { // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form var actionResult = actionResultService.getActionResult(); deleteModalResult.pass.forEach(function markDeleted(item) { actionResult.deleted(resourceType, getEntity(item).id); }); deleteModalResult.fail.forEach(function markFailed(item) { actionResult.failed(resourceType, getEntity(item).id); }); return actionResult.result; } function labelize(count) { return { title: ngettext( 'Confirm Delete Zone', 'Confirm Delete Zones', count), message: ngettext( 'You have selected "%s". Deleted zone is not recoverable.', 'You have selected "%s". Deleted zones are not recoverable.', count), submit: ngettext( 'Delete Zone', 'Delete Zones', count), success: ngettext( 'Deleted Zone: %s.', 'Deleted Zones: %s.', count), error: ngettext( 'Unable to delete Zone: %s.', 'Unable to delete Zones: %s.', count) }; } function deleteZone(zone) { return zoneApi.deleteZone(zone, true); } function getMessage(message, entities) { return interpolate(message, [entities.map(getName).join(", ")]); } function getName(result) { return getEntity(result).name; } function getEntity(result) { return result.context; } } })(); ././@PaxHeader0000000000000000000000000000033600000000000010217 xustar00158 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/actions/update.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001046415243025017042653 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * * (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use self file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-zone.actions') .factory('designatedashboard.resources.os-designate-zone.actions.update', action); action.$inject = [ '$q', 'designatedashboard.resources.os-designate-zone.actions.common-forms', 'designatedashboard.resources.os-designate-zone.api', 'designatedashboard.resources.os-designate-zone.resourceType', 'designatedashboard.resources.util', 'horizon.app.core.openstack-service-api.policy', 'horizon.app.core.openstack-service-api.serviceCatalog', 'horizon.framework.widgets.form.ModalFormService', 'horizon.framework.widgets.toast.service', 'horizon.framework.widgets.modal-wait-spinner.service' ]; /* * @ngDoc factory * @name designatedashboard.resources.os-designate-zone.actions.update * * @Description * Brings up the Update Zone modal. */ function action($q, forms, api, resourceTypeName, util, policy, serviceCatalog, schemaFormModalService, toast, waitSpinner) { var updateZonePolicy; var title = gettext("Update Zone"); var message = { success: gettext('Zone was successfully updated.') }; var service = { initAction: initAction, allowed: allowed, perform: perform }; return service; ///////////////// function initAction() { updateZonePolicy = policy.ifAllowed({rules: [['dns', 'update_zone']]}); } function allowed(zone) { // only supports row action (exactly 1 zone) if (zone) { return $q.all([ updateZonePolicy, util.notDeleted(zone), util.notPending(zone) ]); } else { return false; } } function perform(item) { var formConfig = forms.getUpdateFormConfig(); formConfig.title = title; formConfig.model = util.getModel(formConfig.form, item); // Append the id so it can be used on submit formConfig.model.id = item.id; // schema form doesn't appear to support populating the masters array directly // Map the masters objects to address objects if (item.hasOwnProperty("masters")) { var masters = item.masters.map(function (item) { return { address: item }; }); formConfig.model.masters = masters; } return schemaFormModalService.open(formConfig).then(onSubmit, onCancel); } function onSubmit(context) { var zoneModel = angular.copy(context.model); // schema form doesn't appear to support populating the masters array directly // Map the masters objects to simple array of addresses if (context.model.hasOwnProperty("masters")) { var masters = context.model.masters.map(function (item) { return item.address; }); zoneModel.masters = masters; } waitSpinner.showModalSpinner(gettext('Updating Zone')); return api.update(zoneModel.id, zoneModel).then(onSuccess, onFailure); } function onCancel() { waitSpinner.hideModalSpinner(); } function onSuccess(response) { waitSpinner.hideModalSpinner(); var zone = response.data; toast.add('success', message.success); // To make the result of this action generically useful, reformat the return // from the deleteModal into a standard form return { created: [], updated: [{type: resourceTypeName, id: zone.id}], deleted: [], failed: [] }; } function onFailure() { waitSpinner.hideModalSpinner(); } } })(); ././@PaxHeader0000000000000000000000000000032300000000000010213 xustar00147 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/api.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001033015243025017042643 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources.os-designate-zone') .factory('designatedashboard.resources.os-designate-zone.api', apiService); apiService.$inject = [ 'designatedashboard.apiPassthroughUrl', 'horizon.framework.util.http.service', 'horizon.framework.widgets.toast.service' ]; /* * @ngdoc service * @param {Object} httpService * @param {Object} toastService * @name apiService * @description Provides direct access to Designate Zone APIs. * @returns {Object} The service */ function apiService(apiPassthroughUrl, httpService, toastService) { var service = { get: get, list: list, deleteZone: deleteZone, create: create, update: update }; return service; /////////////// /** * @name list * @description * Get a list of zones. * * The listing result is an object with property "items." Each item is * a zone. * * @param {Object} params * Query parameters. Optional. * * @returns {Object} The result of the API call */ /* function list(params) { var config = params ? {'params': params} : {}; return httpService.get('/api/designate/zones/', config) .catch(function () { toastService.add('error', gettext('Unable to retrieve the zone.')); }); }*/ function list(params) { var config = params ? {params: params} : {}; return httpService.get(apiPassthroughUrl + 'v2/zones/', config) .catch(function () { toastService.add('error', gettext('Unable to retrieve the zone.')); }); } /** * @name get * @description * Get a single zone by ID. * * @param {string} id * Specifies the id of the zone to request. * * @returns {Object} The result of the API call */ function get(id) { return httpService.get(apiPassthroughUrl + 'v2/zones/' + id + '/') .catch(function () { toastService.add('error', gettext('Unable to retrieve the zone.')); }); } /* * @name deleteZone * @description * Delete a single zone by ID * @param id * @returns {*} */ function deleteZone(id) { return httpService.delete(apiPassthroughUrl + 'v2/zones/' + id + '/') .catch(function () { toastService.add('error', gettext('Unable to delete the zone.')); }); } /** * @name create * @description * Create a zone * * @param {Object} data * Specifies the zone information to create * * @returns {Object} The created zone object */ function create(data) { return httpService.post(apiPassthroughUrl + 'v2/zones/', data) .catch(function() { toastService.add('error', gettext('Unable to create the zone.')); }); } /** * @name create * @description * Update a zone * * @param {Object} id - zone id * @param {Object} data to pass directly to zone update API * Specifies the zone information to update * * @returns {Object} The updated zone object */ function update(id, data) { // The update API will not accept extra data. Restrict the input to only the allowed // fields var apiData = { email: data.email, ttl: data.ttl, description: data.description }; return httpService.patch(apiPassthroughUrl + 'v2/zones/' + id + '/', apiData) .catch(function() { toastService.add('error', gettext('Unable to update the zone.')); }); } } }()); ././@PaxHeader0000000000000000000000000000031500000000000010214 xustar00141 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/details/ 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5171793 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000755000000000000000000000000015243025054042645 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000033600000000000010217 xustar00158 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/details/details.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3595402 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000337715243025017042660 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function() { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-zone.details * * @description * Provides details features for zones. */ angular.module('designatedashboard.resources.os-designate-zone.details', ['horizon.framework.conf', 'horizon.app.core']) .run(run); run.$inject = [ 'designatedashboard.resources.os-designate-zone.resourceType', 'designatedashboard.resources.os-designate-zone.api', 'designatedashboard.resources.os-designate-zone.basePath', 'horizon.framework.conf.resource-type-registry.service' ]; function run( zoneResourceType, zoneApi, basePath, registry ) { var resourceType = registry.getResourceType(zoneResourceType); resourceType .setLoadFunction(loadFunction) .setSummaryTemplateUrl(basePath + 'details/drawer.html'); resourceType.detailsViews .prepend({ id: 'zoneDetailsOverview', name: gettext('Overview'), template: basePath + 'details/overview.html' }, 0); function loadFunction(identifier) { return zoneApi.get(identifier); } } })(); ././@PaxHeader0000000000000000000000000000033000000000000010211 xustar00152 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/details/drawer.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000040215243025017042642 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com ././@PaxHeader0000000000000000000000000000034300000000000010215 xustar00163 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/details/overview.controller.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000305215243025017042646 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function() { "use strict"; angular .module('designatedashboard.resources.os-designate-zone') .controller('designatedashboard.resources.os-designate-zone.detailController', controller); controller.$inject = [ 'designatedashboard.resources.os-designate-zone.resourceType', 'horizon.framework.conf.resource-type-registry.service', '$scope' ]; function controller( resourceTypeCode, registry, $scope ) { var ctrl = this; ctrl.item = {}; ctrl.resourceType = registry.getResourceType(resourceTypeCode); $scope.context.loadPromise.then(onGetResponse); function onGetResponse(response) { ctrl.item = response.data; var attr = ''; var keys = Object.keys(response.data.attributes); for (var i = keys.length - 1; i >= 0; i--) { attr += keys[i] + ':' + response.data.attributes[keys[i]] + ', '; } ctrl.item.attributes = attr; } } })(); ././@PaxHeader0000000000000000000000000000033200000000000010213 xustar00154 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/details/overview.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000333415243025017042651 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com

Details


Attributes


Modification Times


Associations


././@PaxHeader0000000000000000000000000000034000000000000010212 xustar00160 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/os-designate-zone/os-designate-zone.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000001326215243025017042652 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ (function () { 'use strict'; /** * @ngdoc overview * @ngname designatedashboard.resources.os-designate-zone * * @description * Provides all of the services and widgets required * to support and display DNS (designate) zone related content. */ angular .module('designatedashboard.resources.os-designate-zone', [ 'ngRoute', 'designatedashboard.resources.os-designate-zone.actions', 'designatedashboard.resources.os-designate-zone.details' ]) .constant( 'designatedashboard.resources.os-designate-zone.resourceType', 'OS::Designate::Zone') .config(config) .run(run); config.$inject = ['$provide', '$windowProvider']; function config($provide, $windowProvider) { var path = $windowProvider.$get().STATIC_URL + 'designatedashboard/resources/os-designate-zone/'; $provide.constant('designatedashboard.resources.os-designate-zone.basePath', path); } run.$inject = [ 'horizon.app.core.detailRoute', 'horizon.framework.conf.resource-type-registry.service', 'designatedashboard.resources.os-designate-zone.api', 'designatedashboard.resources.os-designate-zone.resourceType', 'designatedashboard.resources.util' ]; function run(detailRoute, registry, zoneApi, resourceTypeString, util) { var resourceType = registry.getResourceType(resourceTypeString); resourceType .setNames(gettext('DNS Zone'), gettext('DNS Zones')) .setDefaultIndexUrl('/project/dnszones/') .setListFunction(listZones) .setProperty('action', { label: gettext('Action'), filters: ['lowercase', 'noName'], values: util.actionMap() }) .setProperty('attributes', { label: gettext('Attributes') }) .setProperty('created_at', { label: gettext('Created At'), filters: ['noValue'] }) .setProperty('description', { label: gettext('Description'), filters: ['noName'] }) .setProperty('email', { label: gettext('Email'), filters: ['noName'] }) .setProperty('id', { label: gettext('ID') }) .setProperty('masters', { label: gettext('Masters'), filters: ['noValue'] }) .setProperty('name', { label: gettext('Name'), filters: ['noName'] }) .setProperty('pool_id', { label: gettext('Pool ID') }) .setProperty('project_id', { label: gettext('Project ID') }) .setProperty('serial', { label: gettext('Serial'), filters: ['noValue'] }) .setProperty('status', { label: gettext('Status'), filters: ['lowercase', 'noName'], values: util.statusMap() }) .setProperty('transferred_at', { label: gettext('Transferred At'), filters: ['noValue'] }) .setProperty('ttl', { label: gettext('Time To Live'), filters: ['noValue'] }) .setProperty('type', { label: gettext('Type'), filters: ['lowercase', 'noName'], values: typeMap() }) .setProperty('updated_at', { label: gettext('Updated At'), filters: ['noValue'] }) .setProperty('version', { label: gettext('Version'), filters: ['noValue'] }); resourceType .tableColumns .append({ id: 'name', priority: 1, sortDefault: true, template: '{$ item.name $}' }) .append({ id: 'type', filters: ['lowercase'], values: typeMap(), priority: 2 }) .append({ id: 'status', filters: ['lowercase'], values: util.statusMap(), priority: 2 }); resourceType .filterFacets .append({ label: gettext('Name'), name: 'name', isServer: false, singleton: true, persistent: false }) .append({ label: gettext('Type'), name: 'type', isServer: false, singleton: true, persistent: false, options: [ {label: gettext('Primary'), key: 'primary'}, {label: gettext('Secondary'), key: 'secondary'} ] }) .append({ label: gettext('Status'), name: 'status', isServer: false, singleton: true, persistent: false, options: [ {label: gettext('Active'), key: 'active'}, {label: gettext('Pending'), key: 'pending'} ] }); function typeMap() { return { primary: gettext('Primary'), secondary: gettext('Secondary') }; } function listZones() { return zoneApi.list().then(function onList(response) { // listFunctions are expected to return data in "items" response.data.items = response.data.zones; util.addTimestampIds(response.data.items, 'id', 'updated_at'); return response; }); } } })(); ././@PaxHeader0000000000000000000000000000030600000000000010214 xustar00134 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/resources.module.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000231315243025017042645 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/* * (c) Copyright 2016 Hewlett-Packard Development Company, L.P. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function () { 'use strict'; /** * @ngdoc overview * @name designatedashboard.resources * @description * * # designatedashboard.resources * * This module hosts registered resource types. This module file may * contain individual registrations, or may have sub-modules that * more fully contain registrations. */ angular .module('designatedashboard.resources', [ 'designatedashboard.resources.os-designate-recordset', 'designatedashboard.resources.os-designate-zone', 'designatedashboard.resources.os-designate-floatingip' ]); })(); ././@PaxHeader0000000000000000000000000000030200000000000010210 xustar00130 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resources/util.service.js 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/resou0000644000000000000000000000635315243025017042655 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * (c) Copyright 2016 Hewlett Packard Enterprise Development LP * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function () { 'use strict'; angular .module('designatedashboard.resources') .factory('designatedashboard.resources.util', utilService); utilService.$inject = [ 'horizon.framework.util.q.extensions' ]; function utilService($qExtensions) { var service = { notDeleted: notDeleted, notPending: notPending, getModel: getModel, actionMap: actionMap, statusMap: statusMap, addTimestampIds: addTimestampIds }; return service; /////////////// function notDeleted(resource) { return $qExtensions.booleanAsPromise(resource.status !== 'DELETED'); } function notPending(resource) { return $qExtensions.booleanAsPromise(resource.status !== 'PENDING'); } /* * Build a model object based on the given item, using only the fields * present in the form config 'key's. Only 'truthy' values are copied. * * @param form - an array of objects describing the form. Must have a 'key' attribute. * @param item - the data to copy into the model */ function getModel(form, item) { var result = {}; var value; form.forEach(function iterateForm(formItem) { value = item[formItem.key]; if (value) { result[formItem.key] = item[formItem.key]; } }); return result; } function actionMap() { return { none: gettext('None'), create: gettext('Create') }; } function statusMap() { return { active: gettext('Active'), pending: gettext('Pending') }; } /* * hz-resource-table tracks by 'id' which doesn't change when an individual item is updated. * Create a synthetic '_timestampId' using the item id plus the specified timestamp field. * When this field is used as a track-by in hz-resource-table, items in the table to update * after row actions. * * If a timestamp field is not specified, the current time is used. * * @param items {object} - The items to add a _timestampId. * @param idField {string} - (Optional) A field on the item to use as the id. Defaults to 'id' * @param timestampField {string} - (Optional) A field on item to use as a timestamp. Defaults * to current time. */ function addTimestampIds(items, idField, timestampField) { var _idField = idField || 'id'; var timestamp = Date.now(); items.map(function annotateFloatingIp(item) { if (angular.isDefined(timestampField)) { timestamp = item[timestampField]; } item._timestampId = item[_idField] + timestamp; }); } } }()); ././@PaxHeader0000000000000000000000000000027100000000000010215 xustar00121 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/reverse_dns.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/rever0000644000000000000000000000033615243025017042636 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com ././@PaxHeader0000000000000000000000000000026300000000000010216 xustar00115 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/zones.html 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/static/designatedashboard/zones0000644000000000000000000000032215243025017042644 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5175676 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/tests/0000755000000000000000000000000015243025054035627 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/tests/.secret_key_store0000644000000000000000000000010015243025017041167 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com5NMb6ZfXYBLClFGFYf6VkbiJ9TRNyU3w8NQHPG8LXJltU8EZFeB7I632vQ8MF5m6././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3597715 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/tests/__init__.py0000644000000000000000000000000015243025017037725 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359981 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/tests/base.py0000644000000000000000000000361015243025017037112 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# -*- coding: utf-8 -*- # Copyright 2010-2011 OpenStack Foundation # Copyright (c) 2013 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import os import fixtures import testtools _TRUE_VALUES = ('True', 'true', '1', 'yes') class TestCase(testtools.TestCase): """Test case base class for all unit tests.""" def setUp(self): """Run before each test method to initialize test environment.""" super(TestCase, self).setUp() test_timeout = os.environ.get('OS_TEST_TIMEOUT', 0) try: test_timeout = int(test_timeout) except ValueError: # If timeout value is invalid do not set a timeout. test_timeout = 0 if test_timeout > 0: self.useFixture(fixtures.Timeout(test_timeout, gentle=True)) self.useFixture(fixtures.NestedTempfile()) self.useFixture(fixtures.TempHomeDir()) if os.environ.get('OS_STDOUT_CAPTURE') in _TRUE_VALUES: stdout = self.useFixture(fixtures.StringStream('stdout')).stream self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout)) if os.environ.get('OS_STDERR_CAPTURE') in _TRUE_VALUES: stderr = self.useFixture(fixtures.StringStream('stderr')).stream self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr)) self.log_fixture = self.useFixture(fixtures.FakeLogger()) ././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359981 designate_dashboard-22.0.0+git20260709.20.98a0a76/designatedashboard/tests/settings.py0000644000000000000000000000253515243025017040045 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Copyright 2015 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Default to Horizons test settings to avoid any missing keys import openstack_dashboard.enabled # noqa: F811 from openstack_dashboard.test.settings import * # noqa: F403,H303 from openstack_dashboard.utils import settings import designatedashboard.enabled # pop these keys to avoid log warnings about deprecation # update_dashboards will populate them anyway HORIZON_CONFIG.pop('dashboards', None) HORIZON_CONFIG.pop('default_dashboard', None) # Update the dashboards with designatedashboard enabled files # and current INSTALLED_APPS settings.update_dashboards( [ openstack_dashboard.enabled, designatedashboard.enabled, ], HORIZON_CONFIG, INSTALLED_APPS ) # Remove duplicated apps INSTALLED_APPS = list(set(INSTALLED_APPS)) ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5175998 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/0000755000000000000000000000000015243025054031417 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.359981 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/requirements.txt0000644000000000000000000000015415243025017034702 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comsphinxcontrib-svg2pdfconverter>=1.2.3 # BSD openstackdocstheme>=3.5.0 # Apache-2.0 reno>=4.1.0 # Apache-2.0 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5176637 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/0000755000000000000000000000000015243025054032717 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.360063 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/conf.py0000644000000000000000000000573215243025017034224 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless reqdashboardred by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. import os import sys sys.path.insert(0, os.path.abspath('../..')) # -- General configuration ---------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ 'sphinx.ext.autodoc', #'sphinx.ext.intersphinx', 'openstackdocstheme', 'sphinxcontrib.rsvgconverter', ] # openstackdocstheme options openstackdocs_repo_name = 'openstack/designate-dashboard' openstackdocs_pdf_link = True openstackdocs_bug_project = 'designate-dashboard' openstackdocs_bug_tag = '' html_theme = 'openstackdocs' # autodoc generation is a bit aggressive and a ndashboardsance when doing heavy # text edit cycles. # execute "export SPHINX_DEBUG=1" in your terminal to disable # The suffix of source filenames. source_suffix = '.rst' # The master toctree document. master_doc = 'index' # General information about the project. project = 'designate_dashboard' copyright = '2013, OpenStack Foundation' # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = True # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'native' # -- Options for HTML output -------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. # html_theme_path = ["."] # html_theme = '_theme' # html_static_path = ['static'] # Output file base name for HTML help bdashboardlder. htmlhelp_basename = '%sdoc' % project # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass # [howto/manual]). latex_documents = [ ('index', 'doc-designate-dashboard.tex', 'Designate Dashboard Documentation', 'OpenStack Foundation', 'manual', True), ] latex_domain_indices = False latex_elements = { # Additional stuff for the LaTeX preamble. # openany: Skip blank pages in generated PDFs 'extraclassoptions': 'openany,oneside', 'makeindex': '', 'printindex': '', 'preamble': r'\setcounter{tocdepth}{3}', } # Example configuration for intersphinx: refer to the Python standard library. #intersphinx_mapping = {'https://docs.python.org/': None} ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5176897 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/contributor/0000755000000000000000000000000015243025054035271 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/contributor/index.rst0000644000000000000000000000011715243025017037130 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com============ Contributing ============ .. include:: ../../../CONTRIBUTING.rst ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/index.rst0000644000000000000000000000044015243025017034555 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com============================================= Welcome to Designate Dashboard Documentation ============================================= .. toctree:: :maxdepth: 2 install/index user/index contributor/index .. rubric:: Indices and tables * :ref:`genindex` * :ref:`search` ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5179293 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/install/0000755000000000000000000000000015243025054034365 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/install/index.rst0000644000000000000000000000034115243025017036223 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com============ Installation ============ At the command line:: $ pip install designate_dashboard Or, if you have virtualenvwrapper installed:: $ mkvirtualenv designate_dashboard $ pip install designate_dashboard././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5179965 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/user/0000755000000000000000000000000015243025054033675 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/doc/source/user/index.rst0000644000000000000000000000013715243025017035536 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com======== Usage ======== To use designate_dashboard in a project:: import designate_dashboard././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/karma.conf.js0000644000000000000000000001164215243025017033232 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/* * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; var fs = require('fs'); var path = require('path'); module.exports = function (config) { // This tox venv is setup in the post-install npm step var toxPath = path.resolve('./.tox/npm'); if (!toxPath) { console.error('xStatic libraries not found, please run `tox -e npm`'); process.exit(1); } toxPath += '/lib/'; toxPath += fs.readdirSync(toxPath).find(function(directory) { return directory.indexOf('python') === 0; }); toxPath += '/site-packages/'; var xstaticPath = toxPath + 'xstatic/pkg/'; config.set({ preprocessors: { // Used to collect templates for preprocessing. // NOTE: the templates must also be listed in the files section below. './static/**/*.html': ['ng-html2js'] }, // Sets up module to process templates. ngHtml2JsPreprocessor: { prependPrefix: '/', moduleName: 'templates' }, basePath: './', // Contains both source and test files. files: [ /* * shim, partly stolen from /i18n/js/horizon/ * Contains expected items not provided elsewhere (dynamically by * Django or via jasmine template. */ './test-shim.js', // from jasmine.html xstaticPath + 'jquery/data/jquery.js', xstaticPath + 'angular/data/angular.js', xstaticPath + 'angular/data/angular-route.js', xstaticPath + 'angular/data/angular-mocks.js', xstaticPath + 'angular/data/angular-cookies.js', xstaticPath + 'angular_bootstrap/data/angular-bootstrap.js', xstaticPath + 'angular_gettext/data/angular-gettext.js', xstaticPath + 'angular_fileupload/data/ng-file-upload-all.js', xstaticPath + 'angular/data/angular-sanitize.js', xstaticPath + 'd3/data/d3.js', xstaticPath + 'rickshaw/data/rickshaw.js', xstaticPath + 'angular_smart_table/data/smart-table.js', xstaticPath + 'angular_lrdragndrop/data/lrdragndrop.js', xstaticPath + 'spin/data/spin.js', xstaticPath + 'spin/data/spin.jquery.js', xstaticPath + 'tv4/data/tv4.js', xstaticPath + 'objectpath/data/ObjectPath.js', xstaticPath + 'angular_schema_form/data/schema-form.js', // TODO: These should be mocked. toxPath + '/horizon/static/horizon/js/horizon.js', /** * Include framework source code from horizon that we need. * Otherwise, karma will not be able to find them when testing. * These files should be mocked in the foreseeable future. */ toxPath + 'horizon/static/framework/**/*.module.js', toxPath + 'horizon/static/framework/**/!(*.spec|*.mock).js', toxPath + 'openstack_dashboard/static/**/*.module.js', toxPath + 'openstack_dashboard/static/**/!(*.spec|*.mock).js', toxPath + 'openstack_dashboard/dashboards/**/static/**/*.module.js', toxPath + 'openstack_dashboard/dashboards/**/static/**/!(*.spec|*.mock).js', /** * First, list all the files that defines application's angular modules. * Those files have extension of `.module.js`. The order among them is * not significant. */ './designatedashboard/static/**/*.module.js', /** * Followed by other JavaScript files that defines angular providers * on the modules defined in files listed above. And they are not mock * files or spec files defined below. The order among them is not * significant. */ './designatedashboard/static/**/!(*.spec|*.mock).js', /** * Then, list files for mocks with `mock.js` extension. The order * among them should not be significant. */ toxPath + 'openstack_dashboard/static/**/*.mock.js', //'./static/**/*.mock.js', /** * Finally, list files for spec with `spec.js` extension. The order * among them should not be significant. */ './designatedashboard/static/**/*.spec.js', /** * Angular external templates */ './designatedashboard/static/**/*.html', ], autoWatch: true, frameworks: ['jasmine'], browsers: ['Firefox'], phantomjsLauncher: { // Have phantomjs exit if a ResourceError is encountered // (useful if karma exits without killing phantom) exitOnResourceError: true }, reporters: ['progress'], plugins: [ 'karma-firefox-launcher', 'karma-jasmine', 'karma-ng-html2js-preprocessor' ] }); }; ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/manage.py0000755000000000000000000000156515243025017032465 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com#!/usr/bin/env python3 # Copyright 2014 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import os import sys if __name__ == "__main__": os.environ.setdefault( "DJANGO_SETTINGS_MODULE", "openstack_dashboard.settings") from django.core.management import execute_from_command_line # noqa execute_from_command_line(sys.argv) ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/package.json0000644000000000000000000000141015243025017033133 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com{ "version": "0.0.0", "private": true, "name": "designate-dashboard", "description": "Designate Dashboard", "repository": "none", "license": "Apache 2.0", "devDependencies": { "eslint": "^1.10.3", "eslint-config-openstack": "1.2.4", "eslint-plugin-angular": "^1.0.1", "jasmine-core": "2.4.1", "karma": "~1.1.2", "karma-firefox-launcher": "2.1.0", "karma-cli": "1.0.1", "karma-jasmine": "1.0.2", "karma-ng-html2js-preprocessor": "1.0.0" }, "scripts": { "postinstall": "if [ ! -d .tox/npm ]; then tox -e npm --notest; fi", "lint": "eslint --no-color designatedashboard/static", "lintq": "eslint --quiet designatedashboard/static", "test": "karma start karma.conf.js --single-run" }, "dependencies": {} } ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3600922 designate_dashboard-22.0.0+git20260709.20.98a0a76/pyproject.toml0000644000000000000000000000230615243025017033566 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com[build-system] requires = ["pbr>=6.1.1"] build-backend = "pbr.build" [project] name = "designate-dashboard" description = "Designate Horizon UI bits" authors = [ {name = "OpenStack", email = "openstack-discuss@lists.openstack.org"}, ] readme = {file = "README.rst", content-type = "text/x-rst"} license = "Apache-2.0" dynamic = ["version", "dependencies"] requires-python = ">=3.11" classifiers = [ "Environment :: OpenStack", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", ] [project.urls] Homepage = "https://docs.openstack.org/designate-dashboard/latest/" Repository = "https://opendev.org/openstack/designate-dashboard" "Bug Tracker" = "https://bugs.launchpad.net/designate-dashboard/" [tool.setuptools.packages.find] include = ["designatedashboard*"] ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/0000755000000000000000000000000015243025054033343 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.518631 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/0000755000000000000000000000000015243025054034473 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000027400000000000010220 xustar00124 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/batch-delete-recordsets-a1b2c3d4e5f6g7h8.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603356 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/batch-delete-recordsets-a1b2c3d0000644000000000000000000000042615243025017042230 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- features: - | Added batch delete support for record sets. Users can now select multiple record sets and delete them at once, similar to other OpenStack Dashboard resource panels. `LP#1759750 `__ ././@PaxHeader0000000000000000000000000000026000000000000010213 xustar00112 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/drop-py-2-7-ae8cade4a0ee1da8.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/drop-py-2-7-ae8cade4a0ee1da8.ya0000644000000000000000000000034415243025017041510 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | Python 2.7 support has been dropped. Last release of designate-dashboard to support python 2.7 is OpenStack Train. The minimum version of Python now supported by designate-dashboard is Python 3.6. ././@PaxHeader0000000000000000000000000000027400000000000010220 xustar00124 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/drop-python-3-6-and-3-7-8d166b2f80b27277.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/drop-python-3-6-and-3-7-8d166b20000644000000000000000000000020015243025017041231 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | Python 3.6 & 3.7 support has been dropped. The minimum version of Python now supported is Python 3.8.././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/drop-python-39.yaml0000644000000000000000000000010015243025017040061 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | Support for Python 3.9 has been dropped. ././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/min-openstacksdk-b7e4661f8800bb9c.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/min-openstacksdk-b7e4661f8800bb0000644000000000000000000000014015243025017041650 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | The designate dashboard requires a minimum openstacksdk version of 2.1.0 ././@PaxHeader0000000000000000000000000000026100000000000010214 xustar00113 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/openstacksdk-11483491f9978bd1.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/openstacksdk-11483491f9978bd1.y0000644000000000000000000000010615243025017041364 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | The designate dashboard now needs openstacksdk ././@PaxHeader0000000000000000000000000000027300000000000010217 xustar00123 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/remove-designateclient-e98963b8baa4aa4f.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/remove-designateclient-e98963b80000644000000000000000000000012515243025017042147 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | The ``python-designateclient`` library is no longer required. ././@PaxHeader0000000000000000000000000000026400000000000010217 xustar00116 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/remove-oslo-log-078df11995380f36.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/remove-oslo-log-078df11995380f30000644000000000000000000000010715243025017041364 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | The ``oslo.log`` library is no longer required. ././@PaxHeader0000000000000000000000000000026000000000000010213 xustar00112 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/remove-py38-1bc6676c8e5e880c.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/remove-py38-1bc6676c8e5e880c.ya0000644000000000000000000000016615243025017041357 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | Support for Python 3.8 has been removed. Now the minimum python version supported is 3.9 . ././@PaxHeader0000000000000000000000000000027100000000000010215 xustar00121 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/removed-v1-dashboard-56d4697d57baef09.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/removed-v1-dashboard-56d4697d570000644000000000000000000000010415243025017041570 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- upgrade: - | Removed the long deprecated v1 API dashboard.././@PaxHeader0000000000000000000000000000026400000000000010217 xustar00116 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/zone-attributes-f1eed62987954b8c.yaml 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/notes/zone-attributes-f1eed62987954b80000644000000000000000000000054315243025017041654 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com--- features: - | Added support for zone attributes in the zone creation form. Users can now specify key-value attributes (e.g. pool_id) when creating a zone, which Designate uses for pool scheduling. To make use of this feature, the relevant scheduler filters (such as ``attribute``) must be enabled in the Designate configuration. ././@PaxHeader0000000000000000000000000000007600000000000010220 xustar0018 uid=1360376536 18 gid=1360376536 26 mtime=1787570731.51914 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/0000755000000000000000000000000015243025054034643 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3603694 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/2023.1.rst0000644000000000000000000000021015243025017036112 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== 2023.1 Series Release Notes =========================== .. release-notes:: :branch: unmaintained/2023.1 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/2023.2.rst0000644000000000000000000000020215243025017036114 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== 2023.2 Series Release Notes =========================== .. release-notes:: :branch: stable/2023.2 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/2024.1.rst0000644000000000000000000000021015243025017036113 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== 2024.1 Series Release Notes =========================== .. release-notes:: :branch: unmaintained/2024.1 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/2024.2.rst0000644000000000000000000000020215243025017036115 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== 2024.2 Series Release Notes =========================== .. release-notes:: :branch: stable/2024.2 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/2025.1.rst0000644000000000000000000000020215243025017036115 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== 2025.1 Series Release Notes =========================== .. release-notes:: :branch: stable/2025.1 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/2025.2.rst0000644000000000000000000000020215243025017036116 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== 2025.2 Series Release Notes =========================== .. release-notes:: :branch: stable/2025.2 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/2026.1.rst0000644000000000000000000000020215243025017036116 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== 2026.1 Series Release Notes =========================== .. release-notes:: :branch: stable/2026.1 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/conf.py0000644000000000000000000002065715243025017036153 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Designate dashboard Release Notes documentation build configuration file. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('.')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'openstackdocstheme', 'reno.sphinxext', ] # openstackdocstheme options openstackdocs_repo_name = 'openstack/designate-dashboard' openstackdocs_bug_project = 'designate-dashboard' openstackdocs_bug_tag = '' openstackdocs_auto_name = False html_theme = 'openstackdocs' # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. # source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'Designate dashboard Release Notes' copyright = '2019, Designate dashboard developers' # Release notes are version independent # The short X.Y version. version = '' # The full version, including alpha/beta/rc tags. release = '' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all # documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). # add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'native' # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. # keep_warnings = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. # html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". # html_static_path = ['_static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. # html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_domain_indices = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. # tml_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # tml_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. # tml_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # tml_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). # tml_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'DesignatedashboardReleaseNotestdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # 'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ ('index', 'PythonDesignatedashboard.tex', 'Designate dashboard Release Notes Documentation', 'Designate dashboard developers', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. # atex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. # atex_use_parts = False # If true, show page references after internal links. # atex_show_pagerefs = False # If true, show URL addresses after external links. # atex_show_urls = False # Documents to append as an appendix to all manuals. # atex_appendices = [] # If false, no module index is generated. # atex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'designatedashboard', 'Designate dashboard Release Notes Documentation', ['Designate dashboard developers'], 1) ] # If true, show URL addresses after external links. # an_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'Designate dashboard', 'Designate dashboard Release Notes Documentation', 'Designate dashboard developers', 'Designate dashboard', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. # exinfo_appendices = [] # If false, no module index is generated. # exinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. # exinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. # exinfo_no_detailmenu = False # -- Options for Internationalization output ------------------------------ locale_dirs = ['locale/'] ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3605444 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/index.rst0000644000000000000000000000070515243025017036505 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================================================== Welcome to Designate dashboard Release Notes documentation! =========================================================== Contents ======== .. toctree:: :maxdepth: 2 unreleased 2026.1 2025.2 2025.1 2024.2 2024.1 2023.2 2023.1 zed yoga xena wallaby victoria ussuri train Indices and tables ================== * :ref:`genindex` * :ref:`search` ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/0000755000000000000000000000000015243025054036102 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/cs/0000755000000000000000000000000015243025054036507 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5191665 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/cs/LC_MESSAGES/0000755000000000000000000000000015243025054040274 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/cs/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3607275 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/cs/LC_MESSAGES/releasen0000644000000000000000000000150515243025017042015 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Zbyněk Schwarz , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-11-17 09:06+0000\n" "Last-Translator: Zbyněk Schwarz \n" "Language-Team: Czech\n" "Language: cs\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "Obsah" msgid "Current Series Release Notes" msgstr "Poznámky k vydání současné verze" msgid "Indices and tables" msgstr "Rejstříky a tabulky" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/de/0000755000000000000000000000000015243025054036472 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5192015 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/de/LC_MESSAGES/0000755000000000000000000000000015243025054040257 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026400000000000010217 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/de/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.360815 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/de/LC_MESSAGES/releasen0000644000000000000000000000334115243025017042000 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Frank Kloeker , 2017. #zanata # Andreas Jaeger , 2019. #zanata # Andreas Jaeger , 2020. #zanata msgid "" msgstr "" "Project-Id-Version: designate-dashboard\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-19 10:55+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2020-04-25 09:13+0000\n" "Last-Translator: Andreas Jaeger \n" "Language-Team: German\n" "Language: de\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "9.0.0" msgstr "9.0.0" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "Inhalt" msgid "Current Series Release Notes" msgstr "Aktuelle Serie Releasenotes" msgid "Indices and tables" msgstr "Indizes und Tabellen" msgid "" "Python 2.7 support has been dropped. Last release of designate-dashboard to " "support python 2.7 is OpenStack Train. The minimum version of Python now " "supported by designate-dashboard is Python 3.6." msgstr "" "Python 2.7 Unterstützung wurde beendet. Der letzte Release von designate-" "dashboard welcher Python 2.7 unterstützt ist OpenStack Train. Die minimal " "Python Version welche von designate-dashboard unterstützt wird ist Python " "3.6." msgid "Removed the long deprecated v1 API dashboard." msgstr "Das lange abgekündigte v1 API Dashboard wurde entfernt." msgid "Train Series Release Notes" msgstr "Train Serie Releasenotes" msgid "Upgrade Notes" msgstr "Aktualisierungsnotizen" msgid "Welcome to Designate dashboard Release Notes documentation!" msgstr "Willkommen bei den Releasenotes für das Designate Dashboard" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/en_GB/0000755000000000000000000000000015243025054037054 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5192332 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/en_GB/LC_MESSAGES/0000755000000000000000000000000015243025054040641 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000027000000000000010214 xustar00120 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3608918 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/en_GB/LC_MESSAGES/relea0000644000000000000000000001012115243025017041646 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Andi Chandler , 2017. #zanata # Andi Chandler , 2019. #zanata # Andi Chandler , 2020. #zanata # Andi Chandler , 2021. #zanata # Andi Chandler , 2022. #zanata # Andi Chandler , 2023. #zanata # Andi Chandler , 2024. #zanata # Andi Chandler , 2026. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-03-11 15:39+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2026-03-14 07:18+0000\n" "Last-Translator: Andi Chandler \n" "Language-Team: English (United Kingdom)\n" "Language: en_GB\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "10.0.0" msgstr "10.0.0" msgid "15.0.0" msgstr "15.0.0" msgid "18.0.0" msgstr "18.0.0" msgid "20.0.0" msgstr "20.0.0" msgid "2023.1 Series Release Notes" msgstr "2023.1 Series Release Notes" msgid "2023.2 Series Release Notes" msgstr "2023.2 Series Release Notes" msgid "2024.1 Series Release Notes" msgstr "2024.1 Series Release Notes" msgid "2024.2 Series Release Notes" msgstr "2024.2 Series Release Notes" msgid "2025.1 Series Release Notes" msgstr "2025.1 Series Release Notes" msgid "2025.2 Series Release Notes" msgstr "2025.2 Series Release Notes" msgid "2026.1 Series Release Notes" msgstr "2026.1 Series Release Notes" msgid "21.0.0" msgstr "21.0.0" msgid "9.0.0" msgstr "9.0.0" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "Contents" msgid "Current Series Release Notes" msgstr "Current Series Release Notes" msgid "Indices and tables" msgstr "Indices and tables" msgid "" "Python 2.7 support has been dropped. Last release of designate-dashboard to " "support python 2.7 is OpenStack Train. The minimum version of Python now " "supported by designate-dashboard is Python 3.6." msgstr "" "Python 2.7 support has been dropped. Last release of Designate-dashboard to " "support Python 2.7 is OpenStack Train. The minimum version of Python now " "supported by Designate-dashboard is Python 3.6." msgid "" "Python 3.6 & 3.7 support has been dropped. The minimum version of Python now " "supported is Python 3.8." msgstr "" "Python 3.6 & 3.7 support has been dropped. The minimum version of Python now " "supported is Python 3.8." msgid "Removed the long deprecated v1 API dashboard." msgstr "Removed the long deprecated v1 API dashboard." msgid "" "Support for Python 3.8 has been removed. Now the minimum python version " "supported is 3.9 ." msgstr "" "Support for Python 3.8 has been removed. Now the minimum Python version " "supported is 3.9 ." msgid "Support for Python 3.9 has been dropped." msgstr "Support for Python 3.9 has been dropped." msgid "The ``oslo.log`` library is no longer required." msgstr "The ``oslo.log`` library is no longer required." msgid "The ``python-designateclient`` library is no longer required." msgstr "The ``python-designateclient`` library is no longer required." msgid "The designate dashboard now needs openstacksdk" msgstr "The Designate dashboard now needs openstacksdk" msgid "" "The designate dashboard requires a minimum openstacksdk version of 2.1.0" msgstr "" "The Designate dashboard requires a minimum openstacksdk version of 2.1.0" msgid "Train Series Release Notes" msgstr "Train Series Release Notes" msgid "Upgrade Notes" msgstr "Upgrade Notes" msgid "Ussuri Series Release Notes" msgstr "Ussuri Series Release Notes" msgid "Victoria Series Release Notes" msgstr "Victoria Series Release Notes" msgid "Wallaby Series Release Notes" msgstr "Wallaby Series Release Notes" msgid "Welcome to Designate dashboard Release Notes documentation!" msgstr "Welcome to Designate dashboard Release Notes documentation!" msgid "Xena Series Release Notes" msgstr "Xena Series Release Notes" msgid "Yoga Series Release Notes" msgstr "Yoga Series Release Notes" msgid "Zed Series Release Notes" msgstr "Zed Series Release Notes" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/fr/0000755000000000000000000000000015243025054036511 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5192652 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/fr/LC_MESSAGES/0000755000000000000000000000000015243025054040276 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3609855 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/fr/LC_MESSAGES/releasen0000644000000000000000000000154215243025017042020 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Gaelle , 2017. #zanata # François Magimel , 2018. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2018-07-13 02:29+0000\n" "Last-Translator: François Magimel \n" "Language-Team: French\n" "Language: fr\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "Contenus" msgid "Current Series Release Notes" msgstr "Notes sur la version actuelle" msgid "Indices and tables" msgstr "Index et table des matières" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/id/0000755000000000000000000000000015243025054036476 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5192976 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/id/LC_MESSAGES/0000755000000000000000000000000015243025054040263 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/id/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3610325 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/id/LC_MESSAGES/releasen0000644000000000000000000000145515243025017042010 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# suhartono , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-01-09 04:01+0000\n" "Last-Translator: suhartono \n" "Language-Team: Indonesian\n" "Language: id\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=1; plural=0\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "Contents (Isi)" msgid "Current Series Release Notes" msgstr "Series Release Notes saat ini" msgid "Indices and tables" msgstr "Indices and tables (indeks dan tabel)" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ja/0000755000000000000000000000000015243025054036474 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007600000000000010220 xustar0018 uid=1360376536 18 gid=1360376536 26 mtime=1787570731.51933 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ja/LC_MESSAGES/0000755000000000000000000000000015243025054040261 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ja/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3610919 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ja/LC_MESSAGES/releasen0000644000000000000000000000143115243025017042000 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Akihiro Motoki , 2018. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2018-02-08 08:46+0000\n" "Last-Translator: Akihiro Motoki \n" "Language-Team: Japanese\n" "Language: ja\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=1; plural=0\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "内容" msgid "Current Series Release Notes" msgstr "開発中バージョンのリリースノート" msgid "Indices and tables" msgstr "目次と表" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ko_KR/0000755000000000000000000000000015243025054037107 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5193627 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ko_KR/LC_MESSAGES/0000755000000000000000000000000015243025054040674 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000027000000000000010214 xustar00120 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ko_KR/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3611364 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ko_KR/LC_MESSAGES/relea0000644000000000000000000000146415243025017041713 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Sungjin Kang , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-01-10 11:18+0000\n" "Last-Translator: Sungjin Kang \n" "Language-Team: Korean (South Korea)\n" "Language: ko_KR\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=1; plural=0\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "내용" msgid "Current Series Release Notes" msgstr "최신 시리즈에 대한 릴리즈 노트" msgid "Indices and tables" msgstr "인텍스 및 테이블" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ne/0000755000000000000000000000000015243025054036504 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5193937 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ne/LC_MESSAGES/0000755000000000000000000000000015243025054040271 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ne/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3611796 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ne/LC_MESSAGES/releasen0000644000000000000000000000153515243025017042015 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Surit Aryal , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2019-06-12 04:27+0000\n" "Last-Translator: Surit Aryal \n" "Language-Team: Nepali\n" "Language: ne\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "सामग्रीहरू" msgid "Current Series Release Notes" msgstr "Current Series रिलीज नोट्स" msgid "Indices and tables" msgstr "सूचकांक र तालिकाहरू" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/pt_BR/0000755000000000000000000000000015243025054037110 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000007700000000000010221 xustar0018 uid=1360376536 18 gid=1360376536 27 mtime=1787570731.519425 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/pt_BR/LC_MESSAGES/0000755000000000000000000000000015243025054040675 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026700000000000010222 xustar00120 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/pt_BR/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 27 mtime=1787570703.361239 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/pt_BR/LC_MESSAGES/relea0000644000000000000000000000157315243025017041715 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Fernando Pimenta , 2018. #zanata # Rodrigo Loures , 2018. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2018-03-09 06:57+0000\n" "Last-Translator: Fernando Pimenta \n" "Language-Team: Portuguese (Brazil)\n" "Language: pt_BR\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "Conteúdo" msgid "Current Series Release Notes" msgstr "Notas de Versão da Série Atual" msgid "Indices and tables" msgstr "Índices e tabelas" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5103023 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ru/0000755000000000000000000000000015243025054036530 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5194552 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ru/LC_MESSAGES/0000755000000000000000000000000015243025054040315 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000026500000000000010220 xustar00117 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ru/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3612888 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/ru/LC_MESSAGES/releasen0000644000000000000000000001155615243025017042045 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Fedor Tarasenko , 2017. #zanata # Dmitriy Chubinidze , 2025. #zanata # Ivan Anfimov , 2025. #zanata # Ivan Anfimov , 2026. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-03-25 15:19+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2026-03-27 04:20+0000\n" "Last-Translator: Ivan Anfimov \n" "Language-Team: Russian\n" "Language: ru\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" msgid "10.0.0" msgstr "10.0.0" msgid "15.0.0" msgstr "15.0.0" msgid "18.0.0" msgstr "18.0.0" msgid "20.0.0" msgstr "20.0.0" msgid "2023.1 Series Release Notes" msgstr "Примечания к выпуску 2023.1" msgid "2023.2 Series Release Notes" msgstr "Примечания к выпуску 2023.2" msgid "2024.1 Series Release Notes" msgstr "Примечания к выпуску 2024.1" msgid "2024.2 Series Release Notes" msgstr "Примечания к выпуску 2024.2" msgid "2025.1 Series Release Notes" msgstr "Примечания к выпуску 2025.1" msgid "2025.2 Series Release Notes" msgstr "Примечания к выпуску 2025.2" msgid "2026.1 Series Release Notes" msgstr "Примечания к выпуску 2026.1" msgid "21.0.0" msgstr "21.0.0" msgid "9.0.0" msgstr "9.0.0" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "Содержание" msgid "Current Series Release Notes" msgstr "Примечания к текущему выпуску" msgid "Indices and tables" msgstr "Индексы и таблицы" msgid "" "Python 2.7 support has been dropped. Last release of designate-dashboard to " "support python 2.7 is OpenStack Train. The minimum version of Python now " "supported by designate-dashboard is Python 3.6." msgstr "" "Поддержка Python 2.7 была прекращена. Последний выпуск designate-dashboard, " "поддерживающий python 2.7 — OpenStack Train. Минимальная версия Python, " "поддерживаемая designate-dashboard — Python 3.6. " msgid "" "Python 3.6 & 3.7 support has been dropped. The minimum version of Python now " "supported is Python 3.8." msgstr "" "Поддержка Python 3.6 и 3.7 была прекращена. Минимальная версия Python, " "которая теперь поддерживается — Python 3.8." msgid "Removed the long deprecated v1 API dashboard." msgstr "Удалена давно устаревшая версия API v1 панели управления." msgid "" "Support for Python 3.8 has been removed. Now the minimum python version " "supported is 3.9 ." msgstr "" "Поддержка Python 3.8 была удалена. Минимальная версия Python, которая теперь " "поддерживается — Python 3.9." msgid "Support for Python 3.9 has been dropped." msgstr "Поддержка Python 3.9 была прекращена." msgid "The ``oslo.log`` library is no longer required." msgstr "Библиотека ``oslo.log`` больше не требуется." msgid "The ``python-designateclient`` library is no longer required." msgstr "Библиотека ``python-designateclient`` больше не требуется." msgid "The designate dashboard now needs openstacksdk" msgstr "Для панели управления designate, теперь необходим openstacksdk" msgid "" "The designate dashboard requires a minimum openstacksdk version of 2.1.0" msgstr "" "Для панели управления designate, требуемая минимальная версия openstacksdk " "2.1.0" msgid "Train Series Release Notes" msgstr "Примечания к выпуску Train" msgid "Upgrade Notes" msgstr "Примечания к обновлению" msgid "Ussuri Series Release Notes" msgstr "Примечания к выпуску Ussuri" msgid "Victoria Series Release Notes" msgstr "Примечания к выпуску Victoria" msgid "Wallaby Series Release Notes" msgstr "Примечания к выпуску Wallaby" msgid "Welcome to Designate dashboard Release Notes documentation!" msgstr "" "Добро пожаловать в документацию по примечаниям к выпускам панели управления " "Designate!" msgid "Xena Series Release Notes" msgstr "Примечания к выпуску Xena" msgid "Yoga Series Release Notes" msgstr "Примечания к выпуску Yoga" msgid "Zed Series Release Notes" msgstr "Примечания к выпуску Zed" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5113022 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/zh_CN/0000755000000000000000000000000015243025054037103 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5194864 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/zh_CN/LC_MESSAGES/0000755000000000000000000000000015243025054040670 5ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com././@PaxHeader0000000000000000000000000000027000000000000010214 xustar00120 path=designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/zh_CN/LC_MESSAGES/releasenotes.po 18 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/locale/zh_CN/LC_MESSAGES/relea0000644000000000000000000000140215243025017041677 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# TigerFang , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: Designate dashboard Release Notes\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-09 10:21+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-05-15 09:55+0000\n" "Last-Translator: TigerFang \n" "Language-Team: Chinese (China)\n" "Language: zh_CN\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=1; plural=0\n" msgid ":ref:`genindex`" msgstr ":ref:`genindex`" msgid ":ref:`search`" msgstr ":ref:`search`" msgid "Contents" msgstr "内容" msgid "Current Series Release Notes" msgstr "当前版本发布说明" msgid "Indices and tables" msgstr "索引和表格" ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/train.rst0000644000000000000000000000017615243025017036515 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com========================== Train Series Release Notes ========================== .. release-notes:: :branch: stable/train ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/unreleased.rst0000644000000000000000000000015315243025017037522 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com============================ Current Series Release Notes ============================ .. release-notes:: ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/ussuri.rst0000644000000000000000000000020215243025017036720 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com=========================== Ussuri Series Release Notes =========================== .. release-notes:: :branch: stable/ussuri ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/victoria.rst0000644000000000000000000000022015243025017037206 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com============================= Victoria Series Release Notes ============================= .. release-notes:: :branch: unmaintained/victoria ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/wallaby.rst0000644000000000000000000000021415243025017037024 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com============================ Wallaby Series Release Notes ============================ .. release-notes:: :branch: unmaintained/wallaby ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/xena.rst0000644000000000000000000000020015243025017036317 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com========================= Xena Series Release Notes ========================= .. release-notes:: :branch: unmaintained/xena ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/yoga.rst0000644000000000000000000000020015243025017036323 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com========================= Yoga Series Release Notes ========================= .. release-notes:: :branch: unmaintained/yoga ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/releasenotes/source/zed.rst0000644000000000000000000000017415243025017036160 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com======================== Zed Series Release Notes ======================== .. release-notes:: :branch: unmaintained/zed ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/requirements.txt0000644000000000000000000000050115243025017034131 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Requirements lower bounds listed here are our best effort to keep them up to # date but we do not test them so no guarantee of having them all correct. If # you find any incorrect lower bounds, let us know or propose a fix. pbr!=2.1.0,>=2.0.0 # Apache-2.0 horizon>=17.1.0 # Apache-2.0 openstacksdk>=2.1.0 # Apache-2.0 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570731.5212295 designate_dashboard-22.0.0+git20260709.20.98a0a76/setup.cfg0000644000000000000000000000011515243025054032470 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com[metadata] name = designate-dashboard [egg_info] tag_build = tag_date = 0 ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/setup.py0000644000000000000000000000122115243025017032357 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. import setuptools setuptools.setup(pbr=True) ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/test0000644000000000000000000000400015243025017031545 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comSQLite format 3@ - J././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/test-requirements.txt0000644000000000000000000000022215243025017035106 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.comhacking>=6.1.0,<6.2.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 oslo.config>=5.2.0 # Apache-2.0 pylint==1.4.5 # GPLv2 testtools>=2.2.0 # MIT ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/test-shim.js0000644000000000000000000000617615243025017033136 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com/** * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ /* * Shim for Javascript unit tests; supplying expected global features. * This should be removed from the codebase once i18n services are provided. * Taken from default i18n file provided by Django. */ var horizonPlugInModules = []; (function (globals) { var django = globals.django || (globals.django = {}); django.pluralidx = function (count) { return (count == 1) ? 0 : 1; }; /* gettext identity library */ django.gettext = function (msgid) { return msgid; }; django.ngettext = function (singular, plural, count) { return (count == 1) ? singular : plural; }; django.gettext_noop = function (msgid) { return msgid; }; django.pgettext = function (context, msgid) { return msgid; }; django.npgettext = function (context, singular, plural, count) { return (count == 1) ? singular : plural; }; django.interpolate = function (fmt, obj, named) { if (named) { return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])}); } else { return fmt.replace(/%s/g, function(match){return String(obj.shift())}); } }; /* formatting library */ django.formats = { "DATETIME_FORMAT": "N j, Y, P", "DATETIME_INPUT_FORMATS": [ "%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M:%S.%f", "%Y-%m-%d %H:%M", "%Y-%m-%d", "%m/%d/%Y %H:%M:%S", "%m/%d/%Y %H:%M:%S.%f", "%m/%d/%Y %H:%M", "%m/%d/%Y", "%m/%d/%y %H:%M:%S", "%m/%d/%y %H:%M:%S.%f", "%m/%d/%y %H:%M", "%m/%d/%y" ], "DATE_FORMAT": "N j, Y", "DATE_INPUT_FORMATS": [ "%Y-%m-%d", "%m/%d/%Y", "%m/%d/%y" ], "DECIMAL_SEPARATOR": ".", "FIRST_DAY_OF_WEEK": "0", "MONTH_DAY_FORMAT": "F j", "NUMBER_GROUPING": "3", "SHORT_DATETIME_FORMAT": "m/d/Y P", "SHORT_DATE_FORMAT": "m/d/Y", "THOUSAND_SEPARATOR": ",", "TIME_FORMAT": "P", "TIME_INPUT_FORMATS": [ "%H:%M:%S", "%H:%M:%S.%f", "%H:%M" ], "YEAR_MONTH_FORMAT": "F Y" }; django.get_format = function (format_type) { var value = django.formats[format_type]; if (typeof(value) == 'undefined') { return format_type; } else { return value; } }; /* add to global namespace */ globals.pluralidx = django.pluralidx; globals.gettext = django.gettext; globals.ngettext = django.ngettext; globals.gettext_noop = django.gettext_noop; globals.pgettext = django.pgettext; globals.npgettext = django.npgettext; globals.interpolate = django.interpolate; globals.get_format = django.get_format; globals.STATIC_URL = '/static/'; globals.WEBROOT = '/'; }(this)); ././@PaxHeader0000000000000000000000000000010000000000000010204 xustar0018 uid=1360376536 18 gid=1360376536 28 mtime=1787570703.3613389 designate_dashboard-22.0.0+git20260709.20.98a0a76/tox.ini0000644000000000000000000000414415243025017032167 0ustar00himawan.winarto@canonical.comhimawan.winarto@canonical.com[tox] minversion = 3.18.0 envlist = py3,pep8,npm skipsdist = True [testenv] usedevelop = True setenv = PYTHONDONTWRITEBYTECODE=1 DJANGO_SETTINGS_MODULE=designatedashboard.settings allowlist_externals = {toxinidir}/manage.py npm deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = {toxinidir}/manage.py test designatedashboard --settings=designatedashboard.tests.settings passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY [testenv:pep8] commands = flake8 [testenv:venv] commands = {posargs} [testenv:cover] commands = coverage erase coverage run {toxinidir}/manage.py test designatedashboard --settings=designatedashboard.tests.settings {posargs} coverage xml --include 'designatedashboard/*' -o cover/coverage.xml coverage html --include 'designatedashboard/*' -d cover [testenv:docs] deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html [testenv:pdf-docs] deps = -r{toxinidir}/doc/requirements.txt allowlist_externals = make commands = sphinx-build -W -b latex doc/source doc/build/pdf make -C doc/build/pdf [flake8] # E123, E125 skipped as they are invalid PEP-8. # F405 TEMPLATES may be undefined, or defined from star imports. # (because it is not easy to avoid this in openstack_dashboard.test.settings) # W504 line break after binary operator show-source = True ignore = E123,E125,F405,W504 builtins = _ exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,releasenotes,node_modules [testenv:releasenotes] deps = {[testenv:docs]deps} commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:eslint] # npm must be installed on the system, for example # sudo apt-get install npm commands = npm install npm run lint [testenv:karma] # npm must be installed on the system, for example # sudo apt-get install npm commands = npm install npm test