Ejemplo n.º 1
0
def vcp_home(request):
    if request.method == 'POST':
        form = VcenterConfigurationForm(request.POST)
        if form.is_valid():

            if form.install_plugin():
                form.save()
                obj = models.VcenterConfiguration.objects.latest('id')
                obj.vc_version = utils.get_plugin_version()
                obj.vc_password = ''
                obj.save()
            else:
                return JsonResp(
                    request, error=True, message=_(
                        form.vcp_status))
        else:
            form.is_update_needed()
            return render(request, "vcp/index.html", {'form': form})
    try:
        obj = models.VcenterConfiguration.objects.latest('id')
        form = VcenterConfigurationForm(instance=obj)
        form.fields['vc_ip'].widget.attrs['readonly'] = True
        form.fields['vc_username'].widget.attrs['readonly'] = True
        form.fields['vc_port'].widget.attrs['readonly'] = True
        form.fields['vc_management_ip'].widget.attrs['readonly'] = True
        form.is_update_needed()
    except:
        form = VcenterConfigurationForm()
        form.is_update_needed()
    return render(request, "vcp/index.html", {'form': form})
Ejemplo n.º 2
0
    def upgrade_plugin(self):
         try:
          obj = models.VcenterConfiguration.objects.latest('id')
          ip=str(obj.vc_ip)
          username = str(obj.vc_username)
          password = str(obj.vc_password)
          port = str(obj.vc_port)
          manage_ip = str(obj.vc_management_ip)
          status_flag = self.validate_vcp_param(ip,port,username,password,True)
          if status_flag == True:

            status_flag=utils.update_plugin_zipfile(ip,username,password,port,'UPGRADE',utils.get_plugin_version())
            if status_flag == True:
              sys_guiprotocol = self.get_sys_protocol()
              plug=plugin.PluginManager()
              status_flag=plug.upgrade_vCenter_plugin(ip,username,password,port,manage_ip,sys_guiprotocol)
              if status_flag == True :
                 self.vcp_is_update_available = False
                 obj.vc_version = utils.get_plugin_version()
                 obj.save()
                 return True
              else:
                 self.vcp_status = 'Upgrade failed. Please contact support.'
                 return False
            else:
              self.vcp_status = 'Upgrade failed. Please contact support.'
              return False
          else:
            self.vcp_status = status_flag
            return False
         except Exception as ex:
           self.vcp_status = 'Upgrade failed. Please contact support.'
           return False
Ejemplo n.º 3
0
def vcp_home(request):
    aux_enable_https = models.VcenterAuxSettings.objects.latest(
        'id').vc_enable_https
    if request.method == 'POST':
        form = VcenterConfigurationForm(request.POST)
        if form.is_valid():

            if form.install_plugin():
                form.save()
                obj = models.VcenterConfiguration.objects.latest('id')
                obj.vc_version = utils.get_plugin_version()
                obj.vc_password = ''
                obj.save()
            else:
                return JsonResp(request,
                                error=True,
                                message=_(form.vcp_status))
        else:
            form.is_update_needed()
            return render(request, "vcp/index.html", {
                'form': form,
                'aux_enable_https': aux_enable_https,
            })
    try:
        obj = models.VcenterConfiguration.objects.latest('id')
        form = VcenterConfigurationForm(instance=obj)
        form.fields['vc_ip'].widget.attrs['readonly'] = True
        form.is_update_needed()
    except:
        form = VcenterConfigurationForm()
        form.is_update_needed()
    return render(request, "vcp/index.html", {
        'form': form,
        'aux_enable_https': aux_enable_https,
    })
Ejemplo n.º 4
0
 def is_update_needed(self):
     version_new = utils.get_plugin_version();
     self.vcp_available_version = version_new
     try:
        obj = models.VcenterConfiguration.objects.latest('id')
        version_old = obj.vc_version
        self.vcp_version = obj.vc_version
        self.vcp_is_installed = True
        if self.compare_version(version_new,version_old):
          self.vcp_is_update_available = True
          self.vcp_available_version = version_new
        else:
          self.vcp_is_update_available = False
     except Exception as ex:
       self.vcp_is_update_available = False
       return False
Ejemplo n.º 5
0
 def get_extension(self,manage_ip,sys_guiprotocol):
     cp = SafeConfigParser()
     cp.read(self.property_file_path)
     company = cp.get('RegisterParam', 'company')
     descr = cp.get('RegisterParam','description')
     key = cp.get('RegisterParam','key')
     version = utils.get_plugin_version()
     if 'Not available' in version :
        return version
     label = cp.get('RegisterParam','label')
     file_address=  'static/'+utils.get_plugin_file_name()
     final_url = sys_guiprotocol+"://"+manage_ip+"/"+file_address
     description = vim.Description()
     description.label = label
     description.summary = descr
     ext = vim.Extension()
     ext.company = company
     ext.version = version
     ext.key = key
     ext.description = description
     ext.lastHeartbeatTime = datetime.datetime.now()

     server_info = [1];
     server_info[0] = vim.Extension.ServerInfo()
     server_info[0].serverThumbprint = ''
     server_info[0].type = sys_guiprotocol.upper()
     server_info[0].url = final_url
     server_info[0].description = description
     server_info[0].company = company
     admin_emails = [1]
     admin_emails[0] = 'none'
     server_info[0].adminEmail = admin_emails
     ext.server = server_info;

     client = [1]
     client[0] = vim.Extension.ClientInfo()
     client[0].url = final_url
     client[0].company = company
     client[0].version = version
     client[0].description = description
     client[0].type = "vsphere-client-serenity"

     ext.client=client;
     return ext;
