Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / vmapi / models.py @ 28662998

History | View | Annotate | Download (2.3 kB)

1 724e17a6 Kostas Papadimitriou
# Copyright 2012 GRNET S.A. All rights reserved.
2 724e17a6 Kostas Papadimitriou
#
3 724e17a6 Kostas Papadimitriou
# Redistribution and use in source and binary forms, with or
4 724e17a6 Kostas Papadimitriou
# without modification, are permitted provided that the following
5 724e17a6 Kostas Papadimitriou
# conditions are met:
6 724e17a6 Kostas Papadimitriou
#
7 724e17a6 Kostas Papadimitriou
#   1. Redistributions of source code must retain the above
8 724e17a6 Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
9 724e17a6 Kostas Papadimitriou
#      disclaimer.
10 724e17a6 Kostas Papadimitriou
#
11 724e17a6 Kostas Papadimitriou
#   2. Redistributions in binary form must reproduce the above
12 724e17a6 Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
13 724e17a6 Kostas Papadimitriou
#      disclaimer in the documentation and/or other materials
14 724e17a6 Kostas Papadimitriou
#      provided with the distribution.
15 724e17a6 Kostas Papadimitriou
#
16 724e17a6 Kostas Papadimitriou
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 724e17a6 Kostas Papadimitriou
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 724e17a6 Kostas Papadimitriou
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 724e17a6 Kostas Papadimitriou
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 724e17a6 Kostas Papadimitriou
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 724e17a6 Kostas Papadimitriou
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 724e17a6 Kostas Papadimitriou
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 724e17a6 Kostas Papadimitriou
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 724e17a6 Kostas Papadimitriou
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 724e17a6 Kostas Papadimitriou
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 724e17a6 Kostas Papadimitriou
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 724e17a6 Kostas Papadimitriou
# POSSIBILITY OF SUCH DAMAGE.
28 724e17a6 Kostas Papadimitriou
#
29 724e17a6 Kostas Papadimitriou
# The views and conclusions contained in the software and
30 724e17a6 Kostas Papadimitriou
# documentation are those of the authors and should not be
31 724e17a6 Kostas Papadimitriou
# interpreted as representing official policies, either expressed
32 724e17a6 Kostas Papadimitriou
# or implied, of GRNET S.A.
33 724e17a6 Kostas Papadimitriou
34 a9e5e76a Kostas Papadimitriou
from logging import getLogger
35 a9e5e76a Kostas Papadimitriou
36 724e17a6 Kostas Papadimitriou
from django.utils import simplejson as json
37 724e17a6 Kostas Papadimitriou
from django.core.urlresolvers import reverse
38 d2c9adac Christos Stavrakakis
39 d2c9adac Christos Stavrakakis
from synnefo.lib import join_urls
40 724e17a6 Kostas Papadimitriou
41 41a7fae7 Christos Stavrakakis
from synnefo.logic.servers import server_created
42 a9e5e76a Kostas Papadimitriou
from synnefo.vmapi import backend, get_key, get_uuid, settings
43 724e17a6 Kostas Papadimitriou
44 a9e5e76a Kostas Papadimitriou
log = getLogger('synnefo.vmapi')
45 724e17a6 Kostas Papadimitriou
46 68b952f9 Christos Stavrakakis
47 724e17a6 Kostas Papadimitriou
def create_server_params(sender, created_vm_params, **kwargs):
48 724e17a6 Kostas Papadimitriou
    json_value = json.dumps(created_vm_params)
49 724e17a6 Kostas Papadimitriou
    uuid = get_uuid()
50 724e17a6 Kostas Papadimitriou
    key = get_key(uuid)
51 a9e5e76a Kostas Papadimitriou
    log.info("Setting vmapi params with key %s for %s", key, sender)
52 724e17a6 Kostas Papadimitriou
    backend.set(key, json_value)
53 724e17a6 Kostas Papadimitriou
54 e3ff6830 Georgios D. Tsoukalas
    path = reverse("vmapi_server_params", args=[uuid]).lstrip('/')
55 cbc4c781 Georgios D. Tsoukalas
    config_url = join_urls(settings.BASE_HOST, path)
56 79b7dbb7 Christos Stavrakakis
    # inject sender (vm) with its configuration url
57 acd8cd7d Christos Stavrakakis
    setattr(sender, 'config_url', config_url)
58 724e17a6 Kostas Papadimitriou
    return uuid
59 724e17a6 Kostas Papadimitriou
60 724e17a6 Kostas Papadimitriou
server_created.connect(create_server_params)