Return-Path: X-Original-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 73F79D2F5 for ; Sat, 22 Dec 2012 19:09:13 +0000 (UTC) Received: (qmail 83992 invoked by uid 500); 22 Dec 2012 19:09:12 -0000 Delivered-To: apmail-incubator-cloudstack-dev-archive@incubator.apache.org Received: (qmail 83955 invoked by uid 500); 22 Dec 2012 19:09:12 -0000 Mailing-List: contact cloudstack-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-dev@incubator.apache.org Received: (qmail 83947 invoked by uid 99); 22 Dec 2012 19:09:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 22 Dec 2012 19:09:12 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jburwell@basho.com designates 209.85.214.171 as permitted sender) Received: from [209.85.214.171] (HELO mail-ob0-f171.google.com) (209.85.214.171) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 22 Dec 2012 19:09:07 +0000 Received: by mail-ob0-f171.google.com with SMTP id dn14so5671800obc.30 for ; Sat, 22 Dec 2012 11:08:46 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=references:from:mime-version:in-reply-to:date:message-id:subject:to :content-type:content-transfer-encoding:x-gm-message-state; bh=kG32Ic72CwL7TKwpt8cU5c5bPD7UaXYphrSY3jOz8Vk=; b=p4WuHw5M2dzieXHMUT3rsvUG2tDBlSKmKm3QkXtgaEFCsc83C3J4nnMvL5NRaxaO3l QKbpFkg0WzAdgYbRnartw71FDxVbVqWUh/OmtL3IDnSQtXTu6ONEjR9Gc/6bF3mJ0tfR d0P/kGWKNpc5IGUCFLfBBv6zterBjwdV9SyexYF77tnXYVDMorhL/3DWMpwftTbPuCed VtQ0MhaLePP9tQHHRQ1R5vIrM4RiJXNvVu1uDUA5YwIezPqgApXec+07iaJGblsyz0I6 9MG3qgO8GwmCNWzzLyktVTDr5SBD1craMJy3Kr+bbGbUDAyVKKwTpmxOOnImJtcUOWeM vj2w== Received: by 10.60.13.134 with SMTP id h6mr2313026oec.64.1356203326677; Sat, 22 Dec 2012 11:08:46 -0800 (PST) References: <0BCCCE152323764BB7FD6AE6D7A1D9060102894ECFFE@BANPMAILBOX01.citrite.net> From: John Burwell Mime-Version: 1.0 (1.0) In-Reply-To: Date: Sat, 22 Dec 2012 14:08:33 -0500 Message-ID: <-4397755056359766803@unknownmsgid> Subject: Re: Merge request: Merging api_refactoring on master To: "cloudstack-dev@incubator.apache.org" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQmZQS9uT0H2P1JzefVNeDb1sGlQDar7rDyKZSKa2pqkhY/rkMj9jqGhNEoNgIgMMVxbPry7 X-Virus-Checked: Checked by ClamAV on apache.org David, +1 to your concerns regarding timing and scope. I also wonder what impact this will have to Marvin, and that those impacts have been thought tested. We are entering a period where we are focused on testing features leading up the 31Jan 2013 deadline. I am concern that Marvin will be unstable leading up the 4.1.0 deadline -- delaying feature testing. Thanks, -John On Dec 22, 2012, at 10:44 AM, David Nalley wrote: > On Sat, Dec 22, 2012 at 4:38 AM, Rohit Yadav wro= te: >> Hi everyone, >> >> I'm planning to merge api_refactoring branch on to master after 72 hour = period which would be Monday EOD. Pl. go through the email, and previous th= reads on api refactoring rework and feel free to share your ideas, comments= and vote to agree, disagree. If no one objects I would like to ask the git= Santa to merge it on Christmas 25 Dec :D (after 72 hour window) >> >> The reason why I want to merge around the next week is because I think w= e would have lower frequencies of emails, review requests and people contri= buting, hence I can move around a lot of code (mostly package renames to or= g.apache.cloudstack in cloud-api) and right now the merge conflicts are rea= lly minimum, about 100-200 lines. (A top level issues to track sub-issues: = https://issues.apache.org/jira/browse/CLOUDSTACK-638) > > > > So yes - 72 hours is the minimum. However springing this on folks when > a good portion of the world has begun celebrating a holiday and is > hopefully ignoring mailing lists is incredibly bad form. This should > at least wait until the first week of January IMO due to the magnitude > of the change. This is incredibly invasive, and based on your comments > below, still a work in progress. > > > >> What will be affected: >> 0. Any class in cloud-api and on api-layer only >> 1. Any class that imports from/to cloud-api's response and cmd classes >> >> Some of the major changes that will be merged on master; >> 0. Over the wire (OTW) HTTP request to API server would send only UUID s= trings. All requests done via UUIDs (and not CloudStack's internal db's IDs= ). >> 1. https://issues.apache.org/jira/browse/CLOUDSTACK-518 Fix @Parameter a= nnotation to have annotation field to a Response class which would give us = entities (interface to VO objects). This would get rid of all IdentityMappe= r using which was used earlier to get VO entities from an annotated table n= ame. This helps us to translate OTW UUIDs to CloudStack's DB's internal IDs= . >> 2. Separation of ACL Role access checker as an adapter, so organizations= can implement their own role based access checking. The mechanism would ex= ist in CloudStack's API server but policy checking is moved out of CloudSta= ck. (https://issues.apache.org/jira/browse/CLOUDSTACK-639) This works, but = was tough to get it right the first time, there is better way which I'll sh= are before the merge. >> 3. Group APIs to org.apache.cloudstack.api.{command,response}.{entity1,e= ntity2 etc.} packages. This is mainly done for developers, so when they wor= k on API layer they would know which api has what level of security and as = they are grouped based on entity type, it will be easier to search. This wa= s mostly file movement to org.apache.cloudstack.api package and helped us t= rack couple of classes which are no longer needed. Another aim was to move = from com.cloud to org.apache.cloudstack (only cloud-api for now). >> 4. Annotation work as described in 1., also for @ACL etc. >> 5. DB, ACL validation wip code >> 6. A lot of list api optimizations and response view work from our newes= t commiter, Min Chen. The aim is to simply response, right now for. example= when we listVMs we don't want unnecessary (serialized) response objects wh= ich could be queried using uuids separately. >> >> Pl. ask away any doubts, questions and concerns you may have. It was cha= llenging for me as well to understand the functional spec, to know the why/= what/how, and if you read the old threads you can tell I did not get it the= first time. >> >> A lot of annotation work is aimed to be completed over this weekend, so = when the branch is finally merged it won't break any functionality. At pres= ent the branch is quite stable > > > >> Testing and how or why do it? >> 0. Prasanna, Meghna? can help us write few basic sets of unit tests and = marvin integration tests for OTW requests. We already have few of their pat= ches on rb. > > You are proposing to merge changes to master for the primary way of > interacting with CloudStack and have not rests written? > >> 1. We can also have drivers to automate tests (Prasanna can talk more on= this and on his devcloud based continuous intergration server) >> 2. If I do it now, there would be a lot more eyes to point out bugs and = I want more people to participate in the refactoring work. > > Is this really: 'I can break it now and make more people help me clean it= up?' > >> 3. Right now, it builds and runs fine with minimal breaks and no functio= nality breakage as most of the changes are only restricted to api-server (:= cloud-api artifact). I'm able to deploy a zone etc. To make the UUID thing = work, I've put in hardcoded (for. ex. projectId=3D-1 which should be a stri= ng uuid not a long int value -1) stuff that saves the UI from being broken = which I'll remove after merging on master so UI engineers can help fix UI i= ssues. > > API compatibility between versions is a gigantic concern for me (and > hopefully anyone else using or working on ACS). I have asked > previously about what the plans were around testing this [1] and > received no answer, and judging from the above, it appears there > aren't even tests written yet. IMO that is a blocker. I am also > disappointed that despite touching tons of code in this refactoring > effort, virtually zero unit tests were added. However the concern > around API compatibility and lack of testing to show that it isn't > broken are going to lead me to cast a -1 (binding veto). I am not > inherently opposed to this work, but I am opposed to merging it in > untested and without tests itself. We've previously discussed that > test are a part of a feature being considered complete and ready for > merge. > > > [1] http://mail-archives.apache.org/mod_mbox/incubator-cloudstack-dev/201= 212.mbox/%3CCAKprHVbdcm1Ot2v%3DH8zCHmHhgX5iS3OyoVgH8Vh7XOmXhmBX5w%40mail.gm= ail.com%3E