Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A7B47200C3B for ; Sat, 4 Mar 2017 00:19:26 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id A62EE160B80; Fri, 3 Mar 2017 23:19:26 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 28772160B6D for ; Sat, 4 Mar 2017 00:19:25 +0100 (CET) Received: (qmail 2968 invoked by uid 500); 3 Mar 2017 23:19:24 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 2952 invoked by uid 99); 3 Mar 2017 23:19:23 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Mar 2017 23:19:23 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 57A5E1A07DA for ; Fri, 3 Mar 2017 23:19:23 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.321 X-Spam-Level: X-Spam-Status: No, score=-0.321 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id iJSiJembBaBa for ; Fri, 3 Mar 2017 23:19:16 +0000 (UTC) Received: from mail-it0-f44.google.com (mail-it0-f44.google.com [209.85.214.44]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id D0B735F4AC for ; Fri, 3 Mar 2017 23:19:15 +0000 (UTC) Received: by mail-it0-f44.google.com with SMTP id 203so22577577ith.0 for ; Fri, 03 Mar 2017 15:19:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-transfer-encoding; bh=Fgi6bfxKkKlE3wIl2rlaLyzR2hcr4ffQZqqAP5sm+Q0=; b=lG1meJeGUMU8fdbw09SR4UcjeSKpPYT7G1wcrm/gWhdcvQLlmlI/fB+4Y3ouf5lRT1 l5dE9PaTstf1JZkJ97XcxYMMf+C3zQEuQIHDUTANKTq8HKIjlIvJ3eODkE8g/7mHQ+Gb m4vcdlKmJdw6z07dUPe17Ffl+M/n+GaxC4BWS46moLUrSLaUn6mHcRDvudgeMfJjwvox rLBhHZwgR66yuOgClXOlgi1VKJwZYGT3JK3So2kvevh1zsYfK5S36oDtIbSp6qFAzk1L GJjOEz7yV7+5P487i1IoY5e9LK9IOxN3N2VHkg3SnZDHQkVArHDm7CCZe2FSNwJ6m3g4 CJuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-transfer-encoding; bh=Fgi6bfxKkKlE3wIl2rlaLyzR2hcr4ffQZqqAP5sm+Q0=; b=rCO2SivjlM+HsL9Y8lRnGWk3cWgoOx5Mri6NCCF14O9ldkz5FXTsfvnAQnxV7yVeo1 B/G4DQ3l+sgHl86/heugEoD8qgVF2TF7ZdGIv6IMYMVmmFHOA3l9V/UGDGbea5qDqW4a 1puNN8Cvw042sN4j3HXrLrpbC3mLQo8S3dW+U5aobkcMvV3feZxUB9XGoRBc86qt4cxc 656QoE+9433YnVwko3rX+97xVlcNqQ7ORKJV0iWuIHdtohfOyShbgBTzyaGhK3O7fvWi NKP/j/74FGHQHE+CaGDNHZxh0CArCFXuTpF1JgpY7vdZB+nf26MYxNRas1UXlJvrEfDB Qhiw== X-Gm-Message-State: AMke39kWv3XnC6QgNwAZh7fMzV5d/6WLx9YR5vRJ93XwlDWn9rFS5cFi8ZzkllZp2jStWYXbwfMOWNpFYyC3xg== X-Received: by 10.36.65.4 with SMTP id x4mr5916927ita.69.1488583148403; Fri, 03 Mar 2017 15:19:08 -0800 (PST) MIME-Version: 1.0 Received: by 10.79.18.135 with HTTP; Fri, 3 Mar 2017 15:19:07 -0800 (PST) In-Reply-To: References: <17491968-94FB-4B9B-B6B9-9C6469C21B43@ena.com> <71FCDA60-6A32-4F2F-B7D0-65FFFAA37260@persistent.co.in> <41A7290D-3710-4868-96CB-4B626CEE9B97@shapeblue.com> <6A5243FF-4489-4D66-A18B-17C87CBE13E4@shapeblue.com> <19D9208A-F882-47EF-ADDA-54BFBA7D137B@shapeblue.com> From: Erik Weber Date: Sat, 4 Mar 2017 00:19:07 +0100 Message-ID: Subject: Re: Modern template hosting To: dev Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable archived-at: Fri, 03 Mar 2017 23:19:26 -0000 IMHO; implement it as simple as possible, use DNS RR and assume/expect mirror hosts to use the same path. Yes I know; DNS RR isn't bulletproof, but as already mentioned in this thread - mirrors rarely go down and they aren't used all that often (primarily seeding). We can keep a low TTL on the record so that we're able to remove a mirror that goes down for a significant period of time (more than hours). And yes I know, some operators might find it a burden having to set up a new vhost with another document root, but tbh if they don't care enough to do it we'll manage without that mirror. --=20 Erik On Sat, Mar 4, 2017 at 12:09 AM, Will Stevens wr= ote: > I agree with Paul. Look at the list of things they have to > learn/master/care about. We don't want to add to that list, we want to > remove from that list. Make the project/product more accessible. Reduce t= he > barrier to entry... > > On Mar 3, 2017 5:50 PM, "Chiradeep Vittal" wrote: > >> Seriously? >> apt-get install apache2 >> >> To install CloudStack, they need to know >> - DB installation, perhaps some SQL >> - VLAN configuration on their switches >> - Ins-and-outs between port forwarding, static ips, >> - NFS >> - package management >> - VHDs, qcow2. vmdk >> - hyperviosrs >> - and on and on. >> >> If they can figure all that out and not figure out a web server, they ca= n >> always come to the mailing list. >> >> >> >> >> On Fri, Mar 3, 2017 at 1:45 PM, Paul Angus >> wrote: >> >> > The issue is not with supporting highly experienced cloud operators. I= t >> is >> > an issue for new users and other 'relatively' inexperienced operators. >> > >> > I have helped enough newbies and cloud operators who have been running >> > their cloud for a while to know that the barriers to entry are too hig= h >> as >> > they are. And telling anyone that they need to create a web server so >> that >> > they can add their initial template to get started or in order to crea= te >> a >> > new zone, just isn't going to fly. >> > >> > I'm a huge advocate of the 'download.cloudstack.org' endpoint which th= e >> > community can add/remove mirrors to or from for system VMs or built-in >> > templates. Can the same system be used for binary repos ? although th= ere >> > is an added complication of redist vs no-redist there... >> > >> > >> > >> > >> > >> > >> > paul.angus@shapeblue.com >> > www.shapeblue.com >> > 53 Chandos Place, Covent Garden, London WC2N 4HSUK >> > @shapeblue >> > >> > >> > >> > >> > -----Original Message----- >> > From: Chiradeep Vittal [mailto:chiradeepv@gmail.com] >> > Sent: 03 March 2017 18:28 >> > To: dev >> > Subject: Re: Modern template hosting >> > >> > I do feel like this is early optimization. Mirrors rarely fail. I'd >> expect >> > a single web server hosted on Apache Infra without any monitors to fai= l >> > more often than a mirror. We already expect Wido's systemvm repository= to >> > be up all the time. And it has been. Similarly, I don't believe Nux's >> > repository has ever been down. And if Accelerite wants to host on S3, >> that >> > one is pretty solid as well. >> > >> > This is an infrequent operation in a cloud. After the cloud is install= ed, >> > the download servers are only needed for a new zone. If we trust the u= ser >> > to run a cloud, surely he/she can run a web server to serve some built= -in >> > templates. And if her cloud is successful, she needs to figure out how= to >> > host her templates anyway and not rely on 3rd parties. >> > >> > >> > On Fri, Mar 3, 2017 at 9:31 AM, Will Stevens >> > wrote: >> > >> > > 1) If the legacy implementations do not support redirects, that does >> > > cause a problem. A potential solution in that case is to have the w= eb >> > > server actually proxy the download, but that is not ideal and I woul= d >> > > like to avoid it if possible. Thanks for bringing that up Chiradeep= . >> > > >> > > 2) I think we need to have a single URL which people can target. On= ce >> > > they make the switch to the new URL, we want the implementation to b= e >> > > able to handle mirror failures without affecting the end client. We >> > > want to avoid the situation where an ACS user will ever have to chan= ge >> > > this URL more than once. Mirror failures SHOULD NOT affect the ACS >> > > users assuming there is still at least one mirror who can serve the >> > requested resource. >> > > >> > > These are obviously my personal opinions and others will probably ha= ve >> > > differing opinions. >> > > >> > > *Will STEVENS* >> > > Lead Developer >> > > >> > > >> > > >> > > On Fri, Mar 3, 2017 at 12:23 PM, Chiradeep Vittal >> > > >> > > wrote: >> > > >> > > > 1. If you are targeting legacy installations, they are not able to >> > > > follow redirects. The line of code that added this capability was >> > > > added on >> > > 11/16. >> > > > 2. If you trust the users to edit the database to change the URL, >> > > > you can trust them to change it to anything. Just document a known >> > > > list of good template locations. >> > > > >> > > > On Fri, Mar 3, 2017 at 8:13 AM, Will Stevens >> > > > wrote: >> > > > >> > > > > So the main issue I see with this is the following. >> > > > > >> > > > > This implementation is designed to target legacy installations >> > > > > which >> > > will >> > > > > be affected when download.cloud.com disappears. These people wi= ll >> > > need >> > > > to >> > > > > make a DB change to replace the 'download.cloud.com' with some >> > > > > other >> > > url >> > > > > (maybe 'download.cloudstack.org'). Once the DB has been updated= , >> > > > > we >> > > can >> > > > > not expect anything else of the client, they need to be able to >> > > > > just continue operation as they were without any need to rebuild >> > > > > or upgrade their ACS. >> > > > > >> > > > > If we try to force the decision to the client, then we break the >> > > > > legacy implementations. Since the SSVM is likely going to be th= e >> > > > > client in >> > > some >> > > > > cases, and since it does not already have the logic to handle th= e >> > > > > 300 approach correctly, I feel like it is not a viable solution >> > > > > for the >> > > > legacy >> > > > > deployments. >> > > > > >> > > > > In addition to that. I don't think the client is in any better >> > > position >> > > > to >> > > > > make the mirror decision than I am. I am likely able to make a >> > > > > more 'educated' decision than the client would be able to becaus= e >> > > > > I can do different tests on the endpoint(s) before making a fina= l >> > decision. >> > > > > >> > > > > Does this make sense or am I missing something obvious? >> > > > > >> > > > > *Will STEVENS* >> > > > > Lead Developer >> > > > > >> > > > > >> > > > > >> > > > > On Fri, Mar 3, 2017 at 10:48 AM, Rafael Weing=C3=A4rtner < >> > > > > rafaelweingartner@gmail.com> wrote: >> > > > > >> > > > > > I think I understood you, but I did not understand you. >> > > > > > >> > > > > > Let me see if I can create an example to illustrate how we cou= ld >> > > > > > do >> > > > using >> > > > > > the HTTP 300 code. >> > > > > > >> > > > > > The HTTP 300 code indicates clients that he/she/it has multipl= e >> > > choices >> > > > > to >> > > > > > access the requested resource. If the request is a HEAD, this = is >> > > > > > the >> > > > only >> > > > > > thing that the server returns. If the request if a GET, then t= he >> > > server >> > > > > > returns the choices for the client. The response type is defin= ed >> > > > > > on >> > > the >> > > > > > server based on the Content-Type, user agent and others. >> > > > > > >> > > > > > Let=E2=80=99s say the server receives a GET request and inform= s the >> > > > content-type >> > > > > as >> > > > > > JSON (application/JSON). Your application could get the mirror= s >> > > > > > list, >> > > > do >> > > > > > the appending process for the requested resource path, and the= n >> > > return >> > > > a >> > > > > > JSON array with the possible mirror the client can use. Then, >> > > > > > the >> > > > client >> > > > > > gets this list and does the processing required to select a >> mirror. >> > > > > > >> > > > > > Now let=E2=80=99s say that a human access the link using a bro= wser. >> > > > > > Then, the server should receive something like (text/plain) as >> > > > > > the >> > > content-type; >> > > > I >> > > > > > think depending on the browser this field may differ a little >> > > > > > (it >> > > would >> > > > > > require some checking). Anyways, the server detects that it is= a >> > > > =E2=80=9Chuman=E2=80=9D >> > > > > > requesting the resource, then we could serve an HTML page with= a >> > > > > Javascript >> > > > > > that uses the mirror list. This Javascript could do some >> > > > > > checking and choose the best mirror for that specific. >> > > > > > >> > > > > > Why do I think this approach is interesting? >> > > > > > The application you developed would be used only to retrieve >> > > > > > valid >> > > and >> > > > > > trusted sources of system VM images (a trusted repository for >> > > > > > mirrors >> > > > > that >> > > > > > we as a community vouch for). Also, we shift the decision >> > > > > > process regarding mirrors from the server to the client. Then, >> > > > > > it is up to >> > > > > clients >> > > > > > to select mirrors, and not up to us (or some of our >> > implementations). >> > > > > > >> > > > > > Did this help? >> > > > > > BTW: I am not saying I am against the way you proposed, which >> > > > > > would >> > > > work >> > > > > > fine. It is merely a suggestion using a different perspective. >> > > > > > >> > > > > > On Fri, Mar 3, 2017 at 10:23 AM, Will Stevens < >> > > > williamstevens@gmail.com> >> > > > > > wrote: >> > > > > > >> > > > > > > @rafael: in general, I don't think the client should ever be >> > > making a >> > > > > > > choice about a mirror. We have to assume we are working with= a >> > > > scripted >> > > > > > > application and anything hard coded in that implementation o= n >> > > > > > > the >> > > > > client >> > > > > > > side is a risk. >> > > > > > > >> > > > > > > I may not be understanding the use of the 300 approach, so I >> > > > > > > will >> > > > > > research >> > > > > > > it to see if I can make it fit. >> > > > > > > >> > > > > > > On Mar 3, 2017 9:59 AM, "Rafael Weing=C3=A4rtner" < >> > > > > > rafaelweingartner@gmail.com> >> > > > > > > wrote: >> > > > > > > >> > > > > > > Will great job. >> > > > > > > >> > > > > > > I had the same doubt as Daan. >> > > > > > > >> > > > > > > Have you considered using HTTP 300 working mode? Then, we >> > > > > > > could let >> > > > the >> > > > > > > client decide which mirror is the best(closest?). Section >> > =E2=80=9C10.3.1=E2=80=9D >> > > of >> > > > > [1] >> > > > > > > talks about it; this would put the pressure on deciding upon= a >> > > mirror >> > > > > on >> > > > > > > the client side, but I think it would be fair. >> > > > > > > >> > > > > > > [1] https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html >> > > > > > > >> > > > > > > PS: You really like very short variables names! >> > > > > > > >> > > > > > > On Fri, Mar 3, 2017 at 1:24 AM, Daan Hoogland < >> > > > > > daan.hoogland@shapeblue.com >> > > > > > > > >> > > > > > > wrote: >> > > > > > > >> > > > > > > > Nice little thing Will, >> > > > > > > > >> > > > > > > > One question: if I read the code correctly it =E2=80=98go= =E2=80=99es and >> > > > > > > > tries >> > > all >> > > > > > > mirrors >> > > > > > > > at once and whichever responses first is redirected to the >> > > client. >> > > > > This >> > > > > > > > might well be the same every time. This might be the one >> > > > > > > > closest >> > > to >> > > > > the >> > > > > > > > mirror302 and not to the client. Is that correct or did I >> > > > > > > > miss a >> > > > > > weighing >> > > > > > > > algorithm hidden in there? >> > > > > > > > >> > > > > > > > Good coding, >> > > > > > > > >> > > > > > > > On 03/03/17 00:23, "Will Stevens" wrote= : >> > > > > > > > >> > > > > > > > Hey All, >> > > > > > > > Please review this repo and tell me what you think: >> > > > > > > > https://github.com/swill/mirror302 >> > > > > > > > >> > > > > > > > Let me know if you have questions or you would like me >> > > > > > > > to >> > > make >> > > > > > > changes >> > > > > > > > before I bring this topic up with ASF Infra and open a >> > > > > > > > ticket >> > > > to >> > > > > > get >> > > > > > > > this >> > > > > > > > implemented. >> > > > > > > > >> > > > > > > > Cheers, >> > > > > > > > >> > > > > > > > *Will Stevens* >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > On Wed, Mar 1, 2017 at 11:37 AM, Will Stevens < >> > > > > > wstevens@cloudops.com >> > > > > > > > >> > > > > > > > wrote: >> > > > > > > > >> > > > > > > > > I am building a short term solution right now. I >> > > > > > > > hopefully >> > > > > will >> > > > > > > > have the >> > > > > > > > > building blocks in place by the weekend so we can >> > > > > > > > start >> > > > working >> > > > > > > with >> > > > > > > > Infra >> > > > > > > > > to get it in place. >> > > > > > > > > >> > > > > > > > > We will have a web server which we can point somethi= ng >> > like >> > > > > > > > > downloads.cloudstack.org (or whatever url) at. Then >> > > > > > > > we >> > > will >> > > > > > have >> > > > > > > > an ASF >> > > > > > > > > repo which tracks a mirror list and exposes a static >> > > > > > > > site >> > > to >> > > > be >> > > > > > > able >> > > > > > > > to >> > > > > > > > > query the mirror list. >> > > > > > > > > >> > > > > > > > > The web server will receive a request and will do a >> > > > > > > > 302 >> > > > > redirect >> > > > > > to >> > > > > > > > the >> > > > > > > > > appropriate resource on one of the mirrors. >> > > > > > > > > >> > > > > > > > > This gets us started. Legacy environments will have >> > > > > > > > to do >> > > a >> > > > DB >> > > > > > > > change to >> > > > > > > > > change from 'download.cloud.com' to ' >> > > > downloads.cloudstack.org' >> > > > > > (or >> > > > > > > > > whatever), but otherwise it should be pretty simple. >> > > > > > > > > >> > > > > > > > > We can improve how we deliver templates going forwar= d, >> > > > > > > > but >> > > > this >> > > > > > > > obviously >> > > > > > > > > requires some discussion still. I will try to buy u= s >> > > > > > > > some >> > > > time >> > > > > > > with >> > > > > > > > an >> > > > > > > > > implementation which solves our problems today... >> > > > > > > > > >> > > > > > > > > *Will STEVENS* >> > > > > > > > > Lead Developer >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > On Wed, Mar 1, 2017 at 7:52 AM, Abhinandan Prateek < >> > > > > > > > > abhinandan.prateek@shapeblue.com> wrote: >> > > > > > > > > >> > > > > > > > >> >> > > > > > > > >> Initial seeding is a manual step and that is not >> > > > > > > > going to >> > > > > change >> > > > > > > in >> > > > > > > > near >> > > > > > > > >> future. A handy list of official places from where >> > > > > > > > these >> > > > > > templates >> > > > > > > > can be >> > > > > > > > >> downloaded won=E2=80=99t harm this part of the inst= allation. >> > > > > > > > Just >> > > > > allow >> > > > > > > > anyone >> > > > > > > > >> credible who follows democratic process to publish >> > > > > > > > their >> > > > > > templates >> > > > > > > > with >> > > > > > > > >> apache=E2=80=99s blessings. >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> Coming to urls hard coded in db, the popular >> > > > > > > > suggestion is >> > > > to >> > > > > > > point >> > > > > > > > them >> > > > > > > > >> to mirrors. This looks good but this is going to ta= ke >> > > > > > > > some >> > > > > > effort >> > > > > > > > that has >> > > > > > > > >> not materialised yet. Once this change is made it >> > > > > > > > will be >> > > > > going >> > > > > > in >> > > > > > > > some >> > > > > > > > >> future release like 4.11; the problem still remains >> > > > > > > > for >> > > the >> > > > > > > > releases that >> > > > > > > > >> are already out there. In case access to >> > > download.cloud.com >> > > > > is >> > > > > > > > dropped >> > > > > > > > >> at some point we will have to document the procedur= e >> > > > > > > > such >> > > > that >> > > > > > > > people know >> > > > > > > > >> how to make these stable releases work. That is whe= re >> > > > > > > > the >> > > > > > > procedure >> > > > > > > > >> documented here https://shankerbalan.net/blog/ >> > > > > > > > >> seed-cloudstack-templates-offline/ should be >> > > > > > > > officially >> > > > > adapted >> > > > > > > > with a >> > > > > > > > >> marketplace to pick up templates of choosing. Maybe >> > > > > > > > we can >> > > > > have >> > > > > > a >> > > > > > > > pre-setup >> > > > > > > > >> script to make choices instead of written wiki. Not= e >> > > > > > > > that >> > > > this >> > > > > > > will >> > > > > > > > be >> > > > > > > > >> anyway needed by the older releases. >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> On 01/03/17, 4:24 PM, "Paul Angus" < >> > > > paul.angus@shapeblue.com> >> > > > > > > > wrote: >> > > > > > > > >> >> > > > > > > > >> >-1 >> > > > > > > > >> > >> > > > > > > > >> >We are trying to get MORE people to use CloudStack= . >> > > > > > > > And >> > > > > > raising >> > > > > > > > the >> > > > > > > > >> barrier to entry does nothing to help that. >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> >Kind regards, >> > > > > > > > >> > >> > > > > > > > >> >Paul Angus >> > > > > > > > >> > >> > > > > > > > >> >paul.angus@shapeblue.com >> > > > > > > > >> >www.shapeblue.com >> > > > > > > > >> >53 Chandos Place, Covent Garden, London WC2N 4HSU= K >> > > > > > > > >> >@shapeblue >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> >-----Original Message----- >> > > > > > > > >> >From: Abhinandan Prateek [mailto:abhinandan.pratee= k@ >> > > > > > > shapeblue.com] >> > > > > > > > >> >Sent: 01 March 2017 09:39 >> > > > > > > > >> >To: dev@cloudstack.apache.org >> > > > > > > > >> >Subject: Re: Modern template hosting >> > > > > > > > >> > >> > > > > > > > >> >+1 >> > > > > > > > >> > >> > > > > > > > >> >After seeing this discussion running in circles >> > > > > > > > several >> > > > > times, >> > > > > > I >> > > > > > > > think >> > > > > > > > >> we should at least get started with the simplest >> option. >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> >On 27/02/17, 11:54 PM, "Chiradeep Vittal" < >> > > > > > chiradeepv@gmail.com> >> > > > > > > > wrote: >> > > > > > > > >> > >> > > > > > > > >> >>The alternative foolproof way is to simply not >> > > > > > > > provide >> > > the >> > > > > > > > automatic >> > > > > > > > >> >>download. >> > > > > > > > >> >> >> > > > > > > > >> >>Just document the mirror list URL where the >> > > > > > > > templates >> > > can >> > > > be >> > > > > > > > found. I >> > > > > > > > >> >>don't know why people reject this option. >> > > > > > > > >> >> >> > > > > > > > >> >>https://shankerbalan.net/blog/seed-cloudstack- >> > > > > > > templates-offline/ >> > > > > > > > >> >> >> > > > > > > > >> >>On Mon, Feb 27, 2017 at 10:15 AM, Will Stevens >> > > > > > > > >> >> >> > > > > > > > >> >>wrote: >> > > > > > > > >> >> >> > > > > > > > >> >>> OK. Thanks for the heads up. >> > > > > > > > >> >>> >> > > > > > > > >> >>> On Feb 27, 2017 1:08 PM, "Chiradeep Vittal" < >> > > > > > > > chiradeepv@gmail.com> >> > > > > > > > >> wrote: >> > > > > > > > >> >>> >> > > > > > > > >> >>> > Sounds workable. The downloader code in the >> > > > > > > > SSVM >> > > won't >> > > > > > > follow >> > > > > > > > >> >>> > redirects I think. >> > > > > > > > >> >>> > https://github.com/apache/cloudstack/blob/ >> > > > > > > 5511065fc20787619d >> > > > > > > > 9cd0444 >> > > > > > > > >> >>> > a65a3 155fc9c921/core/src/com/cloud/ >> > > storage/template/ >> > > > > > > > >> >>> > HttpTemplateDownloader.java#L93 >> > > > > > > > >> >>> > https://goo.gl/dSi0r5 >> > > > > > > > >> >>> > Might need to add >> > > > > > > > >> >>> > client.setRedirectStrategy(new >> > > LaxRedirectStrategy()); >> > > > > > > > >> >>> > >> > > > > > > > >> >>> > On Mon, Feb 27, 2017 at 9:57 AM, Will Stevens >> > > > > > > > >> >>> > >> > > > > > > > >> >>> > wrote: >> > > > > > > > >> >>> > >> > > > > > > > >> >>> > > We haven't opened a ticket yet because we >> > > > > > > > don't >> > > > have a >> > > > > > > > strategy >> > > > > > > > >> yet. >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > What do you guys think of this: >> > > > > > > > >> >>> > > - We setup a new github repo in the 'apache= ' >> > > > > > > > org >> > > > which >> > > > > > > > consists >> > > > > > > > >> >>> > > of a >> > > > > > > > >> >>> > single >> > > > > > > > >> >>> > > file with a list of active/supported mirror= s. >> > > > > > > > >> >>> > > - I write a small web server, distributed a= s >> > > > > > > > a >> > > > binary, >> > > > > > > > which can >> > > > > > > > >> >>> > > be >> > > > > > > > >> >>> > hosted >> > > > > > > > >> >>> > > by ASF Infra. This web server will query t= he >> > > > current >> > > > > > list >> > > > > > > > of >> > > > > > > > >> >>> > > mirrors >> > > > > > > > >> >>> and >> > > > > > > > >> >>> > > will select one and then do a 302 redirect = to >> > > > > > > > that >> > > > > > mirror. >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > The act of 'choosing' a mirror could be don= e >> > > > > > > > in a >> > > > > number >> > > > > > > of >> > > > > > > > ways. >> > > > > > > > >> >>> > > - If we want to define an order, then it >> > > > > > > > could >> > > just >> > > > > try >> > > > > > > > from the >> > > > > > > > >> >>> > > top of >> > > > > > > > >> >>> > the >> > > > > > > > >> >>> > > list and work its way down. It would curl >> > > > > > > > the >> > > > target >> > > > > to >> > > > > > > > make >> > > > > > > > >> >>> > > sure it >> > > > > > > > >> >>> > gets >> > > > > > > > >> >>> > > a 200 and if it does, it would do a 302 >> > redirect. >> > > > > > > > >> >>> > > - Or, if we want to distribute the load >> > > > > > > > across the >> > > > > > > mirrors, >> > > > > > > > we >> > > > > > > > >> >>> > > could >> > > > > > > > >> >>> pick >> > > > > > > > >> >>> > > from the list randomly. Again, doing a cur= l >> > > > > > > > to >> > > > verify >> > > > > > the >> > > > > > > > mirror >> > > > > > > > >> >>> > > is up >> > > > > > > > >> >>> > and >> > > > > > > > >> >>> > > then doing a redirect. >> > > > > > > > >> >>> > > - If we want to get fancy, we could do a >> > > > > > > > reverse >> > > IP >> > > > > > lookup >> > > > > > > > and >> > > > > > > > >> >>> > > try to >> > > > > > > > >> >>> > match >> > > > > > > > >> >>> > > the requester with their closest geographic= al >> > > > mirror. >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > Thoughts? >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > *Will STEVENS* >> > > > > > > > >> >>> > > Lead Developer >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > On Mon, Feb 27, 2017 at 12:46 PM, Chiradeep >> > > Vittal < >> > > > > > > > >> >>> chiradeepv@gmail.com >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > wrote: >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > > What steps are needed to set up a mirror? >> > > > > > > > What >> > > > does >> > > > > > > Infra >> > > > > > > > need >> > > > > > > > >> to do? >> > > > > > > > >> >>> > Has >> > > > > > > > >> >>> > > > anybody filed a ticket with Infra? >> > > > > > > > >> >>> > > > >> > > > > > > > >> >>> > > > On Sun, Feb 26, 2017 at 10:17 PM, Raja >> > Pullela < >> > > > > > > > >> >>> > > > raja.pullela@accelerite.com> >> > > > > > > > >> >>> > > > wrote: >> > > > > > > > >> >>> > > > >> > > > > > > > >> >>> > > > > Hi will, >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > I believe, we didn=E2=80=99t get to clo= se >> > > > > > > > =E2=80=98getting a >> > > > > mirror >> > > > > > on >> > > > > > > > Apache=E2=80=99 >> > > > > > > > >> >>> > because >> > > > > > > > >> >>> > > we >> > > > > > > > >> >>> > > > > needed someone on the Apache Infra side >> > > > > > > > to >> > > close >> > > > > > this. >> > > > > > > > BTW, >> > > > > > > > >> >>> > > > > cloudstack-apt.get.eu (I think Nux >> > > > > > > > manages >> > > > this?) >> > > > > > has >> > > > > > > > >> >>> > > > > all/most of >> > > > > > > > >> >>> > the >> > > > > > > > >> >>> > > > > content. Once we can close on the Apac= he >> > > mirror >> > > > > for >> > > > > > > > hosting >> > > > > > > > >> >>> > > > > the >> > > > > > > > >> >>> > > > content, I >> > > > > > > > >> >>> > > > > can help assist getting the content the= re. >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > For now, we have replicated the >> > > > > download.cloud.com >> > > > > > > > content to >> > > > > > > > >> >>> > > > > =E2=80=98 s3.download.accelerite.com=E2= =80=99. >> > > > > > > > >> >>> > > > > Also, we are working on a set of >> > > steps/procedure >> > > > > to >> > > > > > > > help with >> > > > > > > > >> >>> > > > > this change. I will update everyone in >> > > > > > > > about >> > > a >> > > > > > week=E2=80=99s >> > > > > > > > time >> > > > > > > > >> >>> > > > > on the >> > > > > > > > >> >>> > details. >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > Best, >> > > > > > > > >> >>> > > > > Raja Pullela >> > > > > > > > >> >>> > > > > Engineering Team, >> > > > > > > > >> >>> > > > > Accelerite, 2055 Laurelwood Road, Santa >> > > > > > > > Clara, >> > > > CA, >> > > > > > > 95054 >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > On 2/24/17, 11:23 PM, " >> > > williamstevens@gmail.com >> > > > > on >> > > > > > > > behalf of >> > > > > > > > >> >>> > > > > Will Stevens" > > > > > > > > on >> > > > behalf >> > > > > > of >> > > > > > > > >> >>> > wstevens@cloudops.com> >> > > > > > > > >> >>> > > > > wrote: >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > unfortunately the template mirror >> > > > > > > > conversation >> > > > got >> > > > > > > > caught up >> > > > > > > > >> >>> > > > > in >> > > > > > > > >> >>> > details >> > > > > > > > >> >>> > > > and >> > > > > > > > >> >>> > > > > nobody took the lead on implementing a >> > > solution. >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > citrix has been pinging me every couple >> > > > > > > > months >> > > > to >> > > > > > say >> > > > > > > > 'dude, >> > > > > > > > >> >>> > > > > we >> > > > > > > > >> >>> need >> > > > > > > > >> >>> > to >> > > > > > > > >> >>> > > > > remove the dependency on >> > > > > > > > download.citrix.com >> > > ', >> > > > > but >> > > > > > i >> > > > > > > > have not >> > > > > > > > >> >>> > > > > had >> > > > > > > > >> >>> > the >> > > > > > > > >> >>> > > > > cycles to get in and solve the problem. >> > > > > > > > the >> > > > > > shutdown >> > > > > > > > of that >> > > > > > > > >> >>> > > > > is >> > > > > > > > >> >>> > > imminent >> > > > > > > > >> >>> > > > > right now, so we need to solve it asap. >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > *Will STEVENS* >> > > > > > > > >> >>> > > > > Lead Developer >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > On Fri, Feb 24, 2017 at 12:38 PM, Paul >> > Angus < >> > > > > > > > >> >>> > paul.angus@shapeblue.com >> > > > > > > > >> >>> > > > >> > > > > > > > >> >>> > > > > wrote: >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > > Hi Nathan, >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > Ideally, if you put the template >> > > > > > > > location in >> > > > (or >> > > > > > use >> > > > > > > a >> > > > > > > > >> >>> > > > > > template >> > > > > > > > >> >>> > > defined >> > > > > > > > >> >>> > > > > > in) test_data.py then the actual >> > > > > > > > location >> > > can >> > > > > be >> > > > > > > > >> >>> > > > > > overridden by >> > > > > > > > >> >>> > > anyone >> > > > > > > > >> >>> > > > > > testing. >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > For Trillian, we've copied all of the >> > > > templates >> > > > > > that >> > > > > > > > people >> > > > > > > > >> >>> > > > > > have >> > > > > > > > >> >>> > > define >> > > > > > > > >> >>> > > > > to >> > > > > > > > >> >>> > > > > > a local repo and then replace the URL= s >> > > > > > > > in test_data.py to >> > > > > > > > >> >>> > > > > > reduce >> > > > > > > > >> >>> > > > > bandwidth >> > > > > > > > >> >>> > > > > > use and download times. >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > Ie: >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > "bootableIso": >> > > > > > > > >> >>> > > > > > { >> > > > > > > > >> >>> > > > > > "displaytext": "T= est >> > > > > Bootable >> > > > > > > > ISO", >> > > > > > > > >> >>> > > > > > "name": "testISO"= , >> > > > > > > > >> >>> > > > > > "bootable": True, >> > > > > > > > >> >>> > > > > > "ispublic": False= , >> > > > > > > > >> >>> > > > > > "url": "{{ >> > > > > > > marvin_images_location >> > > > > > > > >> >>> > > > > > }}/TinyCore-current.iso", >> > > > > > > > >> >>> > > > > > "ostype": 'Other >> Linux >> > > > > > > (64-bit)', >> > > > > > > > >> >>> > > > > > "mode": >> > 'HTTP_DOWNLOAD' >> > > > > > > > >> >>> > > > > > }, >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > I thought that we had come up with a >> > > solution >> > > > > for >> > > > > > > > >> >>> > download.cloud.com >> > > > > > > > >> >>> > > , >> > > > > > > > >> >>> > > > by >> > > > > > > > >> >>> > > > > > having a mirrorlist hosted in Communi= ty >> > > Apache >> > > > > > > > 'space' with >> > > > > > > > >> >>> anyone >> > > > > > > > >> >>> > > able >> > > > > > > > >> >>> > > > > to >> > > > > > > > >> >>> > > > > > out themselves forward as a mirror. >> > > > > > > > >> >>> > > > > > But I must admit I lost track of >> > > > > > > > whether >> > > > anyone >> > > > > > made >> > > > > > > > the >> > > > > > > > >> >>> requisite >> > > > > > > > >> >>> > > > > changes >> > > > > > > > >> >>> > > > > > in code.... >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > Kind regards, >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > Paul Angus >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > paul.angus@shapeblue.com >> > > > > > > > >> >>> > > > > > www.shapeblue.com >> > > > > > > > >> >>> > > > > > 53 Chandos Place, Covent Garden, Lond= on >> > > WC2N >> > > > > > 4HSUK >> > > > > > > > >> >>> > > > > > @shapeblue >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > -----Original Message----- >> > > > > > > > >> >>> > > > > > From: williamstevens@gmail.com >> > > > > > > > >> >>> > > > > > [mailto:williamstevens@gmail.com] >> > > > > > > > >> >>> > On >> > > > > > > > >> >>> > > > > > Behalf Of Will Stevens >> > > > > > > > >> >>> > > > > > Sent: 24 February 2017 16:30 >> > > > > > > > >> >>> > > > > > To: dev@cloudstack.apache.org >> > > > > > > > >> >>> > > > > > Subject: Re: Modern template hosting >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > this is a hard questions. in general= , >> > > > > > > > we >> > > > should >> > > > > > be >> > > > > > > > setting >> > > > > > > > >> >>> > > > > > up a >> > > > > > > > >> >>> > > mirror >> > > > > > > > >> >>> > > > > on >> > > > > > > > >> >>> > > > > > some cloudstack/apache domain and the= n >> > > mirror >> > > > to >> > > > > > > other >> > > > > > > > >> >>> > > > > > provided >> > > > > > > > >> >>> > > > > templates. >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > we MUST come up with a solution to >> > deprecate >> > > > > > > > >> >>> > > > > > 'download.cloud.com >> > > > > > > > >> >>> ', >> > > > > > > > >> >>> > > > that >> > > > > > > > >> >>> > > > > > is going to be going away any day now= . >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > i don't know the right way to solve >> > > > > > > > this to >> > > be >> > > > > > > > honest, but >> > > > > > > > >> >>> > > > > > if you >> > > > > > > > >> >>> > > have >> > > > > > > > >> >>> > > > > > ideas, i am willing to help. >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > *Will STEVENS* >> > > > > > > > >> >>> > > > > > Lead Developer >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > On Fri, Feb 24, 2017 at 11:25 AM, >> > > > > > > > Nathan >> > > > > Johnson < >> > > > > > > > >> >>> njohnson@ena.com >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > > > > wrote: >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > > > So not to re-open a can of worms, b= ut >> > > > > > > > I=E2=80=99m >> > > > in a >> > > > > > > > situation >> > > > > > > > >> >>> > > > > > > where >> > > > > > > > >> >>> I >> > > > > > > > >> >>> > > need >> > > > > > > > >> >>> > > > > > > to come up with a Marvin component >> > > > > > > > test >> > > that >> > > > > > > > depends on a >> > > > > > > > >> >>> > template >> > > > > > > > >> >>> > > > > > > based on a kernel that=E2=80=99s re= latively >> > > > > > > > new, >> > > > i.e., >> > > > > > > > newer than >> > > > > > > > >> >>> Centos >> > > > > > > > >> >>> > > 5.3 >> > > > > > > > >> >>> > > > / >> > > > > > > > >> >>> > > > > > Ubuntu 10.04 . >> > > > > > > > >> >>> > > > > > > I see openvm.eu has a suitable >> > > > > > > > template >> > > > > (Ubuntu >> > > > > > > > 16.0.4 >> > > > > > > > >> >>> > > > > > > for >> > > > > > > > >> >>> KVM), >> > > > > > > > >> >>> > > but >> > > > > > > > >> >>> > > > > > > from looking at the thread "Migrati= ng >> > > > > CloudStack >> > > > > > > > content >> > > > > > > > >> >>> > > > > > > from download.cloud.com=E2=80=9D it= looks >> > > > > > > > like >> > > > there >> > > > > is >> > > > > > > > >> >>> > > > > > > resistance to using >> > > > > > > > >> >>> > > this >> > > > > > > > >> >>> > > > at >> > > > > > > > >> >>> > > > > > > least for hosting system vm templat= es >> > > > > > > > over >> > > > > > > concerns >> > > > > > > > of >> > > > > > > > >> >>> > neutrality. >> > > > > > > > >> >>> > > > > > > Would this be suitable for a >> > > > > > > > component >> > > test? >> > > > > If >> > > > > > > > not, >> > > > > > > > >> >>> > > > > > > what is a >> > > > > > > > >> >>> > > > > =E2=80=9Cblessed=E2=80=9D >> > > > > > > > >> >>> > > > > > > template location? >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > Thanks in advance! >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > Nathan Johnson >> > > > > > > > >> >>> > > > > > > R&D Engineer >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > 618 Grassmere Park Drive, Suite 12 >> > > > Nashville, >> > > > > TN >> > > > > > > > 37211 >> > > > > > > > >> >>> > > > > > > General Office: 615-312-6000 >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > website | blog | support >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > > >> > > > > > > > >> >>> > > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > > DISCLAIMER >> > > > > > > > >> >>> > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> > > > > > > > >> >>> > > > > This e-mail may contain privileged and >> > > > > confidential >> > > > > > > > >> >>> > > > > information >> > > > > > > > >> >>> which >> > > > > > > > >> >>> > > is >> > > > > > > > >> >>> > > > > the property of Accelerite, a Persisten= t >> > > Systems >> > > > > > > > business. It >> > > > > > > > >> >>> > > > > is >> > > > > > > > >> >>> > > intended >> > > > > > > > >> >>> > > > > only for the use of the individual or >> > > > > > > > entity >> > > to >> > > > > > which >> > > > > > > > it is >> > > > > > > > >> >>> > addressed. >> > > > > > > > >> >>> > > If >> > > > > > > > >> >>> > > > > you are not the intended recipient, you >> > > > > > > > are >> > > not >> > > > > > > > authorized to >> > > > > > > > >> >>> > > > > read, >> > > > > > > > >> >>> > > > retain, >> > > > > > > > >> >>> > > > > copy, print, distribute or use this >> message. >> > > If >> > > > > you >> > > > > > > have >> > > > > > > > >> >>> > > > > received >> > > > > > > > >> >>> > this >> > > > > > > > >> >>> > > > > communication in error, please notify t= he >> > > sender >> > > > > and >> > > > > > > > delete >> > > > > > > > >> >>> > > > > all >> > > > > > > > >> >>> > copies >> > > > > > > > >> >>> > > of >> > > > > > > > >> >>> > > > > this message. Accelerite, a Persistent >> > > > > > > > Systems >> > > > > > > business >> > > > > > > > does >> > > > > > > > >> >>> > > > > not >> > > > > > > > >> >>> > accept >> > > > > > > > >> >>> > > > any >> > > > > > > > >> >>> > > > > liability for virus infected mails. >> > > > > > > > >> >>> > > > > >> > > > > > > > >> >>> > > > >> > > > > > > > >> >>> > > >> > > > > > > > >> >>> > >> > > > > > > > >> >>> >> > > > > > > > >> > >> > > > > > > > >> >abhinandan.prateek@shapeblue.com >> > > > > > > > >> >www.shapeblue.com >> > > > > > > > >> >53 Chandos Place, Covent Garden, London WC2N 4HSU= K >> > > > > @shapeblue >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> > >> > > > > > > > >> >> > > > > > > > >> abhinandan.prateek@shapeblue.com >> > > > > > > > >> www.shapeblue.com >> > > > > > > > >> 53 Chandos Place, Covent Garden, London WC2N 4HSUK >> > > > > > > > >> @shapeblue >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > daan.hoogland@shapeblue.com >> > > > > > > > www.shapeblue.com >> > > > > > > > 53 Chandos Place, Covent Garden, London WC2N 4HSUK >> > > > > > > > @shapeblue >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > -- >> > > > > > > Rafael Weing=C3=A4rtner >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > Rafael Weing=C3=A4rtner >> > > > > > >> > > > > >> > > > >> > > >> > >>