Friday, 8 July 2022

Read excel tables from bunch files in the folder and convert them to csv files with delimiter '|'

import os
import pandas as pd
from janitor import xlsx_table
from tabulate import tabulate

# folder path
dir_path = "C:/test/"

# list to store files
res = []

# Iterate directory
for path in os.listdir(dir_path):
    # check if current path is a file
    if os.path.isfile(os.path.join(dir_path, path)):
        res.append(path)

pd.set_option("display.max_columns", None)
pd.set_option("display.expand_frame_repr", False)
#pd.set_option("max_colwidth", None)

if os.path.exists(dir_path+"/archive/ERPEVAL.txt"):
    os.remove(dir_path+"/archive/ERPEVAL.txt")
    print(dir_path+"/archive/ERPEVAL.txt"+" This file has been deleted successfully")
else:
    print("The file does not exist!")

for a in res:
    #print (a)
    filename = dir_path+a
    print (filename+" -> File Processed successfully")    
    df = pd.DataFrame(xlsx_table(filename,sheetname = 'Questionnaire', table=["datatable"]))    
    # print(df.to_csv(index=False,header=None,line_terminator='\n',sep='|',encoding='utf-8',columns=["ID","Name","Dept","Category","pscore","ascore","fsiscore"]))
    with open(dir_path+"/archive/ERPEVAL.txt", 'a+') as f:
        str = df.to_csv(index=False,header=None,line_terminator='\n',sep='|',encoding='utf-8',columns=["ID","Name","Dept","Category","pscore","ascore","fsiscore"])
        f.write(str)



Sunday, 20 March 2022

Saturday, 12 March 2022

JMX Wildfly 8.2.1



set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.logmanager -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:C:\Users\zafru\Downloads\wildfly-8.2.1.Final\modules\system\layers\base\org\jboss\logmanager\main\jboss-logmanager-1.5.2.Final.jar -Djava.rmi.server.hostname=192.168.1.168 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8686 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

 Steps

1) .\visualvm.exe --cp:a C:/Users/zafru/Downloads/visualvm_212/visualvm/lib/jboss-cli-client.jar

2) standalone.xml


<?xml version="1.0" ?>


