Compare commits

..

19 Commits

Author SHA1 Message Date
49f39726e5 Adding A type record dns adding 2020-12-13 17:00:19 +01:00
b762463de9 Pylint 2020-12-13 14:44:00 +01:00
f81c156097 Update drone.yml
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-29 11:12:41 +01:00
1e621d3ab9 Update drone.yml
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-29 10:59:23 +01:00
f28ef80208 Update drone.yml
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-29 10:56:22 +01:00
ea3d47a9bc Update drone.yml
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-29 10:52:24 +01:00
c808018c21 Update drone.yml
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-29 10:50:23 +01:00
7001dbe550 Update dron ci
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-28 18:42:37 +01:00
584ad86f33 switching to alpine python
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-28 18:36:20 +01:00
46883644b2 Adding pylint install to drone ci
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-28 18:25:51 +01:00
0db7f68ae8 fixing image name in drone config
Some checks failed
continuous-integration/drone/push Build is failing
2020-11-28 18:16:10 +01:00
72530e2db5 fixing image name in drone config
Some checks failed
continuous-integration/drone/push Build encountered an error
2020-11-28 18:14:39 +01:00
43a2ddc152 Adding architecture to drone config
Some checks failed
continuous-integration/drone/push Build encountered an error
2020-11-28 18:12:36 +01:00
6d98a877e1 Adding drone-ci
Some checks failed
continuous-integration/drone/push Build was killed
2020-11-28 18:02:07 +01:00
834b214dcf Update gitignore 2020-11-28 18:01:43 +01:00
4d125b09cf Adding descr on argument 2020-11-28 17:37:44 +01:00
5c91678ac6 Using default TTL 2020-04-07 14:23:44 +02:00
0d9360c809 Adding test if subdomain already exists 2020-04-07 13:50:07 +02:00
93b83f08d0 Function to add CNAME entry to zone 2020-04-07 12:08:52 +02:00
5 changed files with 64 additions and 12 deletions

17
.drone.yml Normal file
View File

@@ -0,0 +1,17 @@
kind: pipeline
type: docker
name: syntax
platform:
os: linux
arch: arm
steps:
- name: syntax
pull: if-not-exists
image: python:3.7-slim-buster
commands:
- apt update
- apt install -y pylint libcurl4-openssl-dev libssl-dev python-dev gcc
- pip3 install -r requirements.txt
- pylint *.py

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
!.drone.yml
# IGNORE
data/*
*.yml
*.conf

View File

@@ -2,8 +2,8 @@
import requests
import ovh
import pycurl
import yaml
import pycurl
try:
input = raw_input
@@ -34,7 +34,7 @@ for bill in bills:
status = c.getinfo(c.RESPONSE_CODE)
c.close()
output.close()
if (status == 404):
if status == 404:
file = open(file_path)
c = pycurl.Curl()
c.setopt(c.URL, url)

View File

@@ -1,18 +1,41 @@
#!/usr/bin/python3
import requests
import argparse
import json
import ovh
import pycurl
import argparse
import requests
try:
input = raw_input
except NameError:
pass
parser = argparse.ArgumentParser(description='Process arguments')
parser.add_argument('domain', metavar='method', type=str, help='Function to use')
parser.add_argument('--method', metavar='fr', type=str, help='domain to request from')
def addCNAME(client,domain,fr,to):
result = client.get(base_url + "/record",fieldType="CNAME",subDomain=fr)
if not result:
result = client.post(base_url + "/record",fieldType="CNAME",subDomain=fr,target=to)
print(json.dumps(result,indent=4))
result = client.post(base_url+ "/refresh")
print("Refresh zone trigger")
else:
print("CNAME already existing")
def addA(client,domain,fr,to):
result = client.get(base_url + "/record",fieldType="A",subDomain=fr)
if not result:
result = client.post(base_url + "/record",fieldType="A",subDomain=fr,target=to)
print(json.dumps(result,indent=4))
result = client.post(base_url+ "/refresh")
print("Refresh zone trigger")
else:
print("A record already existing")
parser = argparse.ArgumentParser(description="Process arguments")
parser.add_argument("domain", metavar="domain", type=str, help="Domain to request")
parser.add_argument("--method", metavar="type", type=str, help="Function to use. Ex: addCNAME")
parser.add_argument("--src", metavar="src", type=str, help="Source subdomain")
parser.add_argument("--dest", metavar="dst", type=str, help="Dest IP or domain")
args = parser.parse_args()
# Instantiate. Visit https://api.ovh.com/createToken/?GET=/me
@@ -20,7 +43,13 @@ args = parser.parse_args()
client = ovh.Client()
# Grab bill list
zone = client.get('/domain/zone/' + args.domain + '/record')
base_url = "/domain/zone/" + args.domain
zone = client.get(base_url + "/record")
if args.method == "list":
for id in zone:
entry = client.get('/domain/zone/' + args.domain + '/record/'+str(id))
entry = client.get(base_url + "/record/"+str(id))
print(entry)
elif args.method == "addCNAME":
addCNAME(client,args.domain,args.src,args.dest)
elif args.method == "addA":
addA(client,args.domain,args.src,args.dest)

4
requirements.txt Normal file
View File

@@ -0,0 +1,4 @@
argparse
pycurl
ovh
requests