# designateclient.v2.cli.common

# Source code for designateclient.v2.cli.common

    # Copyright 2016 Hewlett Packard Enterprise Development Company LP
    #
    # Author: Graham Hayes <endre.karlson@hp.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.

    def add_all_projects_option(parser):
        parser.add_argument(
            '--all-projects',
            default=False,
            action='store_true',
            help='Show results from all projects. Default: False'
        )

    def add_edit_managed_option(parser):
        parser.add_argument(
            '--edit-managed',
            default=False,
            action='store_true',
            help='Edit resources marked as managed. Default: False'
        )

    def add_hard_delete_option(parser):
        parser.add_argument(
            '--hard-delete',
            default=False,
            action='store_true',
            help='Delete zone along-with backend zone resources (i.e. files). '
                 'Default: False'
        )

    def add_sudo_project_id_option(parser):
        parser.add_argument(
            '--sudo-project-id',
            default=None,
            help='Project ID to impersonate for this command. Default: None'
        )

    def add_all_common_options(parser):
        add_all_projects_option(parser)
        add_sudo_project_id_option(parser)

    def set_all_projects(client, value):
        client.session.all_projects = value

    def set_sudo_project_id(client, value):
        client.session.sudo_project_id = value

    def set_edit_managed(client, value):
        client.session.edit_managed = value

    def set_hard_delete(client, value):
        client.session.hard_delete = value

    def set_all_common_headers(client, parsed_args):

        if (parsed_args.all_projects is not None and
                isinstance(parsed_args.all_projects, bool)):
            set_all_projects(client, parsed_args.all_projects)

        if (hasattr(parsed_args, 'edit_managed') and
                parsed_args.edit_managed is not None and
                isinstance(parsed_args.edit_managed, bool)):
            set_edit_managed(client, parsed_args.edit_managed)

        if (parsed_args.sudo_project_id is not None and
                isinstance(parsed_args.sudo_project_id, str)):
            set_sudo_project_id(client, parsed_args.sudo_project_id)

        if (hasattr(parsed_args, 'hard_delete') and
                parsed_args.hard_delete is not None and
                isinstance(parsed_args.hard_delete, bool)):
            set_hard_delete(client, parsed_args.hard_delete)

this page last updated: 2026-03-26 21:09:09

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug