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 2020/02/19 13:45:14 UTC

[incubator-dlab] branch DLAB-1546 created (now a72d83d)

This is an automated email from the ASF dual-hosted git repository.

omartushevskyi pushed a change to branch DLAB-1546
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git.


      at a72d83d  [DLAB-1546]: added name convention changes

This branch includes the following new commits:

     new a72d83d  [DLAB-1546]: added name convention changes

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 01/01: [DLAB-1546]: added name convention changes

Posted by om...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

omartushevskyi pushed a commit to branch DLAB-1546
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit a72d83dbf4edc73b95548d726bd702e754a52ed4
Author: Oleh Martushevskyi <Ol...@epam.com>
AuthorDate: Wed Feb 19 15:44:58 2020 +0200

    [DLAB-1546]: added name convention changes
---
 .../src/general/scripts/aws/ssn_configure.py       | 497 +++++++++++----------
 .../src/general/scripts/aws/ssn_prepare.py         | 480 +++++++++++---------
 2 files changed, 527 insertions(+), 450 deletions(-)

diff --git a/infrastructure-provisioning/src/general/scripts/aws/ssn_configure.py b/infrastructure-provisioning/src/general/scripts/aws/ssn_configure.py
index a4d6dbc..16187aa 100644
--- a/infrastructure-provisioning/src/general/scripts/aws/ssn_configure.py
+++ b/infrastructure-provisioning/src/general/scripts/aws/ssn_configure.py
@@ -21,12 +21,23 @@
 #
 # ******************************************************************************
 
-from dlab.fab import *
-from dlab.actions_lib import *
-import sys, os, json
+# from dlab.fab import *
+# from dlab.actions_lib import *
+# import sys, os, json
+# from fabric.api import *
+# from dlab.ssn_lib import *
+# import traceback
+
+import logging
+import sys
+import os
 from fabric.api import *
-from dlab.ssn_lib import *
+import dlab.ssn_lib
+import dlab.fab
+import dlab.actions_lib
+import dlab.meta_lib
 import traceback
+import json
 
 if __name__ == "__main__":
     local_log_filename = "{}_{}.log".format(os.environ['conf_resource'], os.environ['request_id'])
@@ -34,84 +45,93 @@ if __name__ == "__main__":
     logging.basicConfig(format='%(levelname)-8s [%(asctime)s]  %(message)s',
                         level=logging.DEBUG,
                         filename=local_log_filepath)
-    instance = 'ssn'
+    ssn_conf = dict()
+    ssn_conf['instance'] = 'ssn'
 
     try:
         logging.info('[DERIVING NAMES]')
         print('[DERIVING NAMES]')
-        service_base_name = os.environ['conf_service_base_name'] = replace_multi_symbols(
-            os.environ['conf_service_base_name'].lower()[:12], '-', True)
-        role_name = service_base_name.lower().replace('-', '_') + '-ssn-Role'
-        role_profile_name = service_base_name.lower().replace('-', '_') + '-ssn-Profile'
-        policy_name = service_base_name.lower().replace('-', '_') + '-ssn-Policy'
-        ssn_bucket_name_tag = service_base_name + '-ssn-bucket'
-        default_endpoint_name = os.environ['default_endpoint_name']
-        shared_bucket_name_tag = '{0}-{1}-shared-bucket'.format(service_base_name, default_endpoint_name)
-        ssn_bucket_name = ssn_bucket_name_tag.lower().replace('_', '-')
-        shared_bucket_name = shared_bucket_name_tag.lower().replace('_', '-')
-        tag_name = service_base_name + '-Tag'
-        tag2_name = service_base_name + '-secondary-Tag'
-        instance_name = service_base_name + '-ssn'
-        region = os.environ['aws_region']
-        ssn_image_name = os.environ['aws_{}_image_name'.format(os.environ['conf_os_family'])]
-        ssn_ami_id = get_ami_id(ssn_image_name)
-        policy_path = '/root/files/ssn_policy.json'
-        vpc_cidr = os.environ['conf_vpc_cidr']
-        vpc2_cidr = os.environ['conf_vpc2_cidr']
-        sg_name = instance_name + '-sg'
-        pre_defined_vpc = False
-        pre_defined_subnet = False
-        pre_defined_sg = False
-        billing_enabled = True
-        dlab_ssh_user = os.environ['conf_os_user']
-        network_type = os.environ['conf_network_type']
+        ssn_conf['service_base_name'] = os.environ['conf_service_base_name'] = dlab.fab.replace_multi_symbols(
+            os.environ['conf_service_base_name'].lower()[:20], '-', True)
+        ssn_conf['role_name'] = '{}-ssn-role'.format(ssn_conf['service_base_name'])
+        ssn_conf['role_profile_name'] = '{}-ssn-profile'.format(ssn_conf['service_base_name'])
+        ssn_conf['policy_name'] = '{}-ssn-policy'.format(ssn_conf['service_base_name'])
+        ssn_conf['default_endpoint_name'] = os.environ['default_endpoint_name']
+        ssn_conf['tag_name'] = '{}-tag'.format(ssn_conf['service_base_name'])
+        ssn_conf['tag2_name'] = '{}-secondary-tag'.format(ssn_conf['service_base_name'])
+        ssn_conf['user_tag'] = "{0}:{0}-ssn-role".format(ssn_conf['service_base_name'])
+        ssn_conf['instance_name'] = '{}-ssn'.format(ssn_conf['service_base_name'])
+        ssn_conf['region'] = os.environ['aws_region']
+        ssn_conf['zone_full'] = os.environ['aws_region'] + os.environ['aws_zone']
+        ssn_conf['ssn_image_name'] = os.environ['aws_{}_image_name'.format(os.environ['conf_os_family'])]
+        ssn_conf['ssn_ami_id'] = dlab.meta_lib.get_ami_id(ssn_conf['ssn_image_name'])
+        ssn_conf['policy_path'] = '/root/files/ssn_policy.json'
+        ssn_conf['vpc_cidr'] = os.environ['conf_vpc_cidr']
+        ssn_conf['vpc2_cidr'] = os.environ['conf_vpc2_cidr']
+        ssn_conf['vpc_name'] = '{}-vpc'.format(ssn_conf['service_base_name'])
+        ssn_conf['vpc2_name'] = '{}-vpc2'.format(ssn_conf['service_base_name'])
+        ssn_conf['subnet_name'] = '{}-ssn-subnet'.format(ssn_conf['service_base_name'])
+        ssn_conf['allowed_ip_cidr'] = list()
+        for cidr in os.environ['conf_allowed_ip_cidr'].split(','):
+            ssn_conf['allowed_ip_cidr'].append({"CidrIp": cidr.replace(' ', '')})
+        ssn_conf['sg_name'] = '{}-ssn-sg'.format(ssn_conf['service_base_name'])
+        ssn_conf['network_type'] = os.environ['conf_network_type']
+        ssn_conf['all_ip_cidr'] = '0.0.0.0/0'
+        ssn_conf['elastic_ip_name'] = '{0}-ssn-static-ip'.format(ssn_conf['service_base_name'])
+        ssn_conf['pre_defined_vpc'] = False
+        ssn_conf['pre_defined_subnet'] = False
+        ssn_conf['pre_defined_sg'] = False
+        ssn_conf['billing_enabled'] = True
+        ssn_conf['dlab_ssh_user'] = os.environ['conf_os_user']
         if 'ssn_hosted_zone_id' in os.environ and 'ssn_hosted_zone_name' in os.environ and \
                 'ssn_subdomain' in os.environ:
-            domain_created = True
+            ssn_conf['domain_created'] = True
         else:
-            domain_created = False
+            ssn_conf['domain_created'] = False
 
         try:
             if os.environ['aws_vpc_id'] == '':
                 raise KeyError
         except KeyError:
-            tag = {"Key": tag_name, "Value": "{}-subnet".format(service_base_name)}
-            os.environ['aws_vpc_id'] = get_vpc_by_tag(tag_name, service_base_name)
-            pre_defined_vpc = True
+            ssn_conf['tag'] = {"Key": ssn_conf['tag_name'], "Value": "{}-subnet".format(ssn_conf['service_base_name'])}
+            os.environ['aws_vpc_id'] = dlab.meta_lib.get_vpc_by_tag(ssn_conf['tag_name'], ssn_conf['service_base_name'])
+            ssn_conf['pre_defined_vpc'] = True
         try:
             if os.environ['aws_subnet_id'] == '':
                 raise KeyError
         except KeyError:
-            tag = {"Key": tag_name, "Value": "{}-subnet".format(service_base_name)}
-            os.environ['aws_subnet_id'] = get_subnet_by_tag(tag, True)
-            pre_defined_subnet = True
+            ssn_conf['tag'] = {"Key": ssn_conf['tag_name'], "Value": "{}-subnet".format(ssn_conf['service_base_name'])}
+            os.environ['aws_subnet_id'] = dlab.meta_lib.get_subnet_by_tag(ssn_conf['tag'], True)
+            ssn_conf['pre_defined_subnet'] = True
         try:
             if os.environ['conf_duo_vpc_enable'] == 'true' and not os.environ['aws_vpc2_id']:
                 raise KeyError
         except KeyError:
-            tag = {"Key": tag2_name, "Value": "{}-subnet".format(service_base_name)}
-            os.environ['aws_vpc2_id'] = get_vpc_by_tag(tag2_name, service_base_name)
-            pre_defined_vpc2 = True
+            ssn_conf['tag'] = {"Key": ssn_conf['tag2_name'], "Value": "{}-subnet".format(ssn_conf['service_base_name'])}
+            os.environ['aws_vpc2_id'] = dlab.meta_lib.get_vpc_by_tag(ssn_conf['tag2_name'],
+                                                                     ssn_conf['service_base_name'])
+            ssn_conf['pre_defined_vpc2'] = True
         try:
             if os.environ['conf_duo_vpc_enable'] == 'true' and not os.environ['aws_peering_id']:
                 raise KeyError
         except KeyError:
-            os.environ['aws_peering_id'] = get_peering_by_tag(tag_name, service_base_name)
-            pre_defined_peering = True
+            os.environ['aws_peering_id'] = dlab.meta_lib.get_peering_by_tag(ssn_conf['tag_name'],
+                                                                            ssn_conf['service_base_name'])
+            ssn_conf['pre_defined_peering'] = True
         try:
             if os.environ['aws_security_groups_ids'] == '':
                 raise KeyError
         except KeyError:
-            os.environ['aws_security_groups_ids'] = get_security_group_by_name(sg_name)
-            pre_defined_sg = True
+            os.environ['aws_security_groups_ids'] = dlab.meta_lib.get_security_group_by_name(ssn_conf['sg_name'])
+            ssn_conf['pre_defined_sg'] = True
         try:
             if os.environ['aws_account_id'] == '':
                 raise KeyError
             if os.environ['aws_billing_bucket'] == '':
                 raise KeyError
         except KeyError:
-            billing_enabled = False
-        if not billing_enabled:
+            ssn_conf['billing_enabled'] = False
+        if not ssn_conf['billing_enabled']:
             os.environ['aws_account_id'] = 'None'
             os.environ['aws_billing_bucket'] = 'None'
         try:
@@ -125,31 +145,35 @@ if __name__ == "__main__":
 
     try:
         if os.environ['conf_os_family'] == 'debian':
-            initial_user = 'ubuntu'
-            sudo_group = 'sudo'
+            ssn_conf['initial_user'] = 'ubuntu'
+            ssn_conf['sudo_group'] = 'sudo'
         if os.environ['conf_os_family'] == 'redhat':
-            initial_user = 'ec2-user'
-            sudo_group = 'wheel'
+            ssn_conf['initial_user'] = 'ec2-user'
+            ssn_conf['sudo_group'] = 'wheel'
 
-        if network_type == 'private':
-            instance_hostname = get_instance_ip_address(tag_name, instance_name).get('Private')
+        if ssn_conf['network_type'] == 'private':
+            ssn_conf['instance_hostname'] = dlab.meta_lib.get_instance_ip_address(
+                ssn_conf['tag_name'], ssn_conf['instance_name']).get('Private')
         else:
-            instance_hostname = get_instance_hostname(tag_name, instance_name)
+            ssn_conf['instance_hostname'] = dlab.meta_lib.get_instance_hostname(
+                ssn_conf['tag_name'], ssn_conf['instance_name'])
 
         if os.environ['conf_stepcerts_enabled'] == 'true':
-            step_cert_sans = ' --san {0} '.format(get_instance_ip_address(tag_name, instance_name).get('Private'))
-            if network_type == 'public':
-                step_cert_sans += ' --san {0} --san {1}'.format(
-                    get_instance_hostname(tag_name, instance_name),
-                    get_instance_ip_address(tag_name, instance_name).get('Public'))
+            ssn_conf['step_cert_sans'] = ' --san {0} '.format(dlab.meta_lib.get_instance_ip_address(
+                ssn_conf['tag_name'], ssn_conf['instance_name']).get('Private'))
+            if ssn_conf['network_type'] == 'public':
+                ssn_conf['step_cert_sans'] += ' --san {0} --san {1}'.format(
+                    dlab.meta_lib.get_instance_hostname(ssn_conf['tag_name'], ssn_conf['instance_name']),
+                    dlab.meta_lib.get_instance_ip_address(ssn_conf['tag_name'],
+                                                          ssn_conf['instance_name']).get('Public'))
         else:
-            step_cert_sans = ''
+            ssn_conf['step_cert_sans'] = ''
 
         logging.info('[CREATING DLAB SSH USER]')
         print('[CREATING DLAB SSH USER]')
-        params = "--hostname {} --keyfile {} --initial_user {} --os_user {} --sudo_group {}".format\
-            (instance_hostname, os.environ['conf_key_dir'] + os.environ['conf_key_name'] + ".pem", initial_user,
-             dlab_ssh_user, sudo_group)
+        params = "--hostname {} --keyfile {} --initial_user {} --os_user {} --sudo_group {}".format(
+            ssn_conf['instance_hostname'], os.environ['conf_key_dir'] + os.environ['conf_key_name'] + ".pem",
+            ssn_conf['initial_user'], ssn_conf['dlab_ssh_user'], ssn_conf['sudo_group'])
 
         try:
             local("~/scripts/{}.py {}".format('create_ssh_user', params))
@@ -157,30 +181,32 @@ if __name__ == "__main__":
             traceback.print_exc()
             raise Exception
     except Exception as err:
