Commit 8afa984c authored by Spiros Koulouzis's avatar Spiros Koulouzis

add artifacts to be able to add the cloudstorm information

parent 2bbc0d82
......@@ -16,16 +16,16 @@ topology_template:
user_key_pair:
protocol: "ssh"
keys:
public_key: "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDRm9tbkNaR2JYaGthdFkrV2VLQ29yRzdSRUlYSTBhclNLb2VrVU13Wks3c1NjNTloTFN3a09TcGZiTExuNnlGWG1Tc1h3bkk5SmJvY1lCdUR2bllJdVVrdnY5bmtQWVc3S0RXdU01UU5oanlhQUtkVUlXeGhZZ3pka2JJYkVUNlo2QkgvZGxzV2NsSU9aMnNSeGFidkNPQVVsT0xNWDFMQUlFK1ZacDlpekl3PT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK"
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNGb21uQ1pHYlhoa2F0WStXZUtDb3JHN1JFSVhJMGFyU0tvZWtVTXdaSzdzU2M1OWhMClN3a09TcGZiTExuNnlGWG1Tc1h3bkk5SmJvY1lCdUR2bllJdVVrdnY5bmtQWVc3S0RXdU01UU5oanlhQUtkVUkKV3hoWWd6ZGtiSWJFVDZaNkJIL2Rsc1djbElPWjJzUnhhYnZDT0FVbE9MTVgxTEFJRStWWnA5aXpJd0lEQVFBQgpBb0dBWStWZ1IrZkVGVE1VWElPRDM3SElyQWIrdjd0ODR3QXRURUR5dXAzV0EyZnY1QmRRVWlDYWVXdDdqMlVrCjlmcVNkQi9MVGkzSzB5cmpwQ3RvTk5jNnU0dHpkV0txRk9QRUgyNXhHQ1N6aVpNQWFWcWdFTTNDb0UrVUl1aXIKNW1FaGlQRDJhd2U2SFdZbUQvODQwTUxWR1NUMWp3VUdxTy9wY0dpQW04c0hBeGtDUVFEYW45S1JZL2RiQmNUegpLR3JUL25Xamg2WW0ySnAxNkd5NEMxeDVEZElUYVg5TEtsajIwS2V4ZFQ5NGVNN2o5S1pBZG9uS2xzQ1l1WVBRClRRMGd6U2hQQWtFQW5IcjV2YkFhbWh1Rkw1Uk9zQXF4dWhxdXRVcTRUbnVraHlPNFZQYnoxRE12djgwZzd0V1MKWnNtSWV6ek14YXpncXhiaHV2S0lPWjFoRjROUDNsVCs3UUpBZWRPbDJ5OEJuODlQT05ERTl1MU5VSnMrazFjUQplN1BSSVozekllSDV0cWVMTDYraGM2aENTamt6N1VZa3hCS0lzbE5iNVhDc1VtN09iVDBDbTh5M01RSkFlMzlHCjJTRkNiWHZveWx0SEd3TGxyNVpkYWpGVmNvTjhuemRleEplK2Fpd1h0RTFsZjNsSk9SdzNQZVFIVEwrYTlReHoKRE1OYkpmV0NhamMxY3Fnc0pRSkFkNmhoekxVTmFtYVVycTdoNkdMTUZ4TFdOdDJleGhWZWhZU3IyeTBZZ2RXZwpaUTc1eTV2Rm9zMXFTTDl6dU83cVpKRmpqc2doVVhvRGtVbFNYWk9DMlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
public_ip: "52.59.190.147"
public_key: "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDYUVhemZ3c003cEc4MTRnUnpaRktHeUxCcVlzVXlSNEd2SXVBQ3d0dmpQN3hDNGVZMDloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGdMbUR2OHJSU3g1TytkU1lycjdWNGs3L1VJdWxMYlhEb2p6T3NZYkpjYlZlODRGM0tnTGJTcG4yeDJRPT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK"
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNhRWF6ZndzTTdwRzgxNGdSelpGS0d5TEJxWXNVeVI0R3ZJdUFDd3R2alA3eEM0ZVkwCjloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGcKTG1EdjhyUlN4NU8rZFNZcnI3VjRrNy9VSXVsTGJYRG9qek9zWWJKY2JWZTg0RjNLZ0xiU3BuMngyUUlEQVFBQgpBbjhyVk0xS0lYekhTWGY5cjVPUTRLWlZRaHhiejJ1bXVIWEF6QTQwdUprZlVNMmlBZWE4L25qbWRpL2NxdFJZCnNBRWZzdXowQkV2Z3IrUjBKREJtUmxIQWRKckJ0Tyt6b3VTVVJVekQzQVBCOGd3VTJIVWNXL1EzeFVZZWQvOWoKV3RDNDVma2hUc1NGN08wK2sxTDY0UnpESWc1YW53N0Z3ZDc5OFpCdVk3Z0JBa0VBem8yM2tCYVpIZ1BiZmx1UgpvbGcvUUxBTlZYeDZTMFIzaUxJWWlEc0lVclk4RjdvbEFDNm12VGxaZ2xpendqWXRPNDlsODllTjJsOFZHZUtNCkdJYnpJUUpCQUw3emlIblNXTGIxYUVTOHNzUWZhclZrMytzRGxNTGhoNTJYOUEwbmNWTjk0bU83T2JCZ0FFUVcKYzdBdkhyNXdqSCtyNWRnSmN6eVlmU3YyZjV1bkg3a0NRUUNOV2R4QnhjVTVEaWk2T3czWnpJeFV4MllJbDJ2VgpjR0JnOG9mcFNvU3luYlZZQTNIb3d3UW1RRVhwOXF2bGYwL0xENklVa2ZHb2ZDTWptSzZJNW1raEFrRUFrUml1CndKcmtqSW5uNUN0YXo0cHI1RkExa2ZnVHB3NEdwZXFjS1E2cW4xM05sQ2psU2k5NHBFUkhQajVmNXlmUXF3YnMKelA5SlVHY3kzaUFka1NJcUNRSkFZc29JUHZZZStjMUZlbkdtWjZFZDl0VjM5QzFNRjhOWGQ5dnFYWmJLazdvZwp2OGZtaGtnRVlVc0ZnbW13NzZiRllOMFNQVkVlbk1INUh1MEQwcnZKUFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
public_ip: "3.124.193.148"
role: "master"
node_type: "t2.micro"
root_key_pair:
protocol: "ssh"
keys:
public_key: "cHVibGljS2V5LTMyMGQwOWM5LWZiY2EtNDFiMy04OGU0LTFjYzVjMmFmNDY1OQ=="
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBaHB6MTcyRjhLbUNLSFFGVWVnTFgrVGp5WHhYa1pBdTVvVS9lVFNHRnZTdWllOWd4N2RLVFpLUi9MV05qCno5WXlEZzd0NU5pNFA3dUo3WDNKL204MWozdXVFRkJPQkt4aGlleUFRN3d3RTdCK1hXZFlZZ1grOVJYRUphYmxRQ0laVnRTQ1pPY3AKamUrMFFmaTcwU2UxaU90cEg0ZDNscnNRTVh3UlBXU1FmQmtkM005V3hjWi9MNzFsaTE5cnVLckpOS09VS0Z1QTZzNE5zQ3YxNkVWSQpQTkl4TkFXTGh1T3FGL29ocHR6T1JOaE83T0ptWWUvOXFXdHp3Lzl1SG1iRnhhRktOWUlONDZaS05YUnpnbllxMWYzK2RSUVJSSzdVClVUREpweXJLcXZkV3pxaGQxQTk2ekp2NFNZMi9PK2JrYm5mM1ZhMk0rTEhPY3VDTWJOY3ZTd0lEQVFBQkFvSUJBSDdLR0ZzQVZ4TVQKR3dOMjNUcU9zeDNxcFY4cUg1U2I5cHdadmlpb0NtL0RTYWVjV21yR2pFMmZJcXA5a3VXUHVsWERlZzZ5a2RoMXE5UWxScngvd3RNQwppMUNTVXVuVDg0c1ZWenAxWmxNbFNlQndGcTg5Tm9kaG1QNWQxRkF6emVvYS96WkxCTGpMcmR6MWl2SFZsUWNCdEdJZUZtWENpOTRRCkhhelZxOEUxL2w4c3VCa3JNSzlybHZHVUtZck8wSEZBZFgyVDZtb292TTFPTFdWQkZ5ZEUrTXN4NWxaNGtML3JpNWsvQmR2QUNkLzYKLy9oT1FFSHhCdFR6SWtPUjZxZEtJMmo4UUkrc0FVMytwek1EMXhraUpqaE9KeERWamtTdUJGdVRDeit4SjE4T0VKanR2bE5Ia3E0KwpCZG1EQVpnRDNXMndpV0dmVkI5dnpTZUpvQUVDZ1lFQTdsSFNtK0ZVcXlyQnZNNFFRVmxtdzRZS0I5U3hGMGM5SkFSSUZLT1I0NGJZClBGVEhheTJkUHhRZHlkYUtWN0JSYjd1ZTZZV0p2d0hKUWZEbXhGR2tEK1FWTTd3ZDJVTWNOaW1kaHgyM096aG1GT0VQUmZoN0pZejUKRnFzbSs0bm5oUU9lMTNjUGs2MDhUU25rTGtiZDI4VGhBUHN4YVVzemhJWTYwWGFhOUlFQ2dZRUFrSm1LR28yQlVJWmtWNGd0dmhXQwpqSVF4MzJtR0pqckhCN1NhZ3pwc0FuaElING03ZHoxcEJwVjExNWhHSC9FQWkzT1pXaVNyQlIrcVl1Y3BKK29Cam41MVdZdjQ3MjlpClU4WEVwM0Z3dWlWQWwxSDZEQkNnNkdNV25kZnovUGd6bjB1dG42NmZ1VE5CaEszK0JSMVh3SHo1NEVBbWNlYnIwVzErWlVRc3pjc0MKZ1lFQTJwdExxWmxrWlM1dlVKVms2OHpxS3VoRlF6R2kwRXVVbGZrbmRXY2xaNlJGcmZIR2kxWG9LL2h6NnJWVmFXSmZFVEwxYmhnRQpacVZveTRnQzVvcE5DQmFjTER5ZTFMQnVySEE0QTcwS1d0UTlMMkhTOU1nZGpqQm1QSmo2eFRtV21iamNkNkRMTlJkdmZRaTBPbzdlCjY3MEkrREZ5L2JieHB0cktFV0hPZWdFQ2dZQmM3a0NDbGlUZ29xNkVUdUhQQXpYMnB0TUNtV2Y4MDlPc0VSY29kWGlMRWRDUWJFMU4KOGVxNHIzK2Z3cDUyMHNXZDJmcFpvNjFCeXJzUGV5N0pGeXhPN3RqdVp2WGlzN3dHeU5oOUlIdnBOaDNQNG9DSUZudkRQa04veUJWbgpwQUJSUlNyZHNEVzRxY2RXeFJlM0k4ZU16d1VzYVM0TUQvUElrYzBrdWU3dGh3S0JnUUNuUjh2NHM0bWVQeEF1MGRiVmxaR3ExUnZnCkJnR3BkZHR6SnN2Sk9qYitmWVp3a2tNU3huZGY5dzdocUVqbEFPckdNVmlBTm13R3ROVWFSMEdkS1h1OGxoRzNSUDFEbnFRdkR0ZDMKajRRTkE0WUFjZ2xFYnpLK1JsVzR1VENOeTN6enBqcC8wOERBazJOZHMvVkhkQ0gyRlBBaW9TdVkrTllESFJhTlE0Tng4QT09Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"
public_key: "cHVibGljS2V5LTVhMDU5ZDE3LTQwZDEtNGE4ZC04MDI4LTQzOGEyNTE3MjczMQ=="
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBd0RqM25oWVBPaEU2SllsNURvamtYM1B6bWR5OFNxMTZhTWQrR2JSSUc3MnZBNWFhYzh1RnhWOU1HY01ECk1RendrY2VPcVJVN1hRTUg5ZHJ3OXlLdCtiTnQvQUFLOW1KQmtVaGlxZHJKTVJMUnlnYmtRVHd1WWdRbVZSMnV6L0YrYTlsMnRRZzEKOGhsYS9BODVHRFBUaUdSUm9ST1BnNU5mSTRPNy9vTVY1bUx0MlZiM29vNTJsVDhFRnhBVzZ2aWpnTjlDSmFvOTJtTWZ6Unl6WlB5cwpEU0dpYmc1S2tlQWtvRFNWVEhKWDhxaFFyb2ttSjhQUHlUSmJRaHFySWJSWXJVSy9ISEM2c2J2bndqMFJ2UVVvbmNzeWNSV1M0YjN4ClRyOFhXTTU4RnY4TG81aDhrem1zRWM1RmJwMkZCZlBpTHFPcXVleDg3c2hZZ3NPZWltRy9Kd0lEQVFBQkFvSUJBUUNpNWVRYWlaRS8KNFdlSWRoY3NGU0NNTCtScUtPRTgzQVVYbExBdHNsVkZoUnN6REVjNkNHa0dHYnVSUFcyUC9PcEdjSHBhbWc2anhUVFN5a2RZK0grOQpVNnpLV1hMdzE5VysvRHY0dTl1eWhjTloxVHRNZVdiSlU4RDBjdUk1Z090bEZIWi85a1JaTmRtZ01IcHZJMFNKbXBKKzBlZldWbWJTCjN3bkxKMlhBeGUvQjdhQ0ZIS0I1RXJncjNua1I3Q3JTTlpHYmM3Y3FmdUs4RFdhMFRGQ0xXTHZUNEpIdmZhVTh6NElzUlZDakxiM1EKRnBnYUhPcDBUcEViR1VQSmpqMTRrcm1meW4wNFdhelZMTDhuVkhNSkNhcUIvOSt6MzI5N253ZjFYeFE3bWVEN1lnRjlNNWE0akNGTgovcTFyTUtNc012UVlrNWtvbi9FSVZRNEVMMVBoQW9HQkFPSk4vbFA3TXF5SDRQK2F3dTl1eTlpNkZRZCtrdjgxV2wrV1cvblpqd3B1CkNtSE94VzBkVzJqZ0FVZ2EwSXZRMzBLVFdqeG5QQ3lWRVZ5VkNjUmt3c0c0aTRDdWlTTldad0RHZHRBUElUSjFSOVRFR0J5bWhkankKMWdMMVZnMk5TRXpuakVrbU4raE9SV3FncmphM3pjd1lDWlZXbWZrVXV3U29ITDMra2FUeEFvR0JBTmx5RnZlcmhTZmI1TnE1L1lKWAozSG1WMVA0ckhHbmdBR3pjNUhpNm9NNHAwN3ZJSjNQYjFiMWlqK2lXQ2xWendJcW9KNHExU0dyVzFKamYvUm1ZRjNYTk11QWxsVU5lCnYyZlcxMnB1TFV1RmlCeHVmV1Y1Q2haYzUxcGllRlBkYnZKZlJselArcUFKTWwxM1BMYTdNbk9aY3BXZmQ0TFhYbk1TZDJQSFRNV1gKQW9HQUxxemhjTmJWbThvbXVQRmxsVmFueXBxT3JjNElhWVRLai82R0YrRXNaSDFQdk42Vno2eUhadmtVcXBlRlBlRWx1eWlES3dRcgo0QklhMDVxVnVpRUNIa3grMFZxdVJGQ1V6QThqQUVTdWx5YWpXeG5hMDBYeFEwN0tueStVd1JUTHZiamdNVklsbzg5STkvWU9HSkVPCmJETGsveDB1Z3JZbzRJdi82WnZ3MURFQ2dZRUFnSTFqcUs2ZGZUQVNQNEYvcjRSMEV1bVN6MlQ3V2xpVXg4ZGJ4MGhHY3p2bE1ub2wKWU9pUmwzSmlzOVdvYkZhUGVTbnFucVdJRjZuRWJGRFgyRDdEZCtDRmVHQ2Z1d0dUMVRiOWlhMXpWOWVzM1dvdzlrRzF4ZnpNeGZHNwpRNUdBMndlYW1KcFlpQzZIdVJ3YUo4bktETytsLzNFVWZhVUg4SzMxS1djVkt5Y0NnWUVBcXg5MkhNTnRTQWNpcUdESldjYVZRbFZyClRKbmZXME5pRFkxYlNMMTFXcklYd042aGM3MndpVkM5OG9CeS9VdDJ2a0VuWVA3aG94c1VlS3ZBRXNMcVV6ckpyWXJTeGswbXEyVjEKQ1NEbmhTMTA2dFJXVExVVzhiRzhVS1g1TnhabDRhcE5sWHlhbHI1a2R1WWc2YVFLS1dpZmorSzRudGF1eFFBSW1rZ21BVEE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"
host_name: "vm0"
compute_1:
properties:
......@@ -42,16 +42,16 @@ topology_template:
user_key_pair:
protocol: "ssh"
keys:
public_key: "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDRm9tbkNaR2JYaGthdFkrV2VLQ29yRzdSRUlYSTBhclNLb2VrVU13Wks3c1NjNTloTFN3a09TcGZiTExuNnlGWG1Tc1h3bkk5SmJvY1lCdUR2bllJdVVrdnY5bmtQWVc3S0RXdU01UU5oanlhQUtkVUlXeGhZZ3pka2JJYkVUNlo2QkgvZGxzV2NsSU9aMnNSeGFidkNPQVVsT0xNWDFMQUlFK1ZacDlpekl3PT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK"
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNGb21uQ1pHYlhoa2F0WStXZUtDb3JHN1JFSVhJMGFyU0tvZWtVTXdaSzdzU2M1OWhMClN3a09TcGZiTExuNnlGWG1Tc1h3bkk5SmJvY1lCdUR2bllJdVVrdnY5bmtQWVc3S0RXdU01UU5oanlhQUtkVUkKV3hoWWd6ZGtiSWJFVDZaNkJIL2Rsc1djbElPWjJzUnhhYnZDT0FVbE9MTVgxTEFJRStWWnA5aXpJd0lEQVFBQgpBb0dBWStWZ1IrZkVGVE1VWElPRDM3SElyQWIrdjd0ODR3QXRURUR5dXAzV0EyZnY1QmRRVWlDYWVXdDdqMlVrCjlmcVNkQi9MVGkzSzB5cmpwQ3RvTk5jNnU0dHpkV0txRk9QRUgyNXhHQ1N6aVpNQWFWcWdFTTNDb0UrVUl1aXIKNW1FaGlQRDJhd2U2SFdZbUQvODQwTUxWR1NUMWp3VUdxTy9wY0dpQW04c0hBeGtDUVFEYW45S1JZL2RiQmNUegpLR3JUL25Xamg2WW0ySnAxNkd5NEMxeDVEZElUYVg5TEtsajIwS2V4ZFQ5NGVNN2o5S1pBZG9uS2xzQ1l1WVBRClRRMGd6U2hQQWtFQW5IcjV2YkFhbWh1Rkw1Uk9zQXF4dWhxdXRVcTRUbnVraHlPNFZQYnoxRE12djgwZzd0V1MKWnNtSWV6ek14YXpncXhiaHV2S0lPWjFoRjROUDNsVCs3UUpBZWRPbDJ5OEJuODlQT05ERTl1MU5VSnMrazFjUQplN1BSSVozekllSDV0cWVMTDYraGM2aENTamt6N1VZa3hCS0lzbE5iNVhDc1VtN09iVDBDbTh5M01RSkFlMzlHCjJTRkNiWHZveWx0SEd3TGxyNVpkYWpGVmNvTjhuemRleEplK2Fpd1h0RTFsZjNsSk9SdzNQZVFIVEwrYTlReHoKRE1OYkpmV0NhamMxY3Fnc0pRSkFkNmhoekxVTmFtYVVycTdoNkdMTUZ4TFdOdDJleGhWZWhZU3IyeTBZZ2RXZwpaUTc1eTV2Rm9zMXFTTDl6dU83cVpKRmpqc2doVVhvRGtVbFNYWk9DMlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
public_ip: "3.127.81.250"
public_key: "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDYUVhemZ3c003cEc4MTRnUnpaRktHeUxCcVlzVXlSNEd2SXVBQ3d0dmpQN3hDNGVZMDloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGdMbUR2OHJSU3g1TytkU1lycjdWNGs3L1VJdWxMYlhEb2p6T3NZYkpjYlZlODRGM0tnTGJTcG4yeDJRPT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK"
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNhRWF6ZndzTTdwRzgxNGdSelpGS0d5TEJxWXNVeVI0R3ZJdUFDd3R2alA3eEM0ZVkwCjloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGcKTG1EdjhyUlN4NU8rZFNZcnI3VjRrNy9VSXVsTGJYRG9qek9zWWJKY2JWZTg0RjNLZ0xiU3BuMngyUUlEQVFBQgpBbjhyVk0xS0lYekhTWGY5cjVPUTRLWlZRaHhiejJ1bXVIWEF6QTQwdUprZlVNMmlBZWE4L25qbWRpL2NxdFJZCnNBRWZzdXowQkV2Z3IrUjBKREJtUmxIQWRKckJ0Tyt6b3VTVVJVekQzQVBCOGd3VTJIVWNXL1EzeFVZZWQvOWoKV3RDNDVma2hUc1NGN08wK2sxTDY0UnpESWc1YW53N0Z3ZDc5OFpCdVk3Z0JBa0VBem8yM2tCYVpIZ1BiZmx1UgpvbGcvUUxBTlZYeDZTMFIzaUxJWWlEc0lVclk4RjdvbEFDNm12VGxaZ2xpendqWXRPNDlsODllTjJsOFZHZUtNCkdJYnpJUUpCQUw3emlIblNXTGIxYUVTOHNzUWZhclZrMytzRGxNTGhoNTJYOUEwbmNWTjk0bU83T2JCZ0FFUVcKYzdBdkhyNXdqSCtyNWRnSmN6eVlmU3YyZjV1bkg3a0NRUUNOV2R4QnhjVTVEaWk2T3czWnpJeFV4MllJbDJ2VgpjR0JnOG9mcFNvU3luYlZZQTNIb3d3UW1RRVhwOXF2bGYwL0xENklVa2ZHb2ZDTWptSzZJNW1raEFrRUFrUml1CndKcmtqSW5uNUN0YXo0cHI1RkExa2ZnVHB3NEdwZXFjS1E2cW4xM05sQ2psU2k5NHBFUkhQajVmNXlmUXF3YnMKelA5SlVHY3kzaUFka1NJcUNRSkFZc29JUHZZZStjMUZlbkdtWjZFZDl0VjM5QzFNRjhOWGQ5dnFYWmJLazdvZwp2OGZtaGtnRVlVc0ZnbW13NzZiRllOMFNQVkVlbk1INUh1MEQwcnZKUFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
public_ip: "18.197.132.48"
role: "worker"
node_type: "t2.micro"
root_key_pair:
protocol: "ssh"
keys:
public_key: "cHVibGljS2V5LTMyMGQwOWM5LWZiY2EtNDFiMy04OGU0LTFjYzVjMmFmNDY1OQ=="
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBaHB6MTcyRjhLbUNLSFFGVWVnTFgrVGp5WHhYa1pBdTVvVS9lVFNHRnZTdWllOWd4N2RLVFpLUi9MV05qCno5WXlEZzd0NU5pNFA3dUo3WDNKL204MWozdXVFRkJPQkt4aGlleUFRN3d3RTdCK1hXZFlZZ1grOVJYRUphYmxRQ0laVnRTQ1pPY3AKamUrMFFmaTcwU2UxaU90cEg0ZDNscnNRTVh3UlBXU1FmQmtkM005V3hjWi9MNzFsaTE5cnVLckpOS09VS0Z1QTZzNE5zQ3YxNkVWSQpQTkl4TkFXTGh1T3FGL29ocHR6T1JOaE83T0ptWWUvOXFXdHp3Lzl1SG1iRnhhRktOWUlONDZaS05YUnpnbllxMWYzK2RSUVJSSzdVClVUREpweXJLcXZkV3pxaGQxQTk2ekp2NFNZMi9PK2JrYm5mM1ZhMk0rTEhPY3VDTWJOY3ZTd0lEQVFBQkFvSUJBSDdLR0ZzQVZ4TVQKR3dOMjNUcU9zeDNxcFY4cUg1U2I5cHdadmlpb0NtL0RTYWVjV21yR2pFMmZJcXA5a3VXUHVsWERlZzZ5a2RoMXE5UWxScngvd3RNQwppMUNTVXVuVDg0c1ZWenAxWmxNbFNlQndGcTg5Tm9kaG1QNWQxRkF6emVvYS96WkxCTGpMcmR6MWl2SFZsUWNCdEdJZUZtWENpOTRRCkhhelZxOEUxL2w4c3VCa3JNSzlybHZHVUtZck8wSEZBZFgyVDZtb292TTFPTFdWQkZ5ZEUrTXN4NWxaNGtML3JpNWsvQmR2QUNkLzYKLy9oT1FFSHhCdFR6SWtPUjZxZEtJMmo4UUkrc0FVMytwek1EMXhraUpqaE9KeERWamtTdUJGdVRDeit4SjE4T0VKanR2bE5Ia3E0KwpCZG1EQVpnRDNXMndpV0dmVkI5dnpTZUpvQUVDZ1lFQTdsSFNtK0ZVcXlyQnZNNFFRVmxtdzRZS0I5U3hGMGM5SkFSSUZLT1I0NGJZClBGVEhheTJkUHhRZHlkYUtWN0JSYjd1ZTZZV0p2d0hKUWZEbXhGR2tEK1FWTTd3ZDJVTWNOaW1kaHgyM096aG1GT0VQUmZoN0pZejUKRnFzbSs0bm5oUU9lMTNjUGs2MDhUU25rTGtiZDI4VGhBUHN4YVVzemhJWTYwWGFhOUlFQ2dZRUFrSm1LR28yQlVJWmtWNGd0dmhXQwpqSVF4MzJtR0pqckhCN1NhZ3pwc0FuaElING03ZHoxcEJwVjExNWhHSC9FQWkzT1pXaVNyQlIrcVl1Y3BKK29Cam41MVdZdjQ3MjlpClU4WEVwM0Z3dWlWQWwxSDZEQkNnNkdNV25kZnovUGd6bjB1dG42NmZ1VE5CaEszK0JSMVh3SHo1NEVBbWNlYnIwVzErWlVRc3pjc0MKZ1lFQTJwdExxWmxrWlM1dlVKVms2OHpxS3VoRlF6R2kwRXVVbGZrbmRXY2xaNlJGcmZIR2kxWG9LL2h6NnJWVmFXSmZFVEwxYmhnRQpacVZveTRnQzVvcE5DQmFjTER5ZTFMQnVySEE0QTcwS1d0UTlMMkhTOU1nZGpqQm1QSmo2eFRtV21iamNkNkRMTlJkdmZRaTBPbzdlCjY3MEkrREZ5L2JieHB0cktFV0hPZWdFQ2dZQmM3a0NDbGlUZ29xNkVUdUhQQXpYMnB0TUNtV2Y4MDlPc0VSY29kWGlMRWRDUWJFMU4KOGVxNHIzK2Z3cDUyMHNXZDJmcFpvNjFCeXJzUGV5N0pGeXhPN3RqdVp2WGlzN3dHeU5oOUlIdnBOaDNQNG9DSUZudkRQa04veUJWbgpwQUJSUlNyZHNEVzRxY2RXeFJlM0k4ZU16d1VzYVM0TUQvUElrYzBrdWU3dGh3S0JnUUNuUjh2NHM0bWVQeEF1MGRiVmxaR3ExUnZnCkJnR3BkZHR6SnN2Sk9qYitmWVp3a2tNU3huZGY5dzdocUVqbEFPckdNVmlBTm13R3ROVWFSMEdkS1h1OGxoRzNSUDFEbnFRdkR0ZDMKajRRTkE0WUFjZ2xFYnpLK1JsVzR1VENOeTN6enBqcC8wOERBazJOZHMvVkhkQ0gyRlBBaW9TdVkrTllESFJhTlE0Tng4QT09Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"
public_key: "cHVibGljS2V5LTVhMDU5ZDE3LTQwZDEtNGE4ZC04MDI4LTQzOGEyNTE3MjczMQ=="
private_key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBd0RqM25oWVBPaEU2SllsNURvamtYM1B6bWR5OFNxMTZhTWQrR2JSSUc3MnZBNWFhYzh1RnhWOU1HY01ECk1RendrY2VPcVJVN1hRTUg5ZHJ3OXlLdCtiTnQvQUFLOW1KQmtVaGlxZHJKTVJMUnlnYmtRVHd1WWdRbVZSMnV6L0YrYTlsMnRRZzEKOGhsYS9BODVHRFBUaUdSUm9ST1BnNU5mSTRPNy9vTVY1bUx0MlZiM29vNTJsVDhFRnhBVzZ2aWpnTjlDSmFvOTJtTWZ6Unl6WlB5cwpEU0dpYmc1S2tlQWtvRFNWVEhKWDhxaFFyb2ttSjhQUHlUSmJRaHFySWJSWXJVSy9ISEM2c2J2bndqMFJ2UVVvbmNzeWNSV1M0YjN4ClRyOFhXTTU4RnY4TG81aDhrem1zRWM1RmJwMkZCZlBpTHFPcXVleDg3c2hZZ3NPZWltRy9Kd0lEQVFBQkFvSUJBUUNpNWVRYWlaRS8KNFdlSWRoY3NGU0NNTCtScUtPRTgzQVVYbExBdHNsVkZoUnN6REVjNkNHa0dHYnVSUFcyUC9PcEdjSHBhbWc2anhUVFN5a2RZK0grOQpVNnpLV1hMdzE5VysvRHY0dTl1eWhjTloxVHRNZVdiSlU4RDBjdUk1Z090bEZIWi85a1JaTmRtZ01IcHZJMFNKbXBKKzBlZldWbWJTCjN3bkxKMlhBeGUvQjdhQ0ZIS0I1RXJncjNua1I3Q3JTTlpHYmM3Y3FmdUs4RFdhMFRGQ0xXTHZUNEpIdmZhVTh6NElzUlZDakxiM1EKRnBnYUhPcDBUcEViR1VQSmpqMTRrcm1meW4wNFdhelZMTDhuVkhNSkNhcUIvOSt6MzI5N253ZjFYeFE3bWVEN1lnRjlNNWE0akNGTgovcTFyTUtNc012UVlrNWtvbi9FSVZRNEVMMVBoQW9HQkFPSk4vbFA3TXF5SDRQK2F3dTl1eTlpNkZRZCtrdjgxV2wrV1cvblpqd3B1CkNtSE94VzBkVzJqZ0FVZ2EwSXZRMzBLVFdqeG5QQ3lWRVZ5VkNjUmt3c0c0aTRDdWlTTldad0RHZHRBUElUSjFSOVRFR0J5bWhkankKMWdMMVZnMk5TRXpuakVrbU4raE9SV3FncmphM3pjd1lDWlZXbWZrVXV3U29ITDMra2FUeEFvR0JBTmx5RnZlcmhTZmI1TnE1L1lKWAozSG1WMVA0ckhHbmdBR3pjNUhpNm9NNHAwN3ZJSjNQYjFiMWlqK2lXQ2xWendJcW9KNHExU0dyVzFKamYvUm1ZRjNYTk11QWxsVU5lCnYyZlcxMnB1TFV1RmlCeHVmV1Y1Q2haYzUxcGllRlBkYnZKZlJselArcUFKTWwxM1BMYTdNbk9aY3BXZmQ0TFhYbk1TZDJQSFRNV1gKQW9HQUxxemhjTmJWbThvbXVQRmxsVmFueXBxT3JjNElhWVRLai82R0YrRXNaSDFQdk42Vno2eUhadmtVcXBlRlBlRWx1eWlES3dRcgo0QklhMDVxVnVpRUNIa3grMFZxdVJGQ1V6QThqQUVTdWx5YWpXeG5hMDBYeFEwN0tueStVd1JUTHZiamdNVklsbzg5STkvWU9HSkVPCmJETGsveDB1Z3JZbzRJdi82WnZ3MURFQ2dZRUFnSTFqcUs2ZGZUQVNQNEYvcjRSMEV1bVN6MlQ3V2xpVXg4ZGJ4MGhHY3p2bE1ub2wKWU9pUmwzSmlzOVdvYkZhUGVTbnFucVdJRjZuRWJGRFgyRDdEZCtDRmVHQ2Z1d0dUMVRiOWlhMXpWOWVzM1dvdzlrRzF4ZnpNeGZHNwpRNUdBMndlYW1KcFlpQzZIdVJ3YUo4bktETytsLzNFVWZhVUg4SzMxS1djVkt5Y0NnWUVBcXg5MkhNTnRTQWNpcUdESldjYVZRbFZyClRKbmZXME5pRFkxYlNMMTFXcklYd042aGM3MndpVkM5OG9CeS9VdDJ2a0VuWVA3aG94c1VlS3ZBRXNMcVV6ckpyWXJTeGswbXEyVjEKQ1NEbmhTMTA2dFJXVExVVzhiRzhVS1g1TnhabDRhcE5sWHlhbHI1a2R1WWc2YVFLS1dpZmorSzRudGF1eFFBSW1rZ21BVEE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"
host_name: "vm1"
kubernetes:
requirements:
......@@ -111,11 +111,11 @@ topology_template:
credential:
cloud_provider_name: "EC2"
keys:
aws_access_key_id: "XXXXXXXXXXXXXXXXXXX"
aws_access_key_id: "XXXXXXXXXXXXX"
token: "XXXXXXXXXXXXXXXXXXX"
token_type: "access_key"
desired_state: "PROVISION"
status: "running"
desired_state: "RUNNING"
current_state: "RUNNING"
ws-pema:
properties:
ports:
......
tosca_definitions_version: tosca_simple_yaml_1_0
artifacts:
tosca.datatypes.ARTICONF.CloudStorm.Deployment:
derived_from: tosca.artifacts.Deployment
file_contents:
type: string
required: true
encoding:
type: string
required: true
file_ext:
type: string
required: false
tosca_definitions_version: tosca_simple_yaml_1_0
data_types:
data_types:
tosca.datatypes.ARTICONF.Credential:
derived_from: tosca.datatypes.Credential
properties:
......
......@@ -50,13 +50,13 @@ interface_types:
description: Upload some input data or files to the remote resources. ObjectType currently can only be VM.
get:
description: Download or retrieve output results or files from the remote resources. ObjectType currently can only be VM.
vscale:
v_scale:
description: Vertically scale up or down to adapt the computing capability of the infrastructure through directly changing the capacity of some VM. ObjectType can only be VM and REQ.
hscale:
h_scale:
description: Horizontally scale out or in to adapt the computing capability of the infrastructure through changing the number of VMs. ObjectType can be SubTopology, VM or REQ.
recover:
description: Recover some failed sub-topologies. ObjectType can be SubTopology or REQ.
provision:
run:
description: Provision the defined objects (resources). ObjectType can be SubTopology or VM.
......
......@@ -13,6 +13,7 @@ node_types:
type: string
required: false
description: the current state of the node
tosca.nodes.ARTICONF.Container.Application.Docker:
derived_from: tosca.nodes.ARTICONF.Application
......@@ -164,7 +165,7 @@ node_types:
delete:
inputs:
code_type: SEQ
object_type: SubTopology
object_type: SubTopology
hscale:
inputs:
code_type: SEQ
......
......@@ -29,4 +29,6 @@ public class Constatnts {
public static final String VM_OS = "os";
public static final String VM_TOPOLOGY = "tosca.nodes.ARTICONF.VM.topology";
public static final String CLOUD_STORM_INTERFACE = "tosca.interfaces.ARTICONF.CloudsStorm";
public static final String ENCODED_FILE_DATATYPE = "tosca.datatypes.ARTICONF.encodedFile";
}
......@@ -15,16 +15,24 @@
*/
package nl.uva.sne.drip.commons.utils;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.web.multipart.MultipartFile;
......@@ -92,4 +100,17 @@ public class Converter {
return new String(encodedBytes, StandardCharsets.UTF_8);
}
public static void zipFolder(Path sourceFolderPath, Path zipPath) throws FileNotFoundException, IOException {
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipPath.toFile()))) {
Files.walkFileTree(sourceFolderPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
zos.putNextEntry(new ZipEntry(sourceFolderPath.relativize(file).toString()));
Files.copy(file, zos);
zos.closeEntry();
return FileVisitResult.CONTINUE;
}
});
}
}
}
......@@ -48,6 +48,7 @@ import nl.uva.sne.drip.sure.tosca.client.Configuration;
import org.springframework.beans.factory.annotation.Autowired;
import static nl.uva.sne.drip.commons.utils.Constatnts.*;
import nl.uva.sne.drip.model.cloud.storm.CloudsStormSubTopology.StatusEnum;
import nl.uva.sne.drip.model.cloud.storm.OpCode;
/**
*
......@@ -306,7 +307,7 @@ public class ToscaHelper {
public NodeTemplateMap setNodeCurrentState(NodeTemplateMap node, NODE_STATES nodeState) {
return setNodeState(node, "current_state", nodeState);
}
public NodeTemplateMap setNodeDesiredState(NodeTemplateMap node, NODE_STATES nodeState) {
return setNodeState(node, "desired_state", nodeState);
}
......@@ -334,7 +335,7 @@ public class ToscaHelper {
}
public static NODE_STATES cloudStormStatus2NodeState(StatusEnum cloudStormStatus) {
if(cloudStormStatus.equals(StatusEnum.FRESH)){
if (cloudStormStatus.equals(StatusEnum.FRESH)) {
return null;
}
String cloudStormStatusStr = cloudStormStatus.toString().toUpperCase();
......@@ -363,4 +364,48 @@ public class ToscaHelper {
return null;
}
public static OpCode.OperationEnum NodeDesiredState2CloudStormOperation(NODE_STATES nodeDesiredState) {
switch (nodeDesiredState) {
case RUNNING:
return OpCode.OperationEnum.PROVISION;
case DELETED:
return OpCode.OperationEnum.DELETE;
case STARTED:
return OpCode.OperationEnum.START;
case STOPPED:
return OpCode.OperationEnum.STOP;
case H_SCALED:
return OpCode.OperationEnum.HSCALE;
case V_SCALED:
return OpCode.OperationEnum.VSCALE;
default:
return null;
}
}
public static StatusEnum nodeCurrentState2CloudStormStatus(NODE_STATES currentState) {
if (currentState == null) {
return StatusEnum.FRESH;
}
switch (currentState) {
case RUNNING:
return StatusEnum.RUNNING;
case DELETED:
return StatusEnum.DELETED;
case STARTED:
return StatusEnum.RUNNING;
case STOPPED:
return StatusEnum.STOPPED;
case H_SCALED:
return StatusEnum.RUNNING;
case V_SCALED:
return StatusEnum.RUNNING;
case FAILED:
return StatusEnum.FAILED;
default:
return null;
}
}
}
......@@ -81,7 +81,6 @@ public class CloudsStormSubTopology {
this.topology = topology;
return this;
}
/**
* Get topology
*
......
......@@ -28,7 +28,8 @@ public class OpCode {
VSCALE("vscale"),
HSCALE("hscale"),
RECOVER("recover"),
START("start");
START("start"),
STOP("stop");
private String value;
......
{"owner":"user","creationDate":1584634079087,"toscaTemplate":{"tosca_definitions_version":"tosca_simple_yaml_1_0","tosca_default_namespace":null,"template_name":null,"topology_template":{"description":null,"inputs":null,"node_templates":{"compute":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1.0,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute","attributes":{"user_key_pair":{"protocol":"ssh","keys":{"public_key":"c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDYUVhemZ3c003cEc4MTRnUnpaRktHeUxCcVlzVXlSNEd2SXVBQ3d0dmpQN3hDNGVZMDloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGdMbUR2OHJSU3g1TytkU1lycjdWNGs3L1VJdWxMYlhEb2p6T3NZYkpjYlZlODRGM0tnTGJTcG4yeDJRPT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNhRWF6ZndzTTdwRzgxNGdSelpGS0d5TEJxWXNVeVI0R3ZJdUFDd3R2alA3eEM0ZVkwCjloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGcKTG1EdjhyUlN4NU8rZFNZcnI3VjRrNy9VSXVsTGJYRG9qek9zWWJKY2JWZTg0RjNLZ0xiU3BuMngyUUlEQVFBQgpBbjhyVk0xS0lYekhTWGY5cjVPUTRLWlZRaHhiejJ1bXVIWEF6QTQwdUprZlVNMmlBZWE4L25qbWRpL2NxdFJZCnNBRWZzdXowQkV2Z3IrUjBKREJtUmxIQWRKckJ0Tyt6b3VTVVJVekQzQVBCOGd3VTJIVWNXL1EzeFVZZWQvOWoKV3RDNDVma2hUc1NGN08wK2sxTDY0UnpESWc1YW53N0Z3ZDc5OFpCdVk3Z0JBa0VBem8yM2tCYVpIZ1BiZmx1UgpvbGcvUUxBTlZYeDZTMFIzaUxJWWlEc0lVclk4RjdvbEFDNm12VGxaZ2xpendqWXRPNDlsODllTjJsOFZHZUtNCkdJYnpJUUpCQUw3emlIblNXTGIxYUVTOHNzUWZhclZrMytzRGxNTGhoNTJYOUEwbmNWTjk0bU83T2JCZ0FFUVcKYzdBdkhyNXdqSCtyNWRnSmN6eVlmU3YyZjV1bkg3a0NRUUNOV2R4QnhjVTVEaWk2T3czWnpJeFV4MllJbDJ2VgpjR0JnOG9mcFNvU3luYlZZQTNIb3d3UW1RRVhwOXF2bGYwL0xENklVa2ZHb2ZDTWptSzZJNW1raEFrRUFrUml1CndKcmtqSW5uNUN0YXo0cHI1RkExa2ZnVHB3NEdwZXFjS1E2cW4xM05sQ2psU2k5NHBFUkhQajVmNXlmUXF3YnMKelA5SlVHY3kzaUFka1NJcUNRSkFZc29JUHZZZStjMUZlbkdtWjZFZDl0VjM5QzFNRjhOWGQ5dnFYWmJLazdvZwp2OGZtaGtnRVlVc0ZnbW13NzZiRllOMFNQVkVlbk1INUh1MEQwcnZKUFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="}},"public_ip":"3.124.193.148","role":"master","node_type":"t2.micro","root_key_pair":{"protocol":"ssh","keys":{"public_key":"cHVibGljS2V5LTVhMDU5ZDE3LTQwZDEtNGE4ZC04MDI4LTQzOGEyNTE3MjczMQ==","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBd0RqM25oWVBPaEU2SllsNURvamtYM1B6bWR5OFNxMTZhTWQrR2JSSUc3MnZBNWFhYzh1RnhWOU1HY01ECk1RendrY2VPcVJVN1hRTUg5ZHJ3OXlLdCtiTnQvQUFLOW1KQmtVaGlxZHJKTVJMUnlnYmtRVHd1WWdRbVZSMnV6L0YrYTlsMnRRZzEKOGhsYS9BODVHRFBUaUdSUm9ST1BnNU5mSTRPNy9vTVY1bUx0MlZiM29vNTJsVDhFRnhBVzZ2aWpnTjlDSmFvOTJtTWZ6Unl6WlB5cwpEU0dpYmc1S2tlQWtvRFNWVEhKWDhxaFFyb2ttSjhQUHlUSmJRaHFySWJSWXJVSy9ISEM2c2J2bndqMFJ2UVVvbmNzeWNSV1M0YjN4ClRyOFhXTTU4RnY4TG81aDhrem1zRWM1RmJwMkZCZlBpTHFPcXVleDg3c2hZZ3NPZWltRy9Kd0lEQVFBQkFvSUJBUUNpNWVRYWlaRS8KNFdlSWRoY3NGU0NNTCtScUtPRTgzQVVYbExBdHNsVkZoUnN6REVjNkNHa0dHYnVSUFcyUC9PcEdjSHBhbWc2anhUVFN5a2RZK0grOQpVNnpLV1hMdzE5VysvRHY0dTl1eWhjTloxVHRNZVdiSlU4RDBjdUk1Z090bEZIWi85a1JaTmRtZ01IcHZJMFNKbXBKKzBlZldWbWJTCjN3bkxKMlhBeGUvQjdhQ0ZIS0I1RXJncjNua1I3Q3JTTlpHYmM3Y3FmdUs4RFdhMFRGQ0xXTHZUNEpIdmZhVTh6NElzUlZDakxiM1EKRnBnYUhPcDBUcEViR1VQSmpqMTRrcm1meW4wNFdhelZMTDhuVkhNSkNhcUIvOSt6MzI5N253ZjFYeFE3bWVEN1lnRjlNNWE0akNGTgovcTFyTUtNc012UVlrNWtvbi9FSVZRNEVMMVBoQW9HQkFPSk4vbFA3TXF5SDRQK2F3dTl1eTlpNkZRZCtrdjgxV2wrV1cvblpqd3B1CkNtSE94VzBkVzJqZ0FVZ2EwSXZRMzBLVFdqeG5QQ3lWRVZ5VkNjUmt3c0c0aTRDdWlTTldad0RHZHRBUElUSjFSOVRFR0J5bWhkankKMWdMMVZnMk5TRXpuakVrbU4raE9SV3FncmphM3pjd1lDWlZXbWZrVXV3U29ITDMra2FUeEFvR0JBTmx5RnZlcmhTZmI1TnE1L1lKWAozSG1WMVA0ckhHbmdBR3pjNUhpNm9NNHAwN3ZJSjNQYjFiMWlqK2lXQ2xWendJcW9KNHExU0dyVzFKamYvUm1ZRjNYTk11QWxsVU5lCnYyZlcxMnB1TFV1RmlCeHVmV1Y1Q2haYzUxcGllRlBkYnZKZlJselArcUFKTWwxM1BMYTdNbk9aY3BXZmQ0TFhYbk1TZDJQSFRNV1gKQW9HQUxxemhjTmJWbThvbXVQRmxsVmFueXBxT3JjNElhWVRLai82R0YrRXNaSDFQdk42Vno2eUhadmtVcXBlRlBlRWx1eWlES3dRcgo0QklhMDVxVnVpRUNIa3grMFZxdVJGQ1V6QThqQUVTdWx5YWpXeG5hMDBYeFEwN0tueStVd1JUTHZiamdNVklsbzg5STkvWU9HSkVPCmJETGsveDB1Z3JZbzRJdi82WnZ3MURFQ2dZRUFnSTFqcUs2ZGZUQVNQNEYvcjRSMEV1bVN6MlQ3V2xpVXg4ZGJ4MGhHY3p2bE1ub2wKWU9pUmwzSmlzOVdvYkZhUGVTbnFucVdJRjZuRWJGRFgyRDdEZCtDRmVHQ2Z1d0dUMVRiOWlhMXpWOWVzM1dvdzlrRzF4ZnpNeGZHNwpRNUdBMndlYW1KcFlpQzZIdVJ3YUo4bktETytsLzNFVWZhVUg4SzMxS1djVkt5Y0NnWUVBcXg5MkhNTnRTQWNpcUdESldjYVZRbFZyClRKbmZXME5pRFkxYlNMMTFXcklYd042aGM3MndpVkM5OG9CeS9VdDJ2a0VuWVA3aG94c1VlS3ZBRXNMcVV6ckpyWXJTeGswbXEyVjEKQ1NEbmhTMTA2dFJXVExVVzhiRzhVS1g1TnhabDRhcE5sWHlhbHI1a2R1WWc2YVFLS1dpZmorSzRudGF1eFFBSW1rZ21BVEE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"}},"host_name":"vm0"}},"compute_1":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1.0,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute","attributes":{"user_key_pair":{"protocol":"ssh","keys":{"public_key":"c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDYUVhemZ3c003cEc4MTRnUnpaRktHeUxCcVlzVXlSNEd2SXVBQ3d0dmpQN3hDNGVZMDloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGdMbUR2OHJSU3g1TytkU1lycjdWNGs3L1VJdWxMYlhEb2p6T3NZYkpjYlZlODRGM0tnTGJTcG4yeDJRPT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNhRWF6ZndzTTdwRzgxNGdSelpGS0d5TEJxWXNVeVI0R3ZJdUFDd3R2alA3eEM0ZVkwCjloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGcKTG1EdjhyUlN4NU8rZFNZcnI3VjRrNy9VSXVsTGJYRG9qek9zWWJKY2JWZTg0RjNLZ0xiU3BuMngyUUlEQVFBQgpBbjhyVk0xS0lYekhTWGY5cjVPUTRLWlZRaHhiejJ1bXVIWEF6QTQwdUprZlVNMmlBZWE4L25qbWRpL2NxdFJZCnNBRWZzdXowQkV2Z3IrUjBKREJtUmxIQWRKckJ0Tyt6b3VTVVJVekQzQVBCOGd3VTJIVWNXL1EzeFVZZWQvOWoKV3RDNDVma2hUc1NGN08wK2sxTDY0UnpESWc1YW53N0Z3ZDc5OFpCdVk3Z0JBa0VBem8yM2tCYVpIZ1BiZmx1UgpvbGcvUUxBTlZYeDZTMFIzaUxJWWlEc0lVclk4RjdvbEFDNm12VGxaZ2xpendqWXRPNDlsODllTjJsOFZHZUtNCkdJYnpJUUpCQUw3emlIblNXTGIxYUVTOHNzUWZhclZrMytzRGxNTGhoNTJYOUEwbmNWTjk0bU83T2JCZ0FFUVcKYzdBdkhyNXdqSCtyNWRnSmN6eVlmU3YyZjV1bkg3a0NRUUNOV2R4QnhjVTVEaWk2T3czWnpJeFV4MllJbDJ2VgpjR0JnOG9mcFNvU3luYlZZQTNIb3d3UW1RRVhwOXF2bGYwL0xENklVa2ZHb2ZDTWptSzZJNW1raEFrRUFrUml1CndKcmtqSW5uNUN0YXo0cHI1RkExa2ZnVHB3NEdwZXFjS1E2cW4xM05sQ2psU2k5NHBFUkhQajVmNXlmUXF3YnMKelA5SlVHY3kzaUFka1NJcUNRSkFZc29JUHZZZStjMUZlbkdtWjZFZDl0VjM5QzFNRjhOWGQ5dnFYWmJLazdvZwp2OGZtaGtnRVlVc0ZnbW13NzZiRllOMFNQVkVlbk1INUh1MEQwcnZKUFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="}},"public_ip":"18.197.132.48","role":"worker","node_type":"t2.micro","root_key_pair":{"protocol":"ssh","keys":{"public_key":"cHVibGljS2V5LTVhMDU5ZDE3LTQwZDEtNGE4ZC04MDI4LTQzOGEyNTE3MjczMQ==","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBd0RqM25oWVBPaEU2SllsNURvamtYM1B6bWR5OFNxMTZhTWQrR2JSSUc3MnZBNWFhYzh1RnhWOU1HY01ECk1RendrY2VPcVJVN1hRTUg5ZHJ3OXlLdCtiTnQvQUFLOW1KQmtVaGlxZHJKTVJMUnlnYmtRVHd1WWdRbVZSMnV6L0YrYTlsMnRRZzEKOGhsYS9BODVHRFBUaUdSUm9ST1BnNU5mSTRPNy9vTVY1bUx0MlZiM29vNTJsVDhFRnhBVzZ2aWpnTjlDSmFvOTJtTWZ6Unl6WlB5cwpEU0dpYmc1S2tlQWtvRFNWVEhKWDhxaFFyb2ttSjhQUHlUSmJRaHFySWJSWXJVSy9ISEM2c2J2bndqMFJ2UVVvbmNzeWNSV1M0YjN4ClRyOFhXTTU4RnY4TG81aDhrem1zRWM1RmJwMkZCZlBpTHFPcXVleDg3c2hZZ3NPZWltRy9Kd0lEQVFBQkFvSUJBUUNpNWVRYWlaRS8KNFdlSWRoY3NGU0NNTCtScUtPRTgzQVVYbExBdHNsVkZoUnN6REVjNkNHa0dHYnVSUFcyUC9PcEdjSHBhbWc2anhUVFN5a2RZK0grOQpVNnpLV1hMdzE5VysvRHY0dTl1eWhjTloxVHRNZVdiSlU4RDBjdUk1Z090bEZIWi85a1JaTmRtZ01IcHZJMFNKbXBKKzBlZldWbWJTCjN3bkxKMlhBeGUvQjdhQ0ZIS0I1RXJncjNua1I3Q3JTTlpHYmM3Y3FmdUs4RFdhMFRGQ0xXTHZUNEpIdmZhVTh6NElzUlZDakxiM1EKRnBnYUhPcDBUcEViR1VQSmpqMTRrcm1meW4wNFdhelZMTDhuVkhNSkNhcUIvOSt6MzI5N253ZjFYeFE3bWVEN1lnRjlNNWE0akNGTgovcTFyTUtNc012UVlrNWtvbi9FSVZRNEVMMVBoQW9HQkFPSk4vbFA3TXF5SDRQK2F3dTl1eTlpNkZRZCtrdjgxV2wrV1cvblpqd3B1CkNtSE94VzBkVzJqZ0FVZ2EwSXZRMzBLVFdqeG5QQ3lWRVZ5VkNjUmt3c0c0aTRDdWlTTldad0RHZHRBUElUSjFSOVRFR0J5bWhkankKMWdMMVZnMk5TRXpuakVrbU4raE9SV3FncmphM3pjd1lDWlZXbWZrVXV3U29ITDMra2FUeEFvR0JBTmx5RnZlcmhTZmI1TnE1L1lKWAozSG1WMVA0ckhHbmdBR3pjNUhpNm9NNHAwN3ZJSjNQYjFiMWlqK2lXQ2xWendJcW9KNHExU0dyVzFKamYvUm1ZRjNYTk11QWxsVU5lCnYyZlcxMnB1TFV1RmlCeHVmV1Y1Q2haYzUxcGllRlBkYnZKZlJselArcUFKTWwxM1BMYTdNbk9aY3BXZmQ0TFhYbk1TZDJQSFRNV1gKQW9HQUxxemhjTmJWbThvbXVQRmxsVmFueXBxT3JjNElhWVRLai82R0YrRXNaSDFQdk42Vno2eUhadmtVcXBlRlBlRWx1eWlES3dRcgo0QklhMDVxVnVpRUNIa3grMFZxdVJGQ1V6QThqQUVTdWx5YWpXeG5hMDBYeFEwN0tueStVd1JUTHZiamdNVklsbzg5STkvWU9HSkVPCmJETGsveDB1Z3JZbzRJdi82WnZ3MURFQ2dZRUFnSTFqcUs2ZGZUQVNQNEYvcjRSMEV1bVN6MlQ3V2xpVXg4ZGJ4MGhHY3p2bE1ub2wKWU9pUmwzSmlzOVdvYkZhUGVTbnFucVdJRjZuRWJGRFgyRDdEZCtDRmVHQ2Z1d0dUMVRiOWlhMXpWOWVzM1dvdzlrRzF4ZnpNeGZHNwpRNUdBMndlYW1KcFlpQzZIdVJ3YUo4bktETytsLzNFVWZhVUg4SzMxS1djVkt5Y0NnWUVBcXg5MkhNTnRTQWNpcUdESldjYVZRbFZyClRKbmZXME5pRFkxYlNMMTFXcklYd042aGM3MndpVkM5OG9CeS9VdDJ2a0VuWVA3aG94c1VlS3ZBRXNMcVV6ckpyWXJTeGswbXEyVjEKQ1NEbmhTMTA2dFJXVExVVzhiRzhVS1g1TnhabDRhcE5sWHlhbHI1a2R1WWc2YVFLS1dpZmorSzRudGF1eFFBSW1rZ21BVEE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"}},"host_name":"vm1"}},"kubernetes":{"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.VM.topology","node":"topology","relationship":"tosca.relationships.HostedOn"}}],"interfaces":{"Kubernetes":{"configure":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/dashboard.yaml"}},"create":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/create_k8s.yml"}},"install":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/install_k8s.yml"}}}},"type":"tosca.nodes.ARTICONF.docker.Orchestrator.Kubernetes"},"topology":{"properties":{"domain":"Frankfurt","provider":"EC2"},"requirements":[{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute","relationship":"tosca.relationships.DependsOn"}},{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute_1","relationship":"tosca.relationships.DependsOn"}}],"interfaces":{"CloudsStorm":{"delete":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"hscale":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"provision":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"start":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"stop":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}}}},"type":"tosca.nodes.ARTICONF.VM.topology","attributes":{"credential":{"cloud_provider_name":"EC2","keys":{"aws_access_key_id":"XXXXXXXXXXXXX"},"token":"XXXXXXXXXXXXXXXXXx","token_type":"access_key"},"current_state":"RUNNING","desired_state":"DELETED"}},"ws-pema":{"properties":{"ports":["30001:8080"]},"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.docker.Orchestrator","node":"kubernetes","relationship":"tosca.relationships.HostedOn"}}],"type":"tosca.nodes.ARTICONF.Container.Application.Docker","artifacts":{"image":{"file":"alogo53/ws-pema-lifewatch","repository":"docker_hub","type":"tosca.artifacts.Deployment.Image.Container.Docker"}}}},"relationship_templates":null,"outputs":null,"groups":null,"substitution_mappings":null,"policies":null},"template_author":null,"template_version":null,"description":"TOSCA example","imports":[{"nodes":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/nodes.yaml"},{"data":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/TOSCA/types/data.yml"},{"capabilities":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/capabilities.yaml"},{"policies":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/policies.yaml"},{"interfaces":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/interfaces.yml"}],"dsl_definitions":null,"node_types":null,"relationship_types":null,"relationship_templates":null,"capability_types":null,"artifact_types":null,"data_types":null,"interface_types":null,"policy_types":null,"group_types":null,"repositories":null}}
{
"creationDate": 1583932800151,
"toscaTemplate": {
"tosca_definitions_version": "tosca_simple_yaml_1_0",
"topology_template": {
"node_templates": {
"compute": {
"properties": {
"disk_size": "50000 MB",
"mem_size": "6000 MB",
"num_cores": 2,
"os": "Ubuntu 18.04",
"user_name": "vm_user"
},
"interfaces": {
"Standard": {
"create": "dumy.yaml"
}
},
"type": "tosca.nodes.ARTICONF.VM.Compute",
"attributes": {
"user_key_pair": {
"protocol": "ssh",
"keys": {
"public_key": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDZmQvWUZHOTRSbUt6S2dabjVsWW9PU2VqM09yKzJEMFpOOE9jL1hIZmNnTUNNTDkydm13SkFGV090bTZpWTZYYWY4R3EwM1Y1TERRdnlaZGtGbDhuTU5XUlp3R3ZmaWM3MGNlL1puRDhERExKR3A2Z01qK3lSdVpYYTJIR1BxMFV1NitVSGJnc2haMURadjhpQTE2b0hzd3NJemtMTTRDUXIyZ2tHcTdrdFFRPT0gYXV0byBnZW5lcmF0ZWQgdXNlciBhY2NlZXMga2V5cwo=",
"private_key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWEFJQkFBS0JnUUNmZC9ZRkc5NFJtS3pLZ1puNWxZb09TZWozT3IrMkQwWk44T2MvWEhmY2dNQ01MOTJ2Cm13SkFGV090bTZpWTZYYWY4R3EwM1Y1TERRdnlaZGtGbDhuTU5XUlp3R3ZmaWM3MGNlL1puRDhERExKR3A2Z00Kait5UnVaWGEySEdQcTBVdTYrVUhiZ3NoWjFEWnY4aUExNm9Ic3dzSXprTE00Q1FyMmdrR3E3a3RRUUlEQVFBQgpBb0dBRGlxY0Ftd3RXQ2JXQXM5c25FMTZqRFpvcWIzZ1ZnNFpVc2M1NDlrVkZOT2pSMURoUXI1a2Zzam5wLzZTCkJiT0h4RUdaV1NQcFFvV1FNQ0o0R3hVVzZoZFY5aDJvN3lKMTlQbHNQM1o0Qy8zeUNsZWQ5b2NlTHpESmNnbHQKRFBtVmdiNEpqemZGR0xxbXVNTEgvbktZL2NjS3N2a3dFVERCMTd0YnJvR0llNkVDUVFETEIxWnpSRFA3b3RhLwpMU3lYRDE4b0FmdHIvY01GNkJvUjl2L2lnOVRvMGg1ZDE2bVE4c2NVeWxLUFBCWEV2UDlnS2c3QlZFN2g0M2Z3CnEwUzVySkVOQWtFQXlSTXFYVXBJMHFHaHVoZ0haTGFGL2tkSE0rbXY4Y0lPc21qU2tWemU5c0VDMng3UDNjanIKUXlqbE9NZ3FQQVVHTmpCTXp5WitxUlJGT2pZRGZ6MjRCUUpBQng1NHY0M3lySzRuRFlrTitUWUd4aVpicEl1LwpYT09vbGx5czJFcDdHcmJUYmNMMEpTcitKQko4RnAycXZiMUt6eHBxYmdrQXd4Ynd5N1dWc1ZVRnVRSkFmZEV3ClFRK3FZYUlod0lBb29DeFZ5N1p1SjEyaWFuUXpIZy9aTW53YVIreWVETjVLMDB4VmFjQzlMYnFTTXR3eDl0WmkKT1h5czVMOTZVZUphYmRRQXdRSkJBTEdjRSttWFA0eDkzT3FwYVpvMDc3eTJzQk1PTTFNVnhVbGoxMHBQQ1JhcgpMTlh2c2lWcFk4cjc3bkVzbDBoN3V2UmlNeDNIQUJUa0J4Z1VIUk1PYjVZPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
}
},
"public_ip": "145.100.133.247",
"role": "master",
"node_type": "XOLarge",
"root_key_pair": {
"protocol": "ssh",
"keys": {
"public_key": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDSDVkRmdEekViY3REc1cyVFFySHJJM2RhZC9VdHJVdk9tRENOQXI4WFM3TmVyU2dMbTQwTVF1U0lzdWZ3TU1HakpRWFh2N283WmdKRnNtVTN6aDEwV3RDbU4vYjMzOHdJNFVQRXFhYUpGc0UzYVNBbHYydGNCQ29YMkhwR2RGaEQxT3p3VW9uYStDenhOaldBSUc2N0dZZm9tQjFxVDlkTlJZNTRicE45SmlRPT0ga2V5UGFpci00ZmNiNzRkNi1hNmJkLTQ2NDktOTFkZi02NGEzMTA0NTYxNGYK",
"private_key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWEFJQkFBS0JnUUNINWRGZ0R6RWJjdERzVzJUUXJIckkzZGFkL1V0clV2T21EQ05BcjhYUzdOZXJTZ0xtCjQwTVF1U0lzdWZ3TU1HakpRWFh2N283WmdKRnNtVTN6aDEwV3RDbU4vYjMzOHdJNFVQRXFhYUpGc0UzYVNBbHYKMnRjQkNvWDJIcEdkRmhEMU96d1VvbmErQ3p4TmpXQUlHNjdHWWZvbUIxcVQ5ZE5SWTU0YnBOOUppUUlEQVFBQgpBb0dBQlloSm1jdUVpRVdJVTliMHA3b2QxWWVTY1NRYXFlZmFtMnZyRTNzVVpwM1Z1ZGR0ZnRESnJpaWJSNDdhCnYvUklqOGptY0RvWi9xakpRczZLNmRzYzR2d1NTSmhvUXdxdVdNN25GSlJ3NC9lV1FoZW9jUzJJdTNCOXlMN1YKaW1tRXdCUzV5aVA4V2xQbEQwZ1lEdklXUDkycFJ0bFdqeng4Z1pSL1RZV3NGYkVDUVFEdkhrUmNwSHByN0ZkRApjZWhWRWxDWW5ULy9OeitodFpaTUE1YmtMMTIzcStDYkc1M1ZsNjZST0t6MWN3T3ZTZFlGTnlzeXV2NkR0ck9wCjI4bkxCcE5EQWtFQWtYMzdkVU5nMSsrTUhIbnZPVVJPMjVvdVFDSlM5Y2ZsY2dPWXZXMUNKVW10UFU4RGZNek0KcTVXTnJSay9VdkxDc3FBQkdybWdxdkNwNlVROHBlRFZRd0pCQUw5aU5Fa0tCRW41QWVjamRsY1FyNTFXenZBUQpZa2VsdFVQbDQ1R0RMN2xnUWdjalZYS3RVclU4N1lJT3FqWlVISTVVRjZrazdheXlRSjZGSWIvejVVMENRRzE0Ci9kd2Q5cUNEL2tqdTlyR0FWRldvaldSMGJ6ZkFVVVNZc0RUWUlRMHRnc3kreDBFQVdJQkM1M2QzcDg0aUc1Mk0KQjBpMG84LzdoZDJmR29NMXlVRUNRQmNxQnl3OGZIVm5PdFVOK0xsT3VYQ1QrSFgvSzFrQzBCbHlmb2hlRGVKNgpXSVprOExtZzFhQTRkcTdhSzREUmUxU1NZQUZjcGhpam5vQU0yRmJKRkNNPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
}
},
"host_name": "vm0"
}
},
"compute_1": {
"properties": {
"disk_size": "50000 MB",
"mem_size": "6000 MB",
"num_cores": 2,
"os": "Ubuntu 18.04",
"user_name": "vm_user"
},
"interfaces": {
"Standard": {
"create": "dumy.yaml"
}
},
"type": "tosca.nodes.ARTICONF.VM.Compute",
"attributes": {
"user_key_pair": {
"protocol": "ssh",
"keys": {
"public_key": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDZmQvWUZHOTRSbUt6S2dabjVsWW9PU2VqM09yKzJEMFpOOE9jL1hIZmNnTUNNTDkydm13SkFGV090bTZpWTZYYWY4R3EwM1Y1TERRdnlaZGtGbDhuTU5XUlp3R3ZmaWM3MGNlL1puRDhERExKR3A2Z01qK3lSdVpYYTJIR1BxMFV1NitVSGJnc2haMURadjhpQTE2b0hzd3NJemtMTTRDUXIyZ2tHcTdrdFFRPT0gYXV0byBnZW5lcmF0ZWQgdXNlciBhY2NlZXMga2V5cwo=",
"private_key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWEFJQkFBS0JnUUNmZC9ZRkc5NFJtS3pLZ1puNWxZb09TZWozT3IrMkQwWk44T2MvWEhmY2dNQ01MOTJ2Cm13SkFGV090bTZpWTZYYWY4R3EwM1Y1TERRdnlaZGtGbDhuTU5XUlp3R3ZmaWM3MGNlL1puRDhERExKR3A2Z00Kait5UnVaWGEySEdQcTBVdTYrVUhiZ3NoWjFEWnY4aUExNm9Ic3dzSXprTE00Q1FyMmdrR3E3a3RRUUlEQVFBQgpBb0dBRGlxY0Ftd3RXQ2JXQXM5c25FMTZqRFpvcWIzZ1ZnNFpVc2M1NDlrVkZOT2pSMURoUXI1a2Zzam5wLzZTCkJiT0h4RUdaV1NQcFFvV1FNQ0o0R3hVVzZoZFY5aDJvN3lKMTlQbHNQM1o0Qy8zeUNsZWQ5b2NlTHpESmNnbHQKRFBtVmdiNEpqemZGR0xxbXVNTEgvbktZL2NjS3N2a3dFVERCMTd0YnJvR0llNkVDUVFETEIxWnpSRFA3b3RhLwpMU3lYRDE4b0FmdHIvY01GNkJvUjl2L2lnOVRvMGg1ZDE2bVE4c2NVeWxLUFBCWEV2UDlnS2c3QlZFN2g0M2Z3CnEwUzVySkVOQWtFQXlSTXFYVXBJMHFHaHVoZ0haTGFGL2tkSE0rbXY4Y0lPc21qU2tWemU5c0VDMng3UDNjanIKUXlqbE9NZ3FQQVVHTmpCTXp5WitxUlJGT2pZRGZ6MjRCUUpBQng1NHY0M3lySzRuRFlrTitUWUd4aVpicEl1LwpYT09vbGx5czJFcDdHcmJUYmNMMEpTcitKQko4RnAycXZiMUt6eHBxYmdrQXd4Ynd5N1dWc1ZVRnVRSkFmZEV3ClFRK3FZYUlod0lBb29DeFZ5N1p1SjEyaWFuUXpIZy9aTW53YVIreWVETjVLMDB4VmFjQzlMYnFTTXR3eDl0WmkKT1h5czVMOTZVZUphYmRRQXdRSkJBTEdjRSttWFA0eDkzT3FwYVpvMDc3eTJzQk1PTTFNVnhVbGoxMHBQQ1JhcgpMTlh2c2lWcFk4cjc3bkVzbDBoN3V2UmlNeDNIQUJUa0J4Z1VIUk1PYjVZPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
}
},
"public_ip": "145.100.133.157",
"role": "worker",
"node_type": "XOLarge",
"root_key_pair": {
"protocol": "ssh",
"keys": {
"public_key": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDSDVkRmdEekViY3REc1cyVFFySHJJM2RhZC9VdHJVdk9tRENOQXI4WFM3TmVyU2dMbTQwTVF1U0lzdWZ3TU1HakpRWFh2N283WmdKRnNtVTN6aDEwV3RDbU4vYjMzOHdJNFVQRXFhYUpGc0UzYVNBbHYydGNCQ29YMkhwR2RGaEQxT3p3VW9uYStDenhOaldBSUc2N0dZZm9tQjFxVDlkTlJZNTRicE45SmlRPT0ga2V5UGFpci00ZmNiNzRkNi1hNmJkLTQ2NDktOTFkZi02NGEzMTA0NTYxNGYK",
"private_key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWEFJQkFBS0JnUUNINWRGZ0R6RWJjdERzVzJUUXJIckkzZGFkL1V0clV2T21EQ05BcjhYUzdOZXJTZ0xtCjQwTVF1U0lzdWZ3TU1HakpRWFh2N283WmdKRnNtVTN6aDEwV3RDbU4vYjMzOHdJNFVQRXFhYUpGc0UzYVNBbHYKMnRjQkNvWDJIcEdkRmhEMU96d1VvbmErQ3p4TmpXQUlHNjdHWWZvbUIxcVQ5ZE5SWTU0YnBOOUppUUlEQVFBQgpBb0dBQlloSm1jdUVpRVdJVTliMHA3b2QxWWVTY1NRYXFlZmFtMnZyRTNzVVpwM1Z1ZGR0ZnRESnJpaWJSNDdhCnYvUklqOGptY0RvWi9xakpRczZLNmRzYzR2d1NTSmhvUXdxdVdNN25GSlJ3NC9lV1FoZW9jUzJJdTNCOXlMN1YKaW1tRXdCUzV5aVA4V2xQbEQwZ1lEdklXUDkycFJ0bFdqeng4Z1pSL1RZV3NGYkVDUVFEdkhrUmNwSHByN0ZkRApjZWhWRWxDWW5ULy9OeitodFpaTUE1YmtMMTIzcStDYkc1M1ZsNjZST0t6MWN3T3ZTZFlGTnlzeXV2NkR0ck9wCjI4bkxCcE5EQWtFQWtYMzdkVU5nMSsrTUhIbnZPVVJPMjVvdVFDSlM5Y2ZsY2dPWXZXMUNKVW10UFU4RGZNek0KcTVXTnJSay9VdkxDc3FBQkdybWdxdkNwNlVROHBlRFZRd0pCQUw5aU5Fa0tCRW41QWVjamRsY1FyNTFXenZBUQpZa2VsdFVQbDQ1R0RMN2xnUWdjalZYS3RVclU4N1lJT3FqWlVISTVVRjZrazdheXlRSjZGSWIvejVVMENRRzE0Ci9kd2Q5cUNEL2tqdTlyR0FWRldvaldSMGJ6ZkFVVVNZc0RUWUlRMHRnc3kreDBFQVdJQkM1M2QzcDg0aUc1Mk0KQjBpMG84LzdoZDJmR29NMXlVRUNRQmNxQnl3OGZIVm5PdFVOK0xsT3VYQ1QrSFgvSzFrQzBCbHlmb2hlRGVKNgpXSVprOExtZzFhQTRkcTdhSzREUmUxU1NZQUZjcGhpam5vQU0yRmJKRkNNPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="
}
},
"host_name": "vm1"
}
},
"kubernetes": {
"requirements": [
{
"host": {
"capability": "tosca.capabilities.ARTICONF.VM.topology",
"node": "topology",
"relationship": "tosca.relationships.HostedOn"
}
}
],
"interfaces": {
"Kubernetes": {
"configure": {
"inputs": {
"playbook": "https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/dashboard.yaml"
}
},
"create": {
"inputs": {
"playbook": "https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/create_k8s.yml"
}
},
"install": {
"inputs": {
"playbook": "https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/install_k8s.yml"
}
}
}
},
"type": "tosca.nodes.ARTICONF.docker.Orchestrator.Kubernetes"
},
"topology": {
"properties": {
"domain": "UvA (Amsterdam, The Netherlands) XO Rack",
"provider": "ExoGENI"
},
"requirements": [
{
"vm": {
"capability": "tosca.capabilities.ARTICONF.VM",
"node": "compute",
"relationship": "tosca.relationships.DependsOn"
}
},
{
"vm": {
"capability": "tosca.capabilities.ARTICONF.VM",
"node": "compute_1",
"relationship": "tosca.relationships.DependsOn"
}
}
],
"interfaces": {
"CloudsStorm": {
"provision": {
"inputs": {
"code_type": "SEQ",
"object_type": "SubTopology"
}
}
}
},
"type": "tosca.nodes.ARTICONF.VM.topology",
"attributes": {
"status": "running"
}
},
"ws-pema": {
"properties": {
"ports": [
"30001:8080"
]
},
"requirements": [
{
"host": {
"capability": "tosca.capabilities.ARTICONF.docker.Orchestrator",
"node": "kubernetes",
"relationship": "tosca.relationships.HostedOn"
}
}
],
"type": "tosca.nodes.ARTICONF.Container.Application.Docker",
"artifacts": {
"image": {
"file": "alogo53/ws-pema-lifewatch",
"repository": "docker_hub",
"type": "tosca.artifacts.Deployment.Image.Container.Docker"
}
}
}
}
},
"description": "TOSCA example",
"imports": [
{
"nodes": "https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/nodes.yaml"
},
{
"data": "https://raw.githubusercontent.com/skoulouzis/CONF/develop/TOSCA/types/data.yml"
},
{
"capabilities": "https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/capabilities.yaml"
},
{
"policies": "https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/policies.yaml"
},
{
"interfaces": "https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/interfaces.yml"
}
]
}
}
{"creationDate":1584629339939,"toscaTemplate":{"tosca_definitions_version":"tosca_simple_yaml_1_0","topology_template":{"node_templates":{"compute":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1.0,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute","attributes":{"user_key_pair":{"protocol":"ssh","keys":{"public_key":"c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDYUVhemZ3c003cEc4MTRnUnpaRktHeUxCcVlzVXlSNEd2SXVBQ3d0dmpQN3hDNGVZMDloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGdMbUR2OHJSU3g1TytkU1lycjdWNGs3L1VJdWxMYlhEb2p6T3NZYkpjYlZlODRGM0tnTGJTcG4yeDJRPT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNhRWF6ZndzTTdwRzgxNGdSelpGS0d5TEJxWXNVeVI0R3ZJdUFDd3R2alA3eEM0ZVkwCjloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGcKTG1EdjhyUlN4NU8rZFNZcnI3VjRrNy9VSXVsTGJYRG9qek9zWWJKY2JWZTg0RjNLZ0xiU3BuMngyUUlEQVFBQgpBbjhyVk0xS0lYekhTWGY5cjVPUTRLWlZRaHhiejJ1bXVIWEF6QTQwdUprZlVNMmlBZWE4L25qbWRpL2NxdFJZCnNBRWZzdXowQkV2Z3IrUjBKREJtUmxIQWRKckJ0Tyt6b3VTVVJVekQzQVBCOGd3VTJIVWNXL1EzeFVZZWQvOWoKV3RDNDVma2hUc1NGN08wK2sxTDY0UnpESWc1YW53N0Z3ZDc5OFpCdVk3Z0JBa0VBem8yM2tCYVpIZ1BiZmx1UgpvbGcvUUxBTlZYeDZTMFIzaUxJWWlEc0lVclk4RjdvbEFDNm12VGxaZ2xpendqWXRPNDlsODllTjJsOFZHZUtNCkdJYnpJUUpCQUw3emlIblNXTGIxYUVTOHNzUWZhclZrMytzRGxNTGhoNTJYOUEwbmNWTjk0bU83T2JCZ0FFUVcKYzdBdkhyNXdqSCtyNWRnSmN6eVlmU3YyZjV1bkg3a0NRUUNOV2R4QnhjVTVEaWk2T3czWnpJeFV4MllJbDJ2VgpjR0JnOG9mcFNvU3luYlZZQTNIb3d3UW1RRVhwOXF2bGYwL0xENklVa2ZHb2ZDTWptSzZJNW1raEFrRUFrUml1CndKcmtqSW5uNUN0YXo0cHI1RkExa2ZnVHB3NEdwZXFjS1E2cW4xM05sQ2psU2k5NHBFUkhQajVmNXlmUXF3YnMKelA5SlVHY3kzaUFka1NJcUNRSkFZc29JUHZZZStjMUZlbkdtWjZFZDl0VjM5QzFNRjhOWGQ5dnFYWmJLazdvZwp2OGZtaGtnRVlVc0ZnbW13NzZiRllOMFNQVkVlbk1INUh1MEQwcnZKUFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="}},"public_ip":"3.124.193.148","role":"master","node_type":"t2.micro","root_key_pair":{"protocol":"ssh","keys":{"public_key":"cHVibGljS2V5LTVhMDU5ZDE3LTQwZDEtNGE4ZC04MDI4LTQzOGEyNTE3MjczMQ==","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBd0RqM25oWVBPaEU2SllsNURvamtYM1B6bWR5OFNxMTZhTWQrR2JSSUc3MnZBNWFhYzh1RnhWOU1HY01ECk1RendrY2VPcVJVN1hRTUg5ZHJ3OXlLdCtiTnQvQUFLOW1KQmtVaGlxZHJKTVJMUnlnYmtRVHd1WWdRbVZSMnV6L0YrYTlsMnRRZzEKOGhsYS9BODVHRFBUaUdSUm9ST1BnNU5mSTRPNy9vTVY1bUx0MlZiM29vNTJsVDhFRnhBVzZ2aWpnTjlDSmFvOTJtTWZ6Unl6WlB5cwpEU0dpYmc1S2tlQWtvRFNWVEhKWDhxaFFyb2ttSjhQUHlUSmJRaHFySWJSWXJVSy9ISEM2c2J2bndqMFJ2UVVvbmNzeWNSV1M0YjN4ClRyOFhXTTU4RnY4TG81aDhrem1zRWM1RmJwMkZCZlBpTHFPcXVleDg3c2hZZ3NPZWltRy9Kd0lEQVFBQkFvSUJBUUNpNWVRYWlaRS8KNFdlSWRoY3NGU0NNTCtScUtPRTgzQVVYbExBdHNsVkZoUnN6REVjNkNHa0dHYnVSUFcyUC9PcEdjSHBhbWc2anhUVFN5a2RZK0grOQpVNnpLV1hMdzE5VysvRHY0dTl1eWhjTloxVHRNZVdiSlU4RDBjdUk1Z090bEZIWi85a1JaTmRtZ01IcHZJMFNKbXBKKzBlZldWbWJTCjN3bkxKMlhBeGUvQjdhQ0ZIS0I1RXJncjNua1I3Q3JTTlpHYmM3Y3FmdUs4RFdhMFRGQ0xXTHZUNEpIdmZhVTh6NElzUlZDakxiM1EKRnBnYUhPcDBUcEViR1VQSmpqMTRrcm1meW4wNFdhelZMTDhuVkhNSkNhcUIvOSt6MzI5N253ZjFYeFE3bWVEN1lnRjlNNWE0akNGTgovcTFyTUtNc012UVlrNWtvbi9FSVZRNEVMMVBoQW9HQkFPSk4vbFA3TXF5SDRQK2F3dTl1eTlpNkZRZCtrdjgxV2wrV1cvblpqd3B1CkNtSE94VzBkVzJqZ0FVZ2EwSXZRMzBLVFdqeG5QQ3lWRVZ5VkNjUmt3c0c0aTRDdWlTTldad0RHZHRBUElUSjFSOVRFR0J5bWhkankKMWdMMVZnMk5TRXpuakVrbU4raE9SV3FncmphM3pjd1lDWlZXbWZrVXV3U29ITDMra2FUeEFvR0JBTmx5RnZlcmhTZmI1TnE1L1lKWAozSG1WMVA0ckhHbmdBR3pjNUhpNm9NNHAwN3ZJSjNQYjFiMWlqK2lXQ2xWendJcW9KNHExU0dyVzFKamYvUm1ZRjNYTk11QWxsVU5lCnYyZlcxMnB1TFV1RmlCeHVmV1Y1Q2haYzUxcGllRlBkYnZKZlJselArcUFKTWwxM1BMYTdNbk9aY3BXZmQ0TFhYbk1TZDJQSFRNV1gKQW9HQUxxemhjTmJWbThvbXVQRmxsVmFueXBxT3JjNElhWVRLai82R0YrRXNaSDFQdk42Vno2eUhadmtVcXBlRlBlRWx1eWlES3dRcgo0QklhMDVxVnVpRUNIa3grMFZxdVJGQ1V6QThqQUVTdWx5YWpXeG5hMDBYeFEwN0tueStVd1JUTHZiamdNVklsbzg5STkvWU9HSkVPCmJETGsveDB1Z3JZbzRJdi82WnZ3MURFQ2dZRUFnSTFqcUs2ZGZUQVNQNEYvcjRSMEV1bVN6MlQ3V2xpVXg4ZGJ4MGhHY3p2bE1ub2wKWU9pUmwzSmlzOVdvYkZhUGVTbnFucVdJRjZuRWJGRFgyRDdEZCtDRmVHQ2Z1d0dUMVRiOWlhMXpWOWVzM1dvdzlrRzF4ZnpNeGZHNwpRNUdBMndlYW1KcFlpQzZIdVJ3YUo4bktETytsLzNFVWZhVUg4SzMxS1djVkt5Y0NnWUVBcXg5MkhNTnRTQWNpcUdESldjYVZRbFZyClRKbmZXME5pRFkxYlNMMTFXcklYd042aGM3MndpVkM5OG9CeS9VdDJ2a0VuWVA3aG94c1VlS3ZBRXNMcVV6ckpyWXJTeGswbXEyVjEKQ1NEbmhTMTA2dFJXVExVVzhiRzhVS1g1TnhabDRhcE5sWHlhbHI1a2R1WWc2YVFLS1dpZmorSzRudGF1eFFBSW1rZ21BVEE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"}},"host_name":"vm0"}},"compute_1":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1.0,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute","attributes":{"user_key_pair":{"protocol":"ssh","keys":{"public_key":"c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FDYUVhemZ3c003cEc4MTRnUnpaRktHeUxCcVlzVXlSNEd2SXVBQ3d0dmpQN3hDNGVZMDloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGdMbUR2OHJSU3g1TytkU1lycjdWNGs3L1VJdWxMYlhEb2p6T3NZYkpjYlZlODRGM0tnTGJTcG4yeDJRPT0gZ2VuZXJhdGVkIHVzZXIgYWNjZWVzIGtleXMK","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDV3dJQkFBS0JnUUNhRWF6ZndzTTdwRzgxNGdSelpGS0d5TEJxWXNVeVI0R3ZJdUFDd3R2alA3eEM0ZVkwCjloVDFHVEx0dER4K1NGdkdEbVhmeTQzWTFJUU9WNTVlRitPbjNQNXk3Ris2K3FTeWtPTVBvaUQ0Q3JpVCswNGcKTG1EdjhyUlN4NU8rZFNZcnI3VjRrNy9VSXVsTGJYRG9qek9zWWJKY2JWZTg0RjNLZ0xiU3BuMngyUUlEQVFBQgpBbjhyVk0xS0lYekhTWGY5cjVPUTRLWlZRaHhiejJ1bXVIWEF6QTQwdUprZlVNMmlBZWE4L25qbWRpL2NxdFJZCnNBRWZzdXowQkV2Z3IrUjBKREJtUmxIQWRKckJ0Tyt6b3VTVVJVekQzQVBCOGd3VTJIVWNXL1EzeFVZZWQvOWoKV3RDNDVma2hUc1NGN08wK2sxTDY0UnpESWc1YW53N0Z3ZDc5OFpCdVk3Z0JBa0VBem8yM2tCYVpIZ1BiZmx1UgpvbGcvUUxBTlZYeDZTMFIzaUxJWWlEc0lVclk4RjdvbEFDNm12VGxaZ2xpendqWXRPNDlsODllTjJsOFZHZUtNCkdJYnpJUUpCQUw3emlIblNXTGIxYUVTOHNzUWZhclZrMytzRGxNTGhoNTJYOUEwbmNWTjk0bU83T2JCZ0FFUVcKYzdBdkhyNXdqSCtyNWRnSmN6eVlmU3YyZjV1bkg3a0NRUUNOV2R4QnhjVTVEaWk2T3czWnpJeFV4MllJbDJ2VgpjR0JnOG9mcFNvU3luYlZZQTNIb3d3UW1RRVhwOXF2bGYwL0xENklVa2ZHb2ZDTWptSzZJNW1raEFrRUFrUml1CndKcmtqSW5uNUN0YXo0cHI1RkExa2ZnVHB3NEdwZXFjS1E2cW4xM05sQ2psU2k5NHBFUkhQajVmNXlmUXF3YnMKelA5SlVHY3kzaUFka1NJcUNRSkFZc29JUHZZZStjMUZlbkdtWjZFZDl0VjM5QzFNRjhOWGQ5dnFYWmJLazdvZwp2OGZtaGtnRVlVc0ZnbW13NzZiRllOMFNQVkVlbk1INUh1MEQwcnZKUFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="}},"public_ip":"18.197.132.48","role":"worker","node_type":"t2.micro","root_key_pair":{"protocol":"ssh","keys":{"public_key":"cHVibGljS2V5LTVhMDU5ZDE3LTQwZDEtNGE4ZC04MDI4LTQzOGEyNTE3MjczMQ==","private_key":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBd0RqM25oWVBPaEU2SllsNURvamtYM1B6bWR5OFNxMTZhTWQrR2JSSUc3MnZBNWFhYzh1RnhWOU1HY01ECk1RendrY2VPcVJVN1hRTUg5ZHJ3OXlLdCtiTnQvQUFLOW1KQmtVaGlxZHJKTVJMUnlnYmtRVHd1WWdRbVZSMnV6L0YrYTlsMnRRZzEKOGhsYS9BODVHRFBUaUdSUm9ST1BnNU5mSTRPNy9vTVY1bUx0MlZiM29vNTJsVDhFRnhBVzZ2aWpnTjlDSmFvOTJtTWZ6Unl6WlB5cwpEU0dpYmc1S2tlQWtvRFNWVEhKWDhxaFFyb2ttSjhQUHlUSmJRaHFySWJSWXJVSy9ISEM2c2J2bndqMFJ2UVVvbmNzeWNSV1M0YjN4ClRyOFhXTTU4RnY4TG81aDhrem1zRWM1RmJwMkZCZlBpTHFPcXVleDg3c2hZZ3NPZWltRy9Kd0lEQVFBQkFvSUJBUUNpNWVRYWlaRS8KNFdlSWRoY3NGU0NNTCtScUtPRTgzQVVYbExBdHNsVkZoUnN6REVjNkNHa0dHYnVSUFcyUC9PcEdjSHBhbWc2anhUVFN5a2RZK0grOQpVNnpLV1hMdzE5VysvRHY0dTl1eWhjTloxVHRNZVdiSlU4RDBjdUk1Z090bEZIWi85a1JaTmRtZ01IcHZJMFNKbXBKKzBlZldWbWJTCjN3bkxKMlhBeGUvQjdhQ0ZIS0I1RXJncjNua1I3Q3JTTlpHYmM3Y3FmdUs4RFdhMFRGQ0xXTHZUNEpIdmZhVTh6NElzUlZDakxiM1EKRnBnYUhPcDBUcEViR1VQSmpqMTRrcm1meW4wNFdhelZMTDhuVkhNSkNhcUIvOSt6MzI5N253ZjFYeFE3bWVEN1lnRjlNNWE0akNGTgovcTFyTUtNc012UVlrNWtvbi9FSVZRNEVMMVBoQW9HQkFPSk4vbFA3TXF5SDRQK2F3dTl1eTlpNkZRZCtrdjgxV2wrV1cvblpqd3B1CkNtSE94VzBkVzJqZ0FVZ2EwSXZRMzBLVFdqeG5QQ3lWRVZ5VkNjUmt3c0c0aTRDdWlTTldad0RHZHRBUElUSjFSOVRFR0J5bWhkankKMWdMMVZnMk5TRXpuakVrbU4raE9SV3FncmphM3pjd1lDWlZXbWZrVXV3U29ITDMra2FUeEFvR0JBTmx5RnZlcmhTZmI1TnE1L1lKWAozSG1WMVA0ckhHbmdBR3pjNUhpNm9NNHAwN3ZJSjNQYjFiMWlqK2lXQ2xWendJcW9KNHExU0dyVzFKamYvUm1ZRjNYTk11QWxsVU5lCnYyZlcxMnB1TFV1RmlCeHVmV1Y1Q2haYzUxcGllRlBkYnZKZlJselArcUFKTWwxM1BMYTdNbk9aY3BXZmQ0TFhYbk1TZDJQSFRNV1gKQW9HQUxxemhjTmJWbThvbXVQRmxsVmFueXBxT3JjNElhWVRLai82R0YrRXNaSDFQdk42Vno2eUhadmtVcXBlRlBlRWx1eWlES3dRcgo0QklhMDVxVnVpRUNIa3grMFZxdVJGQ1V6QThqQUVTdWx5YWpXeG5hMDBYeFEwN0tueStVd1JUTHZiamdNVklsbzg5STkvWU9HSkVPCmJETGsveDB1Z3JZbzRJdi82WnZ3MURFQ2dZRUFnSTFqcUs2ZGZUQVNQNEYvcjRSMEV1bVN6MlQ3V2xpVXg4ZGJ4MGhHY3p2bE1ub2wKWU9pUmwzSmlzOVdvYkZhUGVTbnFucVdJRjZuRWJGRFgyRDdEZCtDRmVHQ2Z1d0dUMVRiOWlhMXpWOWVzM1dvdzlrRzF4ZnpNeGZHNwpRNUdBMndlYW1KcFlpQzZIdVJ3YUo4bktETytsLzNFVWZhVUg4SzMxS1djVkt5Y0NnWUVBcXg5MkhNTnRTQWNpcUdESldjYVZRbFZyClRKbmZXME5pRFkxYlNMMTFXcklYd042aGM3MndpVkM5OG9CeS9VdDJ2a0VuWVA3aG94c1VlS3ZBRXNMcVV6ckpyWXJTeGswbXEyVjEKQ1NEbmhTMTA2dFJXVExVVzhiRzhVS1g1TnhabDRhcE5sWHlhbHI1a2R1WWc2YVFLS1dpZmorSzRudGF1eFFBSW1rZ21BVEE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t"}},"host_name":"vm1"}},"kubernetes":{"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.VM.topology","node":"topology","relationship":"tosca.relationships.HostedOn"}}],"interfaces":{"Kubernetes":{"configure":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/dashboard.yaml"}},"create":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/create_k8s.yml"}},"install":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/install_k8s.yml"}}}},"type":"tosca.nodes.ARTICONF.docker.Orchestrator.Kubernetes"},"topology":{"properties":{"domain":"Frankfurt","provider":"EC2"},"requirements":[{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute","relationship":"tosca.relationships.DependsOn"}},{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute_1","relationship":"tosca.relationships.DependsOn"}}],"interfaces":{"CloudsStorm":{"delete":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"hscale":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"provision":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"start":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"stop":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}}}},"type":"tosca.nodes.ARTICONF.VM.topology","attributes":{"credential":{"cloud_provider_name":"EC2","keys":{"aws_access_key_id":"XXXXXXXXXXXXX"},"token":"XXXXXXXXXXXXXXXXXXXx","token_type":"access_key"},"desired_state":"RUNNING","current_state":"RUNNING"}},"ws-pema":{"properties":{"ports":["30001:8080"]},"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.docker.Orchestrator","node":"kubernetes","relationship":"tosca.relationships.HostedOn"}}],"type":"tosca.nodes.ARTICONF.Container.Application.Docker","artifacts":{"image":{"file":"alogo53/ws-pema-lifewatch","repository":"docker_hub","type":"tosca.artifacts.Deployment.Image.Container.Docker"}}}}},"description":"TOSCA example","imports":[{"nodes":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/nodes.yaml"},{"data":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/TOSCA/types/data.yml"},{"capabilities":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/capabilities.yaml"},{"policies":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/policies.yaml"},{"interfaces":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/interfaces.yml"}]}}
{"owner":"user","creationDate":1584616813246,"toscaTemplate":{"tosca_definitions_version":"tosca_simple_yaml_1_0","tosca_default_namespace":null,"template_name":null,"topology_template":{"description":null,"inputs":null,"node_templates":{"compute":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute"},"compute_1":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute"},"kubernetes":{"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.VM.topology","node":"topology","relationship":"tosca.relationships.HostedOn"}}],"interfaces":{"Kubernetes":{"configure":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/dashboard.yaml"}},"create":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/create_k8s.yml"}},"install":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/install_k8s.yml"}}}},"type":"tosca.nodes.ARTICONF.docker.Orchestrator.Kubernetes"},"topology":{"properties":{"domain":"Frankfurt","provider":"EC2"},"requirements":[{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute","relationship":"tosca.relationships.DependsOn"}},{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute_1","relationship":"tosca.relationships.DependsOn"}}],"interfaces":{"CloudsStorm":{"delete":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"hscale":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"provision":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"start":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"stop":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}}}},"type":"tosca.nodes.ARTICONF.VM.topology","attributes":{"credential":{"cloud_provider_name":"EC2","keys":{"aws_access_key_id":"XXXXXXXXXXXXXXXXXXX"},"token":"XXXXXXXXXXXXXXX","token_type":"access_key"},"desired_state":"PROVISION"}},"ws-pema":{"properties":{"ports":["30001:8080"]},"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.docker.Orchestrator","node":"kubernetes","relationship":"tosca.relationships.HostedOn"}}],"type":"tosca.nodes.ARTICONF.Container.Application.Docker","artifacts":{"image":{"file":"alogo53/ws-pema-lifewatch","repository":"docker_hub","type":"tosca.artifacts.Deployment.Image.Container.Docker"}}}},"relationship_templates":null,"outputs":null,"groups":null,"substitution_mappings":null,"policies":null},"template_author":null,"template_version":null,"description":"TOSCA example","imports":[{"nodes":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/nodes.yaml"},{"data":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/TOSCA/types/data.yml"},{"capabilities":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/capabilities.yaml"},{"policies":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/policies.yaml"},{"interfaces":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/interfaces.yml"}],"dsl_definitions":null,"node_types":null,"relationship_types":null,"relationship_templates":null,"capability_types":null,"artifact_types":null,"data_types":null,"interface_types":null,"policy_types":null,"group_types":null,"repositories":null}}
{"owner":"user","creationDate":1584628085846,"toscaTemplate":{"tosca_definitions_version":"tosca_simple_yaml_1_0","tosca_default_namespace":null,"template_name":null,"topology_template":{"description":null,"inputs":null,"node_templates":{"compute":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute"},"compute_1":{"properties":{"disk_size":"10000 MB","mem_size":"1000 MB","num_cores":1,"os":"Ubuntu 18.04","user_name":"vm_user"},"interfaces":{"Standard":{"create":"dumy.yaml"}},"type":"tosca.nodes.ARTICONF.VM.Compute"},"kubernetes":{"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.VM.topology","node":"topology","relationship":"tosca.relationships.HostedOn"}}],"interfaces":{"Kubernetes":{"configure":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/dashboard.yaml"}},"create":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/create_k8s.yml"}},"install":{"inputs":{"playbook":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/ansible_playbooks/install_k8s.yml"}}}},"type":"tosca.nodes.ARTICONF.docker.Orchestrator.Kubernetes"},"topology":{"properties":{"domain":"Frankfurt","provider":"EC2"},"requirements":[{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute","relationship":"tosca.relationships.DependsOn"}},{"vm":{"capability":"tosca.capabilities.ARTICONF.VM","node":"compute_1","relationship":"tosca.relationships.DependsOn"}}],"interfaces":{"CloudsStorm":{"delete":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"hscale":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"provision":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"start":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}},"stop":{"inputs":{"code_type":"SEQ","object_type":"SubTopology"}}}},"type":"tosca.nodes.ARTICONF.VM.topology","attributes":{"credential":{"cloud_provider_name":"EC2","keys":{"aws_access_key_id":"XXXXXXXXXXXXXXX"},"token":"XXXXXXXXXXXXXXXXXX","token_type":"access_key"},"desired_state":"RUNNING"}},"ws-pema":{"properties":{"ports":["30001:8080"]},"requirements":[{"host":{"capability":"tosca.capabilities.ARTICONF.docker.Orchestrator","node":"kubernetes","relationship":"tosca.relationships.HostedOn"}}],"type":"tosca.nodes.ARTICONF.Container.Application.Docker","artifacts":{"image":{"file":"alogo53/ws-pema-lifewatch","repository":"docker_hub","type":"tosca.artifacts.Deployment.Image.Container.Docker"}}}},"relationship_templates":null,"outputs":null,"groups":null,"substitution_mappings":null,"policies":null},"template_author":null,"template_version":null,"description":"TOSCA example","imports":[{"nodes":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/nodes.yaml"},{"data":"https://raw.githubusercontent.com/skoulouzis/CONF/develop/TOSCA/types/data.yml"},{"capabilities":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/capabilities.yaml"},{"policies":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/policies.yaml"},{"interfaces":"https://raw.githubusercontent.com/skoulouzis/DRIP/develop/TOSCA/types/interfaces.yml"}],"dsl_definitions":null,"node_types":null,"relationship_types":null,"relationship_templates":null,"capability_types":null,"artifact_types":null,"data_types":null,"interface_types":null,"policy_types":null,"group_types":null,"repositories":null}}
......@@ -161,13 +161,11 @@ public class DRIPService {
List<NodeTemplateMap> vmTopologies = helper.getVMTopologyTemplates();
for (NodeTemplateMap vmTopology : vmTopologies) {
CloudsStormSubTopology.StatusEnum status = helper.getVMTopologyTemplateStatus(vmTopology);
if (!status.equals(CloudsStormSubTopology.StatusEnum.DELETED)) {
toscaTemplate = setDesieredSate(toscaTemplate, vmTopologies, NODE_STATES.DELETED);
}
toscaTemplate = setDesieredSate(toscaTemplate, vmTopologies, NODE_STATES.DELETED);
}
return execute(toscaTemplate, provisionerQueueName);
}else{
} else {
}
return null;
......
......@@ -3,7 +3,7 @@
properties:
Operation:
type: "string"
enum: [provision , delete , execute , put , get , vscale , hscale , recover , start]
enum: [provision , delete , execute , put , get , vscale , hscale , recover , start, stop]
ObjectType:
type: "string"
enum: [SubTopology , VM , REQ]
......
......@@ -18,6 +18,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.util.ArrayList;
......@@ -29,6 +30,7 @@ import java.util.Properties;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import static nl.uva.sne.drip.commons.utils.Constatnts.ENCODED_FILE_DATATYPE;
import nl.uva.sne.drip.commons.utils.Converter;
import nl.uva.sne.drip.commons.utils.ToscaHelper;
import static nl.uva.sne.drip.commons.utils.ToscaHelper.cloudStormStatus2NodeState;
......@@ -191,7 +193,10 @@ class CloudStormService {
cloudsStormSubTopology.setDomain(domain);
cloudsStormSubTopology.setCloudProvider(provider);
cloudsStormSubTopology.setTopology(SUB_TOPOLOGY_NAME + i);
cloudsStormSubTopology.setStatus(CloudsStormSubTopology.StatusEnum.FRESH);
ToscaHelper.NODE_STATES currentState = helper.getNodeCurrentState(nodeTemplateMap);
ToscaHelper.NODE_STATES desiredState = helper.getNodeDesiredState(nodeTemplateMap);
cloudsStormSubTopology.setStatus(ToscaHelper.nodeCurrentState2CloudStormStatus(currentState));
CloudsStormVMs cloudsStormVMs = new CloudsStormVMs();
List<CloudsStormVM> vms = new ArrayList<>();
......@@ -304,25 +309,22 @@ class CloudStormService {
for (NodeTemplateMap vmTopologyMap : vmTopologiesMaps) {
ToscaHelper.NODE_STATES nodeCurrentState = helper.getNodeCurrentState(vmTopologyMap);
ToscaHelper.NODE_STATES nodeDesiredState = helper.getNodeDesiredState(vmTopologyMap);
if (nodeCurrentState != null && nodeCurrentState.equals(ToscaHelper.NODE_STATES.RUNNING)) {
//Already there
}
//Can provision
if (nodeCurrentState == null || nodeCurrentState.equals(ToscaHelper.NODE_STATES.DELETED)) {
Map<String, Object> provisionInterface = helper.getProvisionerInterfaceFromVMTopology(vmTopologyMap);
String operation = nodeDesiredState.toString().toLowerCase();
Map<String, Object> inputs = (Map<String, Object>) provisionInterface.get(operation);
inputs.put("object_type", cloudStormSubtopologies.get(i).getTopology());
OpCode opCode = new OpCode();
opCode.setLog(Boolean.FALSE);
opCode.setObjectType(OpCode.ObjectTypeEnum.SUBTOPOLOGY);
opCode.setObjects(cloudStormSubtopologies.get(i).getTopology());
opCode.setOperation(OpCode.OperationEnum.fromValue(operation));
InfrasCode infrasCode = new InfrasCode();
infrasCode.setCodeType(InfrasCode.CodeTypeEnum.SEQ);
infrasCode.setOpCode(opCode);
infrasCodes.add(infrasCode);
}
Map<String, Object> provisionInterface = helper.getProvisionerInterfaceFromVMTopology(vmTopologyMap);
OpCode.OperationEnum operation = ToscaHelper.NodeDesiredState2CloudStormOperation(nodeDesiredState);
Map<String, Object> inputs = (Map<String, Object>) provisionInterface.get(operation.toString().toLowerCase());
inputs.put("object_type", cloudStormSubtopologies.get(i).getTopology());
OpCode opCode = new OpCode();
opCode.setLog(Boolean.FALSE);
opCode.setObjectType(OpCode.ObjectTypeEnum.SUBTOPOLOGY);
opCode.setObjects(cloudStormSubtopologies.get(i).getTopology());
opCode.setOperation(operation);
InfrasCode infrasCode = new InfrasCode();
infrasCode.setCodeType(InfrasCode.CodeTypeEnum.SEQ);
infrasCode.setOpCode(opCode);
infrasCodes.add(infrasCode);
}
CloudsStormInfrasCode cloudsStormInfrasCode = new CloudsStormInfrasCode();
cloudsStormInfrasCode.setMode(CloudsStormInfrasCode.ModeEnum.LOCAL);
......@@ -341,8 +343,6 @@ class CloudStormService {
protected ToscaTemplate runCloudStorm(String tempInputDirPath) throws IOException, ApiException {
String[] args = new String[]{"run", tempInputDirPath};
standalone.MainAsTool.main(args);
// tempInputDirPath = "/tmp/Input-26386504078656";
CloudsStormTopTopology _top = objectMapper.readValue(new File(tempInputDirPath + TOPOLOGY_RELATIVE_PATH
+ TOP_TOPOLOGY_FILE_NAME),
CloudsStormTopTopology.class);
......@@ -354,12 +354,23 @@ class CloudStormService {
for (CloudsStormSubTopology subTopology : subTopologies) {
NodeTemplateMap vmTopologyMap = vmTopologiesMaps.get(i);
Map<String, Object> att = vmTopologyMap.getNodeTemplate().getAttributes();
if (att == null) {
att = new HashMap<>();
Map<String, Object> artifacts = vmTopologyMap.getNodeTemplate().getArtifacts();
if (artifacts == null) {
artifacts = new HashMap<>();
}
helper.setNodeCurrentState(vmTopologyMap, cloudStormStatus2NodeState(subTopology.getStatus()));
Map<String, String> provisionedFiles = new HashMap<>();
provisionedFiles.put("type", ENCODED_FILE_DATATYPE);
Path zipPath = Paths.get(tempInputDirPath + TOPOLOGY_RELATIVE_PATH+File.separator+TOPOLOGY_FOLDER_NAME+".zip");
Path sourceFolderPath = Paths.get(tempInputDirPath + TOPOLOGY_RELATIVE_PATH);
Converter.zipFolder(sourceFolderPath, zipPath);
String cloudStormZipFileContentsAsBase64 = Converter.encodeFileToBase64Binary(zipPath.toFile().getAbsolutePath());
provisionedFiles.put("file_contents", cloudStormZipFileContentsAsBase64);
provisionedFiles.put("encoding", "base64");
provisionedFiles.put("file_ext", "zip");
artifacts.put("provisioned_files", provisionedFiles);
helper.setNodeCurrentState(vmTopologyMap, cloudStormStatus2NodeState(subTopology.getStatus()));
String rootKeyPairFolder = tempInputDirPath + TOPOLOGY_RELATIVE_PATH
+ File.separator + subTopology.getSshKeyPairId();
......
......@@ -9,6 +9,8 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
import com.jcraft.jsch.KeyPair;
import java.io.File;
import java.io.FileNotFoundException;
......@@ -17,7 +19,11 @@ import java.util.List;
import java.util.Map;
import nl.uva.sne.drip.commons.utils.ToscaHelper;
import nl.uva.sne.drip.model.Message;
import nl.uva.sne.drip.model.cloud.storm.CloudsStormInfrasCode;
import nl.uva.sne.drip.model.cloud.storm.CloudsStormSubTopology;
import nl.uva.sne.drip.model.cloud.storm.CloudsStormTopTopology;
import nl.uva.sne.drip.model.cloud.storm.InfrasCode;
import nl.uva.sne.drip.model.cloud.storm.OpCode;
import static nl.uva.sne.drip.provisioner.CloudStormService.APP_FOLDER_NAME;
import static nl.uva.sne.drip.provisioner.CloudStormService.INFRASTUCTURE_CODE_FILE_NAME;
import static nl.uva.sne.drip.provisioner.CloudStormService.INFS_FOLDER_NAME;
......@@ -35,11 +41,11 @@ import static org.junit.Assert.*;
/**
*
* @author alogo
* @author S. Koulouzis
*/
public class CloudStormServiceTest {
private static final String messageExampleDeleteRequestFilePath = ".." + File.separator + "example_messages" + File.separator + "message_example_provisioned.json";
private static final String messageExampleDeleteRequestFilePath = ".." + File.separator + "example_messages" + File.separator + "message_delete_request.json";
private static final String messageExampleProvisioneRequestFilePath = ".." + File.separator + "example_messages" + File.separator + "message_provision_request.json";
private final ObjectMapper objectMapper;
private String tempInputDirPath;
......@@ -52,7 +58,7 @@ public class CloudStormServiceTest {
private String providersDBTempInputDirPath;
public CloudStormServiceTest() {
this.objectMapper = new ObjectMapper();
this.objectMapper = new ObjectMapper(new YAMLFactory().disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER));
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
}
......@@ -186,21 +192,9 @@ public class CloudStormServiceTest {
public void testWriteCloudStormInfrasCodeFiles() throws Exception {
if (ToscaHelper.isServiceUp(sureToscaBasePath)) {
System.out.println("writeCloudStormInfrasCodeFiles");
CloudStormService instance = getService(messageExampleProvisioneRequestFilePath);
Map<String, Object> subTopologiesAndVMs = instance.writeCloudStormTopologyFiles(topologyTempInputDirPath);
assertNotNull(subTopologiesAndVMs);
assertTrue(new File(topologyTempInputDirPath + File.separator + TOP_TOPOLOGY_FILE_NAME).exists());
List<CloudsStormSubTopology> cloudStormSubtopologies = (List<CloudsStormSubTopology>) subTopologiesAndVMs.get("cloud_storm_subtopologies");
instance.writeCloudStormInfrasCodeFiles(infrasCodeTempInputDirPath, cloudStormSubtopologies);
assertTrue(new File(infrasCodeTempInputDirPath + File.separator + INFRASTUCTURE_CODE_FILE_NAME).exists());
instance = getService(messageExampleDeleteRequestFilePath);
subTopologiesAndVMs = instance.writeCloudStormTopologyFiles(topologyTempInputDirPath);
assertNotNull(subTopologiesAndVMs);
assertTrue(new File(topologyTempInputDirPath + File.separator + TOP_TOPOLOGY_FILE_NAME).exists());
cloudStormSubtopologies = (List<CloudsStormSubTopology>) subTopologiesAndVMs.get("cloud_storm_subtopologies");
instance.writeCloudStormInfrasCodeFiles(infrasCodeTempInputDirPath, cloudStormSubtopologies);
assertTrue(new File(infrasCodeTempInputDirPath + File.separator + INFRASTUCTURE_CODE_FILE_NAME).exists());
testWriteCloudStormInfrasFiles(messageExampleProvisioneRequestFilePath, CloudsStormSubTopology.StatusEnum.FRESH, OpCode.OperationEnum.PROVISION);
testWriteCloudStormInfrasFiles(messageExampleDeleteRequestFilePath, CloudsStormSubTopology.StatusEnum.RUNNING, OpCode.OperationEnum.DELETE);
}
}
......@@ -259,4 +253,30 @@ public class CloudStormServiceTest {
return new CloudStormService(RPCServer.getProp(), message.getToscaTemplate());
}
private void testWriteCloudStormInfrasFiles(String path, CloudsStormSubTopology.StatusEnum status, OpCode.OperationEnum opCode) throws IOException, JsonProcessingException, ApiException, Exception {
CloudStormService instance = getService(path);
initPaths();
Map<String, Object> subTopologiesAndVMs = instance.writeCloudStormTopologyFiles(topologyTempInputDirPath);
assertNotNull(subTopologiesAndVMs);
File topTopologyFile = new File(topologyTempInputDirPath + File.separator + TOP_TOPOLOGY_FILE_NAME);
assertTrue(topTopologyFile.exists());
CloudsStormTopTopology _top = objectMapper.readValue(new File(tempInputDirPath + TOPOLOGY_RELATIVE_PATH
+ TOP_TOPOLOGY_FILE_NAME),
CloudsStormTopTopology.class);
for (CloudsStormSubTopology cloudsStormSubTopology : _top.getTopologies()) {
assertEquals(status, cloudsStormSubTopology.getStatus());
}
List<CloudsStormSubTopology> cloudStormSubtopologies = (List<CloudsStormSubTopology>) subTopologiesAndVMs.get("cloud_storm_subtopologies");
instance.writeCloudStormInfrasCodeFiles(infrasCodeTempInputDirPath, cloudStormSubtopologies);
File infrasCodeFile = new File(infrasCodeTempInputDirPath + File.separator + INFRASTUCTURE_CODE_FILE_NAME);
assertTrue(infrasCodeFile.exists());
CloudsStormInfrasCode cloudsStormInfrasCode = objectMapper.readValue(infrasCodeFile, CloudsStormInfrasCode.class);
for (InfrasCode code : cloudsStormInfrasCode.getInfrasCodes()) {
assertEquals(opCode, code.getOpCode().getOperation());
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment