)]}'
{"specs/proposed/vendor_result_validation.rst":[{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"448620d2764005a2a3188ae140a499b0f45e7148","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"https://blueprints.launchpad.net/nova/+spec/vendor-result-validation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec describes functional criteria for the association"},{"line_number":10,"context_line":"of authenticated RefStack users with vendors and product"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_c392ac57","line":7,"updated":"2015-09-28 17:51:38.000000000","message":"https://blueprints.launchpad.net/refstack/+spec/vendor-result-validation  ??","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":6754,"name":"Mark T. Voelker","email":"markvoelker@gmail.com","username":"mvoelker"},"change_message_id":"7926ace9730c93e6c3193ef7a9048cc5cd47c013","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"https://blueprints.launchpad.net/nova/+spec/vendor-result-validation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec describes functional criteria for the association"},{"line_number":10,"context_line":"of authenticated RefStack users with vendors and product"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_7bf2fc70","line":7,"in_reply_to":"9a1a9d01_c392ac57","updated":"2015-09-28 20:48:36.000000000","message":"Oops, you\u0027re right.  Must\u0027ve been a copy/paste error.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"448620d2764005a2a3188ae140a499b0f45e7148","unresolved":false,"context_lines":[{"line_number":60,"context_line":"3. Amy and Beth work for AllTheStacks Corporation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"4. An individual test result can be associated with either of"},{"line_number":63,"context_line":"   the three AllTheStacks Products."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The criteria above are a \"minimum viable product\" approach to"},{"line_number":66,"context_line":"associating products, people, vendors, and test results.  Basic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_a72f24f5","line":63,"updated":"2015-09-28 17:51:38.000000000","message":"Agreed with item 1,3 and 4.\n\nI am still debating whether company products are vital information that RefStack should manage.  Company product names are dynamic and can change overtime.   To RefStack, owners of the test data can use the meta data mechanism in RefStack to define and associate the data to their product names..","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"20fc8cefa55745610a4a41b67763dc130ec3c53a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"3. Amy and Beth work for AllTheStacks Corporation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"4. An individual test result can be associated with either of"},{"line_number":63,"context_line":"   the three AllTheStacks Products."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The criteria above are a \"minimum viable product\" approach to"},{"line_number":66,"context_line":"associating products, people, vendors, and test results.  Basic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_2d68b7b8","line":63,"in_reply_to":"9a1a9d01_808c4136","updated":"2015-09-29 10:26:51.000000000","message":"From my point of view RefStack can handle products as some kind of company meta data. So, lets stick to the idea that we just need handle company info with some metadata.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":8434,"name":"Rochelle Grober","email":"rochelle.grober@huawei.com","username":"rockyg"},"change_message_id":"7ec8bc721f178d25c8516b2090df6450ba0c5573","unresolved":false,"context_lines":[{"line_number":60,"context_line":"3. Amy and Beth work for AllTheStacks Corporation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"4. An individual test result can be associated with either of"},{"line_number":63,"context_line":"   the three AllTheStacks Products."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The criteria above are a \"minimum viable product\" approach to"},{"line_number":66,"context_line":"associating products, people, vendors, and test results.  Basic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_3c019538","line":63,"in_reply_to":"9a1a9d01_808c4136","updated":"2015-10-16 20:44:19.000000000","message":"Whether products are handled as metadata or some other way, we will eventually need to display separate results.  *But* this spec doesn\u0027t really have to say anything about that other than there can be multiple products.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":6754,"name":"Mark T. Voelker","email":"markvoelker@gmail.com","username":"mvoelker"},"change_message_id":"7926ace9730c93e6c3193ef7a9048cc5cd47c013","unresolved":false,"context_lines":[{"line_number":60,"context_line":"3. Amy and Beth work for AllTheStacks Corporation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"4. An individual test result can be associated with either of"},{"line_number":63,"context_line":"   the three AllTheStacks Products."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The criteria above are a \"minimum viable product\" approach to"},{"line_number":66,"context_line":"associating products, people, vendors, and test results.  Basic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_808c4136","line":63,"in_reply_to":"9a1a9d01_a72f24f5","updated":"2015-09-28 20:48:36.000000000","message":"I tend to think that they are since at the end of the day, the Foundation is issuing license agreements to individual products.  Some companies have multiple products, and sometimes not all of them meet the criteria for getting a license agreement.  If a consumer is perusing data on refstack.net and can\u0027t tell which product the data they\u0027re looking it belongs to, that\u0027s confusing for them.\n\nI completely agree that products change names over time though (MetaCloud\u0027s managed offering immediately jumps to mind here as it has had several name changes since being acquired).  As long as products are a \"first class citizen\" in refstack, that\u0027s something we can handle: a product\u0027s name can be updated (e.g. affecting the product name on all results associated with the product in question) or a new product with the new name can be created (e.g. affecting the product name on only future test results).  Which action a vendor chooses depends on the vendor\u0027s preference...some might want their existing results to be searchable under the old name, others might want old results to carry the new name.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":8434,"name":"Rochelle Grober","email":"rochelle.grober@huawei.com","username":"rockyg"},"change_message_id":"7ec8bc721f178d25c8516b2090df6450ba0c5573","unresolved":false,"context_lines":[{"line_number":85,"context_line":"   a test result with the AllTheStacks Private Cloud product since"},{"line_number":86,"context_line":"   she is not associated with it even though she works for the"},{"line_number":87,"context_line":"   company that produces it."},{"line_number":88,"context_line":" "},{"line_number":89,"context_line":"2. Similarly, Beth should be allowed to associate test results with"},{"line_number":90,"context_line":"   either the AllTheStacks Private Cloud or AllTheStacks Managed"},{"line_number":91,"context_line":"   Private Cloud products, but should be warned or perhaps prevented"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_1c7b79c2","line":88,"updated":"2015-10-16 20:44:19.000000000","message":"Nit: blank space","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"448620d2764005a2a3188ae140a499b0f45e7148","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_22c78246","line":182,"updated":"2015-09-28 17:51:38.000000000","message":"Alternative suggestion for affiliating company, user and test data \n\n*  RefStack to provide the following roles \n\n   1. general_admin.  This users associated with role are\n      responsible for general administration tasks. \n   2. company_admin.  This is the admin to manage company data\n      and tasks such as:\n       - add/remove users name to/from the company profile.\n       - management of the data that have already affiliated to a\n         company (delete, share, unshare...).\n       - manage the list of company products.\n   3. general_user. Users with this role can perform the following\n       tasks:\n       - upload test results.\n       - manage their own uploaded results.\n       - add/remove a company name to/from his or her own profile\n         at any time.\n       - share data with the community anonymously.\n       - share data with the community with company affiliation.\n       - affiliation of test data to a company can only be done with\n         the user names that exist in the company\u0027s profile.\n       - once the test data is affiliated to a company,  the general\n         user is no longer allowed to delete/share/unshare this set of\n         data.  These operations will need to be performed by the\n         company_admin user.  This is to protect the company\n         affiliated data  in the case where a user may have moved\n         onto an other company.\n\n* Company registration to RefStack should be done by the Foundation.\n  The Foundation already has a list of the validated\n  OpenStack company names, which are currently listed on its\n  Marketplace website.  Using this list will avoid the need for\n  RefStrack to validate the legitimacy of the companies. \n\n  Vendor registration can be done as describe below:\n\n   1. The Foundation will provide a  JSON file which  includes a list\n      of the company names with their associated attributes ( such\n      as company_admin user names, product names ...).  \n      RefStack will provide an API to import this JSON file.  JSON\n      import will be performed by the general_admin.\n   2. RefStack may provide a user interface to add/delete company\n      profiles.  Only general_admin user can add/delete company\n      object.  Both general_admin and company_admin are allow to\n      perform update to the company profile.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"32bb62351c74c0613c1d94ef03f1102a706ae9db","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_3f71540c","line":182,"in_reply_to":"9a1a9d01_1995ac85","updated":"2015-10-01 09:51:22.000000000","message":"Foundation can\u0027t manage all RefStack users affiliation. We definitely should provide procedure how to delegate verification of user\u0027s affiliation to some limited number of trusted users(company_admins)","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":6754,"name":"Mark T. Voelker","email":"markvoelker@gmail.com","username":"mvoelker"},"change_message_id":"7926ace9730c93e6c3193ef7a9048cc5cd47c013","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_bbee54b2","line":182,"in_reply_to":"9a1a9d01_22c78246","updated":"2015-09-28 20:48:36.000000000","message":"I considered something similar to the company_admin role you laid out here, but ultimately went a different route.  I like the idea, but there are a few tough nuts to crack.  The main problem with the company admin from my perspective is partly in determining who should get that role.  For example:\n\nToday the OpenStack Foundation does ask for a signature on a legal contract when a company wants a logo/trademark license.  But the person who signs it tends to be an executive or lawyer....e.g. not the same person who is probably actually running refstack-client and submitting results to refstack.net, and not even likely the same person who would be using refstack to administer who can do things.  I suspect the same is probably true when a company asks to be listed in the Marketplace, but I don\u0027t know for sure--that\u0027s something we could ask the Foundation.\n\nAlso, people\u0027s roles within a company tend to shift pretty quickly in my experience (and people change employers a lot too), so there\u0027s a problem of keeping the company_admin role up to date.  \n\nSolving the question of who is an employee of a company is relatively simple by comparison: most companies (in my experience) tend to be pretty good about cutting off an employee\u0027s company email when he or she leaves the company, so that\u0027s something we can use for initial verification and to periodically clean the rosters.  There are some cases where this is a bit harder (for example, people that work for Yahoo have a @yahoo-inc.com email address while almost anyone can get an @yahoo.com address), but I think corner cases like that could probably be managed.\n\nSolving the question of who can submit results for a given product and call them company-official is harder.  The company_admin role could be useful for that if we have means of figuring out who should get that role.  We could ask the Foundation to take on the responsibility of figuring that out, but I\u0027m not sure they actually have any better means than we do of establishing it and keeping it current.  Perhaps that\u0027s a question we should discuss with the Foundation directly?","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":8434,"name":"Rochelle Grober","email":"rochelle.grober@huawei.com","username":"rockyg"},"change_message_id":"5b0fbe6ca6a2c508d859098b54a4f6641742901c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_c5ffaba8","line":182,"in_reply_to":"9a1a9d01_22c78246","updated":"2015-09-28 19:48:20.000000000","message":"Need to add extra corporate roles:  \n4. read_only_corporate_user\ntasks:\n  - read only access to all corporate product data\n5. general_product_user\ntasks:\n  - same as 3 except only for single product as associated by corporate admin\n6.  read_only_corporate_user\n  - same as 4, but product specific","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":8434,"name":"Rochelle Grober","email":"rochelle.grober@huawei.com","username":"rockyg"},"change_message_id":"7ec8bc721f178d25c8516b2090df6450ba0c5573","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a2ca52d_9c3469fc","line":182,"in_reply_to":"9a1a9d01_bbee54b2","updated":"2015-10-16 20:44:19.000000000","message":"Figuring out Company Admin is the responsibility of the company.  If the foundation wants to be helpful, we/they could produce a checklist of items/responsibilities the company will need to provide for verification.  Often, large companies might assign an admin or project manager to be the \"corporate admin\".  The foundation could request updates to the vendors\u0027 info including admin(s) with every license update or yearly (which ever comes first).  But, again, something for one of the DefCore or Foundation documents, I think.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"20fc8cefa55745610a4a41b67763dc130ec3c53a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_e8670db5","line":182,"in_reply_to":"9a1a9d01_bbee54b2","updated":"2015-09-29 10:26:51.000000000","message":"IMO, idea with emails looks good, but also looks like over-engineering. For limited number of users manual management (general-admin manage company-admins, company-admins manage company-members) should works fine. It leaves unsolved the question about how users of public cloud can manage own results. But it look like it is not a priority.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":9377,"name":"Sergey Slipushenko","email":"slipushenko@gmail.com","username":"sslypushenko"},"change_message_id":"20fc8cefa55745610a4a41b67763dc130ec3c53a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_680c5d3b","line":182,"in_reply_to":"9a1a9d01_c5ffaba8","updated":"2015-09-29 10:26:51.000000000","message":"It looks like RefStack needs something like policy.json where user roles and access rules can be defined. IMO, we can not precisely determine what roles will are required.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":9626,"name":"Paul Van Eck","email":"pvaneck@us.ibm.com","username":"pvaneck"},"change_message_id":"e3ff38a16c855a2b71c66c3941b25a5acfc85019","unresolved":false,"context_lines":[{"line_number":179,"context_line":"and his or her company wishes to ensure that the employee can"},{"line_number":180,"context_line":"no longer upload results on behalf of the company even if he"},{"line_number":181,"context_line":"or she fails to update their affiliation data themselves."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_1995ac85","line":182,"in_reply_to":"9a1a9d01_e8670db5","updated":"2015-09-30 16:41:37.000000000","message":"Yea, I\u0027m wondering about the company_admin role if we do go the \"Foundation-provided\" route. I\u0027m assuming we would leave it to the Foundation to find the corresponding openstackid for each user, but I\u0027m not sure how easy that will be.\n\nI suppose if they have a list of emails it would be doable as many might have an openstackid with that email for logging into openstack.org, but of course, many may not. Since openstackids are how we define users, some companies might have to go without a company_admin user until someone creates an openstackid account. In any case, results for a company could still be displayed for a company if Chris or someone else were to upload and associate test results him/herself (for previous test results). Unless we just want to just slowly grow the company/company_admin population as future testing against newer capabilities occurs.\n\nWhat would be the desired workflow be for a new user from a new company trying to get a cloud validated. First email the Foundation?\n\nIf we do vendor self-registration, we would have to set up an smtp server on the RefStack infra vm, or maybe one is provided. Would have to look into that. Also worried about the corner cases for programmatic verification of email addresses where the email domain doesn\u0027t match the company domain name (ustack.com vs UnitedStack.com is another one). We would have to be watchful of these cases, and some manual verification might be involved for some.","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"a14a52895cf5086089bc8feae0e7187dc7ee5d53","unresolved":false,"context_lines":[{"line_number":198,"context_line":"Since we already user OpenStackID for authentication to RefStack,"},{"line_number":199,"context_line":"we might potentially be able to pull a user\u0027s company"},{"line_number":200,"context_line":"affiliation data from the OpenStack Foundation\u0027s member database."},{"line_number":201,"context_line":"However company affiliations in the mmeber database aren\u0027t verified"},{"line_number":202,"context_line":"and are therefore somewhat unreliable.  Further, some members"},{"line_number":203,"context_line":"list personal email addresses rather than corporate ones in"},{"line_number":204,"context_line":"their member profiles, so email addresses there can\u0027t necessarily"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_c6cd2e32","line":201,"updated":"2015-10-22 08:33:57.000000000","message":"member?","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":17700,"name":"David Liu","email":"david.liu@cn.ibm.com","username":"lzbj"},"change_message_id":"a14a52895cf5086089bc8feae0e7187dc7ee5d53","unresolved":false,"context_lines":[{"line_number":259,"context_line":"---------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Some operations are allowed by any user (such as creating products"},{"line_number":262,"context_line":"once a user as verified as having an association with a company)."},{"line_number":263,"context_line":"This could potentially lead to resource exhaustion attacks."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"As with any data entered into a form, data entered by users"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_26066252","line":262,"updated":"2015-10-22 08:33:57.000000000","message":"\u0027user as\u0027 or \u0027user was\u0027?","commit_id":"dfd017cd072bebcdb19402cb18078a88d0a5b91e"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"RefStack recently added features to enable uploading of data with"},{"line_number":19,"context_line":"with validated users.  Users will first log into RefStack with their"},{"line_number":20,"context_line":"OpenStack ID to upload their public keys.  RefStack test results can"},{"line_number":21,"context_line":"then be uploaded to RefStack using the corresponding private key.  By"},{"line_number":22,"context_line":"default, the uploaded data isn\u0027t shared, but authorized users can"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_1ef07090","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":4},"updated":"2015-12-29 07:46:38.000000000","message":"typo: extra with","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Some users who upload results are doing so on behalf of their employers:"},{"line_number":26,"context_line":"companies who are seeking a trademark/logo license agreement with"},{"line_number":27,"context_line":"the OpenStack Foundation via one of it\u0027s \"OpenStack Powered\""},{"line_number":28,"context_line":"licensing programs (which currently require the product to pass a"},{"line_number":29,"context_line":"set of tests defined by the DefCore Committee).  Currently,"},{"line_number":30,"context_line":"there is no established mechanism in RefStack for authenticating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_fe31e45a","line":27,"range":{"start_line":27,"start_character":36,"end_line":27,"end_character":40},"updated":"2015-12-29 07:46:38.000000000","message":"typo: its (here and further in the text)","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"RefStack should have a mechanism such that it knows:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"1. AllTheStacks Corporation is a corporate entity/vendor."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"2. AllTheStacks Private Cloud, AllTheStacks Managed Private Cloud,"},{"line_number":57,"context_line":"    and AllTheStacks Public Cloud are all products produced"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_9e32205d","line":54,"range":{"start_line":54,"start_character":16,"end_line":54,"end_character":27},"updated":"2015-12-29 07:46:38.000000000","message":"typo: Corporation","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"in every kid\u0027s meal, at which point the AllTheStacks Private Cloud"},{"line_number":74,"context_line":"might change it\u0027s name to DonkeyCloud Kids Edition and it\u0027s company"},{"line_number":75,"context_line":"relationship to DonkeyBurger Corporation.  Similarly, Beth might"},{"line_number":76,"context_line":"might need to denote her change in employer."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Further capabilities"},{"line_number":79,"context_line":"could conceivably be useful and should be kept in mind"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_5e2838e2","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":5},"updated":"2015-12-29 07:46:38.000000000","message":"typo: extra might","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"7ec61bbe64e37f04f76985fc08191e4f7686985b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"additional objects for \"companies\" and \"products\" and relations"},{"line_number":106,"context_line":"between all three object types."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Users are classified as one of three types with the following"},{"line_number":109,"context_line":"associated privileges (refer to https://goo.gl/SF7bCX for details):"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"1. Interop Admin Users"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a710552_a21cffc1","line":108,"updated":"2015-12-15 20:18:16.000000000","message":"Users --\u003e Admin users","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"1. Interop Admin Users"},{"line_number":112,"context_line":"   a. Initial upload of vendor lists."},{"line_number":113,"context_line":"   b. Create a group and associate an initial vendor admin"},{"line_number":114,"context_line":"      user for each vendor."},{"line_number":115,"context_line":"   c. Has administrative access to all vendor features."},{"line_number":116,"context_line":"   d. Generally reserved for OpenStack Foundation staff."},{"line_number":117,"context_line":"2. Vendor Admin Users"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_fed6c44d","line":114,"range":{"start_line":113,"start_character":6,"end_line":114,"end_character":27},"updated":"2015-12-29 07:46:38.000000000","message":"Correct me if I\u0027m wrong but I consider this a new requirements document.\nIn which case if we agree upon it there should appear an explicit possibility to create a new group.\nHowever, I don\u0027t think explicit groups are a necessity for RefStack\u0027s requirements, I rather think it\u0027s an overcomplication at the moment. For me, explicit or implicit grouping of users according to their priviliges and/or rights to manage some particular objects should arise further during architectural design as one of the design decisions.\nI suggest rephrasing and avoiding explicit mentioning of non-obvious entities.\nIn this case I understand the real use-case here is to assign an initial vendor admin user for each vendor. Group is not required so far.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":116,"context_line":"   d. Generally reserved for OpenStack Foundation staff."},{"line_number":117,"context_line":"2. Vendor Admin Users"},{"line_number":118,"context_line":"   a. Manage a single vendor\u0027s data (CRUD operations)."},{"line_number":119,"context_line":"   b. Manage a vendor group (add/remove users, assign roles, etc)."},{"line_number":120,"context_line":"   c. Create a new product."},{"line_number":121,"context_line":"   d. Associate existing products to a vendor (requires the user to"},{"line_number":122,"context_line":"      have the vendor admin and product admin roles in the requisite"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_1e0150af","line":119,"range":{"start_line":119,"start_character":47,"end_line":119,"end_character":59},"updated":"2015-12-29 07:46:38.000000000","message":"Strictly speaking - implementational detail also.\nWe might want to create one group for admins and one for regular users, which sort of invalidates the wording here. We won\u0027t have explicit roles and we\u0027ll have several vendor\u0027s groups.\nProbably something like \"Manage vendor\u0027s users (add/remove, assign roles if applicable, etc) would be safer for further design decisions.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":118,"context_line":"   a. Manage a single vendor\u0027s data (CRUD operations)."},{"line_number":119,"context_line":"   b. Manage a vendor group (add/remove users, assign roles, etc)."},{"line_number":120,"context_line":"   c. Create a new product."},{"line_number":121,"context_line":"   d. Associate existing products to a vendor (requires the user to"},{"line_number":122,"context_line":"      have the vendor admin and product admin roles in the requisite"},{"line_number":123,"context_line":"      vendor and product groups)."},{"line_number":124,"context_line":"   e. Generally an employee of a company selling OpenStack products."},{"line_number":125,"context_line":"3. Product Admin Users"},{"line_number":126,"context_line":"   a. Manage product data (CRUD operations)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_7e1f3408","line":123,"range":{"start_line":121,"start_character":47,"end_line":123,"end_character":31},"updated":"2015-12-29 07:46:38.000000000","message":"Implementational details mentioned.\nMaybe something like \"Requires the user to have sufficient rights for both Vendor and Product\"","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":124,"context_line":"   e. Generally an employee of a company selling OpenStack products."},{"line_number":125,"context_line":"3. Product Admin Users"},{"line_number":126,"context_line":"   a. Manage product data (CRUD operations)."},{"line_number":127,"context_line":"   b. Manage a product group (add/remove users, assign roles, etc)."},{"line_number":128,"context_line":"   c. Generally an employee of a company selling OpenStack products."},{"line_number":129,"context_line":"   d. Note: any user can create a product group and add him or herself"},{"line_number":130,"context_line":"      as the product admin.  A product group must be created before"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_3e152ce4","line":127,"range":{"start_line":127,"start_character":15,"end_line":127,"end_character":66},"updated":"2015-12-29 07:46:38.000000000","message":"Same as for Vendor groups","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":126,"context_line":"   a. Manage product data (CRUD operations)."},{"line_number":127,"context_line":"   b. Manage a product group (add/remove users, assign roles, etc)."},{"line_number":128,"context_line":"   c. Generally an employee of a company selling OpenStack products."},{"line_number":129,"context_line":"   d. Note: any user can create a product group and add him or herself"},{"line_number":130,"context_line":"      as the product admin.  A product group must be created before"},{"line_number":131,"context_line":"      creating a product."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"The OpenStack Foundation will designate one or more members of it\u0027s staff"},{"line_number":134,"context_line":"as Interop Admin Users.  The Interop Admin User(s) will provide vendor"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_1ec63068","line":131,"range":{"start_line":129,"start_character":6,"end_line":131,"end_character":25},"updated":"2015-12-29 07:46:38.000000000","message":"Why would we want user to explicitly create some intermediate entity? The use-case is User wants to create a Product. He doesn\u0027t care about the group. That\u0027s an extra action. And there might be a solution which saves User from it.\nCan we just phrase that \"Any user can create a product and such a user becomes an admin of this product\" - something like this?","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":131,"context_line":"      creating a product."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"The OpenStack Foundation will designate one or more members of it\u0027s staff"},{"line_number":134,"context_line":"as Interop Admin Users.  The Interop Admin User(s) will provide vendor"},{"line_number":135,"context_line":"lists to be imported to Refstack via a JSON file that includes the company"},{"line_number":136,"context_line":"names and associated attributes (including users who should initially be"},{"line_number":137,"context_line":"granted the Vendor Admin role for each vendor).  The format of the JSON"},{"line_number":138,"context_line":"file is outside the scope of this document and will be agreed upon"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_1eab9076","line":135,"range":{"start_line":134,"start_character":25,"end_line":135,"end_character":48},"updated":"2015-12-29 07:46:38.000000000","message":"Wouldn\u0027t it be convenient for already registered RefStack Users to supply an application from the RefStack with all the necessary data and already confirmed identity (because user was logged in) and Interop Admin can see the application in RefStack admin\u0027s tab and approved it. This will simplify and attract more Users to become Vendors, isn\u0027t it?\nAlso it\u0027ll allow Interop Admin to manage vendors from UI and create initial list of them without bothering with JSON and imports.\nI\u0027m not sure that implementation of wholesome JSON file import feature and processes around it would be much cheaper than vendors management functionality in RefStack.\nAnd keep in mind we\u0027d have to implement lots of similar functionality like Vendor managing and approving new users or test results for clouds.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":133,"context_line":"The OpenStack Foundation will designate one or more members of it\u0027s staff"},{"line_number":134,"context_line":"as Interop Admin Users.  The Interop Admin User(s) will provide vendor"},{"line_number":135,"context_line":"lists to be imported to Refstack via a JSON file that includes the company"},{"line_number":136,"context_line":"names and associated attributes (including users who should initially be"},{"line_number":137,"context_line":"granted the Vendor Admin role for each vendor).  The format of the JSON"},{"line_number":138,"context_line":"file is outside the scope of this document and will be agreed upon"},{"line_number":139,"context_line":"separately.  RefStack will provide am interface allowing the Interop"},{"line_number":140,"context_line":"Admin User(s) to perform CRUD operations on company data."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_dede6810","line":137,"range":{"start_line":136,"start_character":33,"end_line":137,"end_character":45},"updated":"2015-12-29 07:46:38.000000000","message":"This can be left for the Vendor\u0027s initial admin to care for. Admin\u0027ll have the user management interface in any case. No need for the Foundation to bother with additional users for each Vendor.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":147,"context_line":"forms for other types of operations on users (such as unassociating a"},{"line_number":148,"context_line":"user with a company) will also be provided by RefStack."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Once users have been added to a vendor group by a Vendor Admin, they"},{"line_number":151,"context_line":"can create a product, add users including themselves as product admins,"},{"line_number":152,"context_line":"and associate test results with the product.  RefStack will not show"},{"line_number":153,"context_line":"show company or product affiliation with any test result submitted by"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_1e75d0f8","line":150,"range":{"start_line":150,"start_character":32,"end_line":150,"end_character":44},"updated":"2015-12-29 07:46:38.000000000","message":"Same as before here and below.\nI\u0027d avoid using the word \"group\". The important part here: Vendor Admins can create a product, ....","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"user with a company) will also be provided by RefStack."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Once users have been added to a vendor group by a Vendor Admin, they"},{"line_number":151,"context_line":"can create a product, add users including themselves as product admins,"},{"line_number":152,"context_line":"and associate test results with the product.  RefStack will not show"},{"line_number":153,"context_line":"show company or product affiliation with any test result submitted by"},{"line_number":154,"context_line":"a user until the user\u0027s company affiliation is verified.  When a user"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_dec8a824","line":151,"range":{"start_line":151,"start_character":22,"end_line":151,"end_character":70},"updated":"2015-12-29 07:46:38.000000000","message":"Do we want orphaned product? I guess a user creating a product can become an admin of the product by default and later do whatever he wants with other users.\nHowever, you mentioned that this functionality is out of scope for this doc - this is for the future. Which means that vendor admins are the admins of any product of the vendor initially, right?","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"7ec61bbe64e37f04f76985fc08191e4f7686985b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"Once users have been added to a vendor group by a Vendor Admin, they"},{"line_number":151,"context_line":"can create a product, add users including themselves as product admins,"},{"line_number":152,"context_line":"and associate test results with the product.  RefStack will not show"},{"line_number":153,"context_line":"show company or product affiliation with any test result submitted by"},{"line_number":154,"context_line":"a user until the user\u0027s company affiliation is verified.  When a user"},{"line_number":155,"context_line":"uploads test results, he or she will then log into the RefStack UI and"},{"line_number":156,"context_line":"associate the result with any product he or she has the Product Admin role"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a710552_42619b38","line":153,"updated":"2015-12-15 20:18:16.000000000","message":"nit: extra \"show\"","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":151,"context_line":"can create a product, add users including themselves as product admins,"},{"line_number":152,"context_line":"and associate test results with the product.  RefStack will not show"},{"line_number":153,"context_line":"show company or product affiliation with any test result submitted by"},{"line_number":154,"context_line":"a user until the user\u0027s company affiliation is verified.  When a user"},{"line_number":155,"context_line":"uploads test results, he or she will then log into the RefStack UI and"},{"line_number":156,"context_line":"associate the result with any product he or she has the Product Admin role"},{"line_number":157,"context_line":"for.  Once the result is associated with a product, the user may also"},{"line_number":158,"context_line":"associate the data with a the Vendor he or she represents.  Once the data"},{"line_number":159,"context_line":"is associated with the vendor, the user who uploaded them will no longer"},{"line_number":160,"context_line":"have data management privilleges (for example, he or she will be unable"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_5e8b58c3","line":157,"range":{"start_line":154,"start_character":58,"end_line":157,"end_character":4},"updated":"2015-12-29 07:46:38.000000000","message":"I\u0027m not clear about this.\nWhen a user uploads test results, cpid (which is effectively a unique CloudID) is determined and passed automatically. So in RefStack we\u0027ll know both UserID (by his public/private key) and CloudID and we do know if we have a Product with such a CloudID and if the User is one of the admins of the Product (explicitly or by being Vendor\u0027s admin), so no association is required in this case.\nHowever, if such a user is not an admin of the product then later some product\u0027s vendor can associate the results.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"ebe8f976a2178f959a0f5748c7b17a5dce7f853b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"can create a product, add users including themselves as product admins,"},{"line_number":152,"context_line":"and associate test results with the product.  RefStack will not show"},{"line_number":153,"context_line":"show company or product affiliation with any test result submitted by"},{"line_number":154,"context_line":"a user until the user\u0027s company affiliation is verified.  When a user"},{"line_number":155,"context_line":"uploads test results, he or she will then log into the RefStack UI and"},{"line_number":156,"context_line":"associate the result with any product he or she has the Product Admin role"},{"line_number":157,"context_line":"for.  Once the result is associated with a product, the user may also"},{"line_number":158,"context_line":"associate the data with a the Vendor he or she represents.  Once the data"},{"line_number":159,"context_line":"is associated with the vendor, the user who uploaded them will no longer"},{"line_number":160,"context_line":"have data management privilleges (for example, he or she will be unable"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa69d971_b12df447","line":157,"range":{"start_line":154,"start_character":58,"end_line":157,"end_character":4},"in_reply_to":"1a7b0d38_5e8b58c3","updated":"2016-01-11 02:58:57.000000000","message":"I agree that for Centralized Testing, CPID/CloudID/ProductID can be the identical.  However, for on-premise RefStack tests, CPID could be different from the ProductID","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":154,"context_line":"a user until the user\u0027s company affiliation is verified.  When a user"},{"line_number":155,"context_line":"uploads test results, he or she will then log into the RefStack UI and"},{"line_number":156,"context_line":"associate the result with any product he or she has the Product Admin role"},{"line_number":157,"context_line":"for.  Once the result is associated with a product, the user may also"},{"line_number":158,"context_line":"associate the data with a the Vendor he or she represents.  Once the data"},{"line_number":159,"context_line":"is associated with the vendor, the user who uploaded them will no longer"},{"line_number":160,"context_line":"have data management privilleges (for example, he or she will be unable"},{"line_number":161,"context_line":"to delete the result)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_3e7c4cb4","line":158,"range":{"start_line":157,"start_character":5,"end_line":158,"end_character":57},"updated":"2015-12-29 07:46:38.000000000","message":"Not clear also.\nIsn\u0027t any product-associated result already to be associated with vendor, owner of such product?","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"ebe8f976a2178f959a0f5748c7b17a5dce7f853b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"a user until the user\u0027s company affiliation is verified.  When a user"},{"line_number":155,"context_line":"uploads test results, he or she will then log into the RefStack UI and"},{"line_number":156,"context_line":"associate the result with any product he or she has the Product Admin role"},{"line_number":157,"context_line":"for.  Once the result is associated with a product, the user may also"},{"line_number":158,"context_line":"associate the data with a the Vendor he or she represents.  Once the data"},{"line_number":159,"context_line":"is associated with the vendor, the user who uploaded them will no longer"},{"line_number":160,"context_line":"have data management privilleges (for example, he or she will be unable"},{"line_number":161,"context_line":"to delete the result)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa69d971_d132e8a6","line":158,"range":{"start_line":157,"start_character":5,"end_line":158,"end_character":57},"in_reply_to":"1a7b0d38_3e7c4cb4","updated":"2016-01-11 02:58:57.000000000","message":"Not all products are associated with vendors.  RefStack allow any users to create a product which may not be associated to any vendor at product creation time.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":166,"context_line":"controlled by the vendor admin(s) will not be publicly shown as affiliated"},{"line_number":167,"context_line":"with a vendor or product."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"A user may remove a vendor affiliation from his or her profile at any"},{"line_number":170,"context_line":"time, after which they will be unable to mark results as affiliated"},{"line_number":171,"context_line":"with the vendor in question.  If a user wishes to change his or her"},{"line_number":172,"context_line":"vendor affiliation, he/she will first remove the old vendor affiliation"},{"line_number":173,"context_line":"from their profile.  A Vendor Admin will then add the user to a new"},{"line_number":174,"context_line":"vendor affiliation."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_be3d9cde","line":171,"range":{"start_line":169,"start_character":0,"end_line":171,"end_character":28},"updated":"2015-12-29 07:46:38.000000000","message":"Affiliation is a new term which appeared only now. How does it relate to user being one of the Vendor\u0027s admins? Does it mean that user goes and removes himself from the Vendor\u0027s admins?","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":173,"context_line":"from their profile.  A Vendor Admin will then add the user to a new"},{"line_number":174,"context_line":"vendor affiliation."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Products may not be removed from the database except by RefStack"},{"line_number":177,"context_line":"administrators as long as there are publicly viewable test results"},{"line_number":178,"context_line":"associated with the product.  Product names may be updated"},{"line_number":179,"context_line":"by verified employees of the company that owns the product,"},{"line_number":180,"context_line":"but a timestamp and user ID should be recorded in case questions"},{"line_number":181,"context_line":"arise."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_3e2a0c91","line":178,"range":{"start_line":176,"start_character":0,"end_line":178,"end_character":27},"updated":"2015-12-29 07:46:38.000000000","message":"What happens to results if RefStack admin (I guess the Interop admin, in fact) removes a Product? Do they remain orphaned or are removed too?","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"ebe8f976a2178f959a0f5748c7b17a5dce7f853b","unresolved":false,"context_lines":[{"line_number":173,"context_line":"from their profile.  A Vendor Admin will then add the user to a new"},{"line_number":174,"context_line":"vendor affiliation."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Products may not be removed from the database except by RefStack"},{"line_number":177,"context_line":"administrators as long as there are publicly viewable test results"},{"line_number":178,"context_line":"associated with the product.  Product names may be updated"},{"line_number":179,"context_line":"by verified employees of the company that owns the product,"},{"line_number":180,"context_line":"but a timestamp and user ID should be recorded in case questions"},{"line_number":181,"context_line":"arise."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa69d971_71321c60","line":178,"range":{"start_line":176,"start_character":0,"end_line":178,"end_character":27},"in_reply_to":"1a7b0d38_3e2a0c91","updated":"2016-01-11 02:58:57.000000000","message":"In the case when a product is removed, all associated assets to this product should also be removed.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":180,"context_line":"but a timestamp and user ID should be recorded in case questions"},{"line_number":181,"context_line":"arise."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Companies may not be removed from the database except by Interop"},{"line_number":184,"context_line":"Admin Users as long as there are users affiliated with the"},{"line_number":185,"context_line":"company.  In the event that a company changes it\u0027s name or is"},{"line_number":186,"context_line":"acquired by another company, this allows Interop Admin users to"},{"line_number":187,"context_line":"be involved in deciding how to procede: based on the circumstances"},{"line_number":188,"context_line":"different courses of action might be deemed necessary.  For example,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_211bd174","line":185,"range":{"start_line":183,"start_character":0,"end_line":185,"end_character":8},"updated":"2015-12-29 07:46:38.000000000","message":"What happens with the company\u0027s product, results and other stuff in case it is removed?","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"ebe8f976a2178f959a0f5748c7b17a5dce7f853b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"but a timestamp and user ID should be recorded in case questions"},{"line_number":181,"context_line":"arise."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Companies may not be removed from the database except by Interop"},{"line_number":184,"context_line":"Admin Users as long as there are users affiliated with the"},{"line_number":185,"context_line":"company.  In the event that a company changes it\u0027s name or is"},{"line_number":186,"context_line":"acquired by another company, this allows Interop Admin users to"},{"line_number":187,"context_line":"be involved in deciding how to procede: based on the circumstances"},{"line_number":188,"context_line":"different courses of action might be deemed necessary.  For example,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa69d971_b105f47a","line":185,"range":{"start_line":183,"start_character":0,"end_line":185,"end_character":8},"in_reply_to":"1a7b0d38_211bd174","updated":"2016-01-11 02:58:57.000000000","message":"In the case when a company is removed, all associated assets to this company should also be removed.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":184,"context_line":"Admin Users as long as there are users affiliated with the"},{"line_number":185,"context_line":"company.  In the event that a company changes it\u0027s name or is"},{"line_number":186,"context_line":"acquired by another company, this allows Interop Admin users to"},{"line_number":187,"context_line":"be involved in deciding how to procede: based on the circumstances"},{"line_number":188,"context_line":"different courses of action might be deemed necessary.  For example,"},{"line_number":189,"context_line":"it may be preferable to change the company name and let it be"},{"line_number":190,"context_line":"reflected for all users and products associated with it (as might"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_7e0bb42a","line":187,"range":{"start_line":187,"start_character":31,"end_line":187,"end_character":38},"updated":"2015-12-29 07:46:38.000000000","message":"typo: proceed","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":189,"context_line":"it may be preferable to change the company name and let it be"},{"line_number":190,"context_line":"reflected for all users and products associated with it (as might"},{"line_number":191,"context_line":"be the case if a company changes it\u0027s name).  In a case in which"},{"line_number":192,"context_line":"one company is aquired by another, the acquired company\u0027s products"},{"line_number":193,"context_line":"might need to have their owner changed to a company that is already"},{"line_number":194,"context_line":"in the database while Product Admin users might need to be manually"},{"line_number":195,"context_line":"added to the new affiliation by the new Vendor.  There"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_2132f1f2","line":192,"range":{"start_line":192,"start_character":15,"end_line":192,"end_character":22},"updated":"2015-12-29 07:46:38.000000000","message":"typo: acquired","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"In the event that a Vendor Admin ends his or her affiliation with"},{"line_number":200,"context_line":"a vendor, he or she can manually remove the vendor affiliation from"},{"line_number":201,"context_line":"their profile.  Interop Admin users can, at the request of the vendor"},{"line_number":202,"context_line":"in question, also manually remove the affiliation for any user."},{"line_number":203,"context_line":"The means employed by Interop Admin users to verify the validity of"},{"line_number":204,"context_line":"the request are outside the scope of this document (and will likely"},{"line_number":205,"context_line":"be determinied by OpenStack Foundation procedures)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_616a39b5","line":202,"range":{"start_line":201,"start_character":16,"end_line":202,"end_character":62},"updated":"2015-12-29 07:46:38.000000000","message":"Can\u0027t other Vendor admins remove such admin from the Vendor thus effectively ending the affiliation for him/her?","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"ebe8f976a2178f959a0f5748c7b17a5dce7f853b","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"In the event that a Vendor Admin ends his or her affiliation with"},{"line_number":200,"context_line":"a vendor, he or she can manually remove the vendor affiliation from"},{"line_number":201,"context_line":"their profile.  Interop Admin users can, at the request of the vendor"},{"line_number":202,"context_line":"in question, also manually remove the affiliation for any user."},{"line_number":203,"context_line":"The means employed by Interop Admin users to verify the validity of"},{"line_number":204,"context_line":"the request are outside the scope of this document (and will likely"},{"line_number":205,"context_line":"be determinied by OpenStack Foundation procedures)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa69d971_b1897428","line":202,"range":{"start_line":201,"start_character":16,"end_line":202,"end_character":62},"in_reply_to":"1a7b0d38_616a39b5","updated":"2016-01-11 02:58:57.000000000","message":"Agree that other vendor admins can also remove the the affiliation for any user.  Essentially, the affiliation removal can be done by:\n1) The user himself/herself\n2) Any admin in the Vendor group\n3) Interop admins","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":219,"context_line":"a little harder about how we structure the data, likely resulting"},{"line_number":220,"context_line":"in a more flexible database structure down the road."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Since we already user OpenStackID for authentication to RefStack,"},{"line_number":223,"context_line":"we might potentially be able to pull a user\u0027s company"},{"line_number":224,"context_line":"affiliation data from the OpenStack Foundation\u0027s member database."},{"line_number":225,"context_line":"However company affiliations in the member database aren\u0027t verified"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_a1a261fa","line":222,"range":{"start_line":222,"start_character":17,"end_line":222,"end_character":21},"updated":"2015-12-29 07:46:38.000000000","message":"typo: use","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":9312,"name":"Alexandre Levine","email":"alexandrelevine@gmail.com","username":"alevine"},"change_message_id":"a2bae2f4a025dfa01c7228635885439bffb686b9","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"* Relationships between users, companies, products, \u0026 tests must"},{"line_number":280,"context_line":"  also be added to the model.  These relationships are as follows:"},{"line_number":281,"context_line":"  * A user is associated with one company"},{"line_number":282,"context_line":"  * A company is associated with many users"},{"line_number":283,"context_line":"  * A product is associated with one company"},{"line_number":284,"context_line":"  * A company is associated with many products"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7b0d38_61df9969","line":281,"range":{"start_line":281,"start_character":4,"end_line":281,"end_character":41},"updated":"2015-12-29 07:46:38.000000000","message":"Why can\u0027t user work for many companies? It was not in the reqs above.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"ebe8f976a2178f959a0f5748c7b17a5dce7f853b","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"* Relationships between users, companies, products, \u0026 tests must"},{"line_number":280,"context_line":"  also be added to the model.  These relationships are as follows:"},{"line_number":281,"context_line":"  * A user is associated with one company"},{"line_number":282,"context_line":"  * A company is associated with many users"},{"line_number":283,"context_line":"  * A product is associated with one company"},{"line_number":284,"context_line":"  * A company is associated with many products"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa69d971_d1bc28bd","line":281,"range":{"start_line":281,"start_character":4,"end_line":281,"end_character":41},"in_reply_to":"1a7b0d38_61df9969","updated":"2016-01-11 02:58:57.000000000","message":"I am not sure any company would like to assign a vendor admin role to an user who works for multiple company.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"},{"author":{"_account_id":6287,"name":"David Lenwell","email":"dlenwell@gmail.com","username":"dlenwell"},"change_message_id":"00eeb665d50017a11a6087b69db72199fb08279d","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"* Relationships between users, companies, products, \u0026 tests must"},{"line_number":280,"context_line":"  also be added to the model.  These relationships are as follows:"},{"line_number":281,"context_line":"  * A user is associated with one company"},{"line_number":282,"context_line":"  * A company is associated with many users"},{"line_number":283,"context_line":"  * A product is associated with one company"},{"line_number":284,"context_line":"  * A company is associated with many products"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa7ab95a_1daf647e","line":281,"range":{"start_line":281,"start_character":4,"end_line":281,"end_character":41},"in_reply_to":"fa69d971_d1bc28bd","updated":"2016-08-31 05:55:15.000000000","message":"You have to keep in mind that individuals will change companies. Take me for example.. when we started this adventure I would have been the point person at piston. But then I was at bluebox a month later. you have to make sure you account for user drift between orgs. I am not seeing a clear path for that anywhere in this spec.","commit_id":"9f281201ed6e8b98863fdbb67e2fd6cf05efa799"}]}
