Walter, to further my knowledge, would you mind explaining further what
this regex \"([\\[\\]'])\",' does? Is the regex specifi to regex_replace?
On Wednesday, January 10, 2024 at 10:33:53 AM UTC-5 Dimitri Yioulos wrote:
> Walter, that worked, and thanks so much! I both appreciate the regex
> solution, and it simplification. I also probably be able to reuse this,
> with some modifications, depending on what I'm trying to accomplish. Double
> win. Thanks again!
>
> On Wednesday, January 10, 2024 at 10:14:32 AM UTC-5 Rowe, Walter P. (Fed)
> wrote:
>
>> This works.
>>
>> regex_replace(\"([\\[\\]'])\",'')
>>
>> Escaping the double quotes that define the search regex gets around
>> needing to escape the single quote. Also note that I collapsed your search
>> into a single character set.
>>
>> ---
>>
>> - name: test
>>
>> hosts: localhost
>>
>> become: false
>>
>> gather_facts: false
>>
>> vars:
>>
>> mystr: "['/First Datacenter/vm/Prod-SRM']"
>>
>> tasks:
>>
>> - debug: msg="{{ mystr | regex_replace(\"([\\[\\]'])\",'') }}"
>>
>>
>> *% ansible-playbook -i localhost, foo.yml*
>>
>>
>> PLAY [test]
>> ************************************************************************************************************
>>
>>
>> TASK [debug]
>> ***********************************************************************************************************
>>
>> ok: [localhost] => {
>>
>> "msg": "/First Datacenter/vm/Prod-SRM"
>>
>> }
>>
>>
>> PLAY RECAP
>> *************************************************************************************************************
>>
>> localhost : ok=1 changed=0 unreachable=0
>> failed=0 skipped=0 rescued=0 ignored=0
>>
>> The solution was found on this stack overflow page.
>>
>>
>> https://stackoverflow.com/questions/52495838/ansible-remove-the-single-quote-character-from-a-string
>>
>> Walter
>> --
>> Walter Rowe, Division Chief
>> Infrastructure Services Division
>> Mobile: 202.355.4123 <(202)%20355-4123>
>>
>> On Jan 10, 2024, at 9:27 AM, Rowe, Walter P. (Fed) <[email protected]>
>> wrote:
>>
>> Have you tried:
>>
>> *regex_replace('(\\[)|(\\])**|(\\')**', '')*
>>
>> Walter
>> --
>> Walter Rowe, Division Chief
>> Infrastructure Services Division
>> Mobile: 202.355.4123 <(202)%20355-4123>
>>
>> On Jan 10, 2024, at 9:08 AM, Dimitri Yioulos <[email protected]> wrote:
>>
>> Hello, all.
>>
>> I'm working with VMware modules in removing snapshots across all vCenter
>> folders. In order for this to work, I first have to get the folders in
>> which the virtual machines live. Here's the playbook:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *--- - hosts: all become: false gather_facts: false vars_prompt:
>> - name: "vcenter_username" prompt: "Enter your Vcenter username"
>> private: no - name: "vcenter_password" prompt: "Enter your
>> VMware password" private: yes vars: vcenter_hostname:
>> vcenter1.mycompany.com <http://vcenter1.mycompany.com>
>> vcenter_datacenter: First Datacenter tasks: - name: Find virtual
>> machine's folder name vmware_guest_find: hostname: "{{
>> vcenter_hostname }}" username: "{{ vcenter_username }}"
>> password: "{{ vcenter_password }}" name: "{{ inventory_hostname }}"
>> validate_certs: False delegate_to: localhost
>> ignore_errors: true register: vm_facts tags: *
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> * - folder - name: Show folders ansible.builtin.debug:
>> msg: "{{ vm_facts.folders }}" tags: - folder -
>> name: Remove all snapshots of a VM
>> community.vmware.vmware_guest_snapshot: hostname: "{{
>> vcenter_hostname }}" username: "{{ vcenter_username }}"
>> password: "{{ vcenter_password }}" datacenter: "{{
>> vcenter_datacenter }}" folder: "{{ vm_facts.folders |
>> regex_replace('(\\[)|(\\])', '') }}" name: "{{ inventory_hostname
>> }}" state: remove_all validate_certs: False
>> delegate_to: localhost*
>>
>> Previous to my having employed regex_replace, this is the output I'd get,
>> e.g., for a vm's folder:
>>
>> *"['/First Datacenter/vm/Prod-SRM']"*
>>
>> The problem with that is *['* and *']*. They can't be part pf the folder
>> name. After employing regex-replace, the output is:
>>
>> *" '/Bedford Datacenter/vm/Bedford-Prod-SRM' "*
>>
>> Try as I may, I've not been able to find a way to also remove the single
>> quotes (the double quotes can remain). I've tried appending to the
>> regex_replace, but every piece of code i've used has failed.
>>
>> *regex_replace('(\\[)|(\\])'|(addlcodehere), '') }}*
>>
>> Your kinf assistance requested.
>>
>> --
>> 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/34393455-5021-4342-89b4-de276d68ccd9n%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/ansible-project/34393455-5021-4342-89b4-de276d68ccd9n%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/d6b6bcd4-71fd-4193-acb7-fdd740ca7202n%40googlegroups.com.