コード例 #1
0
 def init_script(self, agent_config=None):
     if (utils.internal.get_install_method(self.context.node.properties)
             not in constants.AGENT_INSTALL_METHODS_SCRIPTS):
         return None
     self._validate_agent_env()
     from cloudify_agent.installer import script
     return script.init_script(cloudify_agent=agent_config)
コード例 #2
0
def install_script(name, windows, user, manager_ip):
    ctx = MockCloudifyContext(
        node_id='node',
        properties={'agent_config': {
            'user': user,
            'windows': windows,
            'install_method': 'provided',
            'manager_ip': manager_ip,
            'name': name
        }})
    try:
        current_ctx.set(ctx)
        os.environ['MANAGER_FILE_SERVER_URL'] = 'http://{0}:53229'.format(
            manager_ip)
        init_script = script.init_script(cloudify_agent={})
    finally:
        os.environ.pop('MANAGER_FILE_SERVER_URL')
        current_ctx.clear()
    result = '\n'.join(init_script.split('\n')[:-1])
    if windows:
        return '{0}\n' \
               'DownloadAndExtractAgentPackage\n' \
               'ExportDaemonEnv\n' \
               'ConfigureAgent'.format(result)
    else:
        return '{0}\n' \
               'install_agent'.format(result)
コード例 #3
0
 def init_script(self, agent_config=None):
     if (utils.internal.get_install_method(
             self.context.node.properties) not in
             constants.AGENT_INSTALL_METHODS_SCRIPTS):
         return None
     self._validate_agent_env()
     from cloudify_agent.installer import script
     return script.init_script(cloudify_agent=agent_config)
コード例 #4
0
 def init_script(self, agent_config=None):
     if (utils.internal.get_install_method(self.context.node.properties)
             not in constants.AGENT_INSTALL_METHODS_SCRIPTS):
         return None
     try:
         from cloudify_agent.installer import script
     except ImportError as e:
         raise exceptions.NonRecoverableError(
             'init_script cannot be used outside of an agent environment: '
             'ImportError: {0}'.format(e))
     return script.init_script(cloudify_agent=agent_config)
コード例 #5
0
 def init_script(self, agent_config=None):
     if (utils.internal.get_install_method(
             self.context.node.properties) not in
             constants.AGENT_INSTALL_METHODS_SCRIPTS):
         return None
     try:
         from cloudify_agent.installer import script
     except ImportError as e:
         raise exceptions.NonRecoverableError(
             'init_script cannot be used outside of an agent environment: '
             'ImportError: {0}'.format(e))
     return script.init_script(cloudify_agent=agent_config)
コード例 #6
0
def install_script(name, windows, user, manager_host):

    env_vars = {}
    env_vars[constants.MANAGER_FILE_SERVER_URL_KEY] = '{0}://{1}:{2}'.format(
        defaults.FILE_SERVER_PROTOCOL, manager_host, defaults.FILE_SERVER_PORT)
    env_vars[constants.FILE_SERVER_PORT_KEY] = str(defaults.FILE_SERVER_PORT)
    env_vars[constants.FILE_SERVER_PROTOCOL_KEY] = \
        defaults.FILE_SERVER_PROTOCOL
    env_vars[constants.REST_PORT_KEY] = str(defaults.REST_PORT)
    env_vars[constants.REST_PROTOCOL_KEY] = defaults.REST_PROTOCOL
    env_vars[constants.SECURITY_ENABLED_KEY] = str(defaults.SECURITY_ENABLED)
    env_vars[constants.VERIFY_REST_CERTIFICATE_KEY] = \
        str(defaults.VERIFY_REST_CERTIFICATE)
    env_vars[constants.REST_CERT_CONTENT_KEY] = ''

    ctx = MockCloudifyContext(
        node_id='node',
        properties={'agent_config': {
            'user': user,
            'windows': windows,
            'install_method': 'provided',
            'rest_host': manager_host,
            'file_server_host': manager_host,
            'broker_ip': manager_host,
            'name': name
        }})
    try:
        current_ctx.set(ctx)
        os.environ.update(env_vars)

        init_script = script.init_script(cloudify_agent={})
    finally:
        for var_name in env_vars.iterkeys():
            os.environ.pop(var_name)

        current_ctx.clear()
    result = '\n'.join(init_script.split('\n')[:-1])
    if windows:
        return '{0}\n' \
               'DownloadAndExtractAgentPackage\n' \
               'ExportDaemonEnv\n' \
               'ConfigureAgent'.format(result)
    else:
        return '{0}\n' \
               'install_agent'.format(result)
コード例 #7
0
 def _run(self, *commands):
     init_script = script.init_script(
         cloudify_agent=self.input_cloudify_agent)
     init_script = '\n'.join(init_script.split('\n')[:-1])
     if self.windows:
         init_script_path = os.path.abspath('init_script.ps1')
     else:
         init_script_path = os.path.abspath('init_script.sh')
     with open(init_script_path, 'w') as f:
         f.write(init_script)
         for command in commands:
             f.write('{0}\n'.format(command))
     if not self.windows:
         os.chmod(init_script_path, 0755)
     if self.windows:
         command_line = 'powershell {0}'.format(init_script_path)
     else:
         command_line = init_script_path
     runner = cloudify_utils.LocalCommandRunner(self.logger)
     response = runner.run(command_line)
     return response.std_out
コード例 #8
0
 def _run(self, *commands):
     init_script = script.init_script(
         cloudify_agent=self.input_cloudify_agent)
     init_script = '\n'.join(init_script.split('\n')[:-1])
     if self.windows:
         init_script_path = os.path.abspath('init_script.ps1')
     else:
         init_script_path = os.path.abspath('init_script.sh')
     with open(init_script_path, 'w') as f:
         f.write(init_script)
         for command in commands:
             f.write('{0}\n'.format(command))
     if not self.windows:
         os.chmod(init_script_path, 0755)
     if self.windows:
         command_line = 'powershell {0}'.format(init_script_path)
     else:
         command_line = init_script_path
     runner = cloudify_utils.LocalCommandRunner(self.logger)
     response = runner.run(command_line)
     return response.std_out