On Tuesday, 27 February 2018 00.04.31 CET Raja Shekar wrote:
> 
> On Monday, February 26, 2018 at 11:00:57 AM UTC-6, Raja Shekar wrote:
> >
> >     "groups_out.stdout_lines": [
> >         
> > "\"DB_SCHEMA\",\"SYSTEM_USER\",\"SYSTEM_PASSWORD\",\"TNS_NAME\",\"TNS_DESCRIPTION\"",
> >         
> > "\"Client_Schema1\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\"",
> >         
> > "\"Client_Schema2\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\"",
> >         
> > "\"Client_Schema3\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\"",
> >         
> > "\"Client_Schema4\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\"",
> >         
> > "\"Client_Schema5\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\"",
> >         
> > "\"Client_Schema6\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\"",
> >     ]
> > } 

groups_out.stdout_lines is a list element is a line so you can say 
groups_out.stdout_lines.0 for the fist line
  
"\"DB_SCHEMA\",\"SYSTEM_USER\",\"SYSTEM_PASSWORD\",\"TNS_NAME\",\"TNS_DESCRIPTION\""

and groups_out.stdout_lines.1 for the second line
  
"\"Client_Schema1\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\"",

Since your csv contains the headers of the column this is going to be 
problematic so I suggest you filter them out in your awk command. 


> and also I updated the code now 
> 
> ---
>   - name: Run sqlplus command on {{ Shared DB }}
>     shell: source ~/.bash_profile && sqlplus -S '{{ SharedDB_username }}/{{ 
> SharedDB_password }}@{{ SharedDB_database_host }}:1521/{{ 
> SharedDB_service_name }}' 
> @"/etc/ansible/playbooks/database/roles/oracle-sql/files/final_query.sql"
>     delegate_to: localhost
>     tags: clientSchema
> 
>   - name: Run powershell script
>     script: files/DecryptCsv.ps1 -InputFilePath '{{ input_csv_path }}' \
>                         -OutputFilePath '{{ output_csv_path }}' \
>                         -PassPhrase '{{ pass_phrase }}' \
>                         -SaltValue '{{ salt_value }}' \
>                         -PasswordIterations {{ password_iterations }} \
>                         -InitVector '{{ init_vector }}'
>     delegate_to: localhost
>     tags: clientSchema
> 
>   - name: get CSV File Content
>     shell: source ~/.bash_profile && awk -F',' '!/^#/ && !/^$/ { print }' 
> "{{ output_csv_path }}"
>     register: groups_out
>     delegate_to: localhost
> 
>   - debug: var=groups_out.stdout_lines
> 
>   - name: Update the Client Schema
>     shell: source ~/.bash_profile && sqlplus -S '{{ item.1 }}/{{ item.2 
> }}@{{ item.4 }}' @"roles/oracle-sql/files/Scripts/client_hotfix.sql" {{ 
> item.0 }}
>     with_items: "{{ groups_out.stdout_lines }}"
>     delegate_to: localhost

with_items: "{{ groups_out.stdout_lines }}" will take the first item into the 
variable item.
(I assume the line with the column names are removed)
"\"Client_Schema1\",\"user\"password\",\"TNS_NAME\",\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SANDBOX1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))\""

This is one string so item will contain the whole line.

So getting element 0 from a string, item.0, will be the first character and 
item.1 will be the second and so on.

You need to create list that split on the comma, item.split(',') will create a 
list and item.split(',')[0] is the fist element "Client_Schema1" and 
item.split(',')[1] the second one and so on.
Since you date contains double qoutes it will contain those qoutes, so if they 
causing a problem you need to remove them.


> For some reason it's thinking that Item.0 as 1st position of line and 
> item.1 as second position of line.

That is correct since you are doing this on a string...

> I am looking more like DB_SCHEMA as 
> item.0, SYSTEM_USER as item.1 and so on......

...and not on a list


> Am I doing something wrong here?  and also Is that possible I can ignore 
> line 1 which contains Field information? 

Remove it in you awk where you remove empty lines and lines starting with #


-- 
Kai Stian Olstad

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/25765395.AGW0RL3WYl%40x1.
For more options, visit https://groups.google.com/d/optout.

Reply via email to