-        append_result("Failed creating ssh user 'dlab'.", str(err))
-        if domain_created:
-            remove_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
-                                   os.environ['ssn_subdomain'])
-        remove_ec2(tag_name, instance_name)
-        remove_all_iam_resources(instance)
-        remove_s3(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_vpc_endpoints(os.environ['aws_vpc_id'])
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        dlab.fab.append_result("Failed creating ssh user 'dlab'.", str(err))
+        if ssn_conf['domain_created']:
+            dlab.actions_lib.remove_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                    os.environ['ssn_hosted_zone_name'],
+                                                    os.environ['ssn_subdomain'])
+        dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        dlab.actions_lib.remove_s3(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
     try:
@@ -188,8 +214,8 @@ if __name__ == "__main__":
         print('[INSTALLING PREREQUISITES TO SSN INSTANCE]')
         params = "--hostname {} --keyfile {} --pip_packages 'boto3 backoff argparse fabric==1.14.0 awscli pymongo " \
                  "pyyaml jinja2' --user {} --region {}". \
-            format(instance_hostname, os.environ['conf_key_dir'] + os.environ['conf_key_name'] + ".pem", dlab_ssh_user,
-                   os.environ['aws_region'])
+            format(ssn_conf['instance_hostname'], os.environ['conf_key_dir'] + os.environ['conf_key_name'] + ".pem",
+                   ssn_conf['dlab_ssh_user'], os.environ['aws_region'])
 
         try:
             local("~/scripts/{}.py {}".format('install_prerequisites', params))
@@ -197,44 +223,48 @@ if __name__ == "__main__":
             traceback.print_exc()
             raise Exception
     except Exception as err:
-        append_result("Failed installing software: pip, packages.", str(err))
-        if domain_created:
-            remove_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
-                                   os.environ['ssn_subdomain'])
-        remove_ec2(tag_name, instance_name)
-        remove_all_iam_resources(instance)
-        remove_s3(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_vpc_endpoints(os.environ['aws_vpc_id'])
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        dlab.fab.append_result("Failed installing software: pip, packages.", str(err))
+        if ssn_conf['domain_created']:
+            dlab.actions_lib.remove_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                    os.environ['ssn_hosted_zone_name'],
+                                                    os.environ['ssn_subdomain'])
+        dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        dlab.actions_lib.remove_s3(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
     try:
         logging.info('[CONFIGURE SSN INSTANCE]')
         print('[CONFIGURE SSN INSTANCE]')
-        additional_config = {"nginx_template_dir": "/root/templates/", "service_base_name": service_base_name,
+        additional_config = {"nginx_template_dir": "/root/templates/", "service_base_name":
+                             ssn_conf['service_base_name'],
                              "security_group_id": os.environ['aws_security_groups_ids'],
                              "vpc_id": os.environ['aws_vpc_id'], "subnet_id": os.environ['aws_subnet_id'],
                              "admin_key": os.environ['conf_key_name']}
         params = "--hostname {} --keyfile {} --additional_config '{}' --os_user {} --dlab_path {} " \
                  "--tag_resource_id {} --step_cert_sans '{}' ".format(
-                  instance_hostname, "{}{}.pem".format(os.environ['conf_key_dir'], os.environ['conf_key_name']),
-                  json.dumps(additional_config), dlab_ssh_user, os.environ['ssn_dlab_path'],
-                  os.environ['conf_tag_resource_id'], step_cert_sans)
+                  ssn_conf['instance_hostname'],
+                  "{}{}.pem".format(os.environ['conf_key_dir'], os.environ['conf_key_name']),
+                  json.dumps(additional_config), ssn_conf['dlab_ssh_user'], os.environ['ssn_dlab_path'],
+                  os.environ['conf_tag_resource_id'], ssn_conf['step_cert_sans'])
 
         try:
             local("~/scripts/{}.py {}".format('configure_ssn_node', params))
@@ -242,30 +272,32 @@ if __name__ == "__main__":
             traceback.print_exc()
             raise Exception
     except Exception as err:
-        append_result("Failed configuring ssn.", str(err))
-        if domain_created:
-            remove_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
-                                   os.environ['ssn_subdomain'])
-        remove_ec2(tag_name, instance_name)
-        remove_all_iam_resources(instance)
-        remove_s3(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_vpc_endpoints(os.environ['aws_vpc_id'])
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        dlab.fab.append_result("Failed configuring ssn.", str(err))
+        if ssn_conf['domain_created']:
+            dlab.actions_lib.remove_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                    os.environ['ssn_hosted_zone_name'],
+                                                    os.environ['ssn_subdomain'])
+        dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        dlab.actions_lib.remove_s3(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
     try:
@@ -284,11 +316,11 @@ if __name__ == "__main__":
                              {"name": "dataengine-service", "tag": "latest"},
                              {"name": "dataengine", "tag": "latest"}]
         params = "--hostname {} --keyfile {} --additional_config '{}' --os_family {} --os_user {} --dlab_path {} " \
