Пример #1
0
def run():

    r = requests.get('http://controller:8774/v2.1/os-hypervisors',
                     headers=header.get())
    hosts = ast.literal_eval(r.content)  # Retorna o conteúdo da URL consultada
    hosts = hosts['hypervisors']

    discovered = []

    for host in hosts:

        state = host['state']
        if state == 'up':
            hostname = host['hypervisor_hostname']
            discovered.append(hostname)
            mac.set(hostname)

    file = open("registered.txt", "w+")
    file.write(str(discovered))
    file.close()

    if len(discovered) > 0:
        print '%s Hosts registrados!' % len(discovered)
    else:
        print '\nNenhum host foi encontrado!\n'
    return discovered
Пример #2
0
def run():

	r = requests.get('http://controller:8774/v2.1/os-hypervisors', headers=header.get())
	hosts = ast.literal_eval(r.content) # Returns the content of the queried URL
	hosts = hosts['hypervisors']

	discovered = []

	for host in hosts:

		state = host['state']
		if state == 'up':
			hostname = host['hypervisor_hostname']
			discovered.append(hostname)
			mac.set(hostname)

	file = open("registered.txt", "w+")
	file.write(str(discovered)) # the discovered hosts are written to a file
	file.close()

	if len(discovered)>0:
		print '%s Registered Hosts!'%len(discovered)
	else:
		print '\nNo hosts found!\n'
	return discovered
Пример #3
0
def get(host_id):  # O método deve receber um host_id e o headers(token)

    try:
        r = requests.get('http://controller:8774/v2.1/os-hypervisors/%s' %
                         host_id,
                         headers=header.get())
        vms = json.loads(r.content)
        vms = vms[u'hypervisor']["running_vms"]

    except:
        vms = -1  # Caso o id não seja localizado na consulta, o comando resultará erro, então vms será zero

    return vms  # Retorna a quantidade de vms em execução no host
Пример #4
0
def get(host_id):  # The method must receive a host_id and the headers (token)

    try:
        r = requests.get('http://controller:8774/v2.1/os-hypervisors/%s' %
                         host_id,
                         headers=header.get())
        vms = json.loads(r.content)
        vms = vms[u'hypervisor']["running_vms"]

    except:
        vms = -1  # If the id is not found in the query, the command will result in an error, then vms will be zero

    return vms  # Returns the amount of vms running on the host
Пример #5
0
def getcctv_epg(playtype):
    playreg = re.compile(u'CCTV[0-9]+[Kk+]?',re.I)
    today =  str(datetime.date.today().strftime("%Y-%m-%d"))
    playdate =  str(datetime.date.today().strftime("%Y%m%d"))
    hs = '''
DNT: 1
Referer: https://tv.cctv.com/epg/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
''' 
    headers = header.get(hs)
    t = int(time.time())
    url = 'https://api.cntv.cn/epg/getEpgInfoByChannelNew?c={}&serviceId=tvcctv&d={}&t=jsonp&cb=setItem1'.format(playtype,playdate)
    s = requests.session()
    try:
        headers['User-Agent'] = ua.chrome
        res = s.get(url,headers=headers)
        res = re.findall(r'setItem1\((.*)\)',res.text)[0]
        res = json.loads(res)
        cntvlists =  res['data'][playtype]['list']
        if cntvlists:
            if playtype == "cctv5plus":
                playtype = 'cctv5+'
            if playtype == "cctv5jilu":
                playtype = 'cctv9'
            if playtype == "cctv5child":
                playtype = 'cctv14'
            rkey = playtype.upper() + "@" + today
            #if r.exists(rkey):
            #    return True
            playlist = [ {"start":unix_local(x['startTime']),"end":unix_local(x['endTime']),"title":x['title'].replace("'",""),"desc":""} for x in cntvlists ]

            if len(playlist) < 6:
                return False
            playdict = {}
            playdict["channel_name"] =  playtype.upper()
            playdict["date"] = today
            playdict["epg_data"] = playlist
            playdict["url"] = "cntv.cn"
            r.set(rkey,json.dumps(playdict).decode("utf-8"))
            r.expire(rkey,604800)
            return True
    except Exception,e:
        logit.info(playtype,e)
        print playtype,e
        return False
Пример #6
0
def gettvmao_epg(cid):
    baseurl = "https://www.tvmao.com"
    playreg = re.compile(u'CCTV[0-9]+[Kk+]?|.*卫视|CGTN', re.I)
    today = str(datetime.date.today().strftime("%Y-%m-%d"))
    week = time.strftime("%w", time.localtime())
    hs = '''
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
        Accept-Encoding: gzip, deflate, br
        Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
        Cache-Control: max-age=0
        Connection: keep-alive
        DNT: 1
        Host: www.tvmao.com
        referer: https://www.tvmao.com/program/
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
'''
    headers = header.get(hs)
    t = int(time.time())
    url = 'https://www.tvmao.com/program/{}-w{}.html'.format(cid, week)
    s = requests.session()
    try:
        res = s.get(url, headers=headers)
        res.encoding = 'utf-8'
        html = etree.HTML(res.text)
        node_list = html.xpath('//div[@class="chlsnav"]/ul/li')
        channellist = {}
        for node in node_list:
            try:
                url = node.xpath('./a/@href')[0] if node.xpath(
                    './a/@href') else None
                playname = node.xpath('./a/text()')[0] if node.xpath(
                    './a/text()') else None
                playname = re.sub(u'频道|电视台|-', '', playname)
                if url and playname:
                    channellist[playname] = url
            except:
                pass
    except Exception, e:
        print(str(e))
        return
Пример #7
0
def get():

    r = requests.get('http://controller:8774/v2.1/os-hypervisors',
                     headers=header.get())
    hosts = ast.literal_eval(
        r.content)  # Returns the content of the queried URL
    hosts = hosts['hypervisors']
    ## Tests
    # hosts = [{'status': 'enabled', 'state': 'down', 'id': 1, 'hypervisor_hostname': 'compute1'},{'status': 'enabled', 'state': 'down', 'id': 1, 'hypervisor_hostname': 'compute2'},{'status': 'enabled', 'state': 'down', 'id': 1, 'hypervisor_hostname': 'compute3'},{'status': 'enabled', 'state': 'up', 'id': 1, 'hypervisor_hostname': 'compute6'},{'status': 'enabled', 'state': 'up', 'id': 1, 'hypervisor_hostname': 'compute5'}]

    status = []

    try:
        file = open("registered.txt", "r+")
        registered = file.read()
        registered = ast.literal_eval(registered)
    except:
        print 'É preciso registrar os hosts do ambiente'
        registered = []

    for host in hosts:
        if host['hypervisor_hostname'] in registered:  # Check only the hosts registered in the registered.txt file
            state = host['state']
            host_id = host['id']
            hostname = host['hypervisor_hostname']
            vms_runnig = vms.get(host_id)
            if state == 'up':
                ram = ram_usage.get(hostname)
            else:
                ram = 0
            host_status = "{'id': " + str(
                host_id
            ) + ", 'hostname': '" + hostname + "', 'state': '" + state + "', 'vms': " + str(
                vms_runnig) + ", 'ram': " + str(ram) + "}"
            host_status = ast.literal_eval(host_status)

            status.append(
                host_status
            )  ## Adds information from each active host to a list...

    return status
Пример #8
0
def get():

    r = requests.get('http://controller:8774/v2.1/os-hypervisors',
                     headers=header.get())
    hosts = ast.literal_eval(r.content)  # Retorna o conteúdo da URL consultada
    hosts = hosts['hypervisors']
    ## Testes
    # hosts = [{'status': 'enabled', 'state': 'down', 'id': 1, 'hypervisor_hostname': 'compute1'},{'status': 'enabled', 'state': 'down', 'id': 1, 'hypervisor_hostname': 'compute2'},{'status': 'enabled', 'state': 'down', 'id': 1, 'hypervisor_hostname': 'compute3'},{'status': 'enabled', 'state': 'up', 'id': 1, 'hypervisor_hostname': 'compute6'},{'status': 'enabled', 'state': 'up', 'id': 1, 'hypervisor_hostname': 'compute5'}]

    status = []

    try:
        file = open("registered.txt", "r+")
        registered = file.read()
        registered = ast.literal_eval(registered)
    except:
        print 'É preciso registrar os hosts do ambiente'
        registered = []

    for host in hosts:
        if host['hypervisor_hostname'] in registered:  # Verifica apenas os hosts registrados no arquivo registered.txt
            state = host['state']
            host_id = host['id']
            hostname = host['hypervisor_hostname']
            vms_runnig = vms.get(host_id)
            if state == 'up':
                ram = ram_usage.get(hostname)
            else:
                ram = 0
            host_status = "{'id': " + str(
                host_id
            ) + ", 'hostname': '" + hostname + "', 'state': '" + state + "', 'vms': " + str(
                vms_runnig) + ", 'ram': " + str(ram) + "}"
            host_status = ast.literal_eval(host_status)

            status.append(
                host_status
            )  ## Adiciona as as informações de cada host ativo em uma lista

    return status
