github.com/upcmd/up@v0.8.1-0.20230108151705-ad8b797bf04f/tests/functests/c0034.yml (about) 1 TODO: 2 - not clear if dvar in calleed should be overriden as well?? 3 - need a review on this later on 4 5 doc_meta: | 6 folder: dvars 7 title: dvars in call 8 head: | 9 Demo dvars merge in local scope in execution time 10 11 sections: 12 - title: Note 13 content: | 14 * school object in callee 15 16 - title: Demo 17 log: yes 18 19 notes: 20 goal: 21 - dvars expand in call level 22 - dvars object can merge in leaf level 23 - dvar in call task will override same name dvar in local level 24 25 expected: 26 - school object in nonprod could append new element and 27 - also override same name element 28 29 result_log: | 30 cmd( 1): 31 echo """1.school -> {{.school}}""" 32 1.school -> address: 33 state: NSW 34 city: sydney 35 suburb: 36 name: sydney 37 postcode: 2000 38 CBD: LOCAL 39 school: Sydney Grammar 40 principal: Mr Right 41 cmd( 2): 42 echo """2.school object CBD -> {{.school_object.address.suburb.CBD}}""" 43 2.school object CBD -> LOCAL 44 cmd( 3): 45 echo """3.school object-> {{.school_object.address.school}}""" 46 3.school object-> Sydney Grammar 47 cmd( 4): 48 echo """4.school object-> {{.school_object.principal}}""" 49 4.school object-> Mr Right 50 cmd( 5): 51 echo """5.a {{.a}}""" 52 5.a local-a 53 cmd( 6): 54 echo """6.b {{.b}}""" 55 6.b local-b 56 57 scopes: 58 - 59 name: global 60 vars: 61 student: 62 name: Tom 63 gender: Male 64 address: 65 suburb: 66 name: sydney 67 postcode: 2000 68 CBD: yes 69 school: Sydney Grammar 70 71 - 72 name: nonprod 73 members: 74 - dev 75 - staging 76 vars: 77 a: non-prod-a 78 b: non-prod-b 79 c: non-prod-c 80 d: non-prod-d 81 dvars: 82 - name: school 83 value: | 84 address: 85 suburb: 86 name: {{.student.address.suburb.name}} 87 postcode: 2000 88 CBD: yes 89 school: {{.student.address.school}} 90 flags: [toObj] 91 92 - 93 name: dev 94 95 96 tasks: 97 98 - 99 name: task 100 task: 101 - 102 func: call 103 vars: 104 a: local-a 105 b: local-b 106 dvars: 107 - name: school 108 value: | 109 address: 110 state: NSW 111 city: sydney 112 suburb: 113 name: {{.student.address.suburb.name}} 114 postcode: 2000 115 CBD: LOCAL 116 school: {{.student.address.school}} 117 principal: Mr Right 118 flags: [toObj] 119 120 do: 121 - show_school_details 122 123 - 124 name: show_school_details 125 task: 126 127 - 128 func: shell 129 vars: 130 a: show-school-details-a 131 b: show-school-details-b 132 dvars: 133 - name: class_room 134 value: 3K 135 - name: school 136 value: | 137 address: 138 suburb: 139 name: {{.student.address.suburb.name}} 140 postcode: 2000 141 CBD: no 142 school: {{.student.address.school}} 143 principal: Mr Peter 144 something: ref task does not have this field 145 flags: [toObj] 146 147 do: 148 - echo """1.school -> {{.school}}""" 149 - echo """2.school object CBD -> {{.school_object.address.suburb.CBD}}""" 150 - echo """3.school object-> {{.school_object.address.school}}""" 151 - echo """4.school object-> {{.school_object.principal}}""" 152 - echo """5.a {{.a}}""" 153 - echo """6.b {{.b}}""" 154 - echo """7.school object-> {{.school_object|printObj}}"""