`golangci-lint run` issue - go

I create a .golangci.yml in working directory, which have more linters than default, and run golangci-lint run -v but found linters are still default value, anyone encountered same issue? I have checked .golangci.yml path is correct. below is our configure value:
linters:
disable-all: true
enable:
- bodyclose
- deadcode
- depguard
- dogsled
- dupl
- errcheck
- exhaustive
- gochecknoinits
- goconst
- gocritic
- gofmt
- gomnd
- goprintffuncname
- gosec
- gosimple
- govet
- ineffassign
- interfacer
- lll
- misspell
- nakedret
- noctx

This yaml file isn't indented properly. try:
linters:
enable:
- bodyclose
- deadcode
- depguard
- dogsled
- dupl
- errcheck
- exhaustive
- gochecknoinits
- goconst
- gocritic
- gofmt
- gomnd
- goprintffuncname
- gosec
- gosimple
- govet
- ineffassign
- interfacer
- lll
- misspell
- nakedret
- noctx

Related

Create constant in codemagic.yaml which is of type encrypted

How would assign FCI_KEYSTORE below to a constant for reuse in my codemagic.yaml file?
:workflows
integration-tests:
name: Branches - main; Tests - UI; Release - None
instance_type: linux
max_build_duration: 120
environment:
vars:
# Android
FCI_KEYSTORE_PATH: /tmp/keystore.keystore
FCI_KEYSTORE: Encrypted(Z0FBQUFBQmdfY05ObmQxSVdVZVJKdWJRVXJQOTd4VFNSdmtwalJlZHhUX095eVZURW40VXNNWXVRdEdUYlJZaGl1WjFNazlTSmZIeG0xZS1za0hwSkNnN0FMejJqcDFlWkRIaE1qMHJVRlJPLXB1Q1lQUERXQlh5a0Nrb3NSQ2lMTmk3dEpVd1IxX3BreEl4N2Q5TUxURXN4Q2N3N1BZeVYwdWdfN1l5UlczN09RVG5HYmxOQ3lBZXJEMGM4Y1VMLVFKYlB4eXV2ZXdaN2Y1ZEJ2UUVhcVdFLUNSY3ltRGlza205SVFqN3B4ZWwwUU9YRFgyVlZtZ2FReXVNSWR4VVlMNk9qd3JTbnZRLVV0V013M0ZXWkRGSEpoc0JkQ0xaZ21ERVVaaFNFU0o2eDRvREhuLV8xT0pTSFlfUGlfalJNNWQ2NFVyU0lnSlQ0YWlYRUlNclVTTXp6NndFOXVmajlwbTZmcUJxaG4tb2s1VHhESy05ZE1ibkIwS3pvUHUtTGdlSXFCU2lnOTdrQzlXMVRwaFhNazFUOXg0Vl9kQy1aVXpkTFVaRkN2Ujl4NUpmajBXUVNCQnRtbXlmT2RydEwtUS1RRmtGWWI4c0htT3RUOGI3MHBsa19xekNHR21SclJ3U2lPQXJydFpBZGR6UUlkWkNjUE9yS2loUHNSQURDZDFfaHl5VHVYYk1UcjBOd082X1lxNnBqUUZ0aHBvaGJzcEU5VmZuZUFLLWlycDZVYXYyYm9IY1ZxZ2l1dk1QeVlkeGF1YlBaRTBuZTdiMXhoUUthdnpPcDA0UEluc1UxSDBwRU5YdTdvckkwS2JRcm9WX05fT1Q4V3I2UTZxQjFqcGljNFpxd2IzejhydXQ4YmlxYzhjb0Q0aGhxWlNNckxTZHpWaXJRS08tcF83U19Ycmo1TUVPLUhVRlBrUXJJeGVRb2J6ZnRjeHpqeEFLSzFoNWMwMmZrUjN1eFljNGpzOUhfQWlCYU5iT2syYmhJTmpLWkR3YW83ZTFreWZkZ3FtZkttTjNqajR6YTJPeW1mY3lYLTFoMTF5QUU0UTRYa2VYOVhQWWZWU0pDRWljX0MxQnBMTkdwdkxfNnRyR3d1ZzViYU5sV2IxZC04S3ZZV2lwdWoyOUY5MnY5T2l1R1ltNkhrTlRIUnNqVEltSE1jbUJPamt3NldzZ2Z4VVZBNFVkZHIxdFZCTEh0eUFVd3g4bnowZFIwOVI2OG5WN1ZBZUhuQTE3Wkdkel9aejlrVW1oUXhOUVM1eDZHYk0xcGlCXzdvYTNPNHZRc3J5dFNEUXc2ODZ1VWJCd0ZwVGoyY3lBSmV4d3Nkb2Z5Y1c5bHM3UnAxMlNCTFhSZ0pNQWFrTGNlclZFNGtUcktXMnk5bnVYaExXT2VCT1R5MkNXRi1FRTZoYW1KZUI1UnNlaGVzandEOWxYcFFZem9FQXpQSXo1Q21PcHhENTJ1RzBORlFlbFBEYkJwUWtnVWo0ZjEyZk9sUHJaMWw0T0lndWVZSUxKaWNLWFlwalJGUmJXbnI5MGpyYlJZcGFEY3V5c2RUR1g2TExlRFc3MEpJdUdtMmkzQWRuVk84akUyb2RKRHZuckx1YnRiQUVocDBqSmo5R1pYNENKaWJlcHVkeWVicGdJZWxXNUtURVA1c0ZkQW1EMllpdWxCSFNnU1RGMi0wQkswY0F3bENobEt3bEluanQ2bGJVWk9UOHJQMV9sSTRqZmtncl9Fd2dkNlgtWUZjNm5WTk1hbDdRRTZ1Y01jLXh0c2dJYVBscU5mZHVVVFFmaldJaU5QSllDRUN3Y3NoOTFHcERFdkhSVWFVam54S19aTkpPaElRcjRuVlBMdGR6VEJkd3I3MENZWl8ya21lMFNBMXRzNDRGcDZtUnJzOGVMNExtRF81UEprcXVaTklBWXl4UHEyZG8xQlZSTDBTZUNBZThCNlBUQUhMV0kxRWtMOFhzVFdFa0hGZGdRTkJHRXF4RmdvM0RvQ1VlTHNqTjN3V3BvM3hQSWd0Zm1wSGtWcUFUeVNmTEs2cWZiTkI0M3cwd2NWVTFWVTBDMTBXaTZiczJjMEhNR1V1cU5VeHFJRWNudWFyMHJPNUVyMkt6RDVKVWJXOXpydm96MVJfY3FsWmlFMHU0SFJfUE5ERmJBS21WT3V5cVBUcDNsS0RqT3VjOVhJdzRjZGoyZ3ZHNU9GZUlPcDJHbFdpWFRXYVNidWZlUGw2R21wNzV5LUttU2JfS0NacWZsSGl1WHljVnoxZzdQLWpta0xsa2tQRHV5cXlLZXhreWxjMzNmeEJJdDE3TW9PUmo1VUl2b1JlSWMzRGRtc3dQMk9sRXZTUlNIVWtUSFQxS2hmMk5jbEtZNUgteG9vaUdvbVlOSEJIc21zcjI4UnBkWEhRaDZVY19hZHA5LTFXVExyTGZ2VGFJY0ZKTE0xR3FxMXBQWmVVWkVPZzZCUUhOclE2OTFxby12blpjelhwR0RYVkZQTUhIY283MFh4UGh6NXFaSVA4OU5ha3BlMHU1ZUIwSjJ3bDY2S2J0VkhHblhtajRiazd6U09fbDhnUlY4Z3pSajRoQ240ZnpjaEpUSm9pTkcycjVCa1hzNjVXdUpZQy1OeUZRaXd2Vm1GSjlHUEZhY29WcURIWGtIdUFMeERldURId1VzVlZYS0k4bHo2RUZCUEZoYlpmenJSTExNNDNMRTg2MzVLUTF5ZlRkYU54ZEdtMmhwcVphQVo5c0Q5emdmYlg2SVVoMVdqR09kX1BjZFFRZ2pJWFVlTlZTUWRwRnJxNGszSzg4VUowTGV5NV9VcW1HT0JicjJHYk81Y1dfUlk4YjJrVDExZG1ZWHZaWXZoU1k5b08yY0V1aGRDVXNmOEVDalpjVHFORlJ4WmZLUkJDNzFpQk1RYUdiak53SUUxb2tYQXhDU3EtYV9lSDlEYklmS3hnTmRDZUtkdlMyTjNrMjROcFFtVnRBdHhfTlJZal9NTFJsWG9HWTU2bnBhOTlKY1J2MEdWZm9NS1RXeTNoRzh4LU5Jb3otT0FEV1ltT0o0QlItNFZZYi03RkdpU1NWeFd2Uk9MVnUwTWN4VVpja2MwdVlObEdsbFc0am5OXzhNcExQcndMblh1WnUyNFpNQTNkQ1ZudEkzc2laYXdGelByT2lEQmJBTWRsTnhBTEI1b0V6TmFZcmtvVzFvU19WeWtSOTZkdUZFUjU1T3BoM1FxZlBQcGJwWHNfYzNOM0hkLXVUTWRCeTBPUDFlMHpWd3BxSUs5NnBIdGhycUQ4QWh1d3prTXhkYTVydzVGM19nS1RtcWNUVzRleXlxSm1meXROSUN5VUxPOExLYTJHWlJrcnZqMllmbFk3THpxRlZVeUgwTWh3OUEwTnZnU0NzejAtRzl0VTlYYVcyMmxLcm96eTRiWXlERUd3aVRCX0FEMXMtRHFVRDY5US1wbmYxa0R3a2loaG5sblNWd0p5d3Y0UTE4N0Q2NTJSdkhUTFF6di05NzRIbzBIRTFEX204ckxzME55aEhmc19Vd1JXQlNXNFpsSnF0aWxYOWRsZkYtNC1DdWxkLWZyQVFOR0h5VFNMWTNuRk1CUnpEczlNWXQ3cnNUOHhyRzBMNGVhcUM3UGFXeXl3QTVpNDJDWFRuRjVCM2p5TEduWldySTFtM2FmVGxXQ0MwelFoVGI2a21PU1BWUE1VWWY3YTBoQ1VUcV9Vbk8tWENzQVdZU013VEswRzhDUjBsc1FfamJqZWItNmVGR1N0Umc3UUhRLVNBNjRjZmw4Sm9NZGl0OUlOWjZmRVlxckxvNzVVaUJmbzJYLWJTQzB3b2hRcktiMTRCLUhRZExlci1yUjI5R0xLbU1BNmlhMXIwZi1hTUNKelZNWVFiOXBCY3FIYW5DcWthU2Vwdk9YTTBVdGRrLUZvWDRqYmdQbW1zZ3RnRk9oT2JmajBNNzNhWHdTaWg4VFR3T1ptelBGY3c1NGJOSVE1STdNcm10cDB5Uk43TTNJb1pGRjI3RzM1NUNSWHRYb2lmTVFqN010UnA1ODNreF9UWk5QMVpVSk5rVl9IcVFGZUNXY0RTUXVicDZFV3FCUFBjTFQtaUZNMks0TGdzTlBuaXFveEpJREFoR1JabVBZcWFjbFB0T1ZMR2txRVhaSTlIaEJTZHl3TFQtUS1uUUpPUDUwX2twTjlVOE9UWV9PRmdQOG1KWkN3OTh3Tzk1Z3R1c2pVVW1qT1Y1UGhiNkZnbF9jTlpaMVRlTS1udkw1R1lBTGY4ekE4UHEtRHk2M0U3WWkwU1FVYTVGSU1pdktwZjBHZkNvbDFORm5keHNqTFB3LXR2OGhkVWxuZ2M3QUwxczREd3VfYXY4ZXJzcG81OUxqSC1fRmFjQkFyMlc3bEVLMC11RUVsZENhZnZvZUtPMkk3ZkdSd25Xa3N1NC01bU9GenpmeTJVd0JVdFdIdzM5cXVBakJXNF95WmhOSnVtdllwaUNYN2dfcEYweVVJcG42enVUQ1pGNUV1eGE2cTRwOXZWQTdOMzhZekxmcXZjQTNJN3RGOGhUUU1oWV82YVBYYU5nVnhnMG5yUUFvdDl6NnRRNDFLYkphSERmeHdJU3gzR2hSYjBISFBKOTBJTEZIeU45ODNJQW56OVljVDVyTEtNV2hUR3ZaX1ZJT2NHN3piRjFZRnJneVVHOUtCSl9wVU9pY1Mtb0VvLUhrRWlPQkowaTJXdWNJN0lPVGY0NXhueTlWNGdrR0lFT3Q0dFRNMXRMdDJPYXhSMHBUODUwLVRYRUJMNGt2LXZQTGw1VDZ1aVd0SVRPLU9FVjZ3UW5fRGVqODNqVlp1UFNodTRlNmxMUGU3eFpRM1hqYmx5NFJnQWNoWWpsTjVPb1pOV1lKdFBzd2h2OTd6dWpsYmhhNmtzQjVocFA1SDQ2ZndQczRIRFczbnVMSmYyeGZkUHNIWGNIVnd0aFhnY1lGUGxTY1FtTk9LU0t0WnNQXzRCVDJ0aHZMT295MUp2OWhHU1Z0dHFsRjV4ZmR2MUZMV3NmMjR0M3hYNi10a0ltVG5RRGpoZm5Ec0xYbVpaRUpwQXYwMXV6Sm8xeGtoVWxsOWVMUG1vb3JBTW5GQWdJSF9WMDhJOVZkY0FJN2J3bVB4djdaNk5wRU9Fd3d5NTRuVjlkM25Tb2t0MDV3NVBCdlV4cjJtWERKcDVKdWpsZ0pXTTloeTVXYWxtSjg0ajVveTRyUy1MN1dBdlVQbFBRcGE0WW5UanZNQkR3M1BoSVpWSEdfQlotWUs2VzVZelNya2s4WUZkWTNKaC0xWXpENERKQkFUbkFaQlR5U3RiNkRGZ0s0eVB3RmhwU2tXVTNKRzhyS2VrV0tPRHR2Mm5ibUo3eFc4anUzSlNoM1QtSlhWcE1qMTUzS1VtYksyQW9jWHZleXNiYXQyN1JGUDlZaVR0c2lwNEtESEtxNEQtYms1ZVZ3WGFNNnRSNUk3VEktYjVsbWlJMFpDN2ZTQ19SNy10ZkJpRXN1QXFHenNMN0ozYm9wTDR6cllNTS1mVDlUcmQ2Y2VfcmdhaFBkOHNfbWxVM2pBU2lJeDJPOXJvMC00MjYzNGFXYkU5SWNTbTc3aFdJeVJWUlZLTWVhaUpyMG9KVTlNNFVHVmtvc1hXbDRscURDempPZ2UtZjVFRVVyVDZDNklaUHhTSksxYXAwY1B1RVNwY2dJb0MxTG96TFlOWnB3cTlVcm1nenc4MzYtZTl3VkdPUVptTFNfUjF3SXNOcXZxQTByajAxVDJhTmhCTGEwU2trLTdQUFh4YktHbGNOWXhnbUJXNEVUczFIb2V3X093SEJudlJ1UWc1Qkh4a0RObzJGeExJOTg5dnlsUWdab09fa2dGM2g2R0RvcVMtSE9RNFB6WVM1bmpYUDBqYnNpRTN6MWljQzA4TzRLdG1SYW1EWi02aUJ6RF9BN1RvOEZ3YmMzbWNBUzdrb2dOS1dFOFhVcGpkbjVyODlDMVdSRkM3M19mRnA5RTRxc1hwOTQ2U0tmVnZNeVhRNmpxWHAyMVljZWw1TkVYeU5IVFA3T3cxaG1FWHhXa1BSc3VQaU9hWDVnUUZpd2V4TUlUdEhfNjZNTWxIY19RVmZrWVRYT2tVd2dsTmd5eFFnczBvRC1QMHhtNEt4bS1TSUc0TklFbnZJU2lwUFJPOHFGTV9fZU1KSVRwcC16Z01JZi11OWxXQVNDRVFIODBwT2haeVVYTXhQNlEyUXFUNUZvQU1ERkR3bElUWmowZWZuUDlpTC02YjJCdldTQ0pfVGdZLWZuckpSdU00cUJzcW9xcFJyc0lqdHFqX1hnVzdJUFJ2cjFnSTZtNklNVzVJbjRzaDFwdm9mb3VkNndNSlZlWjNqR2JoV3UyT09RQk54RmYwTjY1c3Z2ci1oMUZOeGNjNUpfT1g5RnlsR2VQS25OZjNXQWZOVVZaazdwSHVLUHJ2bDMyVml2TnFneGZneUVuOGxxUEF0U0tUMTFjTlc2UGVqSVpBbWYwdHVxMGdNOUpEb3RVX2RadVIyTzlCR3VMeENSd2U1b2N5X3V0Um5McS1SMThlSWFSX181OWhBU2M3cnZ6eTJWTlJoNjdzb1hVckx1SEIydDNWY2ZpcDdHbF9Lc0tUVDhyUVBwOGZpM3dmMlFyZW1KTVVsWlVDOHlsMnJrZFZXTEhNNmpDeUNkZ08zdGdyRllvRW9sOWJxTlNQTzZ1VVRCRVBHLUR4eUNpUHhrSmEtTlVQcEp0ME9rQmViQ09yNkxlcXQ5dFdXanVYNUhEcWVkekNNRjFTUHFEOUx6WXVwOXFYcWxLSFI5QUJBdlJmQ2pabDVWd2cwMTNRYi1heHhRY05jUlRSYmVPREhCMGF6WUhnTEdDNTU4RXlTV0lrNWxQeGVMT0Q2VGl2ZVg3S1c0WTcxN3VITkg4QVdrVlp5Nnpmd1Fla1A3SWJVS3ZMZGtaTUZRRUc0aDZWbW0zd0NWaGZaNWtYNU5LQlk0cXJ5VHZEbU5SLWtWRWRKZkdnZXEtSnhWWTdWNW4wUlNDeEFuNVZiMVVEZFppV2x5OXVFSnd6NktNTkQ1ZEF3RkhWa1gyNVRNWmZxOFhIRkhfQVhNRUYwMkpMbW1MMVdoRkMxSXVaVVZMTjQ1M0pZbTFtblZScnVQTEhUMkRtd1NPdmpPS251emJwVWZOamUwLVRIYjBXZmY1ZUJsanlsX2RvdE5tOWhYUzd4ay10V0RfS2NRY01KV28wNmgtZ1huWmljU3dWemZXZXpDLXNLYS1xNWZmR2U3REJITlVsNVRmVmFOeFo5bkI4RXdsS0dxdldTczRhd0NiSmFEWFI1d3Mtank2NVl6YjNZLTUtYmdnZHZUUzAyemxJY3FlWldteHZmN0FQQ1dBQVRoZ0xjbWdOQWVHQy1PTnQwcHdUNXl1cUZlWGdBOXY5aEh3U3FqU1JobE9OT3FDQXpzZlRGSTBhVjZXOVo2VDBnZ192X0FSS2JQZnJWU3NjLThsbElEVFB0WEU1NFpLSEwzV1pLTzlkek1QUEREcTdiai1sU00tZUpmVm9Zcm5tbUdvdGh6dXpJRzdrdFRnTDFidVl6bW0wSk1sQUpYSklCdHVSXzFPRG5fNGFCM1NBbVlPcHN5WHNLS2RMZ3VLYWN2OUlhTFctcUNsOEdqbU4zUC1jaXR1UnNyRjh3NEg0TWhMMDJVUEFhaHlKeW1pSnFaT1lrVU5NMUY2WnB3bDAtVlNyRlZaWlFXbV9tTkhabVpjbnJ2Z3R3TVoxZ1ZSNHg1bUNJVXBGeWwxU0s0d3dLZjc4Tm1jR21IMDFSUEtCLU96MDN0c2J6Q3dVUlVpN1RTa3llckdjcS12ektDcWN1dXQ1MGxqdG1GSVlSUFJ5MzBNRlVZX1MwY3BMbkFaTHNkb2ZmaVdiTzRzRW14b2FseVBpeXFCNkw0bkdjbWJ5cHhabEZYTlpuOFRhSVV6ZkNQVFJWTUE4Nmt1MEdMNG5PaHVhNmpvTXYwa3lXdjRTUDk3RnY5aHBOS2Vjb3JieWxwX3ptTTJGZlVKNkJoMllGdE5iOExBaDNaNFY0VHktYk9zMXp1X0FvU1VzdUdPUm8yZWFVWEtCQ1RKcG5hSldnSzFrSFpBRlhGdlpwRkR5N1gxcGwtbUFtRVI4dGxxN2Izb0ttenY1bTJGOEZuM2hkcDRYd2xCSE11dHBuS0JVNHgyMmdKWG13MTRWZnpxUVpLNTl4RXFaRW1jLWZUNU5XVm94UFpVWTJOV3FKa1BIZ0R3eXpSNnpJM1ZDV0ZkS1RGbFFmLUxNTnhHSzlRWks3RnZxZl9RT2hIRDlxUlhMN2VUa2FXaElScC1hMmhCQ2hRS09nTWt2aFR2YzlNc2hBT2lORjlyQVVNbC1YUG9fMnoxQjZQcGs1TTJuVjVBbnBMOGxQVW5ZSDVGVWVUUnh2VWlCOUxyUE9WdjA5Q0IzTHBvSGk2Q25wN3FCUnY1YWZFdXBwZDVhTHpfUnNaelR3ZlhJS0VhT0FwX1RFUnkwYWJ3UklrZW52OTZscUdBcy1ERTVOQWRSRmJ3aHNDZmlNRkJCd3dhdnN2SHc1cFRFeEhRNGFRVThfRnRfLWhHMm0td0VfX2ZzMFoyVzdsTEhGRndQVTN1dnQ3ZnFaOUNBX1d6UWVWX2VtQXB5MkZDYWhUUUEtQVNxUzNmWlc1V09QbmRLR3NoeEZLREYzZTJkRi1jclRack1pdkNpQjZ0RE03R01MRHgzLTBzX0VpX0RmV244RlRyeWpvc0pTd0dkVmtVMEduejlZX3p5N2tGTDNOZzVfYTdkS2hIZjU0X2pPZ0c3bXJzbUxlY1l4QUQ4UHhHdG5JQWNacnctM0JiQjE1VHZjNUdjNXZseTBnZmVVVG9JRmc0bjI0Y2xCNVNOTTlkM2xkV0hHb01BcnljUWZRMk0zVGhDUklMT3RfYzRrQnQxSzBHSjJHM0lTRHllc0hrajM3MzN4cGZERlZmU2FWTEI3MDVrSl85bDdybVVPeHNmNUVEVWl3TVd6TkJBOU1OdzVIREJlWEl0LXZ4RDBYU0h6LTU1ZDltWmUzZzZROWZZSVM4ZHAwak80TXRLWm9NSWFEcWx3Y09hOU42M3RrUktzTzVfZlFWQUtZUEVRaWg1R1JlY3ZvekVvWTgxZTFYbEZjcUlxdEJVdXp4VE1zT255RURHSjBnbC1rR0FtRnZLLW1GUDhBandjblhvVGJ3dU5lNi1MVHV1WlNCUWp0ZDZubXV3dGFwdlJaUnRPUnc0Ujh1cjdhQnNSYTJ4a19sTmRJNDVuM2JzTzlaTVZCM21tTEZLN1FDWk94c1h5bXk1cU1OWjZBbDZVUGdUN3RJV0l4RHJiUS1vRGw0YW9QdmpBYTBqOTc2VXA4OU1zLS1xU1JDQ2RmVGoxcVJzekpIVXhlYkNLUFZ2RTdISWdGS1NSLW40cm4wMVg2a3hZS3ZsR2pBWHNFaVpYQVlHd3k2eWNwX0lTaFotU2VpVFpRZU5WbnRUc1VSZUNnQmU4aWMtODBqelo3Y3E1dXpmOEJrbVg0UlY0Z1J2RjBmRTFYbzUtYzNqVE83LXY5bjJpNDB2UzFYcnZ2S04wTURFMWNlLU50S080SWJaOUx1MmxSaEZBZjR4WDV2TzZtMWNkQWw1Umw0MExacHE1SGZtVkZETTFBc2Fyb01ydU9kZDVwUUhUNTNRS1BzOERHMG82R3lhNldoSEZCdlFLX1pTRXJ0cDh2MHBwRzFEQ3JURlNuRWhYZU1BTFRKUzNOZnBtelZDUXg3cHVCSU9zQXlvTzlrLXdSSHJDQktFdUUxVWVha3E5VTVBODJJa085b0YyQTNTYjlZZVVnMG1VM0xhb0NxdTJiSzZUZlctSVgtUmxkczdXX2s4OXV5T1h0UF9QXzJMakRQWkdHTUJZM05IVllVbVlNd1lDNGp4RDI0VVNGT0ppRjlVdWNKZ1o0NjNYRGVlQ2dZRV94LW5tdXRVVmdqOHBVSy1ncWh0VWhEQTIxOWFyQ0I2QzRMV0xEbUhSQlZUcjFSQVRRMGtqd1licHdMb3BOeXYzQ09nZmtwb3AxMENvMnZ4MHN5OFl0dXpHb09UWlNQaDA1eWhhR1lFUnlhakJtM2oxSEJvVDRmbTJQazVZdGRaV2owX3lXaVFWajFscTAtWWxEUGpEU08zU21SZW8wOUs2aHJjR2plSTdHeTB2UXppMHpDUXVqbWJNSW5XamYtWllHQjRUZE92SWtodGtzS1hVcjNkM1F3cWNfSVlZNmozcWZ0eDFBOWt6R0MtU2FBLVR4NWR6dnhHVnI3cnB2bjhpVk13SDhQa2k1S2xjeGxMMVlyaVU1ZEpNSGExbXV3ZjVzQjZqLVpHc29CdmEyUmk0dERUUGU2SHRqZmFuME1keE5aUEE5QzRjeWxJZkZiRGFNYktPSnI3bzRNRDY4bktDZmtPUjFuSC1QV182MnZmaElyejZXOF9PMDR0X29XV2U5dkp2NFMweHY2OW5QcFpPRGh0Q1JDQUZnTXJDOERELUp5MENpZXNTSkdsTG02QT0=)
I'm trying:
definitions:
environment:
vars:
- &package_name
PACKAGE_NAME: "com.some_company.some_app"
- &fci_keystore
FCI_KEYSTORE: Encrypted(Z0FBQUFBQmdfY05ObmQxSVdVZVJKdWJRVXJQOTd4VFNSdmtwalJlZHhUX095eVZURW40VXNNWXVRdEdUYlJZaGl1WjFNazlTSmZIeG0xZS1za0hwSkNnN0FMejJqcDFlWkRIaE1qMHJVRlJPLXB1Q1lQUERXQlh5a0Nrb3NSQ2lMTmk3dEpVd1IxX3BreEl4N2Q5TUxURXN4Q2N3N1BZeVYwdWdfN1l5UlczN09RVG5HYmxOQ3lBZXJEMGM4Y1VMLVFKYlB4eXV2ZXdaN2Y1ZEJ2UUVhcVdFLUNSY3ltRGlza205SVFqN3B4ZWwwUU9YRFgyVlZtZ2FReXVNSWR4VVlMNk9qd3JTbnZRLVV0V013M0ZXWkRGSEpoc0JkQ0xaZ21ERVVaaFNFU0o2eDRvREhuLV8xT0pTSFlfUGlfalJNNWQ2NFVyU0lnSlQ0YWlYRUlNclVTTXp6NndFOXVmajlwbTZmcUJxaG4tb2s1VHhESy05ZE1ibkIwS3pvUHUtTGdlSXFCU2lnOTdrQzlXMVRwaFhNazFUOXg0Vl9kQy1aVXpkTFVaRkN2Ujl4NUpmajBXUVNCQnRtbXlmT2RydEwtUS1RRmtGWWI4c0htT3RUOGI3MHBsa19xekNHR21SclJ3U2lPQXJydFpBZGR6UUlkWkNjUE9yS2loUHNSQURDZDFfaHl5VHVYYk1UcjBOd082X1lxNnBqUUZ0aHBvaGJzcEU5VmZuZUFLLWlycDZVYXYyYm9IY1ZxZ2l1dk1QeVlkeGF1YlBaRTBuZTdiMXhoUUthdnpPcDA0UEluc1UxSDBwRU5YdTdvckkwS2JRcm9WX05fT1Q4V3I2UTZxQjFqcGljNFpxd2IzejhydXQ4YmlxYzhjb0Q0aGhxWlNNckxTZHpWaXJRS08tcF83U19Ycmo1TUVPLUhVRlBrUXJJeGVRb2J6ZnRjeHpqeEFLSzFoNWMwMmZrUjN1eFljNGpzOUhfQWlCYU5iT2syYmhJTmpLWkR3YW83ZTFreWZkZ3FtZkttTjNqajR6YTJPeW1mY3lYLTFoMTF5QUU0UTRYa2VYOVhQWWZWU0pDRWljX0MxQnBMTkdwdkxfNnRyR3d1ZzViYU5sV2IxZC04S3ZZV2lwdWoyOUY5MnY5T2l1R1ltNkhrTlRIUnNqVEltSE1jbUJPamt3NldzZ2Z4VVZBNFVkZHIxdFZCTEh0eUFVd3g4bnowZFIwOVI2OG5WN1ZBZUhuQTE3Wkdkel9aejlrVW1oUXhOUVM1eDZHYk0xcGlCXzdvYTNPNHZRc3J5dFNEUXc2ODZ1VWJCd0ZwVGoyY3lBSmV4d3Nkb2Z5Y1c5bHM3UnAxMlNCTFhSZ0pNQWFrTGNlclZFNGtUcktXMnk5bnVYaExXT2VCT1R5MkNXRi1FRTZoYW1KZUI1UnNlaGVzandEOWxYcFFZem9FQXpQSXo1Q21PcHhENTJ1RzBORlFlbFBEYkJwUWtnVWo0ZjEyZk9sUHJaMWw0T0lndWVZSUxKaWNLWFlwalJGUmJXbnI5MGpyYlJZcGFEY3V5c2RUR1g2TExlRFc3MEpJdUdtMmkzQWRuVk84akUyb2RKRHZuckx1YnRiQUVocDBqSmo5R1pYNENKaWJlcHVkeWVicGdJZWxXNUtURVA1c0ZkQW1EMllpdWxCSFNnU1RGMi0wQkswY0F3bENobEt3bEluanQ2bGJVWk9UOHJQMV9sSTRqZmtncl9Fd2dkNlgtWUZjNm5WTk1hbDdRRTZ1Y01jLXh0c2dJYVBscU5mZHVVVFFmaldJaU5QSllDRUN3Y3NoOTFHcERFdkhSVWFVam54S19aTkpPaElRcjRuVlBMdGR6VEJkd3I3MENZWl8ya21lMFNBMXRzNDRGcDZtUnJzOGVMNExtRF81UEprcXVaTklBWXl4UHEyZG8xQlZSTDBTZUNBZThCNlBUQUhMV0kxRWtMOFhzVFdFa0hGZGdRTkJHRXF4RmdvM0RvQ1VlTHNqTjN3V3BvM3hQSWd0Zm1wSGtWcUFUeVNmTEs2cWZiTkI0M3cwd2NWVTFWVTBDMTBXaTZiczJjMEhNR1V1cU5VeHFJRWNudWFyMHJPNUVyMkt6RDVKVWJXOXpydm96MVJfY3FsWmlFMHU0SFJfUE5ERmJBS21WT3V5cVBUcDNsS0RqT3VjOVhJdzRjZGoyZ3ZHNU9GZUlPcDJHbFdpWFRXYVNidWZlUGw2R21wNzV5LUttU2JfS0NacWZsSGl1WHljVnoxZzdQLWpta0xsa2tQRHV5cXlLZXhreWxjMzNmeEJJdDE3TW9PUmo1VUl2b1JlSWMzRGRtc3dQMk9sRXZTUlNIVWtUSFQxS2hmMk5jbEtZNUgteG9vaUdvbVlOSEJIc21zcjI4UnBkWEhRaDZVY19hZHA5LTFXVExyTGZ2VGFJY0ZKTE0xR3FxMXBQWmVVWkVPZzZCUUhOclE2OTFxby12blpjelhwR0RYVkZQTUhIY283MFh4UGh6NXFaSVA4OU5ha3BlMHU1ZUIwSjJ3bDY2S2J0VkhHblhtajRiazd6U09fbDhnUlY4Z3pSajRoQ240ZnpjaEpUSm9pTkcycjVCa1hzNjVXdUpZQy1OeUZRaXd2Vm1GSjlHUEZhY29WcURIWGtIdUFMeERldURId1VzVlZYS0k4bHo2RUZCUEZoYlpmenJSTExNNDNMRTg2MzVLUTF5ZlRkYU54ZEdtMmhwcVphQVo5c0Q5emdmYlg2SVVoMVdqR09kX1BjZFFRZ2pJWFVlTlZTUWRwRnJxNGszSzg4VUowTGV5NV9VcW1HT0JicjJHYk81Y1dfUlk4YjJrVDExZG1ZWHZaWXZoU1k5b08yY0V1aGRDVXNmOEVDalpjVHFORlJ4WmZLUkJDNzFpQk1RYUdiak53SUUxb2tYQXhDU3EtYV9lSDlEYklmS3hnTmRDZUtkdlMyTjNrMjROcFFtVnRBdHhfTlJZal9NTFJsWG9HWTU2bnBhOTlKY1J2MEdWZm9NS1RXeTNoRzh4LU5Jb3otT0FEV1ltT0o0QlItNFZZYi03RkdpU1NWeFd2Uk9MVnUwTWN4VVpja2MwdVlObEdsbFc0am5OXzhNcExQcndMblh1WnUyNFpNQTNkQ1ZudEkzc2laYXdGelByT2lEQmJBTWRsTnhBTEI1b0V6TmFZcmtvVzFvU19WeWtSOTZkdUZFUjU1T3BoM1FxZlBQcGJwWHNfYzNOM0hkLXVUTWRCeTBPUDFlMHpWd3BxSUs5NnBIdGhycUQ4QWh1d3prTXhkYTVydzVGM19nS1RtcWNUVzRleXlxSm1meXROSUN5VUxPOExLYTJHWlJrcnZqMllmbFk3THpxRlZVeUgwTWh3OUEwTnZnU0NzejAtRzl0VTlYYVcyMmxLcm96eTRiWXlERUd3aVRCX0FEMXMtRHFVRDY5US1wbmYxa0R3a2loaG5sblNWd0p5d3Y0UTE4N0Q2NTJSdkhUTFF6di05NzRIbzBIRTFEX204ckxzME55aEhmc19Vd1JXQlNXNFpsSnF0aWxYOWRsZkYtNC1DdWxkLWZyQVFOR0h5VFNMWTNuRk1CUnpEczlNWXQ3cnNUOHhyRzBMNGVhcUM3UGFXeXl3QTVpNDJDWFRuRjVCM2p5TEduWldySTFtM2FmVGxXQ0MwelFoVGI2a21PU1BWUE1VWWY3YTBoQ1VUcV9Vbk8tWENzQVdZU013VEswRzhDUjBsc1FfamJqZWItNmVGR1N0Umc3UUhRLVNBNjRjZmw4Sm9NZGl0OUlOWjZmRVlxckxvNzVVaUJmbzJYLWJTQzB3b2hRcktiMTRCLUhRZExlci1yUjI5R0xLbU1BNmlhMXIwZi1hTUNKelZNWVFiOXBCY3FIYW5DcWthU2Vwdk9YTTBVdGRrLUZvWDRqYmdQbW1zZ3RnRk9oT2JmajBNNzNhWHdTaWg4VFR3T1ptelBGY3c1NGJOSVE1STdNcm10cDB5Uk43TTNJb1pGRjI3RzM1NUNSWHRYb2lmTVFqN010UnA1ODNreF9UWk5QMVpVSk5rVl9IcVFGZUNXY0RTUXVicDZFV3FCUFBjTFQtaUZNMks0TGdzTlBuaXFveEpJREFoR1JabVBZcWFjbFB0T1ZMR2txRVhaSTlIaEJTZHl3TFQtUS1uUUpPUDUwX2twTjlVOE9UWV9PRmdQOG1KWkN3OTh3Tzk1Z3R1c2pVVW1qT1Y1UGhiNkZnbF9jTlpaMVRlTS1udkw1R1lBTGY4ekE4UHEtRHk2M0U3WWkwU1FVYTVGSU1pdktwZjBHZkNvbDFORm5keHNqTFB3LXR2OGhkVWxuZ2M3QUwxczREd3VfYXY4ZXJzcG81OUxqSC1fRmFjQkFyMlc3bEVLMC11RUVsZENhZnZvZUtPMkk3ZkdSd25Xa3N1NC01bU9GenpmeTJVd0JVdFdIdzM5cXVBakJXNF95WmhOSnVtdllwaUNYN2dfcEYweVVJcG42enVUQ1pGNUV1eGE2cTRwOXZWQTdOMzhZekxmcXZjQTNJN3RGOGhUUU1oWV82YVBYYU5nVnhnMG5yUUFvdDl6NnRRNDFLYkphSERmeHdJU3gzR2hSYjBISFBKOTBJTEZIeU45ODNJQW56OVljVDVyTEtNV2hUR3ZaX1ZJT2NHN3piRjFZRnJneVVHOUtCSl9wVU9pY1Mtb0VvLUhrRWlPQkowaTJXdWNJN0lPVGY0NXhueTlWNGdrR0lFT3Q0dFRNMXRMdDJPYXhSMHBUODUwLVRYRUJMNGt2LXZQTGw1VDZ1aVd0SVRPLU9FVjZ3UW5fRGVqODNqVlp1UFNodTRlNmxMUGU3eFpRM1hqYmx5NFJnQWNoWWpsTjVPb1pOV1lKdFBzd2h2OTd6dWpsYmhhNmtzQjVocFA1SDQ2ZndQczRIRFczbnVMSmYyeGZkUHNIWGNIVnd0aFhnY1lGUGxTY1FtTk9LU0t0WnNQXzRCVDJ0aHZMT295MUp2OWhHU1Z0dHFsRjV4ZmR2MUZMV3NmMjR0M3hYNi10a0ltVG5RRGpoZm5Ec0xYbVpaRUpwQXYwMXV6Sm8xeGtoVWxsOWVMUG1vb3JBTW5GQWdJSF9WMDhJOVZkY0FJN2J3bVB4djdaNk5wRU9Fd3d5NTRuVjlkM25Tb2t0MDV3NVBCdlV4cjJtWERKcDVKdWpsZ0pXTTloeTVXYWxtSjg0ajVveTRyUy1MN1dBdlVQbFBRcGE0WW5UanZNQkR3M1BoSVpWSEdfQlotWUs2VzVZelNya2s4WUZkWTNKaC0xWXpENERKQkFUbkFaQlR5U3RiNkRGZ0s0eVB3RmhwU2tXVTNKRzhyS2VrV0tPRHR2Mm5ibUo3eFc4anUzSlNoM1QtSlhWcE1qMTUzS1VtYksyQW9jWHZleXNiYXQyN1JGUDlZaVR0c2lwNEtESEtxNEQtYms1ZVZ3WGFNNnRSNUk3VEktYjVsbWlJMFpDN2ZTQ19SNy10ZkJpRXN1QXFHenNMN0ozYm9wTDR6cllNTS1mVDlUcmQ2Y2VfcmdhaFBkOHNfbWxVM2pBU2lJeDJPOXJvMC00MjYzNGFXYkU5SWNTbTc3aFdJeVJWUlZLTWVhaUpyMG9KVTlNNFVHVmtvc1hXbDRscURDempPZ2UtZjVFRVVyVDZDNklaUHhTSksxYXAwY1B1RVNwY2dJb0MxTG96TFlOWnB3cTlVcm1nenc4MzYtZTl3VkdPUVptTFNfUjF3SXNOcXZxQTByajAxVDJhTmhCTGEwU2trLTdQUFh4YktHbGNOWXhnbUJXNEVUczFIb2V3X093SEJudlJ1UWc1Qkh4a0RObzJGeExJOTg5dnlsUWdab09fa2dGM2g2R0RvcVMtSE9RNFB6WVM1bmpYUDBqYnNpRTN6MWljQzA4TzRLdG1SYW1EWi02aUJ6RF9BN1RvOEZ3YmMzbWNBUzdrb2dOS1dFOFhVcGpkbjVyODlDMVdSRkM3M19mRnA5RTRxc1hwOTQ2U0tmVnZNeVhRNmpxWHAyMVljZWw1TkVYeU5IVFA3T3cxaG1FWHhXa1BSc3VQaU9hWDVnUUZpd2V4TUlUdEhfNjZNTWxIY19RVmZrWVRYT2tVd2dsTmd5eFFnczBvRC1QMHhtNEt4bS1TSUc0TklFbnZJU2lwUFJPOHFGTV9fZU1KSVRwcC16Z01JZi11OWxXQVNDRVFIODBwT2haeVVYTXhQNlEyUXFUNUZvQU1ERkR3bElUWmowZWZuUDlpTC02YjJCdldTQ0pfVGdZLWZuckpSdU00cUJzcW9xcFJyc0lqdHFqX1hnVzdJUFJ2cjFnSTZtNklNVzVJbjRzaDFwdm9mb3VkNndNSlZlWjNqR2JoV3UyT09RQk54RmYwTjY1c3Z2ci1oMUZOeGNjNUpfT1g5RnlsR2VQS25OZjNXQWZOVVZaazdwSHVLUHJ2bDMyVml2TnFneGZneUVuOGxxUEF0U0tUMTFjTlc2UGVqSVpBbWYwdHVxMGdNOUpEb3RVX2RadVIyTzlCR3VMeENSd2U1b2N5X3V0Um5McS1SMThlSWFSX181OWhBU2M3cnZ6eTJWTlJoNjdzb1hVckx1SEIydDNWY2ZpcDdHbF9Lc0tUVDhyUVBwOGZpM3dmMlFyZW1KTVVsWlVDOHlsMnJrZFZXTEhNNmpDeUNkZ08zdGdyRllvRW9sOWJxTlNQTzZ1VVRCRVBHLUR4eUNpUHhrSmEtTlVQcEp0ME9rQmViQ09yNkxlcXQ5dFdXanVYNUhEcWVkekNNRjFTUHFEOUx6WXVwOXFYcWxLSFI5QUJBdlJmQ2pabDVWd2cwMTNRYi1heHhRY05jUlRSYmVPREhCMGF6WUhnTEdDNTU4RXlTV0lrNWxQeGVMT0Q2VGl2ZVg3S1c0WTcxN3VITkg4QVdrVlp5Nnpmd1Fla1A3SWJVS3ZMZGtaTUZRRUc0aDZWbW0zd0NWaGZaNWtYNU5LQlk0cXJ5VHZEbU5SLWtWRWRKZkdnZXEtSnhWWTdWNW4wUlNDeEFuNVZiMVVEZFppV2x5OXVFSnd6NktNTkQ1ZEF3RkhWa1gyNVRNWmZxOFhIRkhfQVhNRUYwMkpMbW1MMVdoRkMxSXVaVVZMTjQ1M0pZbTFtblZScnVQTEhUMkRtd1NPdmpPS251emJwVWZOamUwLVRIYjBXZmY1ZUJsanlsX2RvdE5tOWhYUzd4ay10V0RfS2NRY01KV28wNmgtZ1huWmljU3dWemZXZXpDLXNLYS1xNWZmR2U3REJITlVsNVRmVmFOeFo5bkI4RXdsS0dxdldTczRhd0NiSmFEWFI1d3Mtank2NVl6YjNZLTUtYmdnZHZUUzAyemxJY3FlWldteHZmN0FQQ1dBQVRoZ0xjbWdOQWVHQy1PTnQwcHdUNXl1cUZlWGdBOXY5aEh3U3FqU1JobE9OT3FDQXpzZlRGSTBhVjZXOVo2VDBnZ192X0FSS2JQZnJWU3NjLThsbElEVFB0WEU1NFpLSEwzV1pLTzlkek1QUEREcTdiai1sU00tZUpmVm9Zcm5tbUdvdGh6dXpJRzdrdFRnTDFidVl6bW0wSk1sQUpYSklCdHVSXzFPRG5fNGFCM1NBbVlPcHN5WHNLS2RMZ3VLYWN2OUlhTFctcUNsOEdqbU4zUC1jaXR1UnNyRjh3NEg0TWhMMDJVUEFhaHlKeW1pSnFaT1lrVU5NMUY2WnB3bDAtVlNyRlZaWlFXbV9tTkhabVpjbnJ2Z3R3TVoxZ1ZSNHg1bUNJVXBGeWwxU0s0d3dLZjc4Tm1jR21IMDFSUEtCLU96MDN0c2J6Q3dVUlVpN1RTa3llckdjcS12ektDcWN1dXQ1MGxqdG1GSVlSUFJ5MzBNRlVZX1MwY3BMbkFaTHNkb2ZmaVdiTzRzRW14b2FseVBpeXFCNkw0bkdjbWJ5cHhabEZYTlpuOFRhSVV6ZkNQVFJWTUE4Nmt1MEdMNG5PaHVhNmpvTXYwa3lXdjRTUDk3RnY5aHBOS2Vjb3JieWxwX3ptTTJGZlVKNkJoMllGdE5iOExBaDNaNFY0VHktYk9zMXp1X0FvU1VzdUdPUm8yZWFVWEtCQ1RKcG5hSldnSzFrSFpBRlhGdlpwRkR5N1gxcGwtbUFtRVI4dGxxN2Izb0ttenY1bTJGOEZuM2hkcDRYd2xCSE11dHBuS0JVNHgyMmdKWG13MTRWZnpxUVpLNTl4RXFaRW1jLWZUNU5XVm94UFpVWTJOV3FKa1BIZ0R3eXpSNnpJM1ZDV0ZkS1RGbFFmLUxNTnhHSzlRWks3RnZxZl9RT2hIRDlxUlhMN2VUa2FXaElScC1hMmhCQ2hRS09nTWt2aFR2YzlNc2hBT2lORjlyQVVNbC1YUG9fMnoxQjZQcGs1TTJuVjVBbnBMOGxQVW5ZSDVGVWVUUnh2VWlCOUxyUE9WdjA5Q0IzTHBvSGk2Q25wN3FCUnY1YWZFdXBwZDVhTHpfUnNaelR3ZlhJS0VhT0FwX1RFUnkwYWJ3UklrZW52OTZscUdBcy1ERTVOQWRSRmJ3aHNDZmlNRkJCd3dhdnN2SHc1cFRFeEhRNGFRVThfRnRfLWhHMm0td0VfX2ZzMFoyVzdsTEhGRndQVTN1dnQ3ZnFaOUNBX1d6UWVWX2VtQXB5MkZDYWhUUUEtQVNxUzNmWlc1V09QbmRLR3NoeEZLREYzZTJkRi1jclRack1pdkNpQjZ0RE03R01MRHgzLTBzX0VpX0RmV244RlRyeWpvc0pTd0dkVmtVMEduejlZX3p5N2tGTDNOZzVfYTdkS2hIZjU0X2pPZ0c3bXJzbUxlY1l4QUQ4UHhHdG5JQWNacnctM0JiQjE1VHZjNUdjNXZseTBnZmVVVG9JRmc0bjI0Y2xCNVNOTTlkM2xkV0hHb01BcnljUWZRMk0zVGhDUklMT3RfYzRrQnQxSzBHSjJHM0lTRHllc0hrajM3MzN4cGZERlZmU2FWTEI3MDVrSl85bDdybVVPeHNmNUVEVWl3TVd6TkJBOU1OdzVIREJlWEl0LXZ4RDBYU0h6LTU1ZDltWmUzZzZROWZZSVM4ZHAwak80TXRLWm9NSWFEcWx3Y09hOU42M3RrUktzTzVfZlFWQUtZUEVRaWg1R1JlY3ZvekVvWTgxZTFYbEZjcUlxdEJVdXp4VE1zT255RURHSjBnbC1rR0FtRnZLLW1GUDhBandjblhvVGJ3dU5lNi1MVHV1WlNCUWp0ZDZubXV3dGFwdlJaUnRPUnc0Ujh1cjdhQnNSYTJ4a19sTmRJNDVuM2JzTzlaTVZCM21tTEZLN1FDWk94c1h5bXk1cU1OWjZBbDZVUGdUN3RJV0l4RHJiUS1vRGw0YW9QdmpBYTBqOTc2VXA4OU1zLS1xU1JDQ2RmVGoxcVJzekpIVXhlYkNLUFZ2RTdISWdGS1NSLW40cm4wMVg2a3hZS3ZsR2pBWHNFaVpYQVlHd3k2eWNwX0lTaFotU2VpVFpRZU5WbnRUc1VSZUNnQmU4aWMtODBqelo3Y3E1dXpmOEJrbVg0UlY0Z1J2RjBmRTFYbzUtYzNqVE83LXY5bjJpNDB2UzFYcnZ2S04wTURFMWNlLU50S080SWJaOUx1MmxSaEZBZjR4WDV2TzZtMWNkQWw1Umw0MExacHE1SGZtVkZETTFBc2Fyb01ydU9kZDVwUUhUNTNRS1BzOERHMG82R3lhNldoSEZCdlFLX1pTRXJ0cDh2MHBwRzFEQ3JURlNuRWhYZU1BTFRKUzNOZnBtelZDUXg3cHVCSU9zQXlvTzlrLXdSSHJDQktFdUUxVWVha3E5VTVBODJJa085b0YyQTNTYjlZZVVnMG1VM0xhb0NxdTJiSzZUZlctSVgtUmxkczdXX2s4OXV5T1h0UF9QXzJMakRQWkdHTUJZM05IVllVbVlNd1lDNGp4RDI0VVNGT0ppRjlVdWNKZ1o0NjNYRGVlQ2dZRV94LW5tdXRVVmdqOHBVSy1ncWh0VWhEQTIxOWFyQ0I2QzRMV0xEbUhSQlZUcjFSQVRRMGtqd1licHdMb3BOeXYzQ09nZmtwb3AxMENvMnZ4MHN5OFl0dXpHb09UWlNQaDA1eWhhR1lFUnlhakJtM2oxSEJvVDRmbTJQazVZdGRaV2owX3lXaVFWajFscTAtWWxEUGpEU08zU21SZW8wOUs2aHJjR2plSTdHeTB2UXppMHpDUXVqbWJNSW5XamYtWllHQjRUZE92SWtodGtzS1hVcjNkM1F3cWNfSVlZNmozcWZ0eDFBOWt6R0MtU2FBLVR4NWR6dnhHVnI3cnB2bjhpVk13SDhQa2k1S2xjeGxMMVlyaVU1ZEpNSGExbXV3ZjVzQjZqLVpHc29CdmEyUmk0dERUUGU2SHRqZmFuME1keE5aUEE5QzRjeWxJZkZiRGFNYktPSnI3bzRNRDY4bktDZmtPUjFuSC1QV182MnZmaElyejZXOF9PMDR0X29XV2U5dkp2NFMweHY2OW5QcFpPRGh0Q1JDQUZnTXJDOERELUp5MENpZXNTSkdsTG02QT0=)
But getting:
Incorrect type. Expected "string | integer | number |
boolean".yaml-schema: Environment variables
this yaml code doesn't show any syntax errors for me
definitions:
environment:
vars:
- &package_name
PACKAGE_NAME: "com.some_company.some_app"
- &fci_keystore
FCI_KEYSTORE: Encrypted(...)
workflows:
integration-tests:
name: Branches - main; Tests - UI; Release - None
environment:
vars:
<<: *package_name
<<: *fci_keystore
Also you can create alias for group of variables (note there is no - when you define variables)
definitions:
environment:
vars: &android_vars
PACKAGE_NAME: "com.some_company.some_app"
FCI_KEYSTORE: Encrypted(...)
workflows:
integration-tests:
name: Branches - main; Tests - UI; Release - None
environment:
vars:
<<: *android_vars
You can validate codemagic.yaml syntax in Visual Studio Code or go to codemagic.io > your App Settings > codemagic.yaml tab