<server xmlns="urn:jboss:domain:2.2">


    <extensions>

        <extension module="org.jboss.as.clustering.infinispan"/>

        <extension module="org.jboss.as.connector"/>

        <extension module="org.jboss.as.deployment-scanner"/>

        <extension module="org.jboss.as.ee"/>

        <extension module="org.jboss.as.ejb3"/>

        <extension module="org.jboss.as.jaxrs"/>

        <extension module="org.jboss.as.jdr"/>

        <extension module="org.jboss.as.jmx"/>

        <extension module="org.jboss.as.jpa"/>

        <extension module="org.jboss.as.jsf"/>

        <extension module="org.jboss.as.logging"/>

        <extension module="org.jboss.as.mail"/>

        <extension module="org.jboss.as.naming"/>

        <extension module="org.jboss.as.pojo"/>

        <extension module="org.jboss.as.remoting"/>

        <extension module="org.jboss.as.sar"/>

        <extension module="org.jboss.as.security"/>

        <extension module="org.jboss.as.transactions"/>

        <extension module="org.jboss.as.webservices"/>

        <extension module="org.jboss.as.weld"/>

        <extension module="org.wildfly.extension.batch"/>

        <extension module="org.wildfly.extension.io"/>

        <extension module="org.wildfly.extension.undertow"/>

    </extensions>



    <management>

        <security-realms>

            <security-realm name="ManagementRealm">

                <authentication>

                    <local default-user="$local" skip-group-loading="true"/>

                    <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>

                </authentication>

                <authorization map-groups-to-roles="false">

                    <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>

                </authorization>

            </security-realm>

            <security-realm name="ApplicationRealm">

                <authentication>

                    <local default-user="$local" allowed-users="*" skip-group-loading="true"/>

                    <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>

                </authentication>

                <authorization>

                    <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>

                </authorization>

            </security-realm>

        </security-realms>

        <audit-log>

            <formatters>

                <json-formatter name="json-formatter"/>

            </formatters>

            <handlers>

                <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>

            </handlers>

            <logger log-boot="true" log-read-only="false" enabled="false">

                <handlers>

                    <handler name="file"/>

                </handlers>

            </logger>

        </audit-log>

        <management-interfaces>

            <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true">

                <socket-binding http="management-http"/>

            </http-interface>

        </management-interfaces>

        <access-control provider="simple">

            <role-mapping>

                <role name="SuperUser">

                    <include>

                        <user name="$local"/>

                    </include>

                </role>

            </role-mapping>

        </access-control>

    </management>


    <profile>

        <subsystem xmlns="urn:jboss:domain:logging:2.0">

            <console-handler name="CONSOLE">

                <level name="INFO"/>

                <formatter>

                    <named-formatter name="COLOR-PATTERN"/>

                </formatter>

            </console-handler>

            <periodic-rotating-file-handler name="FILE" autoflush="true">

                <formatter>

                    <named-formatter name="PATTERN"/>

                </formatter>

                <file relative-to="jboss.server.log.dir" path="server.log"/>

                <suffix value=".yyyy-MM-dd"/>

                <append value="true"/>

            </periodic-rotating-file-handler>

            <logger category="com.arjuna">

                <level name="WARN"/>

            </logger>

            <logger category="org.apache.tomcat.util.modeler">

                <level name="WARN"/>

            </logger>

            <logger category="org.jboss.as.config">

                <level name="DEBUG"/>

            </logger>

            <logger category="sun.rmi">

                <level name="WARN"/>

            </logger>

            <logger category="jacorb">

                <level name="WARN"/>

            </logger>

            <logger category="jacorb.config">

                <level name="ERROR"/>

            </logger>

            <root-logger>

                <level name="INFO"/>

                <handlers>

                    <handler name="CONSOLE"/>

                    <handler name="FILE"/>

                </handlers>

            </root-logger>

            <formatter name="PATTERN">

                <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

            </formatter>

            <formatter name="COLOR-PATTERN">

                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

            </formatter>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:batch:1.0">

            <job-repository>

                <in-memory/>

            </job-repository>

            <thread-pool>

                <max-threads count="10"/>

                <keepalive-time time="30" unit="seconds"/>

            </thread-pool>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:datasources:2.0">

            <datasources>

                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">

                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>

                    <driver>h2</driver>

                    <security>

                        <user-name>sa</user-name>

                        <password>sa</password>

                    </security>

                </datasource>

                <drivers>

                    <driver name="h2" module="com.h2database.h2">

                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>

                    </driver>

                </drivers>

            </datasources>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">

            <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:ee:2.0">

            <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>

            <concurrent>

                <context-services>

                    <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/>

                </context-services>

                <managed-thread-factories>

                    <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/>

                </managed-thread-factories>

                <managed-executor-services>

                    <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" core-threads="5" max-threads="25" keepalive-time="5000"/>

                </managed-executor-services>

                <managed-scheduled-executor-services>

                    <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" core-threads="2" keepalive-time="3000"/>

                </managed-scheduled-executor-services>

            </concurrent>

            <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:ejb3:2.0">

            <session-bean>

                <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/>

                <singleton default-access-timeout="5000"/>

            </session-bean>

            <pools>

                <bean-instance-pools>

                    <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                    <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                </bean-instance-pools>

            </pools>

            <caches>

                <cache name="simple"/>

                <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>

            </caches>

            <passivation-stores>

                <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>

            </passivation-stores>

            <timer-service thread-pool-name="default" default-data-store="default-file-store">

                <data-stores>

                    <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/>

                </data-stores>

            </timer-service>

            <remote connector-ref="http-remoting-connector" thread-pool-name="default"/>

            <thread-pools>

                <thread-pool name="default">

                    <max-threads count="10"/>

                    <keepalive-time time="100" unit="milliseconds"/>

                </thread-pool>

            </thread-pools>

            <default-security-domain value="other"/>

            <default-missing-method-permissions-deny-access value="true"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:io:1.1">

            <worker name="default"/>

            <buffer-pool name="default"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:infinispan:2.0">

            <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">

                <local-cache name="passivation" batching="true">

                    <file-store passivation="true" purge="false"/>

                </local-cache>

                <local-cache name="persistent" batching="true">

                    <file-store passivation="false" purge="false"/>

                </local-cache>

            </cache-container>

            <cache-container name="ejb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan" aliases="sfsb">

                <local-cache name="passivation" batching="true">

                    <file-store passivation="true" purge="false"/>

                </local-cache>

                <local-cache name="persistent" batching="true">

                    <file-store passivation="false" purge="false"/>

                </local-cache>

            </cache-container>

            <cache-container name="hibernate" default-cache="local-query" module="org.hibernate">

                <local-cache name="entity">

                    <transaction mode="NON_XA"/>

                    <eviction strategy="LRU" max-entries="10000"/>

                    <expiration max-idle="100000"/>

                </local-cache>

                <local-cache name="local-query">

                    <transaction mode="NONE"/>

                    <eviction strategy="LRU" max-entries="10000"/>

                    <expiration max-idle="100000"/>

                </local-cache>

                <local-cache name="timestamps">

                    <transaction mode="NONE"/>

                    <eviction strategy="NONE"/>

                </local-cache>

            </cache-container>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

        <subsystem xmlns="urn:jboss:domain:jca:2.0">

            <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

            <bean-validation enabled="true"/>

            <default-workmanager>

                <short-running-threads>

                    <core-threads count="50"/>

                    <queue-length count="50"/>

                    <max-threads count="50"/>

                    <keepalive-time time="10" unit="seconds"/>

                </short-running-threads>

                <long-running-threads>

                    <core-threads count="50"/>

                    <queue-length count="50"/>

                    <max-threads count="50"/>

                    <keepalive-time time="10" unit="seconds"/>

                </long-running-threads>

            </default-workmanager>

            <cached-connection-manager/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>

        <subsystem xmlns="urn:jboss:domain:jmx:1.3">

            <expose-resolved-model/>

            <expose-expression-model/>

            <remoting-connector use-management-endpoint="true"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:jpa:1.1">

            <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:jsf:1.0"/>

        <subsystem xmlns="urn:jboss:domain:mail:2.0">

            <mail-session name="default" jndi-name="java:jboss/mail/Default">

                <smtp-server outbound-socket-binding-ref="mail-smtp"/>

            </mail-session>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:naming:2.0">

            <remote-naming/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>

        <subsystem xmlns="urn:jboss:domain:remoting:2.0">

            <endpoint worker="default"/>

            <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:resource-adapters:2.0"/>

        <subsystem xmlns="urn:jboss:domain:sar:1.0"/>

        <subsystem xmlns="urn:jboss:domain:security:1.2">

            <security-domains>

                <security-domain name="other" cache-type="default">

                    <authentication>

                        <login-module code="Remoting" flag="optional">

                            <module-option name="password-stacking" value="useFirstPass"/>

                        </login-module>

                        <login-module code="RealmDirect" flag="required">

                            <module-option name="password-stacking" value="useFirstPass"/>

                        </login-module>

                    </authentication>

                </security-domain>

                <security-domain name="jboss-web-policy" cache-type="default">

                    <authorization>

                        <policy-module code="Delegating" flag="required"/>

                    </authorization>

                </security-domain>

                <security-domain name="jboss-ejb-policy" cache-type="default">

                    <authorization>

                        <policy-module code="Delegating" flag="required"/>

                    </authorization>

                </security-domain>

            </security-domains>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:transactions:2.0">

            <core-environment>

                <process-id>

                    <uuid/>

                </process-id>

            </core-environment>

            <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:undertow:1.2">

            <buffer-cache name="default"/>

            <server name="default-server">

                <http-listener name="default" socket-binding="http"/>

                <host name="default-host" alias="localhost">

                    <location name="/" handler="welcome-content"/>

                    <filter-ref name="server-header"/>

                    <filter-ref name="x-powered-by-header"/>

                </host>

            </server>

            <servlet-container name="default">

                <jsp-config/>

                <websockets/>

            </servlet-container>

            <handlers>

                <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>

            </handlers>

            <filters>

                <response-header name="server-header" header-name="Server" header-value="WildFly/8"/>

                <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>

            </filters>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:webservices:1.2">

            <wsdl-host>${jboss.bind.address:0.0.0.0}</wsdl-host>

            <endpoint-config name="Standard-Endpoint-Config"/>

            <endpoint-config name="Recording-Endpoint-Config">

                <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                    <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                </pre-handler-chain>

            </endpoint-config>

            <client-config name="Standard-Client-Config"/>

        </subsystem>

        <subsystem xmlns="urn:jboss:domain:weld:2.0"/>

    </profile>


    <interfaces>

        <interface name="management">

            <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>

        </interface>

        <interface name="public">

            <inet-address value="${jboss.bind.address:0.0.0.0}"/>

        </interface>

        <interface name="unsecure">

            <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>

        </interface>

    </interfaces>


    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">

        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>

        <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>

        <socket-binding name="http" port="${jboss.http.port:8090}"/>

        <socket-binding name="https" port="${jboss.https.port:8443}"/>

        <socket-binding name="txn-recovery-environment" port="4712"/>

        <socket-binding name="txn-status-manager" port="4713"/>

        <outbound-socket-binding name="mail-smtp">

            <remote-destination host="localhost" port="25"/>

        </outbound-socket-binding>

    </socket-binding-group>

