You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by om...@apache.org on 2019/03/05 17:05:30 UTC
[incubator-dlab] branch EPMCDLAB-1186 updated: fixed issue with
supporting of artifactory
This is an automated email from the ASF dual-hosted git repository.
omartushevskyi pushed a commit to branch EPMCDLAB-1186
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/EPMCDLAB-1186 by this push:
new b9ec223 fixed issue with supporting of artifactory
b9ec223 is described below
commit b9ec223a395e46018a08e72d1728a1cc4a6827dc
Author: Oleh Martushevskyi <Ol...@epam.com>
AuthorDate: Tue Mar 5 19:05:19 2019 +0200
fixed issue with supporting of artifactory
---
.../src/general/lib/aws/actions_lib.py | 5 ++-
.../src/general/lib/os/debian/edge_lib.py | 37 +++++++++++++++++++---
.../src/general/scripts/aws/edge_prepare.py | 37 ++++++++++++++++++++--
3 files changed, 71 insertions(+), 8 deletions(-)
diff --git a/infrastructure-provisioning/src/general/lib/aws/actions_lib.py b/infrastructure-provisioning/src/general/lib/aws/actions_lib.py
index 35c8b3d..bb1c9f5 100644
--- a/infrastructure-provisioning/src/general/lib/aws/actions_lib.py
+++ b/infrastructure-provisioning/src/general/lib/aws/actions_lib.py
@@ -1425,7 +1425,10 @@ def installing_python(region, bucket, user_name, cluster_name, application='', p
local('sudo touch /etc/pip.conf')
local('sudo echo "[global]" >> /etc/pip.conf')
local('sudo echo "timeout = 600" >> /etc/pip.conf')
- local('sudo -i virtualenv /opt/python/python' + python_version)
+ try:
+ local('sudo -i virtualenv /opt/python/python' + python_version)
+ except:
+ local('sudo -i virtualenv --no-setuptools /opt/python/python' + python_version)
venv_command = '/bin/bash /opt/python/python' + python_version + '/bin/activate'
pip_command = '/opt/python/python' + python_version + '/bin/pip' + python_version[:3]
if region == 'cn-north-1':
diff --git a/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py b/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py
index 96c9b33..c3403ff 100644
--- a/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py
@@ -22,6 +22,23 @@ import os
import sys
from fabric.api import *
from fabric.contrib.files import exists
+import ipaddress
+
+
+def validate_ip_address(ip_address):
+ try:
+ ipaddress.ip_address(u'{}'.format(ip_address))
+ return True
+ except ValueError:
+ return False
+
+
+def validate_ip_network(ip_network):
+ try:
+ ipaddress.ip_network(u'{}'.format(ip_network))
+ return True
+ except ValueError:
+ return False
def configure_http_proxy_server(config):
@@ -41,12 +58,24 @@ def configure_http_proxy_server(config):
sudo('sed -i "s|LDAP_AUTH_PATH|{}|g" /etc/squid/squid.conf'.format('/usr/lib/squid/basic_ldap_auth'))
replace_string = ''
if os.environ['local_repository_enabled'] == 'True':
- config['vpc_cidrs'].append('{}/32'.format(os.environ['local_repository_host']))
- config['vpc_cidrs'].append('{}/32'.format(os.environ['local_repository_parent_proxy_host']))
- config['vpc_cidrs'].append('{}/32'.format(os.environ['local_repository_nginx_proxy_host']))
+ if validate_ip_address(os.environ['local_repository_host']):
+ config['vpc_cidrs'].append('{}/32'.format(os.environ['local_repository_host']))
+ else:
+ config['vpc_cidrs'].append(os.environ['local_repository_host'])
+ if validate_ip_address(os.environ['local_repository_parent_proxy_host']):
+ config['vpc_cidrs'].append('{}/32'.format(os.environ['local_repository_parent_proxy_host']))
+ else:
+ config['vpc_cidrs'].append(os.environ['local_repository_parent_proxy_host'])
+ if validate_ip_address(os.environ['local_repository_nginx_proxy_host']):
+ config['vpc_cidrs'].append('{}/32'.format(os.environ['local_repository_nginx_proxy_host']))
+ else:
+ config['vpc_cidrs'].append(os.environ['local_repository_nginx_proxy_host'])
config['vpc_cidrs'] = set(config['vpc_cidrs'])
for cidr in config['vpc_cidrs']:
- replace_string += 'acl AWS_VPC_CIDR dst {}\\n'.format(cidr)
+ if validate_ip_network(cidr):
+ replace_string += 'acl AWS_VPC_CIDR dst {}\\n'.format(cidr)
+ else:
+ replace_string += 'acl AllowedDomains dstdomain {}\\n'.format(cidr)
sudo('sed -i "s|VPC_CIDRS|{}|g" /etc/squid/squid.conf'.format(replace_string))
replace_string = ''
for cidr in config['allowed_ip_cidr']:
diff --git a/infrastructure-provisioning/src/general/scripts/aws/edge_prepare.py b/infrastructure-provisioning/src/general/scripts/aws/edge_prepare.py
index f27c747..577e5b9 100644
--- a/infrastructure-provisioning/src/general/scripts/aws/edge_prepare.py
+++ b/infrastructure-provisioning/src/general/scripts/aws/edge_prepare.py
@@ -24,6 +24,25 @@ from dlab.meta_lib import *
import sys, time, os
from dlab.actions_lib import *
import traceback
+import ipaddress
+import socket
+
+
+def validate_ip_address(ip_address):
+ try:
+ ipaddress.ip_address(u'{}'.format(ip_address))
+ return True
+ except ValueError:
+ return False
+
+
+def get_host_by_name(domain):
+ try:
+ return socket.gethostbyname(domain)
+ except Exception as err:
+ print('Error: {0}'.format(err))
+ append_result("Failed to get host by domain name.", str(err))
+ sys.exit(1)
if __name__ == "__main__":
@@ -298,25 +317,37 @@ if __name__ == "__main__":
}
])
if os.environ['local_repository_enabled'] == 'True':
+ if validate_ip_address(os.environ['local_repository_nginx_proxy_host']):
+ nginx_proxy_host = os.environ['local_repository_nginx_proxy_host']
+ else:
+ nginx_proxy_host = get_host_by_name(os.environ['local_repository_nginx_proxy_host'])
+ if validate_ip_address(os.environ['local_repository_host']):
+ repository_host = os.environ['local_repository_host']
+ else:
+ repository_host = get_host_by_name(os.environ['local_repository_host'])
+ if validate_ip_address(os.environ['local_repository_parent_proxy_host']):
+ parent_proxy_host = os.environ['local_repository_parent_proxy_host']
+ else:
+ parent_proxy_host = get_host_by_name(os.environ['local_repository_parent_proxy_host'])
edge_sg_egress.append(
{
"PrefixListIds": [],
"FromPort": 80,
- "IpRanges": [{"CidrIp": "{}/32".format(os.environ['local_repository_nginx_proxy_host'])}],
+ "IpRanges": [{"CidrIp": "{}/32".format(nginx_proxy_host)}],
"ToPort": 80, "IpProtocol": "tcp", "UserIdGroupPairs": []
})
edge_sg_egress.append(
{
"PrefixListIds": [],
"FromPort": 443,
- "IpRanges": [{"CidrIp": "{}/32".format(os.environ['local_repository_host'])}],
+ "IpRanges": [{"CidrIp": "{}/32".format(repository_host)}],
"ToPort": 443, "IpProtocol": "tcp", "UserIdGroupPairs": []
})
edge_sg_egress.append(
{
"PrefixListIds": [],
"FromPort": int(os.environ['local_repository_parent_proxy_port']),
- "IpRanges": [{"CidrIp": "{}/32".format(os.environ['local_repository_parent_proxy_host'])}],
+ "IpRanges": [{"CidrIp": "{}/32".format(parent_proxy_host)}],
"ToPort": int(os.environ['local_repository_parent_proxy_port']),
"IpProtocol": "tcp", "UserIdGroupPairs": []
})
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org