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