Http to https redirect.
Change-Id: Iffde3117b7d94e92991c4e7d5fb0cc4ff2a873c8
This commit is contained in:
parent
4eb2314533
commit
4a7dc9166d
@ -596,7 +596,13 @@ class ConductorEndpoint(object):
|
|||||||
except exception:
|
except exception:
|
||||||
return exception
|
return exception
|
||||||
|
|
||||||
|
cctx = self.wamp_agent_client.prepare(server=board.agent)
|
||||||
|
cctx.call(ctx, 'add_redirect', board_dns=en_webservice.dns,
|
||||||
|
zone=en_webservice.zone, dns=newwbs.name)
|
||||||
|
cctx.call(ctx, 'reload_proxy')
|
||||||
|
|
||||||
newwbs.create()
|
newwbs.create()
|
||||||
|
|
||||||
return serializer.serialize_entity(ctx, newwbs)
|
return serializer.serialize_entity(ctx, newwbs)
|
||||||
|
|
||||||
def destroy_webservice(self, ctx, webservice_id):
|
def destroy_webservice(self, ctx, webservice_id):
|
||||||
@ -632,6 +638,16 @@ class ConductorEndpoint(object):
|
|||||||
except exception:
|
except exception:
|
||||||
return exception
|
return exception
|
||||||
|
|
||||||
|
board = objects.Board.get_by_uuid(ctx, wbsrv.board_uuid)
|
||||||
|
if board.agent == None:
|
||||||
|
raise exception.BoardInvalidStatus(uuid=board.uuid,
|
||||||
|
status=board.status)
|
||||||
|
|
||||||
|
cctx = self.wamp_agent_client.prepare(server=board.agent)
|
||||||
|
cctx.call(ctx, 'remove_redirect', board_dns=en_webservice.dns,
|
||||||
|
zone=en_webservice.zone, dns=wbsrv.name)
|
||||||
|
cctx.call(ctx, 'reload_proxy')
|
||||||
|
|
||||||
wbsrv.destroy()
|
wbsrv.destroy()
|
||||||
designate.delete_record(wbsrv.name + "." + en_webservice.dns,
|
designate.delete_record(wbsrv.name + "." + en_webservice.dns,
|
||||||
en_webservice.zone)
|
en_webservice.zone)
|
||||||
@ -717,7 +733,6 @@ class ConductorEndpoint(object):
|
|||||||
cctx = self.wamp_agent_client.prepare(server=board.agent)
|
cctx = self.wamp_agent_client.prepare(server=board.agent)
|
||||||
cctx.call(ctx, 'enable_webservice', board=dns,
|
cctx.call(ctx, 'enable_webservice', board=dns,
|
||||||
https_port=https_port, http_port=http_port, zone=zone)
|
https_port=https_port, http_port=http_port, zone=zone)
|
||||||
cctx.call(ctx, 'reload_proxy')
|
|
||||||
|
|
||||||
LOG.debug('Configure Web Proxy on Board %s with dns %s (email: %s) ',
|
LOG.debug('Configure Web Proxy on Board %s with dns %s (email: %s) ',
|
||||||
board.uuid, dns, email)
|
board.uuid, dns, email)
|
||||||
@ -731,6 +746,9 @@ class ConductorEndpoint(object):
|
|||||||
except exception:
|
except exception:
|
||||||
return exception
|
return exception
|
||||||
|
|
||||||
|
cctx.call(ctx, 'add_redirect', board_dns=dns, zone=zone)
|
||||||
|
cctx.call(ctx, 'reload_proxy')
|
||||||
|
|
||||||
return serializer.serialize_entity(ctx, en_webservice)
|
return serializer.serialize_entity(ctx, en_webservice)
|
||||||
|
|
||||||
def disable_webservice(self, ctx, board_uuid):
|
def disable_webservice(self, ctx, board_uuid):
|
||||||
@ -784,6 +802,10 @@ class ConductorEndpoint(object):
|
|||||||
|
|
||||||
cctx = self.wamp_agent_client.prepare(server=board.agent)
|
cctx = self.wamp_agent_client.prepare(server=board.agent)
|
||||||
cctx.call(ctx, 'disable_webservice', board=webservice.dns)
|
cctx.call(ctx, 'disable_webservice', board=webservice.dns)
|
||||||
|
|
||||||
|
# cctx.call(ctx, 'remove_redirect', board_dns=en_webservice.dns,
|
||||||
|
# zone=en_webservice.zone)
|
||||||
|
|
||||||
cctx.call(ctx, 'reload_proxy')
|
cctx.call(ctx, 'reload_proxy')
|
||||||
|
|
||||||
webservice.destroy()
|
webservice.destroy()
|
||||||
|
@ -71,6 +71,39 @@ def remove(board):
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
def string_redirect(board, zone, dns=None):
|
||||||
|
if not dns:
|
||||||
|
host = "%s.%s" % (board, zone)
|
||||||
|
else:
|
||||||
|
host = "%s.%s.%s" % (dns, board, zone)
|
||||||
|
string = "if ($host = %s) { return 301 https://$host$request_uri; }\n" % (
|
||||||
|
host)
|
||||||
|
return string
|
||||||
|
|
||||||
|
|
||||||
|
def insert_entry(line, lines):
|
||||||
|
try:
|
||||||
|
lines.index(line)
|
||||||
|
except Exception:
|
||||||
|
lines.insert(4, line)
|
||||||
|
return lines
|
||||||
|
|
||||||
|
|
||||||
|
def remove_entry(line, lines):
|
||||||
|
try:
|
||||||
|
lines.remove(line)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return lines
|
||||||
|
|
||||||
|
|
||||||
|
def save_conf(f_conf, lines):
|
||||||
|
f = open(f_conf, "w")
|
||||||
|
lines = "".join(lines)
|
||||||
|
f.write(lines)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
class ProxyManager(Proxy):
|
class ProxyManager(Proxy):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -91,3 +124,25 @@ class ProxyManager(Proxy):
|
|||||||
LOG.debug('Disabling WebService on board %s',
|
LOG.debug('Disabling WebService on board %s',
|
||||||
board)
|
board)
|
||||||
remove(board)
|
remove(board)
|
||||||
|
|
||||||
|
def add_redirect(self, ctx, board_dns, zone, dns=None):
|
||||||
|
line = string_redirect(board_dns, zone, dns)
|
||||||
|
path = CONF.nginx.nginx_path + "/servers/" + board_dns
|
||||||
|
LOG.debug('Adding redirect %s on %s', line, path)
|
||||||
|
|
||||||
|
f = open(str(CONF.nginx.nginx_path + "/servers/" + board_dns), "r")
|
||||||
|
lines = f.readlines()
|
||||||
|
f.close()
|
||||||
|
lines = insert_entry(line, lines)
|
||||||
|
save_conf(path, lines)
|
||||||
|
|
||||||
|
def remove_redirect(self, ctx, board_dns, zone, dns=None):
|
||||||
|
path = CONF.nginx.nginx_path + "/servers/" + board_dns
|
||||||
|
line = string_redirect(board_dns, zone, dns)
|
||||||
|
LOG.debug('Removing redirect %s on %s', line, path)
|
||||||
|
|
||||||
|
f = open(path, "r")
|
||||||
|
lines = f.readlines()
|
||||||
|
f.close()
|
||||||
|
lines = remove_entry(line, lines)
|
||||||
|
save_conf(path, lines)
|
||||||
|
Loading…
Reference in New Issue
Block a user