Insert a line on each findings from given file using ansible playbook

I want to add the line "*{My-Dept$2}" in file.yaml after *{My-Dept$1} this on every finding, I was able to find a line that starts with *{My-Dept$1} and inserted only one time, and ended with this trouble.
I have this in Multiple lines in the file and wanted to insert after "*{My-Dept$1}".
The reference are below:
Infrastructure:
- *{My-Dept$0}
- *{My-Dept$1}
Applications:
- *{My-Dept$1}
- *{My-Dept$3}
- *{My-Dept$4}
Database:
- *{My-Dept$0}
- *{My-Dept$1}
- *{My-Dept$3}
With the below code i was able to add the line "- *{My-Dept$2}" after only in the last "Database arry " entry.
- name: Add missing Dept
lineinfile:
dest: ./file.yaml
insertafter: '[*{]My-Dept[$]1[}]' #
line: ' - *{My-Dept$2}'
and the Output:
Infrastructure:
- *{My-Dept$0}
- *{My-Dept$1}
Applications:
- *{My-Dept$1}
- *{My-Dept$3}
- *{My-Dept$4}
Database:
- *{My-Dept$0}
- *{My-Dept$1}
- *{My-Dept$2}
- *{My-Dept$3}
I wish to get "*{My-Dept$2}" on every next line of each of the findings of *{My-Dept$1} entries. Most of the search find talks about replace, but my requirement is to insert multiple times on each finding.
Make the file.yaml valid YAML. For example
shell> cat file.yaml
---
Infrastructure:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
Applications:
- '*{My-Dept$1}'
- '*{My-Dept$3}'
- '*{My-Dept$4}'
Database:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
- '*{My-Dept$3}'
Q: "Put *{My-Dept$2} on every next line of each of the findings of *{My-Dept$1} entries."
A: It's possible to edit the file on your own.
Read the variables from the file into a dictionary. For examle
- include_vars:
file: file.yaml
name: my_dict
- debug:
var: my_dict
gives
my_dict:
Applications:
- '*{My-Dept$1}'
- '*{My-Dept$3}'
- '*{My-Dept$4}'
Database:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
- '*{My-Dept$3}'
Infrastructure:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
Modify the data. For example
- set_fact:
my_dict1: "{{ my_dict1|default({})|
combine({item: (my_dict[item] + add_items)|unique|sort}) }}"
loop: "{{ my_dict.keys()|list }}"
vars:
add_items:
- '*{My-Dept$2}'
- debug:
var: my_dict1
gives
my_dict1:
Applications:
- '*{My-Dept$1}'
- '*{My-Dept$2}'
- '*{My-Dept$3}'
- '*{My-Dept$4}'
Database:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
- '*{My-Dept$2}'
- '*{My-Dept$3}'
Infrastructure:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
- '*{My-Dept$2}'
Create template
shelll> cat file.yaml.j2
---
{% for k,v in my_dict1.items() %}
{{ k }}:
{% for item in v %}
- '{{ item }}'
{% endfor %}
{% endfor %}
Write the modified data into the file
- template:
src: file.yaml.j2
dest: file.yaml
gives
shell> cat file.yaml
---
Infrastructure:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
- '*{My-Dept$2}'
Applications:
- '*{My-Dept$1}'
- '*{My-Dept$2}'
- '*{My-Dept$3}'
- '*{My-Dept$4}'
Database:
- '*{My-Dept$0}'
- '*{My-Dept$1}'
- '*{My-Dept$2}'
- '*{My-Dept$3}'

