deep dive into the rocks background community development
play

DEEP DIVE INTO THE ROCKS Background Community development A - PowerPoint PPT Presentation

CCC 2014 DENVER DEEP DIVE INTO THE ROCKS Background Community development A technical problem Lessons I should have learned CCC 2014 DENVER ABOUT ME Work @ Schuberg Philis since 1.8 years Hobby: triathlon http:/


  1. CCC 2014 DENVER DEEP DIVE INTO THE ROCKS � Background � Community development � A technical problem � Lessons I should have learned

  2. CCC 2014 DENVER ABOUT ME � Work @ Schuberg Philis since 1.8 years � Hobby: triathlon http:/ /myfirstnorseman.onecht.net/ Also as a jury, coach and some others � Email: dahn@apache.org Twitter: SambalTriathlon (don’t use) Facebook: +/- 3 accounts (lurked@best) plus.google: DaanHoogland (hardly used)

  3. CCC 2014 DENVER AUDIENCE � This presentation is aimed at beginning open source or cloudstack developer whether proficient in programming or not. � It might be interesting to cloudstack veterans that are looking to improve development process of the community, be it by improving their own way of contributing or adjusting the processes we use.

  4. CCC 2014 DENVER HOW TO GET INVOLVED

  5. CCC 2014 DENVER HOW GETTING A PATCH ACCEPTED IN THE COMMUNITY IS SIMILAR TO GETTING YOU ACCEPTED

  6. CCC 2014 DENVER HOW NOT TO GET INVOLVED

  7. CCC 2014 DENVER PICK A GREAT REFACTORING JOB THAT IS EXTENDING INTO THE ENTIRE SYSTEM AND TRY TO TELL PEOPLE HOW TO DO IT

  8. CCC 2014 DENVER \\EBI\DAAN:~> LS -LTRA DOWNLOADS/0001-SDN-HOSTED-VPC-GATEWAYS-USING-LSWITCH.PATCH -RW-R--R--@ 1 DAAN STAFF 347998 MAR 26 11:12 DOWNLOADS/0001-SDN-HOSTED-VPC-GATEWAYS-USING- LSWITCH.PATCH .

  9. CCC 2014 DENVER IMPORTANT THINGS TO CONTRIBUTE WHEN GETTING INVOLVED

  10. CCC 2014 DENVER C O D E # S T T H E L I M A I L # C O D E # R D W B O A E V I E T H E R O U G H O N T H R R A C T I I N T E # T S ! ) A L S O S B U T W I K I ( F N T H E F S O # E D C O D G O O # U G S F I N D B S T Y L E C H E C K R A T # E C O D # J I R A # S D O C # O D E . N G ) C M E N T I F D O C U # ( S E L

  11. CCC 2014 DENVER C O D E # S T T H E L I M A I L # C O D E # R D W B O A E V I E T H E R O U G H O N T H R R A C T I I N T E # T S ! ) A L S O S B U T W I K I ( F N T H E F S O # E D C O D G O O # U G S F I N D B S T Y L E C H E C K R A T # E C O D # J I R A # S D O C # O D E N G ) C M E N T I F D O C U # ( S E L

  12. CCC 2014 DENVER C O D E # S T T H E L I M A I L # C O D E # R D W B O A R E V I E T H E R O U G H O N T H R A C T I I N T E # T S ! ) A L S O F S B U T W I K I ( N T H E F S O # E D C O D G O O # U G S F I N D B S T Y L E C H E C K R A T # E C O D # J I R A # S D O C # O D E N G ) C M E N T I F D O C U # ( S E L

  13. CCC 2014 DENVER THE CUSTOMER PROBLEM

  14. CCC 2014 DENVER THE CUSTOMER REQUEST Add the possibility to leverage the new Nicira NVP functionality to hook the private-gateway of VPC routers on to each other

  15. CCC 2014 DENVER THE ENVISIONED SOLUTION

  16. CCC 2014 DENVER http://localhost:8080/client/api? command=createPrivateGateway &response=json THE CORE CODE &sessionkey=xxx &physicalnetworkid=c71e08e7-c01d-4840-bd74- ffab517053fc &vpcid=be9acb3c-20eb-4e34-ab4c-3275185a9028 &ipaddress=10.10.10.2 &gateway=10.10.10.1 &netmask=255.255.255.0 &vlan=lswitch%3A%2F%2F3

  17. CCC 2014 DENVER PROBLEM ANAL YSIS A cross cutting concern: � vlan and vlanid are encoded all over and used interchangably � originally only numbers but also as uri � 123 equals vlan:/ /123

  18. CCC 2014 DENVER SOLUTIONS enum versus registration of types

  19. CCC 2014 DENVER A THOUGHT � no uuid à id mapping available

  20. CCC 2014 DENVER WHY THIS IS A PROBLEM isolation types/uris and broadcast types where designed into the system but there was no way to map a vlan on one of them and the meaning of the two was lost so only BroadcastDomainType got my attention

  21. CCC 2014 DENVER stt (nicira nvp) networks where added next came midonet then a whole lot more how they did it

  22. CCC 2014 DENVER Lswitch("lswitch", String.clas class) { ) { @Override public <T> URI public <T> URI toUri oUri(T v (T value alue) { ) { try { try { return ne eturn new URI(" w URI("ls lswit witch ch", ", value alue.toS oString tring(), null, null); (), null, null); } ca catch ( ch (URIS URISyntaxEx yntaxException eption e e) { ) { thr throw ne new w CloudRuntimeEx CloudRuntimeException eption(" ("Unable Unable t to o con onvert ert t to o br broadcas oadcast URI: " + v URI: " + value alue); ); } } /** * gets scheme specific part instead of host */ @Override

  23. CCC 2014 DENVER vlan vlanid vlannumber vlanuri broadcastDomainUri broadcastDomainId

  24. CCC 2014 DENVER - public String getVlanId() { - return vlanId; + public String getBroadcastUri() { + return broadcastUri;

  25. CCC 2014 DENVER BroadcastDomainType Vs IsolationType

  26. CCC 2014 DENVER - nic.setIsolationUri(IsolationType.Vlan.toUri(ip.getVlanTag())); - nic.setBroadcastUri(IsolationType.Vlan.toUri(ip.getVlanTag())); + nic.setIsolationUri(IsolationType.Vlan.toUri(ip.getBroadcastUri())); + nic.setBroadcastUri(IsolationType.Vlan.toUri(ip.getBroadcastUri()));

  27. CCC 2014 DENVER long vnetId = Long.parseLong(BroadcastDomainType.getValue(uri)); long long vlan vlan = = Long.parseL ong.parseLong ong(br broadcas oadcastUri. tUri.getHos getHost()); ()); long long vlan vlan = = Long. ong. parseL parseLong ong(Br Broadcas oadcastDomainT tDomainType ype.getV getValue alue(uri uri)); ));

  28. CCC 2014 DENVER HOW TO PROCEED NEXT make uuid à id mapping? register uri types including format instead of enum

  29. CCC 2014 DENVER WORK TO BE DONE the result of this work is not ideal, so I am hoping to get feedback on possible improvements

  30. CCC 2014 DENVER CONCLUSIONS

  31. CCC 2014 DENVER

  32. CCC 2014 DENVER introduce yourself by proving you can do one thing good at a time introduce your change by making the small preliminaries that pave the way

  33. CCC 2014 DENVER work on a branch and do it publicly submit a lot of parts to master ACS should find a way to make this possible for non committers in a gerrit or github way

  34. CCC 2014 DENVER SIMILARITIES PERSON PATCH bring one thing small changes to a good conclusion that build on each other before you start another be true to your ideals communicate both the but pragmatic about immediate and the end goal the work to be done not everybody that doesn’t in general: you are accepted say it is a good idea hates it unless.. not if.. you’re right. that doesn’t don’t break other code mean others are wrong

Recommend


More recommend