Ejemplo n.º 6
0
    def get_extension(self, vcp_url, thumb_print):
        try:
            cp = SafeConfigParser()
            cp.read(self.property_file_path)
            company = cp.get('RegisterParam', 'company')
            descr = cp.get('RegisterParam', 'description')
            key = cp.get('RegisterParam', 'key')
            events = cp.get('RegisterParam', 'events').split(",")
            tasks = cp.get('RegisterParam', 'tasks').split(",")
            version = utils.get_plugin_version()
            if 'Not available' in version:
                return version
            label = cp.get('RegisterParam', 'label')
            sys_guiprotocol = vcp_url.split(':')[0]

            description = vim.Description()
            description.label = label
            description.summary = descr
            ext = vim.Extension()
            ext.company = company
            ext.version = version
            ext.key = key
            ext.description = description
            ext.lastHeartbeatTime = datetime.datetime.now()

            server_info = vim.Extension.ServerInfo()
            server_info.serverThumbprint = thumb_print
            server_info.type = sys_guiprotocol.upper()
            server_info.url = vcp_url
            server_info.description = description
            server_info.company = company
            server_info.adminEmail = ['ADMIN EMAIL']
            ext.server = [server_info]

            client = vim.Extension.ClientInfo()
            client.url = vcp_url
            client.company = company
            client.version = version
            client.description = description
            client.type = "vsphere-client-serenity"
            ext.client = [client]

            event_info = []
            for e in events:
                ext_event_type_info = vim.Extension.EventTypeInfo()
                ext_event_type_info.eventID = e
                event_info.append(ext_event_type_info)

            task_info = []
            for t in tasks:
                ext_type_info = vim.Extension.TaskTypeInfo()
                ext_type_info.taskID = t
                task_info.append(ext_type_info)

            ext.taskList = task_info
            ext.eventList = event_info
            resource_list = self.create_event_keyvalue_pairs()
            if isinstance(resource_list, str):
                return resource_list
            ext.resourceList = resource_list

            return ext
        except ConfigParser.NoOptionError as ex:
            return 'Property Missing : ' + str(ex)
        except Exception as ex:
            return str(ex).replace("'", "").replace("<", "").replace(">", "")
Ejemplo n.º 7
0
    def install_plugin(self):
      try:
        ip = str(self.cleaned_data['vc_ip'])
        port = str(self.cleaned_data['vc_port'])
        manage_ip = str(self.cleaned_data['vc_management_ip'])
        password = str(self.cleaned_data['vc_password'])
        username = str(self.cleaned_data['vc_username'])
        status_flag = self.validate_vcp_param(ip,port,username,password,False)
        if status_flag == True:

              status_flag = utils.update_plugin_zipfile(ip,username,password,port,'NEW',utils.get_plugin_version())
              if status_flag == True:

                 sys_guiprotocol = self.get_sys_protocol()
                 plug=plugin.PluginManager()
                 status_flag = plug.install_vCenter_plugin(ip,username,password,port,manage_ip,sys_guiprotocol)
                 if status_flag == True :
                      self.vcp_is_installed = True
                      self.vcp_is_update_available = False
                      models.VcenterConfiguration.objects.all().delete()#  Just for cleaning purpose
                      return True
                 elif 'permission' in status_flag:
                      self.vcp_status = status_flag
                      return False
                 else :
                      self.vcp_status = 'Installation failed. Please contact support.'
                      return False
              else :
                 self.vcp_status = 'Installation failed. Please contact support.'
                 return False
        else:
             self.vcp_status = status_flag
             return False

      except Exception as ex:
          self.vcp_status = 'Installation failed. Please contact support.'
          return False
Ejemplo n.º 8
0
    def get_extension(self, vcp_url, thumb_print):
        try:
            cp = SafeConfigParser()
            cp.read(self.property_file_path)
            company = cp.get('RegisterParam', 'company')
            descr = cp.get('RegisterParam', 'description')
            key = cp.get('RegisterParam', 'key')
            events = cp.get('RegisterParam', 'events').split(",")
            tasks = cp.get('RegisterParam', 'tasks').split(",")
            version = utils.get_plugin_version()
            if 'Not available' in version:
                return version
            label = cp.get('RegisterParam', 'label')
            sys_guiprotocol = vcp_url.split(':')[0]

            description = vim.Description()
            description.label = label
            description.summary = descr
            ext = vim.Extension()
            ext.company = company
            ext.version = version
            ext.key = key
            ext.description = description
            ext.lastHeartbeatTime = datetime.datetime.now()

            server_info = vim.Extension.ServerInfo()
            server_info.serverThumbprint = thumb_print
            server_info.type = sys_guiprotocol.upper()
            server_info.url = vcp_url
            server_info.description = description
            server_info.company = company
            server_info.adminEmail = ['ADMIN EMAIL']
            ext.server = [server_info]

            client = vim.Extension.ClientInfo()
            client.url = vcp_url
            client.company = company
            client.version = version
            client.description = description
            client.type = "vsphere-client-serenity"
            ext.client = [client]

            event_info = []
            for e in events:
                ext_event_type_info = vim.Extension.EventTypeInfo()
                ext_event_type_info.eventID = e
                event_info.append(ext_event_type_info)

            task_info = []
            for t in tasks:
                ext_type_info = vim.Extension.TaskTypeInfo()
                ext_type_info.taskID = t
                task_info.append(ext_type_info)

            ext.taskList = task_info
            ext.eventList = event_info
            resource_list = self.create_event_keyvalue_pairs()
            if isinstance(resource_list, str):
                return resource_list
            ext.resourceList = resource_list

            return ext
        except ConfigParser.NoOptionError as ex:
            return 'Property Missing : ' + str(ex)
        except Exception as ex:
            return str(ex).replace("'", "").replace("<", "").replace(">", "")