# Path: cloudify_agent/api/utils.py
# class _Internal(object):
#     CLOUDIFY_DAEMON_STORAGE_DIRECTORY_KEY = 'CLOUDIFY_DAEMON_STORAGE_DIRECTORY'
#     CLOUDIFY_DAEMON_USER_KEY = 'CLOUDIFY_DAEMON_USER'
#     def get_daemon_storage_dir(cls):
#     def get_daemon_user(cls):
#     def get_storage_directory(cls, username=None):
#     def generate_agent_name():
#     def generate_new_agent_name(old_agent_name):
#     def daemon_to_dict(daemon):
#     def get_broker_url(agent):
# def get_agent_registered(name,
#                          celery_client,
#                          timeout=workflows_tasks.INSPECT_TIMEOUT):
# def get_windows_home_dir(username):
# def get_home_dir(username=None):
# def render_template_to_file(template_path, file_path=None, **values):
# def resource_to_tempfile(resource_path, executable=False):
# def get_resource(resource_path):
# def get_absolute_resource_path(resource_path):
# def content_to_file(content, file_path=None, executable=False):
# def env_to_file(env_variables, destination_path=None, posix=True):
# def stringify_values(dictionary):
# def purge_none_values(dictionary):
# def json_load(file_path):
# def json_loads(content):
# def safe_create_dir(path):
# def get_rest_client(rest_host,
#                     rest_port,
#                     rest_token,
#                     rest_tenant,
#                     ssl_cert_path,
#                     bypass_maintenance_mode=False):
# def _parse_comma_separated(ctx, param, value):
# def get_manager_file_server_url(hostname, port, scheme=None):
# def get_agent_version():
# def get_windows_basedir():
# def get_linux_basedir():
# def get_agent_basedir(is_windows=False):
# 
# Path: cloudify_agent/shell/decorators.py
# def handle_failures(func):
# 
#     @wraps(func)
#     def wrapper(*args, **kwargs):
#         try:
#             func(*args, **kwargs)
#         except BaseException as e:
#             tpe, value, tb = sys.exc_info()
# 
#             if isinstance(e, exceptions.DaemonException):
# 
#                 # convert api exceptions to click exceptions.
#                 value = click.ClickException(str(e))
# 
#             if isinstance(e, exceptions.DaemonError):
# 
#                 # convert api errors to cli exceptions
#                 value = click.ClickException(str(e))
# 
#             # set the exit_code accordingly. the exit_code property is later
#             # read by the click framework to set the exit code of
#             # the process.
#             value.exit_code = codes.get(tpe, 1)
#             reraise(type(value), value, tb)
# 
#     return wrapper
# 
# Path: cloudify_agent/shell/commands/cfy.py
# CLICK_CONTEXT_SETTINGS = dict(
#     help_option_names=['-h', '--help'],
#     token_normalize_func=lambda param: param.lower())
# class CommandMixin(object):
# class AgentCommand(CommandMixin, click.Command):
# class AgentGroup(CommandMixin, click.Group):
#     def main(
#         self,
#         args=None,
#         prog_name=None,
#         complete_var=None,
#         standalone_mode=True,
#         **extra
#     ):
#     def set_locale_env():
# def group(name=None):
# def command(*args, **kwargs):


import click
from cloudify_agent.api import utils
from cloudify.utils import LocalCommandRunner
from cloudify_agent.shell.decorators import handle_failures
from cloudify_agent.shell.commands import cfy
    from cloudify_agent.shell.main import get_logger
@click.option('--no-sudo',
              help='Indication whether sudo should be used when applying '
                   ' disable-requiretty part',
              is_flag=True)
@handle_failures
def configure(disable_requiretty, relocated_env, no_sudo):

    """
    Configures global agent properties.
    """

    if disable_requiretty:
        click.echo('Disabling requiretty directive in sudoers file')
        _disable_requiretty(no_sudo)
        click.echo('Successfully disabled requiretty for cfy-agent')


def _disable_requiretty(no_sudo):

    """
    Disables the requiretty directive in the /etc/sudoers file. This
    will enable operations that require sudo permissions to work properly.

    This is needed because operations are executed
    from within the worker process, which is not a tty process.

    """

    runner = LocalCommandRunner(get_logger())


