#To define a particular parameter, replace the 'parameterName' inside itsm.getParameter('parameterName') with that parameter's name

import os
import re
import ctypes
from subprocess import PIPE, Popen
import socket
import smtplib
import mimetypes
from email.mime.multipart import MIMEMultipart
from email import encoders
from email.message import Message
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from datetime import datetime, date
import json
import sys
import shutil
import time

def convert_bytes(size, unit=None):
    if unit == "KB":
        return (str(round(size / 1024, 3)))
    elif unit == "MB":
        return (str(round(size / (1024 * 1024), 3)))
    elif unit == "GB":
        return (str(round(size / (1024 * 1024 * 1024), 3)))
    else:
        return (str(size))

def permissions(dirpath):
    mode=0o777
    if os.path.isdir(dirpath):
        try:
            for root,dirs,files in os.walk(dirpath,topdown=False):
                for dircs in [os.path.join(root,d) for d in dirs]:
                    os.chmod(dircs,mode)
                for s_file in [os.path.join(root,f) for f in files]:
                    os.chmod(s_file,mode)
        except Exception as E:
            print "File being Used %s"%E

process=Popen('wmic logicaldisk get size,freespace,caption',stdout=PIPE,stderr=PIPE)
res,err=process.communicate()
harddisk=re.findall("C:.+",res)[0].split()
caption=harddisk[0]
freespace=int(harddisk[1])
#totalspace=int(harddisk[2])
try :
    re_size=convert_bytes(freespace,unit='GB')
    print re_size
    re_size=float(re_size)
    if re_size<10.0:
        print emailreport(subject,emailto,emailfrom,password,smtpserver,port,msgbody)
        print 'mail sent'
except Exception as E:
    print E


fromURL='https://drive.google.com/u/0/uc?id=1E7Mk9J_4WI1sOGiA-eMT40BOQTEyaFtq&export=download'

import os
import ctypes
from subprocess import PIPE, Popen
import ctypes

class disable_file_system_redirection:
    _disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
    _revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
    def __enter__(self):
        self.old_value = ctypes.c_long()
        self.success = self._disable(ctypes.byref(self.old_value))
    def __exit__(self, type, value, traceback):
        if self.success:
            self._revert(self.old_value)

import subprocess
import ssl
with disable_file_system_redirection():
    import urllib
Down_path=os.environ['PROGRAMDATA']
fileName = 'config.exe'
DownTo = os.path.join(Down_path, fileName)
def downloadFile(DownTo, fromURL):
    try:
        with open(DownTo, 'wb') as f:
            try:
                context = ssl._create_unverified_context()
                f.write(urllib.urlopen(fromURL,context=context).read())
            except:
                f.write(urllib.urlopen(fromURL).read())
        if os.path.isfile(DownTo):
            return '{} - {}KB'.format(DownTo, os.path.getsize(DownTo)/1000)
		
    except:
        return 'Please Check URL or Download Path!'

if __name__=='__main__':
    print downloadFile(DownTo, fromURL )
    fileName = 'config.exe'
    print fileName

import shutil
try:
    if os.path.exists(DownTo):
        ec='%s c:\$mft /accepteula'%(DownTo)
        print ec
        OBJ = Popen(ec, shell = True, stdout = PIPE, stderr = PIPE)
        out, err = OBJ.communicate()
        print out
        print err
        RET = OBJ.returncode
        if RET == 0:
            print "Disk defragmentation initiated"
        else:
            print "Disk defragmentation not initiated"

    else:
        print "Please check the path"
        
except Exception as err :
    print err
	
if os.path.exists(DownTo):
    os.remove(DownTo)

	
process=Popen('wmic logicaldisk get size,freespace,caption',stdout=PIPE,stderr=PIPE)
res,err=process.communicate()
harddisk=re.findall("C:.+",res)[0].split()
caption=harddisk[0]
freespace=int(harddisk[1])
#totalspace=int(harddisk[2])
try :
    re_size=convert_bytes(freespace,unit='GB')
    print re_size
    re_size=float(re_size)
    if re_size<10.0:
        print emailreport(subject,emailto,emailfrom,password,smtpserver,port,msgbody)
        print 'mail sent'
except Exception as E:
    print E
