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
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
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
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
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
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
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
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
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
#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
#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
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