-                 "--cloud_provider {} --region {}".format(instance_hostname,
+                 "--cloud_provider {} --region {}".format(ssn_conf['instance_hostname'],
                                                           "{}{}.pem".format(os.environ['conf_key_dir'],
                                                                             os.environ['conf_key_name']),
                                                           json.dumps(additional_config), os.environ['conf_os_family'],
-                                                          dlab_ssh_user, os.environ['ssn_dlab_path'],
+                                                          ssn_conf['dlab_ssh_user'], os.environ['ssn_dlab_path'],
                                                           os.environ['conf_cloud_provider'], os.environ['aws_region'])
 
         try:
@@ -297,30 +329,32 @@ if __name__ == "__main__":
             traceback.print_exc()
             raise Exception
     except Exception as err:
-        append_result("Unable to configure docker.", str(err))
-        if domain_created:
-            remove_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
-                                   os.environ['ssn_subdomain'])
-        remove_ec2(tag_name, instance_name)
-        remove_all_iam_resources(instance)
-        remove_s3(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_vpc_endpoints(os.environ['aws_vpc_id'])
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        dlab.fab.append_result("Unable to configure docker.", str(err))
+        if ssn_conf['domain_created']:
+            dlab.actions_lib.remove_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                    os.environ['ssn_hosted_zone_name'],
+                                                    os.environ['ssn_subdomain'])
+        dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        dlab.actions_lib.remove_s3(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
     try:
@@ -351,7 +385,8 @@ if __name__ == "__main__":
         cloud_params = [
             {
                 'key': 'KEYCLOAK_REDIRECT_URI',
-                'value': "https://{0}/".format(get_instance_hostname(tag_name, instance_name))
+                'value': "https://{0}/".format(dlab.meta_lib.get_instance_hostname(ssn_conf['tag_name'],
+                                                                                   ssn_conf['instance_name']))
             },
             {
                 'key': 'KEYCLOAK_REALM_NAME',
@@ -590,14 +625,14 @@ if __name__ == "__main__":
                  "--resource_id {} " \
                  "--default_endpoint_name {} " \
                  "--tags {}". \
-            format(instance_hostname,
+            format(ssn_conf['instance_hostname'],
                    "{}{}.pem".format(os.environ['conf_key_dir'], os.environ['conf_key_name']),
                    os.environ['ssn_dlab_path'],
-                   dlab_ssh_user,
+                   ssn_conf['dlab_ssh_user'],
                    os.environ['conf_os_family'],
                    os.environ['request_id'],
                    os.environ['conf_resource'],
-                   service_base_name,
+                   ssn_conf['service_base_name'],
                    os.environ['conf_tag_resource_id'],
                    os.environ['conf_billing_tag'],
                    os.environ['conf_cloud_provider'],
@@ -605,7 +640,7 @@ if __name__ == "__main__":
                    os.environ['aws_billing_bucket'],
                    os.environ['aws_job_enabled'],
                    os.environ['aws_report_path'],
-                   billing_enabled,
+                   ssn_conf['billing_enabled'],
                    json.dumps(cloud_params),
                    os.environ['dlab_id'],
                    os.environ['usage_date'],
@@ -622,57 +657,61 @@ if __name__ == "__main__":
             traceback.print_exc()
             raise Exception
     except Exception as err:
-        append_result("Unable to configure UI.", str(err))
+        dlab.fab.append_result("Unable to configure UI.", str(err))
         print(err)
-        if domain_created:
-            remove_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
-                                   os.environ['ssn_subdomain'])
-        remove_ec2(tag_name, instance_name)
-        remove_all_iam_resources(instance)
-        remove_s3(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_vpc_endpoints(os.environ['aws_vpc_id'])
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        if ssn_conf['domain_created']:
+            dlab.actions_lib.remove_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                    os.environ['ssn_hosted_zone_name'],
+                                                    os.environ['ssn_subdomain'])
+        dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        dlab.actions_lib.remove_s3(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
     try:
         logging.info('[SUMMARY]')
         print('[SUMMARY]')
-        print("Service base name: {}".format(service_base_name))
-        print("SSN Name: {}".format(instance_name))
-        print("SSN Hostname: {}".format(instance_hostname))
-        print("Role name: {}".format(role_name))
-        print("Role profile name: {}".format(role_profile_name))
-        print("Policy name: {}".format(policy_name))
+        print("Service base name: {}".format(ssn_conf['service_base_name']))
+        print("SSN Name: {}".format(ssn_conf['instance_name']))
+        print("SSN Hostname: {}".format(ssn_conf['instance_hostname']))
+        print("Role name: {}".format(ssn_conf['role_name']))
+        print("Role profile name: {}".format(ssn_conf['role_profile_name']))
+        print("Policy name: {}".format(ssn_conf['policy_name']))
         print("Key name: {}".format(os.environ['conf_key_name']))
         print("VPC ID: {}".format(os.environ['aws_vpc_id']))
         print("Subnet ID: {}".format(os.environ['aws_subnet_id']))
         print("Security IDs: {}".format(os.environ['aws_security_groups_ids']))
         print("SSN instance shape: {}".format(os.environ['aws_ssn_instance_size']))
-        print("SSN AMI name: {}".format(ssn_image_name))
-        print("SSN bucket name: {}".format(ssn_bucket_name))
-        print("Shared bucket name: {}".format(shared_bucket_name))
-        print("Region: {}".format(region))
-        jenkins_url = "http://{}/jenkins".format(get_instance_hostname(tag_name, instance_name))
-        jenkins_url_https = "https://{}/jenkins".format(get_instance_hostname(tag_name, instance_name))
-        print("Jenkins URL: {}".format(jenkins_url))
-        print("Jenkins URL HTTPS: {}".format(jenkins_url_https))
-        print("DLab UI HTTP URL: http://{}".format(get_instance_hostname(tag_name, instance_name)))
-        print("DLab UI HTTPS URL: https://{}".format(get_instance_hostname(tag_name, instance_name)))
+        print("SSN AMI name: {}".format(ssn_conf['ssn_image_name']))
+        print("Region: {}".format(ssn_conf['region']))
+        ssn_conf['jenkins_url'] = "http://{}/jenkins".format(dlab.meta_lib.get_instance_hostname(
+            ssn_conf['tag_name'], ssn_conf['instance_name']))
+        ssn_conf['jenkins_url_https'] = "https://{}/jenkins".format(dlab.meta_lib.get_instance_hostname(
+            ssn_conf['tag_name'], ssn_conf['instance_name']))
+        print("Jenkins URL: {}".format(ssn_conf['jenkins_url']))
+        print("Jenkins URL HTTPS: {}".format(ssn_conf['jenkins_url_https']))
+        print("DLab UI HTTP URL: http://{}".format(dlab.meta_lib.get_instance_hostname(
+            ssn_conf['tag_name'], ssn_conf['instance_name'])))
+        print("DLab UI HTTPS URL: https://{}".format(dlab.meta_lib.get_instance_hostname(
+            ssn_conf['tag_name'], ssn_conf['instance_name'])))
         try:
             with open('jenkins_creds.txt') as f:
                 print(f.read())
@@ -680,26 +719,26 @@ if __name__ == "__main__":
             print("Jenkins is either configured already or have issues in configuration routine.")
 
         with open("/root/result.json", 'w') as f:
-            res = {"service_base_name": service_base_name,
-                   "instance_name": instance_name,
-                   "instance_hostname": get_instance_hostname(tag_name, instance_name),
-                   "role_name": role_name,
-                   "role_profile_name": role_profile_name,
-                   "policy_name": policy_name,
+            res = {"service_base_name": ssn_conf['service_base_name'],
+                   "instance_name": ssn_conf['instance_name'],
+                   "instance_hostname": dlab.meta_lib.get_instance_hostname(ssn_conf['tag_name'],
+                                                                            ssn_conf['instance_name']),
+                   "role_name": ssn_conf['role_name'],
+                   "role_profile_name": ssn_conf['role_profile_name'],
+                   "policy_name": ssn_conf['policy_name'],
                    "master_keyname": os.environ['conf_key_name'],
                    "vpc_id": os.environ['aws_vpc_id'],
                    "subnet_id": os.environ['aws_subnet_id'],
                    "security_id": os.environ['aws_security_groups_ids'],
                    "instance_shape": os.environ['aws_ssn_instance_size'],
-                   "bucket_name": ssn_bucket_name,
-                   "shared_bucket_name": shared_bucket_name,
-                   "region": region,
+                   "region": ssn_conf['region'],
                    "action": "Create SSN instance"}
             f.write(json.dumps(res))
 
         print('Upload response file')
         params = "--instance_name {} --local_log_filepath {} --os_user {} --instance_hostname {}".\
-            format(instance_name, local_log_filepath, dlab_ssh_user, instance_hostname)
+            format(ssn_conf['instance_name'], local_log_filepath, ssn_conf['dlab_ssh_user'],
+                   ssn_conf['instance_hostname'])
         local("~/scripts/{}.py {}".format('upload_response_file', params))
 
         logging.info('[FINALIZE]')
@@ -709,27 +748,29 @@ if __name__ == "__main__":
             params += "--key_id {}".format(os.environ['aws_access_key'])
             local("~/scripts/{}.py {}".format('ssn_finalize', params))
     except:
-        if domain_created:
-            remove_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
-                                   os.environ['ssn_subdomain'])
-        remove_ec2(tag_name, instance_name)
-        remove_all_iam_resources(instance)
-        remove_s3(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_vpc_endpoints(os.environ['aws_vpc_id'])
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        if ssn_conf['domain_created']:
+            dlab.actions_lib.remove_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                    os.environ['ssn_hosted_zone_name'],
+                                                    os.environ['ssn_subdomain'])
+        dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        dlab.actions_lib.remove_s3(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
diff --git a/infrastructure-provisioning/src/general/scripts/aws/ssn_prepare.py b/infrastructure-provisioning/src/general/scripts/aws/ssn_prepare.py
index 8615a25..aa76b95 100644
--- a/infrastructure-provisioning/src/general/scripts/aws/ssn_prepare.py
+++ b/infrastructure-provisioning/src/general/scripts/aws/ssn_prepare.py
@@ -21,11 +21,22 @@
 #
 # ******************************************************************************
 
-from dlab.fab import *
-from dlab.actions_lib import *
-import sys, os
+# from dlab.fab import *
+# from dlab.actions_lib import *
+# import sys, os
+# from fabric.api import *
+# from dlab.ssn_lib import *
+
+import logging
+import sys
+import os
 from fabric.api import *
-from dlab.ssn_lib import *
+import dlab.ssn_lib
+import dlab.fab
+import dlab.actions_lib
+import dlab.meta_lib
+import traceback
+import json
 
 
 if __name__ == "__main__":
@@ -34,57 +45,58 @@ if __name__ == "__main__":
     logging.basicConfig(format='%(levelname)-8s [%(asctime)s]  %(message)s',
                         level=logging.DEBUG,
                         filename=local_log_filepath)
-    instance = 'ssn'
-    pre_defined_vpc = False
-    pre_defined_subnet = False
-    pre_defined_sg = False
-    pre_defined_vpc2 = False
+    ssn_conf = dict()
+    ssn_conf['instance'] = 'ssn'
+    ssn_conf['pre_defined_vpc'] = False
+    ssn_conf['pre_defined_subnet'] = False
+    ssn_conf['pre_defined_sg'] = False
+    ssn_conf['pre_defined_vpc2'] = False
     try:
         logging.info('[CREATE AWS CONFIG FILE]')
         print('[CREATE AWS CONFIG FILE]')
         if 'aws_access_key' in os.environ and 'aws_secret_access_key' in os.environ:
-            create_aws_config_files(generate_full_config=True)
+            dlab.actions_lib.create_aws_config_files(generate_full_config=True)
         else:
-            create_aws_config_files()
+            dlab.actions_lib.create_aws_config_files()
     except Exception as err:
         print('Error: {0}'.format(err))
         logging.info('Unable to create configuration')
-        append_result("Unable to create configuration")
+        dlab.fab.append_result("Unable to create configuration")
         traceback.print_exc()
         sys.exit(1)
 
     try:
         logging.info('[DERIVING NAMES]')
         print('[DERIVING NAMES]')
-        service_base_name = os.environ['conf_service_base_name'] = replace_multi_symbols(
-            os.environ['conf_service_base_name'].lower()[:12], '-', True)
-        role_name = service_base_name.lower().replace('-', '_') + '-ssn-Role'
-        role_profile_name = service_base_name.lower().replace('-', '_') + '-ssn-Profile'
-        policy_name = service_base_name.lower().replace('-', '_') + '-ssn-Policy'
-        default_endpoint_name = os.environ['default_endpoint_name']
-        tag_name = service_base_name + '-Tag'
-        tag2_name = service_base_name + '-secondary-Tag'
-        user_tag = "{0}:{0}-ssn-Role".format(service_base_name)
-        instance_name = service_base_name + '-ssn'
-        region = os.environ['aws_region']
-        zone_full = os.environ['aws_region'] + os.environ['aws_zone']
-        ssn_image_name = os.environ['aws_{}_image_name'.format(os.environ['conf_os_family'])]
-        ssn_ami_id = get_ami_id(ssn_image_name)
-        policy_path = '/root/files/ssn_policy.json'
-        vpc_cidr = os.environ['conf_vpc_cidr']
-        vpc2_cidr = os.environ['conf_vpc2_cidr']
-        vpc_name = '{}-VPC'.format(service_base_name)
-        vpc2_name = '{}-secondary-VPC'.format(service_base_name)
-        subnet_name = '{}-subnet'.format(service_base_name)
-        allowed_ip_cidr = list()
+        ssn_conf['service_base_name'] = os.environ['conf_service_base_name'] = dlab.fab.replace_multi_symbols(
+            os.environ['conf_service_base_name'].lower()[:20], '-', True)
+        ssn_conf['role_name'] = '{}-ssn-role'.format(ssn_conf['service_base_name'])
+        ssn_conf['role_profile_name'] = '{}-ssn-profile'.format(ssn_conf['service_base_name'])
+        ssn_conf['policy_name'] = '{}-ssn-policy'.format(ssn_conf['service_base_name'])
+        ssn_conf['default_endpoint_name'] = os.environ['default_endpoint_name']
+        ssn_conf['tag_name'] = '{}-tag'.format(ssn_conf['service_base_name'])
+        ssn_conf['tag2_name'] = '{}-secondary-tag'.format(ssn_conf['service_base_name'])
+        ssn_conf['user_tag'] = "{0}:{0}-ssn-role".format(ssn_conf['service_base_name'])
+        ssn_conf['instance_name'] = '{}-ssn'.format(ssn_conf['service_base_name'])
+        ssn_conf['region'] = os.environ['aws_region']
+        ssn_conf['zone_full'] = os.environ['aws_region'] + os.environ['aws_zone']
+        ssn_conf['ssn_image_name'] = os.environ['aws_{}_image_name'.format(os.environ['conf_os_family'])]
+        ssn_conf['ssn_ami_id'] = dlab.meta_lib.get_ami_id(ssn_conf['ssn_image_name'])
+        ssn_conf['policy_path'] = '/root/files/ssn_policy.json'
+        ssn_conf['vpc_cidr'] = os.environ['conf_vpc_cidr']
+        ssn_conf['vpc2_cidr'] = os.environ['conf_vpc2_cidr']
+        ssn_conf['vpc_name'] = '{}-vpc'.format(ssn_conf['service_base_name'])
+        ssn_conf['vpc2_name'] = '{}-vpc2'.format(ssn_conf['service_base_name'])
+        ssn_conf['subnet_name'] = '{}-ssn-subnet'.format(ssn_conf['service_base_name'])
+        ssn_conf['allowed_ip_cidr'] = list()
         for cidr in os.environ['conf_allowed_ip_cidr'].split(','):
-            allowed_ip_cidr.append({"CidrIp": cidr.replace(' ','')})
-        sg_name = instance_name + '-sg'
-        network_type = os.environ['conf_network_type']
-        all_ip_cidr = '0.0.0.0/0'
-        elastic_ip_name = '{0}-ssn-EIP'.format(service_base_name)
+            ssn_conf['allowed_ip_cidr'].append({"CidrIp": cidr.replace(' ','')})
+        ssn_conf['sg_name'] = '{}-ssn-sg'.format(ssn_conf['service_base_name'])
+        ssn_conf['network_type'] = os.environ['conf_network_type']
+        ssn_conf['all_ip_cidr'] = '0.0.0.0/0'
+        ssn_conf['elastic_ip_name'] = '{0}-ssn-static-ip'.format(ssn_conf['service_base_name'])
 
-        if get_instance_by_name(tag_name, instance_name):
+        if dlab.meta_lib.get_instance_by_name(ssn_conf['tag_name'], ssn_conf['instance_name']):
             print("Service base name should be unique and less or equal 12 symbols. Please try again.")
             sys.exit(1)
 
@@ -93,49 +105,54 @@ if __name__ == "__main__":
                 raise KeyError
         except KeyError:
             try:
-                pre_defined_vpc = True
+                ssn_conf['pre_defined_vpc'] = True
                 logging.info('[CREATE VPC AND ROUTE TABLE]')
                 print('[CREATE VPC AND ROUTE TABLE]')
                 params = "--vpc {} --region {} --infra_tag_name {} --infra_tag_value {} --vpc_name {}".format(
-                    vpc_cidr, region, tag_name, service_base_name, vpc_name)
+                    ssn_conf['vpc_cidr'], ssn_conf['region'], ssn_conf['tag_name'], ssn_conf['service_base_name'],
+                    ssn_conf['vpc_name'])
                 try:
                     local("~/scripts/{}.py {}".format('ssn_create_vpc', params))
                 except:
                     traceback.print_exc()
                     raise Exception
-                os.environ['aws_vpc_id'] = get_vpc_by_tag(tag_name, service_base_name)
+                os.environ['aws_vpc_id'] = dlab.meta_lib.get_vpc_by_tag(ssn_conf['tag_name'],
+                                                                        ssn_conf['service_base_name'])
             except Exception as err:
                 print('Error: {0}'.format(err))
-                append_result("Failed to create VPC. Exception:" + str(err))
+                dlab.fab.append_result("Failed to create VPC. Exception:" + str(err))
                 sys.exit(1)
 
-        allowed_vpc_cidr_ip_ranges = list()
-        for cidr in get_vpc_cidr_by_id(os.environ['aws_vpc_id']):
-            allowed_vpc_cidr_ip_ranges.append({"CidrIp": cidr})
+        ssn_conf['allowed_vpc_cidr_ip_ranges'] = list()
+        for cidr in dlab.meta_lib.get_vpc_cidr_by_id(os.environ['aws_vpc_id']):
+            ssn_conf['allowed_vpc_cidr_ip_ranges'].append({"CidrIp": cidr})
 
         try:
             if os.environ['conf_duo_vpc_enable'] == 'true' and not os.environ['aws_vpc2_id']:
                 raise KeyError
         except KeyError:
             try:
-                pre_defined_vpc2 = True
+                ssn_conf['pre_defined_vpc2'] = True
                 logging.info('[CREATE SECONDARY VPC AND ROUTE TABLE]')
                 print('[CREATE SECONDARY VPC AND ROUTE TABLE]')
                 params = "--vpc {} --region {} --infra_tag_name {} --infra_tag_value {} --secondary " \
-                         "--vpc_name {}".format(vpc2_cidr, region, tag2_name, service_base_name, vpc2_name)
+                         "--vpc_name {}".format(ssn_conf['vpc2_cidr'], ssn_conf['region'], ssn_conf['tag2_name'],
+                                                ssn_conf['service_base_name'], ssn_conf['vpc2_name'])
                 try:
                     local("~/scripts/{}.py {}".format('ssn_create_vpc', params))
                 except:
                     traceback.print_exc()
                     raise Exception
-                os.environ['aws_vpc2_id'] = get_vpc_by_tag(tag2_name, service_base_name)
+                os.environ['aws_vpc2_id'] = dlab.meta_lib.get_vpc_by_tag(ssn_conf['tag2_name'],
+                                                                         ssn_conf['service_base_name'])
             except Exception as err:
                 print('Error: {0}'.format(err))
-                append_result("Failed to create secondary VPC. Exception:" + str(err))
-                if pre_defined_vpc:
-                    remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-                    remove_route_tables(tag_name, True)
-                    remove_vpc(os.environ['aws_vpc_id'])
+                dlab.fab.append_result("Failed to create secondary VPC. Exception:" + str(err))
+                if ssn_conf['pre_defined_vpc']:
+                    dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                              ssn_conf['service_base_name'])
+                    dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+                    dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
                 sys.exit(1)
 
         try:
@@ -143,12 +160,13 @@ if __name__ == "__main__":
                 raise KeyError
         except KeyError:
             try:
-                pre_defined_subnet = True
+                ssn_conf['pre_defined_subnet'] = True
                 logging.info('[CREATE SUBNET]')
                 print('[CREATE SUBNET]')
                 params = "--vpc_id {0} --username {1} --infra_tag_name {2} --infra_tag_value {3} --prefix {4} " \
-                         "--ssn {5} --zone {6} --subnet_name {7}".format(os.environ['aws_vpc_id'], 'ssn', tag_name,
-                                                             service_base_name, '20', True, zone_full, subnet_name)
+                         "--ssn {5} --zone {6} --subnet_name {7}".format(
+                          os.environ['aws_vpc_id'], 'ssn', ssn_conf['tag_name'],ssn_conf['service_base_name'], '20',
+                          True, ssn_conf['zone_full'], ssn_conf['subnet_name'])
                 try:
                     local("~/scripts/{}.py {}".format('common_create_subnet', params))
                 except:
@@ -156,25 +174,26 @@ if __name__ == "__main__":
                     raise Exception
                 with open('/tmp/ssn_subnet_id', 'r') as f:
                     os.environ['aws_subnet_id'] = f.read()
-                enable_auto_assign_ip(os.environ['aws_subnet_id'])
+                dlab.actions_lib.enable_auto_assign_ip(os.environ['aws_subnet_id'])
             except Exception as err:
                 print('Error: {0}'.format(err))
-                append_result("Failed to create Subnet.", str(err))
-                if pre_defined_vpc:
-                    remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-                    remove_route_tables(tag_name, True)
+                dlab.fab.append_result("Failed to create Subnet.", str(err))
+                if ssn_conf['pre_defined_vpc']:
+                    dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                              ssn_conf['service_base_name'])
+                    dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
                     try:
-                        remove_subnets(service_base_name + "-subnet")
+                        dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
                     except:
                         print("Subnet hasn't been created.")
-                    remove_vpc(os.environ['aws_vpc_id'])
-                if pre_defined_vpc2:
+                    dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+                if ssn_conf['pre_defined_vpc2']:
                     try:
-                        remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                        dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
                     except:
                         print("There are no VPC Endpoints")
-                    remove_route_tables(tag2_name, True)
-                    remove_vpc(os.environ['aws_vpc2_id'])
+                    dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+                    dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
                 sys.exit(1)
 
         try:
@@ -184,29 +203,30 @@ if __name__ == "__main__":
             try:
                 logging.info('[CREATE PEERING CONNECTION]')
                 print('[CREATE PEERING CONNECTION]')
-                os.environ['aws_peering_id'] = create_peering_connection(os.environ['aws_vpc_id'],
-                                                                         os.environ['aws_vpc2_id'], service_base_name)
+                os.environ['aws_peering_id'] = dlab.actions_lib.create_peering_connection(
+                    os.environ['aws_vpc_id'], os.environ['aws_vpc2_id'], ssn_conf['service_base_name'])
                 print('PEERING CONNECTION ID:' + os.environ['aws_peering_id'])
-                create_route_by_id(os.environ['aws_subnet_id'], os.environ['aws_vpc_id'], os.environ['aws_peering_id'],
-                                   get_cidr_by_vpc(os.environ['aws_vpc2_id']))
+                dlab.actions_lib.create_route_by_id(os.environ['aws_subnet_id'], os.environ['aws_vpc_id'],
+                                                    os.environ['aws_peering_id'],
+                                                    dlab.meta_lib.get_cidr_by_vpc(os.environ['aws_vpc2_id']))
             except Exception as err:
                 print('Error: {0}'.format(err))
-                append_result("Failed to create peering connection.", str(err))
-                if pre_defined_vpc:
-                    remove_route_tables(tag_name, True)
+                dlab.fab.append_result("Failed to create peering connection.", str(err))
+                if ssn_conf['pre_defined_vpc']:
+                    dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
                     try:
-                        remove_subnets(service_base_name + "-subnet")
+                        dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
                     except:
                         print("Subnet hasn't been created.")
-                    remove_vpc(os.environ['aws_vpc_id'])
-                if pre_defined_vpc2:
-                    remove_peering('*')
+                    dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+                if ssn_conf['pre_defined_vpc2']:
+                    dlab.actions_lib.remove_peering('*')
                     try:
-                        remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                        dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
                     except:
                         print("There are no VPC Endpoints")
-                    remove_route_tables(tag2_name, True)
-                    remove_vpc(os.environ['aws_vpc2_id'])
+                    dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+                    dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
                 sys.exit(1)
 
         try:
@@ -214,54 +234,56 @@ if __name__ == "__main__":
                 raise KeyError
         except KeyError:
             try:
-                pre_defined_sg = True
+                ssn_conf['pre_defined_sg'] = True
                 logging.info('[CREATE SG FOR SSN]')
                 print('[CREATE SG FOR SSN]')
-                ingress_sg_rules_template = format_sg([
+                ssn_conf['ingress_sg_rules_template'] = dlab.meta_lib.format_sg([
                     {
                         "PrefixListIds": [],
                         "FromPort": 80,
-                        "IpRanges": allowed_ip_cidr,
+                        "IpRanges": ssn_conf['allowed_ip_cidr'],
                         "ToPort": 80, "IpProtocol": "tcp", "UserIdGroupPairs": []
                     },
                     {
                         "PrefixListIds": [],
                         "FromPort": 22,
-                        "IpRanges": allowed_ip_cidr,
+                        "IpRanges": ssn_conf['allowed_ip_cidr'],
                         "ToPort": 22, "IpProtocol": "tcp", "UserIdGroupPairs": []
                     },
                     {
                         "PrefixListIds": [],
                         "FromPort": 443,
-                        "IpRanges": allowed_ip_cidr,
+                        "IpRanges": ssn_conf['allowed_ip_cidr'],
                         "ToPort": 443, "IpProtocol": "tcp", "UserIdGroupPairs": []
                     },
                     {
                         "PrefixListIds": [],
                         "FromPort": -1,
-                        "IpRanges": allowed_ip_cidr,
+                        "IpRanges": ssn_conf['allowed_ip_cidr'],
                         "ToPort": -1, "IpProtocol": "icmp", "UserIdGroupPairs": []
                     },
                     {
                         "PrefixListIds": [],
                         "FromPort": 80,
-                        "IpRanges": allowed_vpc_cidr_ip_ranges,
+                        "IpRanges": ssn_conf['allowed_vpc_cidr_ip_ranges'],
                         "ToPort": 80, "IpProtocol": "tcp", "UserIdGroupPairs": []
                     },
                     {
                         "PrefixListIds": [],
                         "FromPort": 443,
-                        "IpRanges": allowed_vpc_cidr_ip_ranges,
+                        "IpRanges": ssn_conf['allowed_vpc_cidr_ip_ranges'],
                         "ToPort": 443, "IpProtocol": "tcp", "UserIdGroupPairs": []
                     }
                 ])
-                egress_sg_rules_template = format_sg([
-                    {"IpProtocol": "-1", "IpRanges": [{"CidrIp": all_ip_cidr}], "UserIdGroupPairs": [], "PrefixListIds": []}
+                egress_sg_rules_template = dlab.meta_lib.format_sg([
+                    {"IpProtocol": "-1", "IpRanges": [{"CidrIp": ssn_conf['all_ip_cidr']}], "UserIdGroupPairs": [],
+                     "PrefixListIds": []}
                 ])
                 params = "--name {} --vpc_id {} --security_group_rules '{}' --egress '{}' --infra_tag_name {} " \
                          "--infra_tag_value {} --force {} --ssn {}". \
-                    format(sg_name, os.environ['aws_vpc_id'], json.dumps(ingress_sg_rules_template),
-                           json.dumps(egress_sg_rules_template), service_base_name, tag_name, False, True)
+                    format(ssn_conf['sg_name'], os.environ['aws_vpc_id'],
+                           json.dumps(ssn_conf['ingress_sg_rules_template']), json.dumps(egress_sg_rules_template),
+                           ssn_conf['service_base_name'], ssn_conf['tag_name'], False, True)
                 try:
                     local("~/scripts/{}.py {}".format('common_create_security_group', params))
                 except:
@@ -271,27 +293,29 @@ if __name__ == "__main__":
                     os.environ['aws_security_groups_ids'] = f.read()
             except Exception as err:
                 print('Error: {0}'.format(err))
-                append_result("Failed creating security group for SSN.", str(err))
-                if pre_defined_vpc:
-                    remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-                    remove_subnets(service_base_name + "-subnet")
-                    remove_route_tables(tag_name, True)
-                    remove_vpc(os.environ['aws_vpc_id'])
-                if pre_defined_vpc2:
-                    remove_peering('*')
+                dlab.gab_lib.append_result("Failed creating security group for SSN.", str(err))
+                if ssn_conf['pre_defined_vpc']:
+                    dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                              ssn_conf['service_base_name'])
+                    dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+                    dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+                    dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+                if ssn_conf['pre_defined_vpc2']:
+                    dlab.actions_lib.remove_peering('*')
                     try:
-                        remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                        dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
                     except:
                         print("There are no VPC Endpoints")
-                    remove_route_tables(tag2_name, True)
-                    remove_vpc(os.environ['aws_vpc2_id'])
+                    dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+                    dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
                 sys.exit(1)
         logging.info('[CREATE ROLES]')
         print('[CREATE ROLES]')
         params = "--role_name {} --role_profile_name {} --policy_name {} --policy_file_name {} --region {} " \
                  "--infra_tag_name {} --infra_tag_value {} --user_tag_value {}".\
-            format(role_name, role_profile_name, policy_name, policy_path, os.environ['aws_region'], tag_name,
-                   service_base_name, user_tag)
+            format(ssn_conf['role_name'], ssn_conf['role_profile_name'], ssn_conf['policy_name'],
+                   ssn_conf['policy_path'], os.environ['aws_region'], ssn_conf['tag_name'],
+                   ssn_conf['service_base_name'], ssn_conf['user_tag'])
         try:
             local("~/scripts/{}.py {}".format('common_create_role_policy', params))
         except:
@@ -299,30 +323,31 @@ if __name__ == "__main__":
             raise Exception
     except Exception as err:
         print('Error: {0}'.format(err))
-        append_result("Unable to create roles.", str(err))
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        dlab.fab.append_result("Unable to create roles.", str(err))
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
     try:
         logging.info('[CREATE ENDPOINT AND ROUTE-TABLE]')
         print('[CREATE ENDPOINT AND ROUTE-TABLE]')
         params = "--vpc_id {} --region {} --infra_tag_name {} --infra_tag_value {}".format(
-            os.environ['aws_vpc_id'], os.environ['aws_region'], tag_name, service_base_name)
+            os.environ['aws_vpc_id'], os.environ['aws_region'], ssn_conf['tag_name'], ssn_conf['service_base_name'])
         try:
             local("~/scripts/{}.py {}".format('ssn_create_endpoint', params))
         except:
@@ -330,24 +355,25 @@ if __name__ == "__main__":
             raise Exception
     except Exception as err:
         print('Error: {0}'.format(err))
-        append_result("Unable to create an endpoint.", str(err))
-        remove_all_iam_resources(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        dlab.fab.append_result("Unable to create an endpoint.", str(err))
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
     if os.environ['conf_duo_vpc_enable'] == 'true':
@@ -355,7 +381,8 @@ if __name__ == "__main__":
             logging.info('[CREATE ENDPOINT AND ROUTE-TABLE FOR NOTEBOOK VPC]')
             print('[CREATE ENDPOINT AND ROUTE-TABLE FOR NOTEBOOK VPC]')
             params = "--vpc_id {} --region {} --infra_tag_name {} --infra_tag_value {}".format(
-                os.environ['aws_vpc2_id'], os.environ['aws_region'], tag2_name, service_base_name)
+                os.environ['aws_vpc2_id'], os.environ['aws_region'], ssn_conf['tag2_name'],
+                ssn_conf['service_base_name'])
             try:
                 local("~/scripts/{}.py {}".format('ssn_create_endpoint', params))
             except:
@@ -363,34 +390,36 @@ if __name__ == "__main__":
                 raise Exception
         except Exception as err:
             print('Error: {0}'.format(err))
-            append_result("Unable to create secondary endpoint.", str(err))
-            remove_all_iam_resources(instance)
-            if pre_defined_sg:
-                remove_sgroups(tag_name)
-            if pre_defined_subnet:
-                remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-                remove_subnets(service_base_name + "-subnet")
-            if pre_defined_vpc:
-                remove_route_tables(tag_name, True)
-                remove_vpc(os.environ['aws_vpc_id'])
-            if pre_defined_vpc2:
-                remove_peering('*')
+            dlab.fab.append_result("Unable to create secondary endpoint.", str(err))
+            dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+            if ssn_conf['pre_defined_sg']:
+                dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+            if ssn_conf['pre_defined_subnet']:
+                dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                          ssn_conf['service_base_name'])
+                dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+            if ssn_conf['pre_defined_vpc']:
+                dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+                dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+            if ssn_conf['pre_defined_vpc2']:
+                dlab.actions_lib.remove_peering('*')
                 try:
-                    remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                    dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
                 except:
                     print("There are no VPC Endpoints")
-                remove_route_tables(tag2_name, True)
-                remove_vpc(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+                dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
             sys.exit(1)
 
     try:
         logging.info('[CREATE SSN INSTANCE]')
         print('[CREATE SSN INSTANCE]')
-        params = "--node_name {0} --ami_id {1} --instance_type {2} --key_name {3} --security_group_ids {4} --subnet_id {5} " \
-                 "--iam_profile {6} --infra_tag_name {7} --infra_tag_value {8} --instance_class {9} --primary_disk_size {10}".\
-            format(instance_name, ssn_ami_id, os.environ['aws_ssn_instance_size'], os.environ['conf_key_name'],
-                   os.environ['aws_security_groups_ids'], os.environ['aws_subnet_id'],
-                   role_profile_name, tag_name, instance_name, 'ssn', '20')
+        params = "--node_name {0} --ami_id {1} --instance_type {2} --key_name {3} --security_group_ids {4} " \
+                 "--subnet_id {5} --iam_profile {6} --infra_tag_name {7} --infra_tag_value {8} --instance_class {9} " \
+                 "--primary_disk_size {10}".\
+            format(ssn_conf['instance_name'], ssn_conf['ssn_ami_id'], os.environ['aws_ssn_instance_size'],
+                   os.environ['conf_key_name'], os.environ['aws_security_groups_ids'], os.environ['aws_subnet_id'],
+                   ssn_conf['role_profile_name'], ssn_conf['tag_name'], ssn_conf['instance_name'], 'ssn', '20')
 
         try:
             local("~/scripts/{}.py {}".format('common_create_instance', params))
@@ -399,39 +428,40 @@ if __name__ == "__main__":
             raise Exception
     except Exception as err:
         print('Error: {0}'.format(err))
-        append_result("Unable to create ssn instance.", str(err))
-        remove_all_iam_resources(instance)
-        remove_s3(instance)
-        if pre_defined_sg:
-            remove_sgroups(tag_name)
-        if pre_defined_subnet:
-            remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-            remove_subnets(service_base_name + "-subnet")
-        if pre_defined_vpc:
-            remove_vpc_endpoints(os.environ['aws_vpc_id'])
-            remove_route_tables(tag_name, True)
-            remove_vpc(os.environ['aws_vpc_id'])
-        if pre_defined_vpc2:
-            remove_peering('*')
+        dlab.fab.append_result("Unable to create ssn instance.", str(err))
+        dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+        dlab.actions_lib.remove_s3(ssn_conf['instance'])
+        if ssn_conf['pre_defined_sg']:
+            dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+        if ssn_conf['pre_defined_subnet']:
+            dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                      ssn_conf['service_base_name'])
+            dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+        if ssn_conf['pre_defined_vpc']:
+            dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+        if ssn_conf['pre_defined_vpc2']:
+            dlab.actions_lib.remove_peering('*')
             try:
-                remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
             except:
                 print("There are no VPC Endpoints")
-            remove_route_tables(tag2_name, True)
-            remove_vpc(os.environ['aws_vpc2_id'])
+            dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+            dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
         sys.exit(1)
 
-    if network_type == 'public':
+    if ssn_conf['network_type'] == 'public':
         try:
             logging.info('[ASSOCIATING ELASTIC IP]')
             print('[ASSOCIATING ELASTIC IP]')
-            ssn_id = get_instance_by_name(tag_name, instance_name)
+            ssn_conf['ssn_id'] = dlab.meta_lib.get_instance_by_name(ssn_conf['tag_name'], ssn_conf['instance_name'])
             try:
-                elastic_ip = os.environ['ssn_elastic_ip']
+                ssn_conf['elastic_ip'] = os.environ['ssn_elastic_ip']
             except:
-                elastic_ip = 'None'
+                ssn_conf['elastic_ip'] = 'None'
             params = "--elastic_ip {} --ssn_id {} --infra_tag_name {} --infra_tag_value {}".format(
-                elastic_ip, ssn_id, tag_name, elastic_ip_name)
+                ssn_conf['elastic_ip'], ssn_conf['ssn_id'], ssn_conf['tag_name'], ssn_conf['elastic_ip_name'])
             try:
                 local("~/scripts/{}.py {}".format('ssn_associate_elastic_ip', params))
             except:
@@ -439,66 +469,72 @@ if __name__ == "__main__":
                 raise Exception
         except Exception as err:
             print('Error: {0}'.format(err))
-            append_result("Failed to associate elastic ip.", str(err))
-            remove_ec2(tag_name, instance_name)
-            remove_all_iam_resources(instance)
-            remove_s3(instance)
-            if pre_defined_sg:
-                remove_sgroups(tag_name)
-            if pre_defined_subnet:
-                remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-                remove_subnets(service_base_name + "-subnet")
-            if pre_defined_vpc:
-                remove_vpc_endpoints(os.environ['aws_vpc_id'])
-                remove_route_tables(tag_name, True)
-                remove_vpc(os.environ['aws_vpc_id'])
-            if pre_defined_vpc2:
-                remove_peering('*')
+            dlab.fab.append_result("Failed to associate elastic ip.", str(err))
+            dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+            dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+            dlab.actions_lib.remove_s3(ssn_conf['instance'])
+            if ssn_conf['pre_defined_sg']:
+                dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+            if ssn_conf['pre_defined_subnet']:
+                dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                          ssn_conf['service_base_name'])
+                dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+            if ssn_conf['pre_defined_vpc']:
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+                dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+                dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+            if ssn_conf['pre_defined_vpc2']:
+                dlab.actions_lib.remove_peering('*')
                 try:
-                    remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                    dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
                 except:
                     print("There are no VPC Endpoints")
-                remove_route_tables(tag2_name, True)
-                remove_vpc(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+                dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
             sys.exit(1)
 
-    if network_type == 'private':
-        instance_ip = get_instance_ip_address(tag_name, instance_name).get('Private')
+    if ssn_conf['network_type'] == 'private':
+        ssn_conf['instance_ip'] = dlab.meta_lib.get_instance_ip_address(ssn_conf['tag_name'],
+                                                                        ssn_conf['instance_name']).get('Private')
     else:
-        instance_ip = get_instance_ip_address(tag_name, instance_name).get('Public')
+        ssn_conf['instance_ip'] = dlab.meta_lib.get_instance_ip_address(ssn_conf['tag_name'],
+                                                                        ssn_conf['instance_name']).get('Public')
 
     if 'ssn_hosted_zone_id' in os.environ and 'ssn_hosted_zone_name' in os.environ and 'ssn_subdomain' in os.environ:
         try:
             logging.info('[CREATING ROUTE53 RECORD]')
             print('[CREATING ROUTE53 RECORD]')
             try:
-                create_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
-                                       os.environ['ssn_subdomain'], instance_ip)
+                dlab.actions_lib.create_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                        os.environ['ssn_hosted_zone_name'],
+                                                        os.environ['ssn_subdomain'], ssn_conf['instance_ip'])
             except:
                 traceback.print_exc()
                 raise Exception
         except Exception as err:
-            append_result("Failed to create route53 record.", str(err))
-            remove_route_53_record(os.environ['ssn_hosted_zone_id'], os.environ['ssn_hosted_zone_name'],
+            dlab.fab.append_result("Failed to create route53 record.", str(err))
+            dlab.actions_lib.remove_route_53_record(os.environ['ssn_hosted_zone_id'],
+                                                    os.environ['ssn_hosted_zone_name'],
                                    os.environ['ssn_subdomain'])
-            remove_ec2(tag_name, instance_name)
-            remove_all_iam_resources(instance)
-            remove_s3(instance)
-            if pre_defined_sg:
-                remove_sgroups(tag_name)
-            if pre_defined_subnet:
-                remove_internet_gateways(os.environ['aws_vpc_id'], tag_name, service_base_name)
-                remove_subnets(service_base_name + "-subnet")
-            if pre_defined_vpc:
-                remove_vpc_endpoints(os.environ['aws_vpc_id'])
-                remove_route_tables(tag_name, True)
-                remove_vpc(os.environ['aws_vpc_id'])
-            if pre_defined_vpc2:
-                remove_peering('*')
+            dlab.actions_lib.remove_ec2(ssn_conf['tag_name'], ssn_conf['instance_name'])
+            dlab.actions_lib.remove_all_iam_resources(ssn_conf['instance'])
+            dlab.actions_lib.remove_s3(ssn_conf['instance'])
+            if ssn_conf['pre_defined_sg']:
+                dlab.actions_lib.remove_sgroups(ssn_conf['tag_name'])
+            if ssn_conf['pre_defined_subnet']:
+                dlab.actions_lib.remove_internet_gateways(os.environ['aws_vpc_id'], ssn_conf['tag_name'],
+                                                          ssn_conf['service_base_name'])
+                dlab.actions_lib.remove_subnets(ssn_conf['subnet_name'])
+            if ssn_conf['pre_defined_vpc']:
+                dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc_id'])
+                dlab.actions_lib.remove_route_tables(ssn_conf['tag_name'], True)
+                dlab.actions_lib.remove_vpc(os.environ['aws_vpc_id'])
+            if ssn_conf['pre_defined_vpc2']:
+                dlab.actions_lib.remove_peering('*')
                 try:
-                    remove_vpc_endpoints(os.environ['aws_vpc2_id'])
+                    dlab.actions_lib.remove_vpc_endpoints(os.environ['aws_vpc2_id'])
                 except:
                     print("There are no VPC Endpoints")
-                remove_route_tables(tag2_name, True)
-                remove_vpc(os.environ['aws_vpc2_id'])
+                dlab.actions_lib.remove_route_tables(ssn_conf['tag2_name'], True)
+                dlab.actions_lib.remove_vpc(os.environ['aws_vpc2_id'])
             sys.exit(1)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org