</server>


Sunday, 6 February 2022

Android App - Browser Specific URL testing - Source Code

1) activity_main.xml - Layout design

 <?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<Button
android:id="@+id/btnChrome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="55dp"
android:layout_marginTop="163dp"
android:layout_marginBottom="273dp"
android:onClick="btnChrome"
android:text="Chrome"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/urlText" />

<Button
android:id="@+id/btnEdge"
android:layout_width="96dp"
android:layout_height="51dp"
android:layout_marginStart="94dp"
android:layout_marginEnd="69dp"
android:layout_marginBottom="273dp"
android:onClick="btnEdge"
android:text="Edge"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/btnChrome" />

<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="91dp"
android:layout_marginBottom="69dp"
android:fontFamily="sans-serif-medium"
android:gravity="center"
android:text="Browser URL Tester"
android:textSize="24sp"
app:layout_constraintBottom_toTopOf="@+id/urlText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />

<EditText
android:id="@+id/urlText"
android:layout_width="242dp"
android:layout_height="48dp"
android:layout_marginEnd="55dp"
android:layout_marginBottom="160dp"
android:ems="10"
android:hint="Enter URL"
android:inputType="text"
app:layout_constraintBottom_toTopOf="@+id/btnEdge"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/textView3" />

<TextView
android:id="@+id/textView3"
android:layout_width="74dp"
android:layout_height="31dp"
android:layout_marginStart="30dp"
android:layout_marginTop="80dp"
android:layout_marginBottom="171dp"
android:gravity="center"
android:text="http://"
android:textSize="20sp"
app:layout_constraintBottom_toTopOf="@+id/btnChrome"
app:layout_constraintEnd_toStartOf="@+id/urlText"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="1.0" />

<androidx.constraintlayout.helper.widget.Flow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/btnEdge"
app:layout_constraintStart_toEndOf="@+id/btnChrome" />

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="289dp" />

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="286dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java - Main Java File
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void btnChrome(View view){
TextView tView = findViewById(R.id.textView);
EditText urlTxt = findViewById(R.id.urlText);
String URL = urlTxt.getText().toString();
tView.setText(URL.toString());
openUrlChrome("http://"+URL.toString());
}

public void btnEdge(View view){
TextView tView = findViewById(R.id.textView);
EditText urlTxt = findViewById(R.id.urlText);
String URL = urlTxt.getText().toString();
tView.setText(URL.toString());
openUrlEdge("http://"+URL.toString());
}

public void openUrlChrome(String url) {
//url = url.replace("http://","");
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage("com.android.chrome");
try {

startActivity(intent);
} catch (ActivityNotFoundException ex) {

intent.setPackage(null);
startActivity(Intent.createChooser(intent, "Select Browser"));
}

}

public void openUrlEdge(String url) {
//url = url.replace("http://","");
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage("com.android.edge");
try {

startActivity(intent);
} catch (ActivityNotFoundException ex) {

intent.setPackage(null);
startActivity(Intent.createChooser(intent, "Select Browser"));
}
}
}





Sunday, 29 August 2021

PowerShell on Ubuntu

Commands to connect from Linux to Windows Server


Enter-PSSession -ComputerName <IPADDR> -Credential oneflorida\administrator -Authentication Negotiate

Invoke-Command -ComputerName  <IPADDR>  -ScriptBlock { get-ChildItem c:\ } -Credential oneflorida\administrator -Authentication Negotiate 


Install PowerShell

# Update the list of packages
sudo apt-get update
# Install pre-requisite packages.
sudo apt-get install -y wget apt-transport-https
# Download the Microsoft repository GPG keys
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb
# Update the list of products
sudo apt-get update
# Enable the "universe" repositories
sudo add-apt-repository universe
# Install PowerShell
sudo apt-get install -y powershell
# Start PowerShell
pwsh
Fix one issues with the library
ldd /opt/microsoft/powershell/7/libmi.so
   linux-vdso.so.1 (0x00007fff9617c000)
   libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2a180a2000)
   libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2a1809c000)
   libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f2a1808a000)
   libssl.so.1.0.0 => not found
   libcrypto.so.1.0.0 => not found
   libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2a17e98000)
   /lib64/ld-linux-x86-64.so.2 (0x00007f2a182ad000)
   libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f2a17e6a000)
   libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007f2a17e62000)
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /lib/x86_64-linux-gnu/libssl.so.1.0.0
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
apt install gss-ntlmssp

Wednesday, 18 August 2021

lxc container oracle/centos 8 not getting macvlan ip address


This has been beating us up here as well. Today, I found an answer. It may not be /the/ answer, but it does work. The problem is with CentOS 8 and the complete replacement of network-scripts with NetworkManager scripts. I know that there have been others searching for an answer to this in vain, so I’m offering up what I’ve found. Do with it what you may!

  1. Create a centos8 container using the defaults (i.e., don’t apply macvlan to them on the build) so have it use the bridge interface, which is the default

  2. Next get into the container

lxc exec [container_name] bash

  1. Next install the old network-scripts package

dnf install network-scripts

  1. Next stop Network Manager

systemctl stop NetworkManager

  1. Now make sure it doesn’t start on container startup

systemctl disable NetworkManager

  1. Next enable the Network service (part of the network-scripts package)

systemctl enable network.service

  1. Exit out of the container

  2. Now apply (or assign) your macvlan template to the container

lxc profile apply [container_name] default,macvlan - Get into the container and modify the interface vi /etc/sysconfig/network-scripts/ifcfg-eth0

and set the interface with the IP or dhcp, depending on your setup. Save the configuration and get out.

  1. Test that the interface comes up

ifup eth0

Monday, 2 August 2021

PUMMER Deployment

Script to Deploy PUM Images Automatically

Main: pummer.ksh
==============
process_id=$(echo $$);
clear
echo ""
echo ""
echo ""

deploy_pum_image()
{

# Clone Container
# MODULE="CRM"
# bugid="31046243"
# NUMBER=3

# Prepare the container

echo "Destroying the existing ${MODULE}${bugid} container, if it exists \n"
    
lxc-ls --active
lxc-stop -k -n ${MODULE}${bugid}
lxc-destroy -n ${MODULE}${bugid}

echo "Cloning and Creating ${MODULE}${bugid} container"
lxc-clone oraclepumtemplate ${MODULE}${bugid}

echo "Preparing ${MODULE}${bugid} container"
mkdir -p /container/${MODULE}${bugid}/rootfs/pumdownload     
unalias cp;cp -rf /container/templates/config_template /container/${MODULE}${bugid}/config
sed -i "s/"__HOSTNAME__"/"${MODULE}${bugid}"/g" /container/${MODULE}${bugid}/config
cat /container/${MODULE}${bugid}/config

# Start the container

lxc-start -n ${MODULE}${bugid} -d -o /container/${MODULE}${bugid}.log -l DEBUG

# Deploy PUM IMAGE
lxc-attach -e -n "${MODULE}${bugid}" -o /tmp/${MODULE}${bugid}_$$.log -- chmod +x /root/scripts/pum_deploy.sh
lxc-attach -e -n "${MODULE}${bugid}" -o /tmp/${MODULE}${bugid}_$$.log -- /root/scripts/pum_deploy.sh ${NUMBER} ${bugid}

}

echo "==========================================="
echo "Welcome to PUMMER - PUM Deployment Manager"
echo "==========================================="

read -p 'Please Enter your Oracle ID:  ' uservar
read -sp 'Password: ' passvar
echo ""
echo ""
echo -n "Validating your Credentials: "
if [ $(/usr/bin/java -jar /root/pumdump/getMOSPatch.jar MOSUser=$uservar MOSPass=$passvar platform=226P download=all patch=32356044|grep "ERROR: Invalid credentials"|wc -l) -eq 1 ]; then
        echo -n "Invalid Credentials"
else
        echo -n " All Good"
        echo ""
        echo ""

        #read -p 'Application Module Number? 1-FSCM, 2-HCM, 3-CRM, 4-PORTAL:  ' module

                while true
                do
                read -p "Module Number? 1-FSCM, 2-HCM, 3-CRM, 4-PORTAL, 5-ELM, 6-CampusSolutions:  " NUMBER
                case $NUMBER in
                                1) MODULE="FSCM"; break;;
                                2) MODULE="HCM"; break;;
                                3) MODULE="CRM"; break;;
                                4) MODULE="PORTAL"; break;;
5) MODULE="ELM"; break;;
5) MODULE="CS"; break;;
                                *) echo "Not a valid option" ; continue ;;
                esac
                done

        echo ""

                while true
                do
                read -p 'Please Enter PUM / Bug ID:  ' bugid
                /usr/bin/java -jar /root/pumdump/getMOSPatch.jar MOSUser=$uservar MOSPass=$passvar platform=226P patch=$bugid > /tmp/${bugid}_${process_id}.txt 2>/dev/null

                                if [ $(cat /tmp/${bugid}_${process_id}.txt|grep zip|wc -l) -gt 5 ];
                                then
                                        break;
                                else
                                        continue
                                fi
                done

fi

 cat /tmp/${bugid}_${process_id}.txt

 echo "Please confirm if you want to move forward with the download of the BUG ID : $bugid and create a PUM instance ?"

read -r -p "Are you sure? [y/N] " response

if [[ "$response" =~ ^([yY][eE][sS]|[yY])$ ]]
then
                mkdir -p /pumdownloads/${MODULE}/${bugid} && cd /pumdownloads/${MODULE}/${bugid}

                if [ -f /pumdownloads/${MODULE}/${bugid}/ALL_GOOD_FILES.txt ]
                then
                        echo ""
                        echo ""
                        echo "Good News: PUM Image ${MODULE} has been already downloaded no need to download once again. :)"
                        echo "Thanks, PUMMER will sent email notification along with the URL to your oracle $uservar once the PUM image is successfully deployed"
deploy_pum_image
                        echo ""
                        echo ""
                else
cd /pumdownloads/${MODULE}/${bugid}
nohup /container/scripts/download_deploy_pum_image.ksh uservar passvar bugid MODULE NUMBER > /pumdownloads/download_deploy_pum_image_${bugid}_${process_id}.log 2>&1 &
# deploy_pum_image
touch /pumdownloads/${MODULE}/${bugid}/ALL_GOOD_FILES.txt
                        echo ""
                        echo ""
                        echo "Thanks, PUMMER will sent email notification along with the URL to your oracle $uservar once the PUM image is successfully deployed"
                        echo ""
                        echo ""
                fi
else
 echo "Ok, your request is cancelled!"
fi



[root@localhost scripts]# cat download_deploy_pum_image.ksh
uservar=$1
passvar=$2
bugid=$3
MODULE=$4
NUMBER=$5

deploy_pum_image()
{

# Clone Container
# MODULE="CRM"
# bugid="31046243"
# NUMBER=3

# Prepare the container

echo "Destroying the existing ${MODULE}${bugid} container, if it exists \n"

        lxc-ls --active
        lxc-stop -k -n ${MODULE}${bugid}
        lxc-destroy -n ${MODULE}${bugid}

echo "Cloning and Creating ${MODULE}${bugid} container"

        lxc-clone oraclepumtemplate ${MODULE}${bugid}

echo "Preparing ${MODULE}${bugid} container"

        mkdir -p /container/${MODULE}${bugid}/rootfs/pumdownload
        unalias cp;cp -rf /container/templates/config_template /container/${MODULE}${bugid}/config
        sed -i "s/"__HOSTNAME__"/"${MODULE}${bugid}"/g" /container/${MODULE}${bugid}/config
        cat /container/${MODULE}${bugid}/config

# Start the container

lxc-start -n ${MODULE}${bugid} -d -o /container/${MODULE}${bugid}.log -l DEBUG

# Deploy PUM IMAGE
lxc-attach -e -n "${MODULE}${bugid}" -o /tmp/${MODULE}${bugid}_$$.log -- chmod +x /root/scripts/pum_deploy.sh
lxc-attach -e -n "${MODULE}${bugid}" -o /tmp/${MODULE}${bugid}_$$.log -- /root/scripts/pum_deploy.sh ${NUMBER} ${bugid}

}


/usr/bin/java -jar /root/pumdump/getMOSPatch.jar MOSUser=$uservar MOSPass=$passvar download=all platform=226P patch=$bugid; > /pumdownloads/${bugid}_${process_id}.log
touch /pumdownloads/${MODULE}/${bugid}/ALL_GOOD_FILES.txt
deploy_pum_image



# pum_deploy.sh
==============

[root@localhost scripts]# cat pum_deploy.sh
#pum_deploy.sh <APPLICATION> <PUMIMAGEID>
# 1-FSCM, 2-HCM, 3-CRM, 4-PORTAL, 5-ELM, 6-CampusSolutions

TEMPLATES=/root/scripts/templates
APPLICATION=$1
PUMIMAGE=$2
# /etc/hosts file update
if [ $(/sbin/ifconfig|grep eth1|wc -l) -eq 1 ]
then
        /sbin/ifconfig| grep eth1 -A 1|grep inet|awk -v host=$(hostname) '{ print "127.0.0.1 localhost\n"  $2 " " host }' > /etc/hosts
else
        echo "eth1 Not Found"
fi

if [ $APPLICATION -eq 1 ]
then
        # FSCM execution
        if [ -d /pumdownload/pumdownloads/FSCM/$PUMIMAGE ]; then
                cd /pumdownload/pumdownloads/FSCM/$PUMIMAGE/ && unzip -o *_1of*.zip
                cd /pumdownload/pumdownloads/FSCM/$PUMIMAGE/setup
                sh psft-dpk-setup.sh --silent --response_file=$TEMPLATES/fscm_response.txt --customization_file=$TEMPLATES/fscm_psft_customizations.yaml
        else
                echo "Sorry the PUM Image $PUMIMAGE Not Found for FSCM"
                exit 5
        fi
elif [ $APPLICATION -eq 2 ]; then
        # HCM execution
        if [ -d /pumdownload/pumdownloads/HCM/$PUMIMAGE ]; then
                cd /pumdownload/pumdownloads/HCM/$PUMIMAGE/ && unzip -o *_1of*.zip
                cd /pumdownload/pumdownloads/HCM/$PUMIMAGE/setup
                sh psft-dpk-setup.sh --silent --response_file=$TEMPLATES/hcm_response.txt --customization_file=$TEMPLATES/hcm_psft_customizations.yaml
        else
                echo "Sorry the PUM Image $PUMIMAGE Not Found for HCM"
                exit 5
        fi
elif [ $APPLICATION -eq 3 ]; then
        # CRM execution
        if [ -d /pumdownload/pumdownloads/CRM/$PUMIMAGE ]; then
                cd /pumdownload/pumdownloads/CRM/$PUMIMAGE/ && unzip -o *_1of*.zip
                cd /pumdownload/pumdownloads/CRM/$PUMIMAGE/setup
                sh psft-dpk-setup.sh --silent --response_file=$TEMPLATES/crm_response.txt --customization_file=$TEMPLATES/crm_psft_customizations.yaml
        else
                echo "Sorry the PUM Image $PUMIMAGE Not Found for CRM"
                exit 5
        fi
elif [ $APPLICATION -eq 4 ]; then
        # PORTAL execution
        if [ -d /pumdownload/pumdownloads/PORTAL/$PUMIMAGE ]; then
                cd /pumdownload/pumdownloads/PORTAL/$PUMIMAGE/ && unzip -o *_1of*.zip
                cd /pumdownload/pumdownloads/PORTAL/$PUMIMAGE/setup
                sh psft-dpk-setup.sh --silent --response_file=$TEMPLATES/portal_response.txt --customization_file=$TEMPLATES/portal_psft_customizations.yaml
        else
                echo "Sorry the PUM Image $PUMIMAGE Not Found for PORTAL"
                exit 5
        fi
elif [ $APPLICATION -eq 5 ]; then
        # ELM execution
                if [ -d /pumdownload/pumdownloads/ELM/$PUMIMAGE ]; then
                cd /pumdownload/pumdownloads/ELM/$PUMIMAGE/ && unzip -o *_1of*.zip
                cd /pumdownload/pumdownloads/ELM/$PUMIMAGE/setup
                sh psft-dpk-setup.sh --silent --response_file=$TEMPLATES/elm_response.txt --customization_file=$TEMPLATES/elm_psft_customizations.yaml
        else
                echo "Sorry the PUM Image $PUMIMAGE Not Found for ELM"
                exit 5
        fi
elif [ $APPLICATION -eq 6 ]; then
        # CS execution

        if [ -d /pumdownload/pumdownloads/CS/$PUMIMAGE ]; then
                cd /pumdownload/pumdownloads/CS/$PUMIMAGE/ && unzip -o *_1of*.zip
                cd /pumdownload/pumdownloads/CS/$PUMIMAGE/setup
                sh psft-dpk-setup.sh --silent --response_file=$TEMPLATES/cs_response.txt --customization_file=$TEMPLATES/cs_psft_customizations.yaml
        else
                echo "Sorry the PUM Image $PUMIMAGE Not Found for CS"
                exit 5
        fi
else
                echo "Wrong Option for the PUM Images"
                exit 1;
fi