diff --git a/datacenterlight/urls.py b/datacenterlight/urls.py
index 65401b13..8a83df71 100644
--- a/datacenterlight/urls.py
+++ b/datacenterlight/urls.py
@@ -1,6 +1,7 @@
from django.conf.urls import url
-from .views import IndexView, BetaProgramView, LandingProgramView, BetaAccessView, PricingView, SuccessView, PaymentOrderView, OrderConfirmationView
+from .views import IndexView, BetaProgramView, LandingProgramView, \
+ BetaAccessView, PricingView, SuccessView, PaymentOrderView, OrderConfirmationView
urlpatterns = [
diff --git a/datacenterlight/views.py b/datacenterlight/views.py
index 592d59cb..53abf02d 100644
--- a/datacenterlight/views.py
+++ b/datacenterlight/views.py
@@ -13,12 +13,11 @@ from django.core.exceptions import ValidationError
from django.views.decorators.cache import cache_control
from django.conf import settings
from utils.forms import BillingAddressForm, UserBillingAddressForm
-from membership.models import StripeCustomer
-from hosting.models import HostingOrder, HostingBill
+from hosting.models import HostingOrder
from utils.stripe_utils import StripeUtils
from datetime import datetime
from membership.models import CustomUser, StripeCustomer
-
+from oca.pool import WrongIdError
from opennebula_api.models import OpenNebulaManager
from opennebula_api.serializers import VirtualMachineTemplateSerializer, VirtualMachineSerializer
@@ -33,11 +32,12 @@ class SuccessView(TemplateView):
def get(self, request, *args, **kwargs):
if 'specs' not in request.session or 'user' not in request.session:
return HttpResponseRedirect(reverse('datacenterlight:index'))
- else :
+ else:
del request.session['specs']
del request.session['user']
return render(request, self.template_name)
+
class PricingView(TemplateView):
template_name = "datacenterlight/pricing.html"
@@ -56,7 +56,7 @@ class PricingView(TemplateView):
)
context = {
'error': 'connection'
- }
+ }
return render(request, self.template_name, context)
@@ -93,7 +93,6 @@ class BetaAccessView(FormView):
success_message = "Thank you, we will contact you as soon as possible"
def form_valid(self, form):
-
context = {
'base_url': "{0}://{1}".format(self.request.scheme, self.request.get_host())
}
@@ -190,9 +189,9 @@ class IndexView(CreateView):
@cache_control(no_cache=True, must_revalidate=True, no_store=True)
def get(self, request, *args, **kwargs):
- if 'specs' in request.session :
+ if 'specs' in request.session:
del request.session['specs']
- if 'user' in request.session :
+ if 'user' in request.session:
del request.session['user']
try:
manager = OpenNebulaManager()
@@ -207,7 +206,7 @@ class IndexView(CreateView):
)
context = {
'error': 'connection'
- }
+ }
return render(request, self.template_name, context)
def post(self, request):
@@ -242,7 +241,7 @@ class IndexView(CreateView):
'disk_size': storage,
'price': price
}
-
+
this_user = {
'name': name,
'email': email
@@ -332,17 +331,16 @@ class PaymentOrderView(FormView):
final_price = specs.get('price')
token = form.cleaned_data.get('token')
try:
- custom_user = CustomUser.objects.get(email=user.get('email'))
+ CustomUser.objects.get(email=user.get('email'))
except CustomUser.DoesNotExist:
password = CustomUser.get_random_password()
# Register the user, and do not send emails
- CustomUser.register(user.get('name'),
- password,
- user.get('email'),
- app='dcl',
+ CustomUser.register(user.get('name'),
+ password,
+ user.get('email'),
+ app='dcl',
base_url=None, send_email=False)
-
# Get or create stripe customer
customer = StripeCustomer.get_or_create(email=user.get('email'),
token=token)
@@ -368,21 +366,21 @@ class PaymentOrderView(FormView):
return render(request, self.template_name, context)
charge = charge_response.get('response_object')
-
+
# Create OpenNebulaManager
manager = OpenNebulaManager(email=settings.OPENNEBULA_USERNAME,
password=settings.OPENNEBULA_PASSWORD)
-
+
# Create a vm using logged user
vm_id = manager.create_vm(
template_id=vm_template_id,
specs=specs,
vm_name="{email}-{template_name}-{date}".format(
- email=user.get('email'),
- template_name=template.get('name'),
- date=int(datetime.now().strftime("%s")))
+ email=user.get('email'),
+ template_name=template.get('name'),
+ date=int(datetime.now().strftime("%s")))
)
-
+
# Create a Hosting Order
order = HostingOrder.create(
price=final_price,
@@ -390,10 +388,11 @@ class PaymentOrderView(FormView):
customer=customer,
billing_address=billing_address
)
-
+
# Create a Hosting Bill
- bill = HostingBill.create(
- customer=customer, billing_address=billing_address)
+ # not used
+ # bill = HostingBill.create(
+ # customer=customer, billing_address=billing_address)
# Create Billing Address for User if he does not have one
if not customer.user.billing_addresses.count():
@@ -410,9 +409,9 @@ class PaymentOrderView(FormView):
# If the Stripe payment was successed, set order status approved
order.set_approved()
-
+
vm = VirtualMachineSerializer(manager.get_vm(vm_id)).data
-
+
context = {
'name': user.get('name'),
'email': user.get('email'),
@@ -438,10 +437,12 @@ class PaymentOrderView(FormView):
else:
return self.form_invalid(form)
+
class OrderConfirmationView(DetailView):
template_name = "datacenterlight/order_detail.html"
context_object_name = "order"
model = HostingOrder
+
def get_context_data(self, **kwargs):
# Get context
context = super(DetailView, self).get_context_data(**kwargs)
diff --git a/hosting/views.py b/hosting/views.py
index c5956ade..a5cea6c9 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -1,8 +1,9 @@
+from oca.pool import WrongNameError, WrongIdError
from django.shortcuts import render
from django.http import Http404
from django.core.urlresolvers import reverse_lazy, reverse
from django.contrib.auth.mixins import LoginRequiredMixin
-from django.views.generic import View, CreateView, FormView, ListView, DetailView,\
+from django.views.generic import View, CreateView, FormView, ListView, DetailView, \
DeleteView, TemplateView, UpdateView
from django.http import HttpResponseRedirect
from django.contrib import messages
@@ -15,9 +16,7 @@ from guardian.mixins import PermissionRequiredMixin
from stored_messages.settings import stored_messages_settings
from stored_messages.models import Message
from stored_messages.api import mark_read
-from django.utils.safestring import mark_safe>>>>>>> master
-246
-
+from django.utils.safestring import mark_safe
from membership.models import CustomUser, StripeCustomer
from utils.stripe_utils import StripeUtils
@@ -29,13 +28,11 @@ from .forms import HostingUserSignupForm, HostingUserLoginForm, UserHostingKeyFo
from .mixins import ProcessVMSelectionMixin
from opennebula_api.models import OpenNebulaManager
-from opennebula_api.serializers import VirtualMachineSerializer,\
+from opennebula_api.serializers import VirtualMachineSerializer, \
VirtualMachineTemplateSerializer
from django.utils.translation import ugettext_lazy as _
-from oca.pool import WrongNameError, WrongIdError
-
CONNECTION_ERROR = "Your VMs cannot be displayed at the moment due to a backend \
connection error. please try again in a few minutes."
@@ -140,7 +137,6 @@ class HostingPricingView(ProcessVMSelectionMixin, View):
'templates': templates,
'configuration_options': configuration_options,
-
}
return context
@@ -171,7 +167,6 @@ class IndexView(View):
return context
def get(self, request, *args, **kwargs):
-
context = self.get_context_data()
return render(request, self.template_name, context)
@@ -209,15 +204,17 @@ class SignupValidateView(TemplateView):
def get_context_data(self, **kwargs):
context = super(SignupValidateView, self).get_context_data(**kwargs)
- login_url = '' + str(_('login')) +''
+ login_url = '' + str(_('login')) + ''
home_url = 'Data Center Light'
- message='{signup_success_message} {lurl} \
+ message = '{signup_success_message} {lurl} \
{go_back} {hurl}.'.format(
- signup_success_message = _('Thank you for signing up. We have sent an email to you. Please follow the instructions in it to activate your account. Once activated, you can login using'),
- go_back = _('Go back to'),
- lurl = login_url,
- hurl = home_url
- )
+ signup_success_message=_(
+ 'Thank you for signing up. We have sent an email to you. '
+ 'Please follow the instructions in it to activate your account. Once activated, you can login using'),
+ go_back=_('Go back to'),
+ lurl=login_url,
+ hurl=home_url
+ )
context['message'] = mark_safe(message)
context['section_title'] = _('Sign up')
return context
@@ -229,20 +226,20 @@ class SignupValidatedView(SignupValidateView):
def get_context_data(self, **kwargs):
context = super(SignupValidateView, self).get_context_data(**kwargs)
validated = CustomUser.validate_url(self.kwargs['validate_slug'])
- login_url = '' + str(_('login')) +''
- section_title=_('Account activation')
+ login_url = '' + str(_('login')) + ''
+ section_title = _('Account activation')
if validated:
- message='{account_activation_string}
{login_string} {lurl}.'.format(
- account_activation_string = _("Your account has been activated."),
- login_string = _("You can now"),
- lurl = login_url)
+ message = '{account_activation_string}
{login_string} {lurl}.'.format(
+ account_activation_string=_("Your account has been activated."),
+ login_string=_("You can now"),
+ lurl=login_url)
else:
home_url = 'Data Center Light'
message = '{sorry_message}
{go_back_to} {hurl}'.format(
- sorry_message = _("Sorry. Your request is invalid."),
- go_back_to = _('Go back to'),
- hurl = home_url
- )
+ sorry_message=_("Sorry. Your request is invalid."),
+ go_back_to=_('Go back to'),
+ hurl=home_url
+ )
context['message'] = mark_safe(message)
context['section_title'] = section_title
return context
@@ -545,7 +542,7 @@ class PaymentVMView(LoginRequiredMixin, FormView):
return render(request, self.template_name, context)
# For now just get first one
user_key = UserHostingKey.objects.filter(
- user=self.request.user).first()
+ user=self.request.user).first()
# Create a vm using logged user
vm_id = manager.create_vm(
diff --git a/membership/models.py b/membership/models.py
index 68af27ab..96bf4c50 100644
--- a/membership/models.py
+++ b/membership/models.py
@@ -85,7 +85,8 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
dg.send_mail(to=user.email)
elif app == 'dcl':
dcl_text = settings.DCL_TEXT
- dcl_from_address = settings.DCL_SUPPORT_FROM_ADDRESS
+ # not used
+ # dcl_from_address = settings.DCL_SUPPORT_FROM_ADDRESS
user.is_active = False
if send_email is True:
@@ -93,9 +94,10 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
'subject': str(_('Activate your ')) + dcl_text + str(_(' account')),
'from_address': settings.DCL_SUPPORT_FROM_ADDRESS,
'to': user.email,
- 'context': {'base_url' : base_url,
- 'activation_link' : reverse('hosting:validate', kwargs={'validate_slug': user.validation_slug}),
- 'dcl_text' : dcl_text
+ 'context': {'base_url': base_url,
+ 'activation_link': reverse('hosting:validate',
+ kwargs={'validate_slug': user.validation_slug}),
+ 'dcl_text': dcl_text
},
'template_name': 'user_activation',
'template_path': 'datacenterlight/emails/'
@@ -189,7 +191,7 @@ class StripeCustomer(models.Model):
if stripe_data.get('response_object'):
stripe_cus_id = stripe_data.get('response_object').get('id')
- stripe_customer = StripeCustomer.objects.\
+ stripe_customer = StripeCustomer.objects. \
create(user=user, stripe_id=stripe_cus_id)
return stripe_customer
diff --git a/opennebula_api/models.py b/opennebula_api/models.py
index 5b163493..383062f1 100644
--- a/opennebula_api/models.py
+++ b/opennebula_api/models.py
@@ -208,7 +208,7 @@ class OpenNebulaManager():
except:
raise ConnectionRefusedError
- def create_vm(self, template_id, specs, ssh_key=None):
+ def create_vm(self, template_id, specs, ssh_key=None, vm_name=None):
template = self.get_template(template_id)
vm_specs_formatter = """
@@ -256,7 +256,6 @@ class OpenNebulaManager():
image=image,
image_uname=image_uname)
-
vm_specs += ""
if ssh_key:
vm_specs += "{ssh}".format(ssh=ssh_key)
@@ -276,7 +275,7 @@ class OpenNebulaManager():
'release',
vm_id
)
-
+
if vm_name is not None:
self.oneadmin_client.call(
'vm.rename',