From 34580b6514155970e1bd2c9800d450981f70c975 Mon Sep 17 00:00:00 2001 From: "M.Ravi" Date: Tue, 29 Aug 2017 17:51:58 +0200 Subject: [PATCH] Refactored saving public key functionality to opennebula_api.models.save_public_key. Also, now creating hosting VMs loaded by default with ONEADMIN_USER_SSH_PUBLIC_KEY --- hosting/views.py | 47 ++++++++++++++--------------------------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/hosting/views.py b/hosting/views.py index f6150190..3acc3f11 100644 --- a/hosting/views.py +++ b/hosting/views.py @@ -27,8 +27,8 @@ from membership.models import CustomUser, StripeCustomer from utils.stripe_utils import StripeUtils from utils.forms import BillingAddressForm, PasswordResetRequestForm, \ UserBillingAddressForm -from utils.views import PasswordResetViewMixin, PasswordResetConfirmViewMixin, \ - LoginViewMixin +from utils.views import PasswordResetViewMixin, \ + PasswordResetConfirmViewMixin, LoginViewMixin from utils.mailer import BaseEmail from .models import HostingOrder, HostingBill, HostingPlan, UserHostingKey from .forms import HostingUserSignupForm, HostingUserLoginForm, \ @@ -43,8 +43,9 @@ import logging logger = logging.getLogger(__name__) -CONNECTION_ERROR = "Your VMs cannot be displayed at the moment due to a backend \ - connection error. please try again in a few minutes." +CONNECTION_ERROR = "Your VMs cannot be displayed at the moment due to a \ + backend connection error. please try again in a few \ + minutes." class DjangoHostingView(ProcessVMSelectionMixin, View): @@ -457,30 +458,14 @@ class SSHKeyCreateView(LoginRequiredMixin, FormView): }) owner = self.request.user - # Get all VMs belonging to the user - allorders = HostingOrder.objects.filter(customer__user=owner) - if len(allorders) > 0: - logger.debug("The user {} has 1 or more VMs. We need to configure " - "the ssh keys.".format(self.request.user.email)) - hosts = [order.vm_id for order in allorders] - - - else: - logger.debug("The user {} has no VMs. We don't need to configure " - "the ssh keys.".format(self.request.user.email)) - # manager = OpenNebulaManager() - # - # # Get user ssh key - # public_key = str(form.cleaned_data.get('public_key', '')) - # # Add ssh key to user - # try: - # manager.add_public_key( - # user=owner, public_key=public_key, merge=True) - # except ConnectionError: - # pass - # except WrongNameError: - # pass - + manager = OpenNebulaManager( + email=owner.email, + password=owner.password + ) + public_key = form.cleaned_data['public_key'] + if type(public_key) is bytes: + public_key = public_key.decode() + manager.save_public_key([public_key]) return HttpResponseRedirect(self.success_url) def post(self, request, *args, **kwargs): @@ -612,16 +597,12 @@ class PaymentVMView(LoginRequiredMixin, FormView): 'form': form }) return render(request, self.template_name, context) - # For now just get first one - user_key = UserHostingKey.objects.filter( - user=self.request.user).first() # Create a vm using logged user vm_id = manager.create_vm( template_id=vm_template_id, - # XXX: Confi specs=specs, - ssh_key=user_key.public_key, + ssh_key=settings.ONEADMIN_USER_SSH_PUBLIC_KEY, ) # Create a Hosting Order