Ejemplo n.º 1
0
def config_sessions(config, path):
    if "save" in config["session"]:
        del config["session"]["save"]
    config["session"] = {}
    config["session"]["save"] = "redis"
    config["session"]["redis"] = {}
    config["session"]["redis"]["host"] = "redis-session"
    config["session"]["redis"]["port"] = "6380"
    config["session"]["redis"]["password"] = ""
    config["session"]["redis"]["timeout"] = "2.5"
    config["session"]["redis"]["persistent_identifier"] = ""
    config["session"]["redis"]["database"] = "2"
    config["session"]["redis"]["compression_threshold"] = "2048"
    config["session"]["redis"]["compression_library"] = "gzip"
    config["session"]["redis"]["log_level"] = "1"
    config["session"]["redis"]["max_concurrency"] = "20"
    config["session"]["redis"]["break_after_frontend"] = "5"
    config["session"]["redis"]["break_after_adminhtml"] = "30"
    config["session"]["redis"]["first_lifetime"] = "600"
    config["session"]["redis"]["bot_first_lifetime"] = "60"
    config["session"]["redis"]["bot_lifetime"] = "7200"
    config["session"]["redis"]["disable_locking"] = "1"
    config["session"]["redis"]["min_lifetime"] = "60"
    config["session"]["redis"]["max_lifetime"] = "2592000"
    Conf.save_config(config, path)
    Menu.main_menu(config, path)
Ejemplo n.º 2
0
def config_rabbitmq(config, path):
    rabbit_password = input(Colors.WARNING + "RabbitMQ Password:"******"queue" in config:
        del config["queue"]
    config["queue"] = {}
    config["queue"]["amqp"] = {}
    config["queue"]["amqp"]["host"] = "rabbitmq"
    config["queue"]["amqp"]["port"] = "5672"
    config["queue"]["amqp"]["user"] = "******"
    config["queue"]["amqp"]["password"] = rabbit_password
    config["queue"]["amqp"]["virtualhost"] = "/"
    config["queue"]["amqp"]["ssl"] = "false"
    config["queue"]["amqp"]["ssl_options"] = {}

    consumers = check_output(
        ['php', path + '/bin/magento', 'queue:consumers:list'])

    if "cron_consumers_runner" in config:
        del config["cron_consumers_runner"]
    config["cron_consumers_runner"] = {}
    config["cron_consumers_runner"]["cron_run"] = "True"
    config["cron_consumers_runner"]["max_messages"] = 0
    config["cron_consumers_runner"]["consumers"] = consumers.decode(
        "utf-8").splitlines()
    Conf.save_config(config, path)
    Menu.main_menu(config, path)
Ejemplo n.º 3
0
def dev_copy_default(config, path, media):
    action = "Development Copy"
    # Get User Input
    user_input = UserInput()
    # Put Data in to Dict
    settings_dict = user_input.settings_dict
    # Backup Source Database
    print(Colors.FG.LightGreen + Colors.Bold + "Starting Production Database Backup" + Colors.Reset)
    time.sleep(1.5)
    Mysql.backup_remote_database(settings_dict)
    print(Colors.FG.LightGreen + Colors.Bold + "Starting Database Import From Production" + Colors.Reset)
    time.sleep(1.5)
    Mysql.import_remote_database(settings_dict)
    time.sleep(1.5)
    rsync_production_files(settings_dict)
    print(Colors.FG.LightGreen + Colors.Bold + "Doing Dev Copy Configuration for Magento 2" + Colors.Reset)
    time.sleep(1.5)
    config = conf.load_config(settings_dict["prod_public_html"])
    dev_config(settings_dict, config).init_config()
    config = conf.load_config(settings_dict["prod_public_html"])
    if "queue" in config:
        if "amqp" in config["queue"]:
            Rabbit.check_rabbitmq(config, settings_dict["prod_public_html"], 0)
    Mage.reindex_all_index(config, settings_dict["prod_public_html"])
    Mage.magento_compile(config, settings_dict["prod_public_html"])
    Mage.static_content_deploy(config, settings_dict["prod_public_html"])
    cache.clear_all_reinit(config, settings_dict["prod_public_html"], 0)
    print(Colors.FG.LightGreen + action + " Complete!" + Colors.Reset)
    menu.main_menu(settings_dict["prod_public_html"])
Ejemplo n.º 4
0
def clear_all(config, path):
    os.popen("php " + path + "/bin/magento cache:flush").read()
    os.popen("php " + path + "/bin/magento cache:clear").read()
    os.popen("redis-cli -h redis flushall").read()
    os.popen("/usr/share/stratus/cli cache.all.clear").read()
    print(Colors.OKGREEN + "Cleared All Caches" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 5
0
def config_cache(config, path):
    if "cache" in config:
        del config["cache"]

    config["cache"] = {}
    config["cache"]["frontend"] = {}
    config["cache"]["frontend"]["default"] = {}
    config["cache"]["frontend"]["default"][
        "backend"] = "Cm_Cache_Backend_Redis"
    config["cache"]["frontend"]["default"]["backend_options"] = {}
    config["cache"]["frontend"]["default"]["backend_options"][
        "server"] = "redis-config-cache"
    config["cache"]["frontend"]["default"]["backend_options"]["database"] = "0"
    config["cache"]["frontend"]["default"]["backend_options"]["port"] = "6381"
    config["cache"]["frontend"]["page_cache"] = {}
    config["cache"]["frontend"]["page_cache"][
        "backend"] = "Cm_Cache_Backend_Redis"
    config["cache"]["frontend"]["page_cache"]["backend_options"] = {}
    config["cache"]["frontend"]["page_cache"]["backend_options"][
        "server"] = "redis"
    config["cache"]["frontend"]["page_cache"]["backend_options"][
        "port"] = "6379"
    config["cache"]["frontend"]["page_cache"]["backend_options"][
        "database"] = "1"
    config["cache"]["frontend"]["page_cache"]["backend_options"][
        "compress_data"] = "1"
    Conf.save_config(config, path)
    Menu.main_menu(config, path)
Ejemplo n.º 6
0
def main():
    path = conf.get_path()
    if path.lower() == "none":
        menu.dev_copy_menu(False, False)
    else:
        version = str(
            os.popen(
                "cd " + path +
                " && n98-magerun2 sys:info | awk 'NR==10 { print $4;exit }'").
            readlines()[0]).replace("\n", "")
        major = version.split("-")[0].split(".")[0]
        minor = version.split("-")[0].split(".")[1]

        if int(major) != 2:
            print("Script Requires Magento 2.3 or 2.4 Your version: " +
                  version)
            exit()
        elif int(minor) < 3 or int(minor) > 4:
            print("Script Requires Magento 2.3 or 2.4. Your version: " +
                  version)
            exit()

        if os.path.exists(path + "/app/etc/env.php"):
            source = path + "/app/etc/env.php"
            dest = "/srv/webscale_toolkit/var/"
            shutil.copy2(source, dest)

        if os.path.exists(path + "/composer.json"):
            source = path + "/composer.json"
            dest = "/srv/webscale_toolkit/var/"
            shutil.copy2(source, dest)

        menu.main_menu(path)
Ejemplo n.º 7
0
def config_varnish(config, path):
    os.popen("php " + path + "/bin/magento config:set system/full_page_cache/caching_application 2")
    os.popen("php " + path + "/bin/magento config:set system/full_page_cache/varnish/access_list localhost")
    os.popen("php " + path + "/bin/magento config:set system/full_page_cache/varnish/backend_host nginx")
    os.popen("php " + path + "/bin/magento config:set system/full_page_cache/varnish/backend_port 8080")
    os.popen("php " + path + "/bin/magento setup:config:set --http-cache-hosts=varnish")
    print(Colors.OKGREEN + "Configured Varnish")
    Menu.main_menu(config, path)
Ejemplo n.º 8
0
def check_rabbitmq(config, path):
    if "queue" not in config:
        config_rabbitmq(config, path)
    elif "amqp" in config["queue"]:
        print(Colors.OKGREEN + "RabbitMQ Already Configured" + Colors.ENDC)
        Menu.main_menu(config, path)
    else:
        config_rabbitmq(config, path)
Ejemplo n.º 9
0
def install_mmcron(config, path):
    os.popen("cd " + path + " && composer require magemojo/m2-ce-cron").read()
    os.popen("php " + path + "/bin/magento module:enable MageMojo_Cron").read()
    os.popen("php " + path + "/bin/magento setup:upgrade").read()
    os.popen("php " + path + "/bin/magento setup:di:compile").read()
    os.popen("php " + path + "/bin/magento setup:static-content:deploy -f").read()
    print(Colors.OKGREEN + "MageMojo Cron Installed" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 10
0
def run_bash_command(config, path, action, command, success_message):
    running_command = command.split()
    output = subprocess.run(running_command, capture_output=True)
    if output.returncode == 0:
        print(Colors.FG.Green + Colors.Bold + success_message + Colors.Reset)
    else:
        print(Colors.FG.Red + Colors.Bold + "Error executing command. " +
              command + "\nError Output:\n" + output.stdout.decode("utf-8") +
              Colors.Reset)
        print(Colors.FG.Red + Colors.Bold + action +
              " not completed. Returning to Menu." + Colors.Reset)
        menu.main_menu(path)
Ejemplo n.º 11
0
def configure_elasticsearch(config, path, menu_return):
    action = "Configure Database for Elastic Search"
    version = input("ElasticSearch version? 5, 6 or 7 (Default 7):")
    if version == "":
        version = "elasticsearch7"
    elif version == "5":
        version = "elasticsearch5"
    elif version == "6":
        version = "elasticsearch6"
    elif version == "7":
        version = "elasticsearch7"
    else:
        print(Colors.FG.Yellow + "Versions can only be 5, 6, or 7: " + version + Colors.Reset)
        menu.main_menu(path)

    shell.run_bash_command(config, path, action,
                           "php -ddisplay_errors=on " + path + "/bin/magento config:set catalog/search/engine " + version,
                           ".")
    shell.run_bash_command(config, path, action,
                           "php -ddisplay_errors=on " + path + "/bin/magento config:set catalog/search/" + version + "_server_hostname elasticsearch",
                           "..")
    shell.run_bash_command(config, path, action,
                           "php -ddisplay_errors=on " + path + "/bin/magento config:set catalog/search/" + version + "_server_port 9200",
                           "...")
    shell.run_bash_command(config, path, action,
                           "php -ddisplay_errors=on " + path + "/bin/magento config:set catalog/search/" + version + "_index_prefix magento2",
                           "....")
    shell.run_bash_command(config, path, action,
                           "php -ddisplay_errors=on " + path + "/bin/magento config:set catalog/search/" + version + "_enable_auth 0",
                           ".....")
    shell.run_bash_command(config, path, action,
                           "php -ddisplay_errors=on " + path + "/bin/magento config:set catalog/search/" + version + "_server_timeout 15",
                           "......")
    print(Colors.FG.LightGreen + Colors.Bold + action + " Completed." + Colors.Reset)

    action = "Reindex Search Catalog"
    print(Colors.FG.LightGreen + Colors.Bold + action + " Started." + Colors.Reset)
    shell.run_bash_command(config, path, action,
                           "php -ddisplay_errors=on " + path + "/bin/magento indexer:reindex catalogsearch_fulltext",
                           ".......")
    print(Colors.FG.LightGreen + Colors.Bold + action + " Completed." + Colors.Reset)
    print(Colors.FG.LightGreen + Colors.Bold + "ElasticSearch Configured" + Colors.Reset)
    if menu_return == 1:
        menu.elasticsearch_menu(config, path)
Ejemplo n.º 12
0
def run_bash_command_popen(config, path, action, command, success_message):
    child = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
    streamdata = child.communicate()[0]
    rc = child.returncode
    if rc == 0:
        if success_message == 1:
            print(Colors.FG.LightGreen + Colors.Bold + action + " complete." +
                  Colors.Reset)
        elif success_message == "":
            return
        else:
            print(Colors.FG.LightGreen + Colors.Bold + success_message +
                  Colors.Reset)
    else:
        print(Colors.FG.Red + Colors.Bold + action +
              " not completed. Returning to Menu." + Colors.Reset)
        if config is False:
            menu.dev_copy_menu(False, False)
        else:
            menu.main_menu(path)
Ejemplo n.º 13
0
def update_mysql_credentials_from_system(config, path, menu_return):
    action = "Update MySQL Credentials"
    db_creds = get_mysql_credentials()
    if db_creds is not False:
        config["db"]["connection"]["default"]["host"] = "mysql"
        config["db"]["connection"]["default"]["dbname"] = db_creds["Name"]
        config["db"]["connection"]["default"]["username"] = db_creds[
            "Username"]
        config["db"]["connection"]["default"]["password"] = db_creds[
            "Password"]
        conf.save_config(config, path)
        print(Colors.FG.LightGreen + Colors.Bold + action + " Completed!" +
              Colors.Reset)
    else:
        print(Colors.FG.Red + Colors.Bold +
              "Error getting database credentials from Stratus CLI" +
              Colors.Reset)
        print(Colors.FG.Red + Colors.Bold + action +
              " not completed. Returning to Menu." + Colors.Reset)
    if menu_return == 1:
        menu.main_menu(path)
Ejemplo n.º 14
0
def clear_magento(config, path):
    os.popen("php " + path + "/bin/magento cache:flush").read()
    os.popen("php " + path + "/bin/magento cache:clear").read()
    print(Colors.OKGREEN + "Cleared Magento Cache" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 15
0
def reset_crons(config, path):
    os.popen("mysql -h mysql -u " + config["db"]["connection"]["default"]["username"] + " -p\"" + config["db"]["connection"]["default"]["password"] + "\" " + config["db"]["connection"]["default"]["dbname"] + " -e 'delete from " + config["db"]["table_prefix"] + "cron_schedule'").read()
    os.popen("pkill -f cron & pkill -f cron & rm -rf " + path + "/var/cron/* ").read()
    print(Colors.OKGREEN + "Reset Crons" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 16
0
def reinit_as_zdd(config, path):
    os.popen(
        "/usr/share/stratus/cli zerodowntime.init && /usr/share/stratus/cli zerodowntime.switch"
    ).read()
    print(Colors.OKGREEN + "Reinitalized Autoscaling" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 17
0
def reinit_as(config, path):
    os.popen("/usr/share/stratus/cli autoscaling.reinit").read()
    print(Colors.OKGREEN + "Reinitalized Autoscaling" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 18
0
def clear_cloudfront(config, path):
    os.popen("/usr/share/stratus/cli cache.all.clear").read()
    print(Colors.OKGREEN + "Cleared CloudFront Cache" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 19
0
def clear_redis(config, path):
    os.popen("redis-cli -h redis flushall").read()
    print(Colors.OKGREEN + "Cleared Redis Cache" + Colors.ENDC)
    Menu.main_menu(config, path)
Ejemplo n.º 20
0
def main():
    path = conf.get_path()
    config = conf.load_config(path)
    Menu.main_menu(config, path)
Ejemplo n.º 21
0
def purge_varnish(config, path):
    os.popen("curl -X 'PURGE' -H'X-Magento-Tags-Pattern: .*' varnish")
    print(Colors.OKGREEN + "Purged Varnish")
    Menu.main_menu(config, path)