Thanks for the feedback. Will create a design on these lines and send across for review
On Wed, Mar 12, 2014 at 3:53 PM, Tim Hinrichs <thinri...@vmware.com> wrote: > Hi Rajdeep, > > This is an great problem to work on because it confronts one of the > assumptions we're making in Congress: that cloud services can be > represented as a collection of tables in a reasonable way. You're asking > good questions here. > > More responses inline. > > Tim > > > ------------------------------ > > *From: *"Rajdeep Dua" <rajdeep....@gmail.com> > *To: *openstack-dev@lists.openstack.org > *Sent: *Wednesday, March 12, 2014 11:54:28 AM > *Subject: *[openstack-dev] [Congress][Data Integration] > > > Need some guidance on how to convert nested types into flat tuples. > Also should we reorder the tuple values in a particular sequence? > > Order of tuples doesn't matter. Order of columns (values) within a tuple > doesn't really matter either, except that all tuples must use the same > order and the policies we write must know which column is which. > > > Thanks > Rajdeep > > As an example i have shown networks and ports tuples with some nested types > > networks - tuple format > ----------------------- > > keys (for reference) > > {'status','subnets', > 'name','test-network','provider:physical_network','admin_state_up', > 'tenant_id','provider:network_type','router:external', > 'shared',id,'provider:segmentation_id'} > > values > ----------- > ('ACTIVE', ['4cef03d0-1d02-40bb-8c99-2f442aac6ab0'], 'test-network', None, > True, > '570fe78a1dc54cffa053bd802984ede2', 'gre', False, False, > '240ff9df-df35-43ae-9df5-27fae87f2492', 4) > > Here we'd want to pull the List out and replace it with an ID. Then create > another table that shows which subnets belong to the list with that ID. > (You can think of the ID as a pointer to the list---in the C/C++ sense.) > So something like... > > network( 'ACTIVE', 'ID1', 'test-network', None, True, > > '570fe78a1dc54cffa053bd802984ede2', 'gre', False, False, > '240ff9df-df35-43ae-9df5-27fae87f2492', 4) > > element('ID1', '4cef03d0-1d02-40bb-8c99-2f442aac6ab0') > element('ID1', <another subnet if one existed>) > > The other thing to think about is whether we want 1 table with 10 columns > or we want 10 tables with 2 columns each. In this example, we would have... > > > network('net1') > network.status('net1', 'ACTIVE' ) > network.subnets('net1', 'ID1') > network.name('net1', 'test-network') > ... > > The period is just another character in the tablename. Nothing fancy > happening here. > > The ports example below would need a similar flattening. To handle > dictionaries, I would use the dot-notation shown above. > > A single Neutron API call might populate several Congress tables. > > Tim > > > ports - tuple format > ---------------------------- > keys (for reference) > > {'status','binding:host_id', 'name', 'allowed_address_pairs', > 'admin_state_up', 'network_id', > 'tenant_id', 'extra_dhcp_opts': [], > 'binding:vif_type', 'device_owner', > 'binding:capabilities', 'mac_address', > 'fixed_ips' , 'id', 'security_groups', > 'device_id'} > > Values > > ('ACTIVE', 'havana', '', [], True, '240ff9df-df35-43ae-9df5-27fae87f2492', > '570fe78a1dc54cffa053bd802984ede2', [], 'ovs', 'network:router_interface', > {'port_filter': True}, 'fa:16:3e:ab:90:df', [{'subnet_id': > '4cef03d0-1d02-40bb-8c99-2f442aac6ab0', 'ip_address': '90.0.0.1'}], > '0a2ce569-85a8-45ec-abb3-0d4b34ff69ba', [], > '864e4acf-bf8e-4664-8cf7-ad5daa95681e') > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > > https://urldefense.proofpoint.com/v1/url?u=http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=%2FZ35AkRhp2kCW4Q3MPeE%2BxY2bqaf%2FKm29ZfiqAKXxeo%3D%0A&m=A86YVKfBX5U3g6F7eNScJYjr6Qwjv4dyDyVxE9Im8g8%3D%0A&s=0345ab3711a58ec1ebcee08649f047826cec593f57e9843df0fec2f8cfb03b42 > > > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > >
_______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev