Exemple #1
0
    def run(self, tmp=None, task_vars=None):
        socket_path = None
        self._get_network_os(task_vars)
        persistent_connection = self._play_context.connection.split('.')[-1]

        result = super(ActionModule, self).run(task_vars=task_vars)

        if persistent_connection != 'network_cli':
            # It is supported only with network_cli
            result['failed'] = True
            result['msg'] = ('connection type %s is not valid for net_get module,'
                             ' please use fully qualified name of network_cli connection type' % self._play_context.connection)
            return result

        try:
            src = self._task.args['src']
        except KeyError as exc:
            return {'failed': True, 'msg': 'missing required argument: %s' % exc}

        # Get destination file if specified
        dest = self._task.args.get('dest')

        if dest is None:
            dest = self._get_default_dest(src)
        else:
            dest = self._handle_dest_path(dest)

        # Get proto
        proto = self._task.args.get('protocol')
        if proto is None:
            proto = 'scp'

        if socket_path is None:
            socket_path = self._connection.socket_path

        conn = Connection(socket_path)
        sock_timeout = conn.get_option('persistent_command_timeout')

        try:
            changed = self._handle_existing_file(conn, src, dest, proto, sock_timeout)
            if changed is False:
                result['changed'] = changed
                result['destination'] = dest
                return result
        except Exception as exc:
            result['msg'] = ('Warning: %s idempotency check failed. Check dest' % exc)

        try:
            conn.get_file(
                source=src, destination=dest,
                proto=proto, timeout=sock_timeout
            )
        except Exception as exc:
            result['failed'] = True
            result['msg'] = 'Exception received: %s' % exc

        result['changed'] = changed
        result['destination'] = dest
        return result
Exemple #2
0
    def run(self, tmp=None, task_vars=None):
        socket_path = None
        play_context = copy.deepcopy(self._play_context)
        play_context.network_os = self._get_network_os(task_vars)

        result = super(ActionModule, self).run(task_vars=task_vars)

        if play_context.connection != 'network_cli':
            # It is supported only with network_cli
            result['failed'] = True
            result['msg'] = ('please use network_cli connection type for net_get module')
            return result

        try:
            src = self._task.args.get('src')
        except KeyError as exc:
            return {'failed': True, 'msg': 'missing required argument: %s' % exc}

        # Get destination file if specified
        dest = self._task.args.get('dest')

        if dest is None:
            dest = self._get_default_dest(src)
        else:
            dest = self._handle_dest_path(dest)

        # Get proto
        proto = self._task.args.get('protocol')
        if proto is None:
            proto = 'scp'

        sock_timeout = play_context.timeout

        if socket_path is None:
            socket_path = self._connection.socket_path

        conn = Connection(socket_path)

        try:
            changed = self._handle_existing_file(conn, src, dest, proto, sock_timeout)
            if changed is False:
                result['changed'] = False
                result['destination'] = dest
                return result
        except Exception as exc:
            result['msg'] = ('Warning: exception %s idempotency check failed. Check '
                             'dest' % exc)

        try:
            out = conn.get_file(
                source=src, destination=dest,
                proto=proto, timeout=sock_timeout
            )
        except Exception as exc:
            result['failed'] = True
            result['msg'] = ('Exception received : %s' % exc)

        result['changed'] = True
        result['destination'] = dest
        return result
Exemple #3
0
    def run(self, tmp=None, task_vars=None):
        changed = False
        socket_path = None
        self._get_network_os(task_vars)
        persistent_connection = self._play_context.connection.split(".")[-1]

        result = super(ActionModule, self).run(task_vars=task_vars)

        if persistent_connection != "network_cli":
            # It is supported only with network_cli
            result["failed"] = True
            result["msg"] = (
                "connection type %s is not valid for net_get module,"
                " please use fully qualified name of network_cli connection type"
                % self._play_context.connection)
            return result

        try:
            src = self._task.args["src"]
        except KeyError as exc:
            return {
                "failed": True,
                "msg": "missing required argument: %s" % exc,
            }

        # Get destination file if specified
        dest = self._task.args.get("dest")

        if dest is None:
            dest = self._get_default_dest(src)
        else:
            dest = self._handle_dest_path(dest)

        # Get proto
        proto = self._task.args.get("protocol")
        if proto is None:
            proto = "scp"

        if socket_path is None:
            socket_path = self._connection.socket_path

        conn = Connection(socket_path)
        sock_timeout = conn.get_option("persistent_command_timeout")

        try:
            changed = self._handle_existing_file(conn, src, dest, proto,
                                                 sock_timeout)
            if changed is False:
                result["changed"] = changed
                result["destination"] = dest
                return result
        except Exception as exc:
            result["msg"] = (
                "Warning: %s idempotency check failed. Check dest" % exc)

        try:
            conn.get_file(source=src,
                          destination=dest,
                          proto=proto,
                          timeout=sock_timeout)
        except Exception as exc:
            result["failed"] = True
            result["msg"] = "Exception received: %s" % exc

        result["changed"] = changed
        result["destination"] = dest
        return result