Пример #9
0
def gettvsou_epg(playtype):
    playreg = re.compile(u'CCTV[0-9]+[Kk+]?', re.I)
    today = str(datetime.date.today().strftime("%Y-%m-%d"))
    hs = '''
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
        Accept-Encoding: gzip, deflate, br
        Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
        Cache-Control: max-age=0
        Connection: keep-alive
        DNT: 1
        Host: www.tvsou.com
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
'''
    headers = header.get(hs)
    t = int(time.time())
    url = 'https://www.tvsou.com/epg/{}/'.format(playtype)
    s = requests.session()
    try:
        res = s.get(url, headers=headers)
        res.encoding = 'utf-8'
        html = etree.HTML(res.text)
        node_list = html.xpath('//ul[@class="c_list_main"]/li')
        channellist = {}
        for node in node_list:
            try:
                url = node.xpath('./a/@href')[0]
                playname = node.xpath('./a/i/text()')[0]
                playname = re.sub(u'频道|电视台|-', '', playname)
                if url and playname:
                    channellist[playname] = url
            except:
                pass
    except Exception, e:
        logit.info(str(e))
        print(str(e))
        return
Пример #10
0
#coding: utf-8

import requests, ast, header, subprocess, time, sys

r = requests.get('http://*****:*****@controller '. admin-openrc && openstack server create --image cirros --flavor=1CPU_128RAM %s'" % vm
Пример #11
0
#coding: utf-8

import requests, servers_by_host, header

source_host = 'compute6'
destination_host = 'compute5'
servers_to_migrate = servers_by_host.get(source_host)

body = """
{
    "os-migrateLive": {
        "host": {destination_host},
        "block_migration": false,
        "disk_over_commit": false
    }
}
"""

for server in servers_to_migrate:

    r = requests.post('http://controller:8774/v2.1/servers/%s/action' % server,
                      data=body,
                      headers=header.get())
    print server + ' migrado para ' + destination_host
    print r
    print r.content
Пример #12
0
def getcctv_epg(pdate):
    #此文本需要包含格式 节目:id
    with open('/home/epg/migu', 'r') as f:
        vals = f.read()
    idname = header.get(vals)

    playreg = re.compile(u'CCTV[0-9]+[Kk+]?', re.I)
    today = str(datetime.date.today().strftime("%Y-%m-%d"))
    playdate = pdate.replace('-', '')
    hs = '''
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
Cache-Control: no-cache
Connection: keep-alive
DNT: 1
Host: webapi.miguvideo.com
Pragma: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
'''
    headers = header.get(hs)
    t = int(time.time())

    s = requests.session()
    for key in idname:
        try:
            pid = idname[key]
            url = 'http://webapi.miguvideo.com/gateway/live/v2/tv-programs-data/{0}/{1}'.format(
                pid, playdate)
            headers['User-Agent'] = ua.chrome
            res = s.get(url, headers=headers)
            rescode = json.loads(res.text)['code']
            if rescode != 200:
                logit.warning(key)
                continue
            migulists = json.loads(res.text)['body']['program'][0]['content']
            if migulists:
                rkey = key.upper() + "@" + pdate
                if r.exists(rkey):
                    continue
                playlist = [{
                    "start": x['startHours'],
                    "end": x['endHours'],
                    "title": x['contName'].replace("'", ""),
                    "desc": ""
                } for x in migulists]

                if len(playlist) < 6:
                    continue
                playdict = {}
                playdict["channel_name"] = key.upper()
                playdict["date"] = pdate
                playdict["epg_data"] = playlist
                playdict["url"] = "migu.com"
                r.set(rkey, json.dumps(playdict).decode("utf-8"))
                r.expire(rkey, 604800)
                logit.info(rkey)
                time.sleep(2)
        except Exception, e:
            logit.info(playtype + str(e))
            print playtype, e
            return 0
def get(host): # O método deve receber um host_id

	r = requests.get('http://controller:8774/v2.1/os-hypervisors/%s/servers'%host, headers=header.get())
	servers = json.loads(r.content)
	servers= servers['hypervisors'][0]['servers']

	servers_ids = range(len(servers))
	for server in servers:
		servers_ids[servers.index(server)] = server['uuid']

	return servers_ids # Retorna uma lista com os ids dos servers em execução no host