Then i don't know, perhaps someone else does

On Fri, 2 Dec 2022 at 03:00, phillip.from.oz <[email protected]>
wrote:

> Thanks.
>
> I tried what you suggested but I get:
> 'responses' is of type <class 'list'> and we were unable to convert to dict
>
> But this seems to work:
>      responses:
>         Username: sq
>         Password: "SoLong>"
>         BASE\>:
>           -  "w ##Class(websys).test()"
>           -  "H"
>
> On Thursday, December 1, 2022 at 8:26:08 PM UTC+11 [email protected]
> wrote:
>
>> Hi
>>
>> It now partly works because you made the items of a single dict key into
>> a list and by doing so also quoted the value with '#' in it.
>> But what I meant is to have the responses itself be a list, so you can
>> have duplicates. I think this would look like:
>>
>> responses:
>>   - Username: sq
>>   - Password: "SoLong>"
>>   - BASE\>: "w ##Class(websys).test()"
>>   - BASE\>: "H"
>>   - BASE1>: "foo"
>>   - BASE1>: "bar"
>>   - BASE1>: "bz"
>>   - BASE2>: "fog"
>>   - BASE2>: "fbzhy33"
>>   - BASE1>: "bar"
>>
>>
>> etc
>>
>>
>>
>> On Wed, 30 Nov 2022 at 21:55, phillip.from.oz <[email protected]>
>> wrote:
>>
>>> Thanks. That did the trick.
>>>
>>> I changed
>>> BASE\>: w ##Class(websys).test()
>>> BASE\>: H
>>> to
>>> BASE\>: ["w ##Class(websys.PatchHistory).test()","H"]
>>>
>>> However, how do I code the list if I have this set of prompts:
>>> BASE1>
>>> BASE1>
>>> BASE1>
>>> BASE2>
>>> BASE2>
>>> BASE1>
>>> BASE1>
>>> On Wednesday, November 30, 2022 at 4:02:42 PM UTC+11 [email protected]
>>> wrote:
>>>
>>>> Your responses is now a dict which cannot have the same key more than
>>>> once. So the second BASE question isn't going to work.
>>>> Try turning it into a list.
>>>> See
>>>> https://docs.ansible.com/ansible/latest/collections/ansible/builtin/expect_module.html#examples
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, 30 Nov 2022 at 02:03, phillip.from.oz <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>> I want to run a program on a remote server where after login, the
>>>>> program will ask for more input using the same prompt.
>>>>>
>>>>> This is the basic flow:
>>>>> Read Username
>>>>> Read Password
>>>>> Read commands <- these get echoed back
>>>>> until 'h' or 'H' is entered
>>>>>
>>>>> This is a sample run of the program
>>>>> BASE:/home# python3 converse2.py
>>>>> Welcome to BASE
>>>>>    My configuration is up to date
>>>>>    Print settings are normal
>>>>>  Username: sq
>>>>>  Password: SoLong>
>>>>> BASE>w abc
>>>>> w abc
>>>>> BASE>h
>>>>>
>>>>> I run the same program using Ansible Expect with this playbook:
>>>>> ---
>>>>> - name: Test a conversation
>>>>>    hosts: BASE
>>>>>    remote_user: root
>>>>>    gather_facts: false
>>>>>    tasks:
>>>>>     - name: Copy script converse2.py
>>>>>       copy: src=/home/converse2.py
>>>>>                  dest=/home/converse2.py
>>>>>                  remote_src=no
>>>>>                  mode=preserve
>>>>>     - name: Run test session
>>>>>       expect:
>>>>>          echo: yes
>>>>>          chdir: /tmp
>>>>>          command: python3 /home/converse2.py
>>>>>          timeout: "300"
>>>>>          responses:
>>>>>              Username: sq
>>>>>              Password: "SoLong>"
>>>>>              BASE\>: w ##Class(websys).test()
>>>>>              BASE\>: H
>>>>>      register: command_output
>>>>>     - debug:
>>>>>           msg: "{{ command_output.stdout.split('\n') }}"
>>>>>
>>>>> However Ansible Expect is not sending 'w ##Class(websys).test()' to
>>>>> the program
>>>>>
>>>>> This is the run:
>>>>> ansible-playbook /home/ansible_playbooks/test-converse2.yml
>>>>> [WARNING]: While constructing a mapping from
>>>>> /home/ansible_playbooks/test-converse2.yml, line 20, column 9, found a
>>>>> duplicate dict key (BASE\>). Using last defined value only.
>>>>>
>>>>> PLAY [Test a conversation]
>>>>> ****************************************************************************************************************************************************
>>>>>
>>>>> TASK [Copy script converse2.py]
>>>>> ***********************************************************************************************************************************************
>>>>> ok: [TRAK-BASE01]
>>>>>
>>>>> TASK [Run test session]
>>>>> ********************************************************************************************************************************************************
>>>>> changed: [TRAK-BASE01]
>>>>>
>>>>> TASK [debug]
>>>>> ********************************************************************************************************************************************************************
>>>>> ok: [TRAK-BASE01] => {
>>>>>     "msg": [
>>>>>         "\r",
>>>>>         "Welcome to BASE\r",
>>>>>         "   My configuration is up to date\r",
>>>>>         "   Print settings are normal\r",
>>>>>         "\r",
>>>>>         "\r",
>>>>>         "Username: sq\r",
>>>>>         "Password: SoLong>\r",
>>>>>         "BASE>H"
>>>>>     ]
>>>>> }
>>>>>
>>>>> PLAY RECAP
>>>>> ************************************************************************************************************************************************************************
>>>>> TRAK-BASE01                : ok=3    changed=1    unreachable=0
>>>>>  failed=0    skipped=0    rescued=0    ignored=0
>>>>>
>>>>> How do I fix this?
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Ansible Project" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/ansible-project/38895202-0733-4df4-8d11-1c661128f3f7n%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/ansible-project/38895202-0733-4df4-8d11-1c661128f3f7n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>>> Sent from Gmail Mobile
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Ansible Project" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/ansible-project/62b8e9c3-cae8-4e95-83f3-fcaa8f95aed1n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/62b8e9c3-cae8-4e95-83f3-fcaa8f95aed1n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/e65fc125-d152-4ab6-972c-223c8afdd9bfn%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/e65fc125-d152-4ab6-972c-223c8afdd9bfn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
-- 
Sent from Gmail Mobile

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAF8BbLYGOr4TK-LK6eHDCwaeN0jn4DdqOWYtCqK0WdagsjwzLw%40mail.gmail.com.

Reply via email to