# Path: cloudify_agent/api/utils.py
# class _Internal(object):
#     CLOUDIFY_DAEMON_STORAGE_DIRECTORY_KEY = 'CLOUDIFY_DAEMON_STORAGE_DIRECTORY'
#     CLOUDIFY_DAEMON_USER_KEY = 'CLOUDIFY_DAEMON_USER'
#     def get_daemon_storage_dir(cls):
#     def get_daemon_user(cls):
#     def get_storage_directory(cls, username=None):
#     def generate_agent_name():
#     def generate_new_agent_name(old_agent_name):
#     def daemon_to_dict(daemon):
#     def get_broker_url(agent):
# def get_agent_registered(name,
#                          celery_client,
#                          timeout=workflows_tasks.INSPECT_TIMEOUT):
# def get_windows_home_dir(username):
# def get_home_dir(username=None):
# def render_template_to_file(template_path, file_path=None, **values):
# def resource_to_tempfile(resource_path, executable=False):
# def get_resource(resource_path):
# def get_absolute_resource_path(resource_path):
# def content_to_file(content, file_path=None, executable=False):
# def env_to_file(env_variables, destination_path=None, posix=True):
# def stringify_values(dictionary):
# def purge_none_values(dictionary):
# def json_load(file_path):
# def json_loads(content):
# def safe_create_dir(path):
# def get_rest_client(rest_host,
#                     rest_port,
#                     rest_token,
#                     rest_tenant,
#                     ssl_cert_path,
#                     bypass_maintenance_mode=False):
# def _parse_comma_separated(ctx, param, value):
# def get_manager_file_server_url(hostname, port, scheme=None):
# def get_agent_version():
# def get_windows_basedir():
# def get_linux_basedir():
# def get_agent_basedir(is_windows=False):
# 
# Path: cloudify_agent/shell/decorators.py
# def handle_failures(func):
# 
#     @wraps(func)
#     def wrapper(*args, **kwargs):
#         try:
#             func(*args, **kwargs)
#         except BaseException as e:
#             tpe, value, tb = sys.exc_info()
# 
#             if isinstance(e, exceptions.DaemonException):
# 
#                 # convert api exceptions to click exceptions.
#                 value = click.ClickException(str(e))
# 
#             if isinstance(e, exceptions.DaemonError):
# 
#                 # convert api errors to cli exceptions
#                 value = click.ClickException(str(e))
# 
#             # set the exit_code accordingly. the exit_code property is later
#             # read by the click framework to set the exit code of
#             # the process.
#             value.exit_code = codes.get(tpe, 1)
#             reraise(type(value), value, tb)
# 
#     return wrapper
# 
# Path: cloudify_agent/shell/commands/cfy.py
# CLICK_CONTEXT_SETTINGS = dict(
#     help_option_names=['-h', '--help'],
#     token_normalize_func=lambda param: param.lower())
# class CommandMixin(object):
# class AgentCommand(CommandMixin, click.Command):
# class AgentGroup(CommandMixin, click.Group):
#     def main(
#         self,
#         args=None,
#         prog_name=None,
#         complete_var=None,
#         standalone_mode=True,
#         **extra
#     ):
#     def set_locale_env():
# def group(name=None):
# def command(*args, **kwargs):


# Path: cloudify_agent/shell/commands/configure.py
import click
from cloudify_agent.api import utils
from cloudify.utils import LocalCommandRunner
from cloudify_agent.shell.decorators import handle_failures
from cloudify_agent.shell.commands import cfy
    from cloudify_agent.shell.main import get_logger

@click.option('--no-sudo',
              help='Indication whether sudo should be used when applying '
                   ' disable-requiretty part',
              is_flag=True)
@handle_failures
def configure(disable_requiretty, relocated_env, no_sudo):

    """
    Configures global agent properties.
    """

    if disable_requiretty:
        click.echo('Disabling requiretty directive in sudoers file')
        _disable_requiretty(no_sudo)
        click.echo('Successfully disabled requiretty for cfy-agent')


def _disable_requiretty(no_sudo):

    """
    Disables the requiretty directive in the /etc/sudoers file. This
    will enable operations that require sudo permissions to work properly.

    This is needed because operations are executed
    from within the worker process, which is not a tty process.

    """

    runner = LocalCommandRunner(get_logger())


    disable_requiretty_script_path = utils.resource_to_tempfile(