How to detect if there's any certificates renewed by `certbot renew`?

I want to automatically renew SSL certificates provided by let's encrypt.
Here's my plan:
Use crontab to execute certbot renew everyday.
If there's any certificate renewed by certbot renew, use AWS CLI to upload the certificate to a load balancer. (AWS China doesn't have Certificate Manager yet, that's why I use let's encrypt.)
My problem is that I don't know how to detect if there's any certificate renewed by certbot renew command.
This command returns something like the following:
*** renew ***
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/ooo.com-0001.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/xxx.com-0002.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certs are not due for renewal yet:
/etc/letsencrypt/live/ooo.com-0001/fullchain.pem expires on 2019-12-25 (skipped)
/etc/letsencrypt/live/xxx.com-0002/fullchain.pem expires on 2019-12-25 (skipped)
No renewals were attempted.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
same
I think it would be difficult to parse the string to decide if there's any renewed certificates.

Apache Nifi and OPC integration issue (GetValue processor)

I have integrated NIFI OPC UA [https://github.com/wadesalazar/NIFI-OPCUA] processor with Apache Nifi 1.3.I am following this URL [https://community.hortonworks.com/articles/90355/collect-data-from-opc-ua-protocol.html] to get started. I have installed a simulation OPC server from prosys opc ua on windows.
I am able to pull messages from the GetNodeIDs processor on NIFI, and splitText processor is being used for reading messages line by line and sending to GetValue processor as shown in the example, but my GetValue processor is continuously throwing below error.
I tried to set "starting node" property in GetNodeIDs processor, but not able to make out what a node property should I set, please find below my sample data from simulation server.
Sample data received from simulation opc server:
nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=85
- nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2253
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2004
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2007
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2009
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2010
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2011
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2012
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11489
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11527
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2006
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2742
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2005
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2008
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2256
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2138
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2257
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2258
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2259
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2260
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2992
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2993
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2268
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2013
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2996
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2997
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11192
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11704
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2271
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2272
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2736
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2269
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2737
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=3704
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11703
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2735
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11702
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2274
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2020
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2275
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2290
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=3706
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2294
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2295
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2033
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2296
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2034
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=3709
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11313
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11314
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11312
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11492
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11493
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11494
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11715
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=11645
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12637
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12581
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12642
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12672
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12675
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12641
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12710
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12639
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12640
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=12711
- - ns=2;s=MyObjectsFolder
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=2;s=MyDevice
- - - ns=2;s=MyDevice
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2255
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=68
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2994
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=68
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2254
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=68
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=2267
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=68
- ns=2;s=MyObjectsFolder
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - ns=2;s=MyDevice
- - - ns=2;s=MyDeviceType
- - - ns=2;s=MyEnumObject
- - - ns=2;s=MyLevel
- - - ns=2;s=MyLevel
- - - ns=2;s=MyLevel.Alarm
- - - ns=2;s=MyMethod
- - - ns=2;s=MySwitch
- - ns=2;s=MyDevice
- - - ns=2;s=MyDeviceType
- - - ns=2;s=MyEnumObject
- - - ns=2;s=MyLevel
- - - ns=2;s=MyLevel
- - - ns=2;s=MyLevel.Alarm
- - - ns=2;s=MyMethod
- - - ns=2;s=MySwitch
- ns=3;s=StaticData
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - ns=3;s=AccessLevels
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=AccessLevelCurrentRead
- - - ns=3;s=AccessLevelCurrentReadNotUser
- - - ns=3;s=AccessLevelCurrentReadWrite
- - - ns=3;s=AccessLevelCurrentWrite
- - - ns=3;s=AccessLevelCurrentWriteNotUser
- - ns=3;s=AnalogItemArrays
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=ByteAnalogItemArray
- - - ns=3;s=DoubleAnalogItemArray
- - - ns=3;s=FloatAnalogItemArray
- - - ns=3;s=Int16AnalogItemArray
- - - ns=3;s=Int32AnalogItemArray
- - - ns=3;s=Int64AnalogItemArray
- - - ns=3;s=SByteAnalogItemArray
- - - ns=3;s=UInt16AnalogItemArray
- - - ns=3;s=UInt32AnalogItemArray
- - - ns=3;s=UInt64AnalogItemArray
- - ns=3;s=AnalogItems
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=ByteAnalogItem
- - - ns=3;s=DoubleAnalogItem
- - - ns=3;s=FloatAnalogItem
- - - ns=3;s=Int16AnalogItem
- - - ns=3;s=Int32AnalogItem
- - - ns=3;s=Int64AnalogItem
- - - ns=3;s=SByteAnalogItem
- - - ns=3;s=Sample Instrument Int32AnalogItem
- - - ns=3;s=UInt16AnalogItem
- - - ns=3;s=UInt32AnalogItem
- - - ns=3;s=UInt64AnalogItem
- - ns=3;s=DataItems
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=BooleanDataItem
- - - ns=3;s=ByteDataItem
- - - ns=3;s=ByteStringDataItem
- - - ns=3;s=DateTimeDataItem
- - - ns=3;s=DoubleDataItem
- - - ns=3;s=FloatDataItem
- - - ns=3;s=GUIDDataItem
- - - ns=3;s=Int16DataItem
- - - ns=3;s=Int32DataItem
- - - ns=3;s=Int64DataItem
- - - ns=3;s=SByteDataItem
- - - ns=3;s=StringDataItem
- - - ns=3;s=UInt16DataItem
- - - ns=3;s=UInt32DataItem
- - - ns=3;s=UInt64DataItem
- - - ns=3;s=XmlElementDataItem
- - ns=3;s=DeepFolder
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=DeepObject01
- - ns=3;s=MultiStateItems
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=MultiStateDiscreteItem
- - ns=3;s=StaticArrayVariables
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=BooleanArray
- - - ns=3;s=ByteArray
- - - ns=3;s=ByteStringArray
- - - ns=3;s=DateTimeArray
- - - ns=3;s=DoubleArray
- - - ns=3;s=FloatArray
- - - ns=3;s=GUIDArrayArray
- - - ns=3;s=Int16Array
- - - ns=3;s=Int32Array
- - - ns=3;s=Int64Array
- - - ns=3;s=LocalizedTextArray
- - - ns=3;s=QualifiedNameArray
- - - ns=3;s=SByteArray
- - - ns=3;s=StringArray
- - - ns=3;s=UInt16Array
- - - ns=3;s=UInt32Array
- - - ns=3;s=UInt64Array
- - - ns=3;s=VariantArray
- - - ns=3;s=XmlElementArray
- - ns=3;s=StaticVariables
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=Boolean
- - - ns=3;s=Byte
- - - ns=3;s=ByteString
- - - ns=3;s=DateTime
- - - ns=3;s=Double
- - - ns=3;s=Duration
- - - ns=3;s=Enumeration
- - - ns=3;s=Float
- - - ns=3;s=GUID
- - - ns=3;s=Image
- - - ns=3;s=ImageBMP
- - - ns=3;s=ImageGIF
- - - ns=3;s=ImageJPG
- - - ns=3;s=ImagePNG
- - - ns=3;s=Int16
- - - ns=3;s=Int32
- - - ns=3;s=Int64
- - - ns=3;s=Integer
- - - ns=3;s=LocaleId
- - - ns=3;s=LocalizedText
- - - ns=3;s=NodeId
- - - ns=3;s=Number
- - - ns=3;s=QualifiedName
- - - ns=3;s=SByte
- - - ns=3;s=String
- - - ns=3;s=Time
- - - ns=3;s=UInt16
- - - ns=3;s=UInt32
- - - ns=3;s=UInt64
- - - ns=3;s=UInteger
- - - ns=3;s=UtcTime
- - - ns=3;s=Variant
- - - ns=3;s=XmlElement
- - ns=3;s=TwoStateItems
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - - ns=3;s=TwoStateDiscreteItem
- ns=4;s=NonUaNodeComplianceTest
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - ns=4;s=ByteString
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=SByte
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Time
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=String
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Int16
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Image
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=DateTime
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=LocalizedText
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=UtcTime
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=LocaleId
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=ImageGIF
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Number
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Int32
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=ImageBMP
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=UInteger
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Boolean
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=UInt64
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Enumeration
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=QualifiedName
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=GUID
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Duration
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Double
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Variant
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Integer
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Float
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=ImagePNG
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Int64
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=Byte
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=NodeId
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=XmlElement
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=UInt16
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=ImageJPG
- - - ns=4;s=NonUaNodeDataItemType
- - ns=4;s=UInt32
- - - ns=4;s=NonUaNodeDataItemType
- ns=5;s=85/0:Simulation
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - ns=5;s=Counter1
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- - ns=5;s=Expression1
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- - ns=5;s=Random1
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- - ns=5;s=Sawtooth1
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- - ns=5;s=SimulationServerNode11
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- - ns=5;s=Sinusoid1
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- - ns=5;s=Square1
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- - ns=5;s=Triangle1
- - - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
- ns=6;s=MyBigNodeManager
- - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=61
- - ns=6;s=DataItem_0000
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0001
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0002
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0003
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0004
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0005
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0006
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0007
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0008
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0009
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0010
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0011
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0012
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0013
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0014
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0015
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0016
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0017
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0018
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0019
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0020
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0021
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0022
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0023
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0024
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0025
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0026
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0027
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0028
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0029
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0030
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0031
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0032
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0033
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0034
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0035
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0036
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0037
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0038
- - - ns=6;s=DataItemType
- - ns=6;s=DataItem_0039
- - - ns=6;s=DataItemType
Exception:
2017-07-25 18:03:10,189 ERROR [Timer-Driven Process Thread-8] c.k.nifi.nifi_opcua_bundle.GetValue GetValue[id=55c6ac28-015d-1000-076b-844ca709cc40] GetValue[id=55c6ac28-015d-1000-076b-844ca709cc40] failed to process due to java.lang.IllegalArgumentException: Invalid string representation of a nodeId: - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63; rolling back session: {}
java.lang.IllegalArgumentException: Invalid string representation of a nodeId: - nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63
at org.opcfoundation.ua.builtintypes.NodeId.parseNodeId(NodeId.java:383)
at com.kentender.nifi.nifi_opcua_services.StandardOPCUAService.getValue(StandardOPCUAService.java:346)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:89)
at com.sun.proxy.$Proxy78.getValue(Unknown Source)
at com.kentender.nifi.nifi_opcua_bundle.GetValue$2.process(GetValue.java:160)
at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2529)
at com.kentender.nifi.nifi_opcua_bundle.GetValue.onTrigger(GetValue.java:156)
at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1120)
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:147)
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
'nsu=http%3A%2F%2Fopcfoundation.org%2FUA%2F;i=63' represents an ExpandedNodeId, so the Nifi code should use ExpandedNodeId.parseExpandedNodeId() instead of NodeId.parseNodeId().
Or alternatively, you need to convert the ExpandedNodeId to NodeId before you pass it to GetValue(). Unfortunately, I am not familiar with Nifi, so I am not sure which is the correct approach here.
The problem arises from OPC UA "dualism" - some services like Browse, provide ExpandedNodeId references, whereas other services like Read, expect to get NodeId instances.
ExpandedNodeId may define the namespace as an URI ('nsu' in the string) or index ('ns' in the string), where as NodeId may only define the namespace as an index.

Pivot Table with Date as Column in Oracle 10g

I want to create pivot table where column candidate is from DATE column type.
Here is my table preview
And my expected result is like this :
MAIN_RESOURCE | MAIN_USER_NAME | 01-AUG-08 | 01-JUL-08 | 01-JAN-08 | 01-DEC-07 | 01-OCT-07 | next
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
08287060863 90000000000821 0 0 6565 109921 0 next
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
That values in each date column come from TOTAL_AMOUNT, TOTAL_USAGE, AND INVOICE_DEBT.
So, I must have three times of date columns. first for TOTAL_AMOUNT, second for TOTAL_USAGE, and the last one for INVOICE_DEBT.
How to create that?

Resources