Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
69f718d4
Commit
69f718d4
authored
Nov 17, 2020
by
jakelamotta
Committed by
neil
Dec 23, 2020
Browse files
Adds dnsapi support for Simply.com
parent
0982b98f
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_simply.sh
View file @
69f718d4
...
...
@@ -7,9 +7,9 @@
#
#SIMPLY_Api="https://api.simply.com/1/[ACCOUNTNAME]/[APIKEY]"
SIMPLY_Api_Default
=
"https://api.simply.com/1"
SIMPLY_Api
=
"https://api.simply.com/1"
######## Public functions #####################
#Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_simply_add
()
{
fulldomain
=
$1
...
...
@@ -26,23 +26,24 @@ dns_simply_add() {
_err
"invalid domain"
return
1
fi
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
_info
"Adding record"
if
!
_simply_add_record
"
$_domain
"
"
$_sub_domain
"
"
$txtvalue
"
;
then
if
!
_simply_add_record
"
$_domain
"
"
$_sub_domain
"
"
$txtvalue
"
;
then
_err
"Could not add DNS record"
return
1
fi
return
0
}
dns_simply_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
if
!
_simply_load_config
;
then
return
1
fi
...
...
@@ -50,7 +51,7 @@ dns_simply_rm() {
_simply_save_config
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
...
...
@@ -58,59 +59,52 @@ dns_simply_rm() {
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
_debug txtvalue
"
$txtvalue
"
_info
"Getting all existing records"
_debug
"
$txtvalue
"
_debug
"Getting existing records"
if
!
_simply_get_all_records
"
$_domain
"
;
then
_err
"invalid domain"
return
1
fi
records
=
$(
echo
"
$response
"
|
tr
'{'
"
\n
"
|
grep
'record_id\|type\|data\|\name'
|
sed
's/\"record_id/;\"record_id/'
|
tr
"
\n
"
' '
|
tr
-d
' '
|
tr
';'
' '
)
records
=
$(
echo
"
$response
"
|
tr
'{'
"
\n
"
|
grep
'record_id\|type\|data\|\name'
|
sed
's/\"record_id/;\"record_id/'
)
record_array
=(
`
echo
$records
|tr
-d
' '
|
tr
';'
' '
`
)
nr_of_deleted_records
=
0
_info
"Fetching txt record"
for
record
in
$records
;
do
_debug record
"
$record
"
record_data
=
$(
echo
"
$record
"
|
cut
-d
","
-f
3 |
sed
's/"//g'
|
grep
"data"
|
cut
-d
":"
-f
2
)
record_type
=
$(
echo
"
$record
"
|
cut
-d
","
-f
4 |
sed
's/"//g'
|
grep
"type"
|
cut
-d
":"
-f
2
)
_debug2 record_data
"
$record_data
"
_debug2 record_type
"
$record_type
"
if
[
"
$record_data
"
=
"
$txtvalue
"
]
&&
[
"
$record_type
"
=
"TXT"
]
;
then
record_id
=
$(
echo
"
$record
"
|
cut
-d
","
-f
1 |
grep
"record_id"
|
cut
-d
":"
-f
2
)
_info
"Deleting record
$record
"
_debug2 record_id
"
$record_id
"
if
[
"
$record_id
"
-gt
0
]
;
then
if
!
_simply_delete_record
"
$_domain
"
"
$_sub_domain
"
"
$record_id
"
;
then
_err
"Record with id
$record_id
could not be deleted"
return
1
fi
nr_of_deleted_records
=
1
break
else
_err
"Fetching record_id could not be done, this should not happen, exiting function. Failing record is
$record
"
break
for
((
i
=
0
;
i<
=
${#
record_array
[@]
}
;
i++
))
;
do
record
=
"
${
record_array
[
$i
]
}
"
if
[[
"
$record
"
==
*
"
$txtvalue
"
*
&&
"
$record
"
==
*
"TXT"
*
]]
;
then
_info
"Deleting record:
$record
"
record_id
=
`
echo
$record
|
cut
-d
","
-f
1 |
grep
"record_id"
|
cut
-d
":"
-f
2
`
if
[[
$record_id
-gt
0
]]
;
then
if
!
_simply_delete_record
"
$_domain
"
"
$_sub_domain
"
"
$record_id
"
;
then
_err
"Record with id
$record_id
could not be deleted"
return
1
fi
nr_of_deleted_records
=
1
break
else
_err
"Fetching record_id could not be done, this should not happen, exiting function. Failing record is
$record
"
break
fi
fi
done
if
[
"
$nr_of_deleted_records
"
-eq
0
]
;
then
_err
"No record deleted, the DNS record needs to be removed manually."
if
[
[
$nr_of_deleted_records
-eq
0
]
]
;
then
_err
"No record deleted, the DNS record needs to be removed manually."
else
_info
"Deleted
$nr_of_deleted_records
record"
fi
return
0
}
...
...
@@ -124,7 +118,7 @@ _simply_load_config() {
if
[
-z
"
$SIMPLY_Api
"
]
;
then
SIMPLY_Api
=
"
$SIMPLY_Api_Default
"
fi
if
[
-z
"
$SIMPLY_AccountName
"
]
||
[
-z
"
$SIMPLY_ApiKey
"
]
;
then
SIMPLY_AccountName
=
""
SIMPLY_ApiKey
=
""
...
...
@@ -147,8 +141,8 @@ _simply_save_config() {
}
_simply_get_all_records
()
{
domain
=
$1
domain
=
$1
if
!
_simply_rest GET
"my/products/
$domain
/dns/records"
;
then
return
1
fi
...
...
@@ -188,14 +182,14 @@ _simply_add_record() {
domain
=
$1
sub_domain
=
$2
txtval
=
$3
data
=
"{
\"
name
\"
:
\"
$sub_domain
\"
,
\"
type
\"
:
\"
TXT
\"
,
\"
data
\"
:
\"
$txtval
\"
,
\"
priority
\"
:0,
\"
ttl
\"
: 3600}"
if
!
_simply_rest POST
"my/products/
$domain
/dns/records"
"
$data
"
;
then
_err
"Adding record not successfull!"
return
1
fi
return
0
}
...
...
@@ -203,14 +197,14 @@ _simply_delete_record() {
domain
=
$1
sub_domain
=
$2
record_id
=
$3
_debug
record_id
"Delete record with id
$record_id
"
_debug
"Delete record with id
$record_id
"
if
!
_simply_rest DELETE
"my/products/
$domain
/dns/records/
$record_id
"
;
then
_err
"Deleting record not successfull!"
return
1
fi
return
0
}
...
...
@@ -218,10 +212,10 @@ _simply_rest() {
m
=
$1
ep
=
"
$2
"
data
=
"
$3
"
_debug
2 d
ata
"
$data
"
_debug
2 ep
"
$ep
"
_debug
2 m
"
$m
"
_debug
"D
ata
:
$data
"
_debug
"Methodcall:
$ep
"
_debug
"Call type:
$m
"
export
_H1
=
"Content-Type: application/json"
...
...
@@ -235,13 +229,12 @@ _simply_rest() {
_err
"error
$ep
"
return
1
fi
_debug2 response
"
$response
"
if
_contains
"
$response
"
"Invalid account authorization"
;
then
_err
"It seems that your api key or accountnumber is not correct."
return
1
fi
return
0
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment