Feature allow concurrent access to VIMs
[osm/Features.git] / Release3 / allow_concurrent_access_to_VIMs.md
1 # Allow concurrent access to VIMs  #
2
3 ## Proposer ##
4 - Alfonso Tierno (Telefonica)
5 - Gerardo Garcia (Telefonica)
6 - Francisco-Javier Ramon (Telefonica)
7
8 ## Type ##
9 **Feature**
10
11 ## Target MDG/TF ##
12 RO
13
14 ## Description ##
15 Currently, OSM does not support concurrent actions over more than one 
16 datacenter. That becomes even more problematic when the response time in one of 
17 VIMs is really long or when there is no response at all (e.g. because of a communication problem), since it affects the operations in the rest of sites as well.
18
19 In order to solve this issue, it is required to enable the support of 
20 asynchronous operations in OSM components.
21
22 ## Demo or definition of done ##
23 Check that several deployments over the different datacenters can be done in parallel.
24
25 ## REQUIREMENTS ##
26 ( Implementation details )
27 At RO:
28 - New thread per VIM/credential (in the future a pool of threads to use uppon necessity)
29     - anwers asynchronously and operates to VIM using the current vimconnector
30     - works both with synchronous and asynchronous VIM operations
31     - caches in memory VIM information: VMs, images,... periodically refreshed
32 - vimconnector changes:
33     - Class is created/destroyed every time needed. As before
34     - Constructor will receive a new python dict variable called persisten_info={}
35         - All modifications over this inside the class, available next time class is created
36         - Can be used for store login information, tokens, etc.
37         - Only if needed it can be stored at database 
38     - New function for checking if VIM address and credentials are ok. "check_credentials()"
39         - Return None if ok, or raises an exception on error
40         - Remove this cheks from vimconnector constructor