19:00:30 #startmeeting refstack 19:00:32 Meeting started Mon Feb 8 19:00:30 2016 UTC and is due to finish in 60 minutes. The chair is catherineD. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:33 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:00:35 The meeting name has been set to 'refstack' 19:02:22 o/ 19:03:59 o/ 19:05:10 hi pvaneck: alexandrelevine: Let's waite for a couple more mins 19:05:52 #link meeting agenda and notes, please feel free to add items https://etherpad.openstack.org/p/refstack-meeting-16-02-08 19:06:12 o/ 19:06:28 rockyg: Hi 19:07:52 Let's start 19:07:53 #link meeting agenda and notes, please feel free to add items https://etherpad.openstack.org/p/refstack-meeting-16-02-08 19:08:15 #topic Organization and product entities 19:08:23 * rockyg waves 19:08:38 #link Implementation : https://review.openstack.org/#/c/269066/ 19:09:00 I really would like us to focus on review and merge this one ... 19:09:25 #link Product type vs object type. Please see comments on line 68 https://review.openstack.org/#/c/269066/22/refstack/api/constants.py 19:10:49 3 options are suggested in the comments.... is there any other options? 19:11:06 My preference is type - product_type 19:11:21 option 1 19:11:29 alexandrelevine: thx 19:11:37 pvaneck: rockyg: how about you? 19:11:50 lemme do a quick review... 19:12:32 would product_type be a property or another column? 19:12:43 I'm having a problem with my browser... 19:13:07 pvaneck: an other column .. 19:13:48 pvaneck: is there a way to represent the property without a column? 19:14:30 catherineD: Yes. In the properties 19:15:38 that bring us to the next discussuon ... a properties columns is added to the organization column is this for the product type? What else can be saved there? 19:15:40 catherineD: We can store there everything of not much importance which we won't require for indexing or fast search. In fact, with our small number of expected vendors it doesn't matter much. 19:15:51 do we plan on having different treatments based on product_type where quick lookups are necessary? or are product types just informational items that will be on the product page 19:16:18 catherineD: I explained. Each vendor in the marketplace has some descriptive and other fields and properties. We need to store them. 19:16:29 catherineD: They'll be asked during vendor registration. 19:16:33 vendor specific metadata 19:16:37 pvaneck: product type informatio will be on the product page ... and yes we may want to filter wit hit 19:16:39 catherineD: Reviewed and approved by the Foundation. 19:16:39 with it 19:17:38 rockyg: alexandrelevine: if it is vendor meta data and free form .. wouldn't using a meta table would be better? 19:18:13 catherineD: I believe we discussed it. My personal preference is not to spawn many tables. json in the same table will do just fine. 19:18:34 I even remember someone objecting against xml :) 19:19:20 alexandrelevine: my issue is how do we parse the information in the properties column? 19:19:32 but let's go back to product_type ... 19:19:36 catherineD: We load it and parse it as any other json. 19:19:55 alexandrelevine: with any json it is good to have a schema 19:20:06 properties json will simply be displayed on a product page catherineD 19:20:24 catherineD: We can devise something very simple key-value-like. 19:20:43 pvaneck: alexandrelevine: where do we save the product_type? 19:21:02 catherineD: If you want better modifiability in the future - in the properties. 19:21:46 alexandrelevine: just want to confirm ... you are saying that we save the product_type property in the properties column 19:21:55 as one of the element in the JSON 19:22:02 catherineD: If you want to do paging filtered by product types in the list of Vendors on the server - column. 19:22:13 catherineD: Yes. 19:22:45 If we plan on filtering based on these specific product types, then yea, better to be its own column 19:22:46 alexandrelevine: we can filter vendor list request by product_type? 19:22:55 but if purely informational, then properties 19:22:56 pvaneck: ++ 19:23:09 catherineD: We can do whatever we want :) 19:23:12 that if we want to filter it is better with its own column 19:23:42 alexandrelevine: sure that is why we discuss here on the best way to implement ... 19:23:56 catherineD: Keep in mind that paging and filtering can be done in DB or in the code on the server. In the second case you don't need a column also. 19:24:50 catherineD: Honestly, we're dealing with such small numbers of Vendors that I don't expect any problems whichever way we go. 19:25:03 OK like anything there is always many ways to approach ... 19:25:38 catherineD: Choose the approach you like :) 19:25:43 I like separate column 19:26:03 I lkie separate column 19:26:07 like :-) 19:26:11 separate column it is. 19:26:21 Could get messy if OpenStack gets big and people get real creative ;-) 19:26:36 I guess pvaneck: is OK with separate column ... 19:26:55 sure 19:27:16 great !! 19:27:25 #topic Do we need the properties columns ? 19:27:34 we do 19:28:01 I guess it would not hurt .. so I don't mind ... but if we store JSON .. I would like us to have a schema defined ... 19:28:03 yeah, I think so. 19:28:21 i thought just key value pairs in json was fine 19:28:49 See example page of one of the vendors: https://www.openstack.org/marketplace/public-clouds/cloud-and-heat-technologies/cloud-heat 19:29:01 #ageed To add a product_type and properties columns to the organization table 19:29:14 It has "about", "commitment", "details" and some other stuff. 19:29:36 hey we are doing good today ... 19:29:50 ++ 19:29:54 next product type names: 19:30:32 separate names for distro and appliance. For display, we can always do an OR 19:30:34 should match with OpenStack Marketplace 19:31:13 Right now, appliances are kind of a step child. Not many left. But that will change as OpenStack gets more consistent 19:31:27 We should ask DefCore. But for speed sakes we can start with "distro", "public cloud", "hosted private cloud" (maybe just private cloud?) only. 19:31:39 alexandrelevine: ++ 19:32:06 alexandrelevine: I vote for hosted_private_cloud... 19:32:20 I don't mind. 19:33:09 do we all agree for now product type are: distro, public_cloud, hosted_private_cloud (we can add appliance later)? 19:33:18 ++ 19:33:22 +1 19:33:59 ++ for hosted in front. wondering if we'll see private private cloud in future 19:34:16 #agreed Product type names are distro, public_cloud, hosted_private_cloud (and may add appliance later) 19:34:22 rockyg: +2 19:35:38 so would all of the agreement here .. after andrey updates https://review.openstack.org/#/c/269066/ please give it a priority for review ... it would be good if we can merge it in the next 2 days 19:35:59 thank you all! 19:36:08 yay! 19:36:22 great 19:36:28 #topic private_vendor vs pending_vendor. 19:36:58 alexandrelevine: private_vendor: can be create by any user. Do we still need the hidden vendor as described in the Ownership section on page 12 of the requiement document? 19:37:14 Nothing to discuss here: hidden is private. The term is interchangeable. I just used it in the reqs doc to say that those are hidden vendors. 19:37:59 Hidden in the doc meant exactly that - hidden. It's not good to use this term in the constants, though. That's why private. 19:38:01 alexandrelevine: since user can create vendor , I would like for us not to automatically create a vendor 19:38:29 we require that a vendor has to be created before a product creation ... 19:38:38 catherineD: You'll complicate UI. 19:38:54 how? 19:39:05 catherineD: Better usability wouldn't require User to create something he doesn't care about. 19:39:21 catherineD: He doesn't need Vendor. He wants to test his Cloud, i.e. Product. 19:39:33 alexandrelevine: I agree with the product has its own users 19:39:54 catherineD: I didn't understand what you just said. 19:40:06 now with users at the vendor level ... wouldn't it be better for him to know where to add user for his vendor? 19:40:30 catherineD: I'm a user and I don't want to manage vendors or other users. I want to test my Cloud. 19:41:13 alexandrelevine: do you want someone else to see your result before you make it public? 19:41:37 Use-case 4 19:42:11 catherineD: You'll create a screenshot and send it by email. 19:42:17 catherineD: there is no such use-case now. 19:42:36 catherineD: It's either private, i.e. yours only, or public. 19:42:49 alexandrelevine: could we modify your use case ? that the user can share his/her data before making it public? 19:43:09 catherineD: Not without several more use-cases and complications. Why? 19:44:10 my issue is your say private = yours only 19:44:18 catherineD: And we shouldn't modify it because it exists. It's the most easy-to-start use-case for any user. What you ask about is one of the variations which can exist but I don't see why we need it now. And definitely not instead. 19:44:33 catherineD: Yes. That's how it works now. 19:45:08 catherineD: Later, much later, when we get basic functionality and process feedback from users we'll see if we want to go that route to extend. 19:45:51 alexandrelevine: Company ABC registers ... so a vendor is create of this vednor ABC... what is the type of this vendor? 19:46:10 private? 19:46:17 catherineD: I didn't understand. 19:46:25 catherineD: Company ABC registers what? 19:46:46 Company ABC register itself as a vendor on RefStack 19:47:15 catherineD: When it registers a Vendor, i.e. uses the button Register, it becomes Pending. 19:47:26 catherineD: When it was just created, yes, it was Private. 19:47:41 catherineD: When Foundation approves it becomes Official and public. 19:48:16 so when a vendor object is created it is of type private? 19:48:23 Of coures 19:48:28 of course 19:48:52 how do you different this private vs the private vendor that was created automatically? 19:49:08 Ok, you're right. Let's add one more type then - personal? 19:49:21 Good catch! 19:49:25 Or really "hidden"? 19:49:26 alexandrelevine: yea that is what I want to say 19:49:56 so vendor type = offical, pending, private, personal? 19:50:18 official 19:50:26 Or we can go a little different here. We can automatically create a private Vendor for User when he wants to add a Product. 19:51:16 I think Official/prending is separate from public/private 19:51:39 You might want official+private 19:51:52 Private->Pending->Official(if accepted) or Private(if declined) 19:51:54 still go back to the question of how to differentiate if both automatically created vs someone created vendors if both are of type private 19:52:03 It's notseparate 19:52:18 We don't differentiate in this case 19:52:59 User can create a Vendor manually or get a default automatically created one 19:53:14 ok so on 'my vendor' UI, do we display all vendor including automatically created privated? 19:53:23 In this case yes 19:53:47 It'll just have some predefined automatically generated name. Like "auto-created" or "default" 19:53:48 how to go from private to pending ... 19:54:01 Push button "register" 19:54:10 (or "apply" - whatever we name it) 19:54:32 so user can register an automatically created private vendor and make it pending? 19:55:03 do we allow that? 19:55:04 catherineD: We can prevent it 19:55:17 how to prevent? 19:55:21 catherineD: Because we don't want Foundation to be spammed with "Default" Vendors. 19:55:34 catherineD: Check for some meaningful name. 19:55:59 alexandrelevine: wouldn't it be better to give it another type then check the name? 19:56:06 catherineD: If he cares to rename it and fill in all of the required "abouts" he can register, yes 19:56:47 catherineD: Not really 19:57:01 why not? 19:57:15 catherineD: Why do we care if it was created manually or automatically if everything was correctly prepared for registration afterwards? 19:57:29 * catherineD we only have 3 mins left ... 19:57:47 catherineD: We'll be checking saneness of the input before registration anyways. 19:58:05 alexandrelevine: i don't mind if that is what we allow ... I just want us to think thru the scenario 19:58:19 I definitely do not want to check name 19:58:26 catherineD: Thanks to you we just did. As far as we can now :) 19:58:50 if I am going to check something make it obvious for the next code reader .. 19:58:58 catherineD: We'll have to check the name anyways. For allowed symbols and such. 19:59:09 we are about out of time ... 19:59:15 catherineD: We can leave it empty, for example. So it won't pass 19:59:18 let's move to #refstack 19:59:23 #endmeeting