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.
