<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2894198287560045977</id><updated>2024-08-30T07:15:29.140-07:00</updated><category term="WSO2"/><category term="Linux"/><category term="Kubernetees"/><category term="WSO2 AppFactory"/><category term="WSO2 IS"/><category term="AWS"/><category term="AWS EKS"/><category term="Gluster"/><category term="WSO2 API Manager"/><category term="CICD with WSO2 App Cloud"/><category term="CoreOS"/><category term="Maven"/><category term="Orion"/><category term="User Management"/><category term="WSO2 App Cloud"/><category term="archetype"/><title type='text'>My Tech World</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-7322376677069911135</id><published>2019-10-12T04:17:00.003-07:00</published><updated>2019-10-12T04:18:21.910-07:00</updated><title type='text'>Installing Grafana with ingress</title><content type='html'>&lt;h2&gt;
Installing Grafana with&amp;nbsp;ingress&lt;/h2&gt;
&lt;div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;5123&quot;&gt;
If you are deploying Prometheus and Grafana in Kubernetes, easiest way would be to use helm charts. But when you are deploying the helm chart, You will need to provide custom parameters mainly for storage configuration and service configuration to expose Grafana UI to outsiders.&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;1b7f&quot;&gt;
In this blog I will share the artifacts I used in the AWS EKS. But if someone wants to change it to use in any other platform or a custom installation, just change the ingress annotations and you will be good.&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;1b7f&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;0ff8&quot;&gt;
For the basic installation I used eks workshop&lt;a class=&quot;markup--anchor markup--p-anchor&quot; data-href=&quot;https://eksworkshop.com/monitoring/&quot; href=&quot;https://eksworkshop.com/monitoring/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;[1]&lt;/a&gt; to start with. Here everything is provided in command line. Instead I used yaml files and used the file with -f option of the helm command. My sample helm command would be like below.&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;0ff8&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;graf graf--pre&quot; name=&quot;659c&quot;&gt;helm install --name promethues stable/prometheus -f prometheus.yaml --namespace prometheus&lt;/pre&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;cd88&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;cd88&quot;&gt;
My prometheus.yaml will be like below. Here I haven’t changed anything from eks workshop other than taking everything to yaml file. But if you intend to change something you can do so by adding more content to this yaml according to the structure of prometheus values.yaml&lt;a class=&quot;markup--anchor markup--p-anchor&quot; data-href=&quot;https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml&quot; href=&quot;https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;[2]&lt;/a&gt;.&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;cd88&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;graf graf--pre&quot; name=&quot;2f1d&quot;&gt;alertmanager:
  persistentVolume:
    storageClass: &quot;gp2&quot;
server:
  persistentVolume:
    storageClass: &quot;gp2&quot;&lt;/pre&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;8708&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;8708&quot;&gt;
Tricky part would be to adding ingress to Grafana installation. I obviously followed the same path. I just customized values according to values.yaml of Grafana Helm chart&lt;a class=&quot;markup--anchor markup--p-anchor&quot; data-href=&quot;https://github.com/helm/charts/blob/master/stable/grafana/values.yaml&quot; href=&quot;https://github.com/helm/charts/blob/master/stable/grafana/values.yaml&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;[3]&lt;/a&gt;.&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;3361&quot;&gt;
Here some important notes are ingress.enabled should set to true. And then ingress.path should set to “/*” support Grafana UI. Other annotations set here are to support ALB ingress controller and to enable SSL to ALB.&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;3361&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;94f8&quot;&gt;
And you can customize any other thing following format of the values.yaml of the chart.&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;94f8&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;graf graf--pre&quot; name=&quot;d0ff&quot;&gt;persistence:
  storageClassName: &quot;gp2&quot;
adminPassword: &quot;EKS!sAWSome&quot;
ingress:
  enabled: true
  path: /*
  annotations:
    &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://alb.ingress.kubernetes.io/scheme&quot; href=&quot;http://alb.ingress.kubernetes.io/scheme&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;alb.ingress.kubernetes.io/scheme&lt;/a&gt;: internet-facing
    &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://kubernetes.io/ingress.class&quot; href=&quot;http://kubernetes.io/ingress.class&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;kubernetes.io/ingress.class&lt;/a&gt;: alb
    &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://alb.ingress.kubernetes.io/certificate-arn&quot; href=&quot;http://alb.ingress.kubernetes.io/certificate-arn&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;alb.ingress.kubernetes.io/certificate-arn&lt;/a&gt;: arn:aws:iam::xxxxxxxxx:server-certificate/aws
    &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://alb.ingress.kubernetes.io/listen-ports&quot; href=&quot;http://alb.ingress.kubernetes.io/listen-ports&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;alb.ingress.kubernetes.io/listen-ports&lt;/a&gt;: &#39;[{&quot;HTTP&quot;: 80}, {&quot;HTTPS&quot;:443}]&#39;
    &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://alb.ingress.kubernetes.io/actions.ssl-redirect&quot; href=&quot;http://alb.ingress.kubernetes.io/actions.ssl-redirect&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;alb.ingress.kubernetes.io/actions.ssl-redirect&lt;/a&gt;: &#39;{&quot;Type&quot;: &quot;redirect&quot;, &quot;RedirectConfig&quot;: { &quot;Protocol&quot;: &quot;HTTPS&quot;, &quot;Port&quot;: &quot;443&quot;, &quot;StatusCode&quot;: &quot;HTTP_301&quot;}}&#39;
    &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://external-dns.alpha.kubernetes.io/hostname&quot; href=&quot;http://external-dns.alpha.kubernetes.io/hostname&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;external-dns.alpha.kubernetes.io/hostname&lt;/a&gt;: &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://grafana-pdbs.digibank.ml/&quot; href=&quot;http://grafana-pdbs.digibank.ml/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;grafana.&lt;/a&gt;xxxx.xxx.xxx
service:
  annotations:
    &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://alb.ingress.kubernetes.io/target-type&quot; href=&quot;http://alb.ingress.kubernetes.io/target-type&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;alb.ingress.kubernetes.io/target-type&lt;/a&gt;: ip
datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
      -  name: Prometheus
         type: prometheus
         url: &lt;a class=&quot;markup--anchor markup--pre-anchor&quot; data-href=&quot;http://prometheus-server.prometheus.svc.cluster.local/&quot; href=&quot;http://prometheus-server.prometheus.svc.cluster.local/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;http://prometheus-server.prometheus.svc.cluster.local&lt;/a&gt;
         access: proxy
         isDefault: true&lt;/pre&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;9088&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;9088&quot;&gt;
Hope this helps!!!.&lt;/div&gt;
&lt;h2&gt;
References&lt;/h2&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;1ab8&quot;&gt;
[1] &lt;a class=&quot;markup--anchor markup--p-anchor&quot; data-href=&quot;https://eksworkshop.com/monitoring/&quot; href=&quot;https://eksworkshop.com/monitoring/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://eksworkshop.com/monitoring/&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;4e0b&quot;&gt;
[2] &lt;a class=&quot;markup--anchor markup--p-anchor&quot; data-href=&quot;https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml&quot; href=&quot;https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;graf graf--p&quot; name=&quot;fc5d&quot;&gt;
[3] &lt;a class=&quot;markup--anchor markup--p-anchor&quot; data-href=&quot;https://github.com/helm/charts/blob/master/stable/grafana/values.yaml&quot; href=&quot;https://github.com/helm/charts/blob/master/stable/grafana/values.yaml&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://github.com/helm/charts/blob/master/stable/grafana/values.yaml&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/7322376677069911135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2019/10/installing-grafana-with-if-you-are.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/7322376677069911135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/7322376677069911135'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2019/10/installing-grafana-with-if-you-are.html' title='Installing Grafana with ingress'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-3746797650451465215</id><published>2019-06-03T08:43:00.001-07:00</published><updated>2019-06-03T08:43:04.253-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS EKS"/><category scheme="http://www.blogger.com/atom/ns#" term="Gluster"/><category scheme="http://www.blogger.com/atom/ns#" term="Kubernetees"/><title type='text'>Installing gluster in AWS EKS</title><content type='html'>This article is a continuance of &lt;a href=&quot;https://wdfdo1986.blogspot.com/2019/05/consuming-file-system-artifacts-from.html&quot;&gt;[1]&lt;/a&gt;. Purpose of this article is to document the steps, issues and solutions to those issues we have to face when installing gluster in EKS (Elastic Kubernetes Service).&lt;br /&gt;
&lt;br /&gt;
For gluster we need a disk to be attached with the K8s node. In EKS easiest way of implementing this is, adding it to the node configuration. So every time a node comes up, it comes up with a disk attached to the defined path. You can use this path in the topology.josn as mentioned in &lt;a href=&quot;https://wdfdo1986.blogspot.com/2019/05/consuming-file-system-artifacts-from.html&quot;&gt;[1]&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Next step is to install gluster using the gk-deploy script. The challenge comes here after. To use gluster in pods, you need to define a storage class. The heketi url mentioned in the storage class definition, should be accessible from master node. But the given heketi url is a cluster IP type k8s service. But in EKS deployments masters are managed by AWS and master don&#39;t have access to cluster IPs. So how we can solve this? Actually I tried to contact AWS support on this and I didn&#39;t got the answer from them. That lead to finding the answer by my own.&lt;br /&gt;
&lt;br /&gt;
I created a LoadBalancer type k8s service in k8s fronting actual heketi service. First I started with external lb type but that let anyone outside the network access my heketi. Then I tried internal load balancer type. Then again I came to the original place. But this time I was able to make that internal lb type service accessible to the master by adding all my nodes to the same VPC as my master is in. And it allowed me to create the storage class without an issue and I could continue to create the PVC and use it in pods. Definition looks like below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;overflow-wrap: break-word; white-space: pre-wrap;&quot;&gt;apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
  labels:
    glusterfs: heketi-deployment
    heketi: deployment
  name: heketi-external
  namespace: gluster
spec:
  externalTrafficPolicy: Cluster
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    glusterfs: heketi-pod
    heketi: pod
  sessionAffinity: None
  type: LoadBalancer&lt;/pre&gt;
&lt;br /&gt;
Hope this helps. Good luck on your deployment.&lt;br /&gt;
&lt;br /&gt;
[1]&amp;nbsp;&lt;a href=&quot;https://wdfdo1986.blogspot.com/2019/05/consuming-file-system-artifacts-from.html&quot;&gt;https://wdfdo1986.blogspot.com/2019/05/consuming-file-system-artifacts-from.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/3746797650451465215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2019/06/installing-gluster-in-aws-eks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3746797650451465215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3746797650451465215'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2019/06/installing-gluster-in-aws-eks.html' title='Installing gluster in AWS EKS'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-5190847814722324939</id><published>2019-05-31T10:42:00.001-07:00</published><updated>2019-06-03T08:31:17.273-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS EKS"/><category scheme="http://www.blogger.com/atom/ns#" term="Gluster"/><category scheme="http://www.blogger.com/atom/ns#" term="Kubernetees"/><title type='text'>Consuming File System artifacts from Kubernetes Pods</title><content type='html'>When you are deploying an application which contains artifacts written on file system dynamically withing kubernetes (k8s), for example a tomcat server exposed to outside to deploy war files, you need to make sure the file system state is preserved always. Otherwise if the pod goes down, you might loose data.&lt;br /&gt;
&lt;br /&gt;
So one solution is to mount an external disk. Yes indeed you can do that. But how robust is that solution. Say something happened to the external disk. How can you recover the data? Use several disks and rsync to sync the data. Sounds a robust solution. Say you want to increase the reliability. And what happens if rsync process get killed. How much will it cost to make it&#39;s reliability closer to 100%?&lt;br /&gt;
&lt;br /&gt;
We have a robust, simple solution. It&#39;s using gluster to save data. &lt;a href=&quot;https://github.com/gluster/glusterfs&quot;&gt;[1]&lt;/a&gt; &lt;a href=&quot;https://github.com/gluster/gluster-kubernetes&quot;&gt;[2]&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY7EL8sYSsFL270f24rOin-NN4yyMThYNL7yk8g1GoLlcLernDZ_zCtwUNKIasChNLcJtBy6u7CagorDGq4eohXQe0ntFRKuNqE2r3kybhcMqLsv8ZTjemhf-5LwemFAHxLwBxfMuHCwQ/s1600/glusterkube.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;599&quot; data-original-width=&quot;1024&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY7EL8sYSsFL270f24rOin-NN4yyMThYNL7yk8g1GoLlcLernDZ_zCtwUNKIasChNLcJtBy6u7CagorDGq4eohXQe0ntFRKuNqE2r3kybhcMqLsv8ZTjemhf-5LwemFAHxLwBxfMuHCwQ/s640/glusterkube.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
We install a pod named gluster for each node. There is an additional disk attached to each node which will be used as the data storage for gluster. This disk is formatted in a special format and attached to the gluster.&lt;br /&gt;
&lt;br /&gt;
This disk can be attached to a specific path and we can mention it as below (eg :- /dev/sdb) in the topology.json. Following is a sample. When your run gkdeploy script to install gluster, you have to place topology.json in the same location.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;sBrace structure-1&quot; id=&quot;s-1&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-2&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;clusters&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-3&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-2&quot; id=&quot;s-4&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-3&quot; id=&quot;s-5&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-6&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;nodes&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-7&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-4&quot; id=&quot;s-8&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-5&quot; id=&quot;s-9&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-10&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;node&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-11&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBrace structure-6&quot; id=&quot;s-12&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-13&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;hostnames&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-14&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBrace structure-7&quot; id=&quot;s-15&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-16&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;manage&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-17&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-18&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-19&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;node0&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-20&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-21&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-22&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;storage&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-23&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-24&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-25&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;192.168.10.100&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-26&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-7&quot; id=&quot;s-27&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-28&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-29&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;zone&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-30&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sObjectV&quot; id=&quot;s-31&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-6&quot; id=&quot;s-32&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-33&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-34&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;devices&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-35&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-6&quot; id=&quot;s-36&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-37&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;/dev/sdb&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-6&quot; id=&quot;s-42&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-5&quot; id=&quot;s-43&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-44&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-5&quot; id=&quot;s-45&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-46&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;node&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-47&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBrace structure-6&quot; id=&quot;s-48&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-49&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;hostnames&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-50&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBrace structure-7&quot; id=&quot;s-51&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-52&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;manage&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-53&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-54&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-55&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;node1&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-56&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-57&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-58&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;storage&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-59&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-60&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-61&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;192.168.10.101&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-62&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-7&quot; id=&quot;s-63&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-64&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-65&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;zone&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-66&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sObjectV&quot; id=&quot;s-67&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-6&quot; id=&quot;s-68&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-69&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-70&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;devices&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-71&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-6&quot; id=&quot;s-72&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-73&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;/dev/sdb&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-6&quot; id=&quot;s-78&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-5&quot; id=&quot;s-79&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-80&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-5&quot; id=&quot;s-81&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-82&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;node&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-83&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBrace structure-6&quot; id=&quot;s-84&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-85&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;hostnames&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-86&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBrace structure-7&quot; id=&quot;s-87&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;{&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-88&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;manage&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-89&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-90&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-91&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;node2&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-92&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-93&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-94&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;storage&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-95&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-96&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-97&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;192.168.10.102&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-8&quot; id=&quot;s-98&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-7&quot; id=&quot;s-99&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-100&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-101&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;zone&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-102&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sObjectV&quot; id=&quot;s-103&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-6&quot; id=&quot;s-104&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sComma&quot; id=&quot;s-105&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sObjectK&quot; id=&quot;s-106&quot; style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px; font-weight: 700;&quot;&gt;&quot;devices&quot;&lt;/span&gt;&lt;span class=&quot;sColon&quot; id=&quot;s-107&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sBracket structure-6&quot; id=&quot;s-108&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;[&amp;nbsp;&lt;a href=&quot;https://www.blogger.com/null&quot; style=&quot;box-sizing: border-box; color: #2980b9;&quot;&gt;&lt;span class=&quot;fa fa-minus-square-o&quot; style=&quot;box-sizing: border-box; display: inline-block; font-family: &amp;quot;fontawesome&amp;quot;; font-size: inherit; font-stretch: normal; line-height: 1; position: relative; top: 2px;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sArrayV&quot; id=&quot;s-109&quot; style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&quot;/dev/sdb&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-6&quot; id=&quot;s-114&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-5&quot; id=&quot;s-115&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-4&quot; id=&quot;s-116&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBrace structure-3&quot; id=&quot;s-117&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;box-sizing: border-box; color: #555555; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sBracket structure-2&quot; id=&quot;s-118&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;sBrace structure-1&quot; id=&quot;s-119&quot; style=&quot;box-sizing: border-box; color: #666666; font-family: &amp;quot;ubuntu mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Once you install gluster in k8s now comes the question on how they interconnect? There is an another component called heketi &lt;a href=&quot;https://github.com/heketi/heketi&quot;&gt;[3]&lt;/a&gt;&amp;nbsp;which is generally used to manage volumes. Here heketi is used to manage gluster cluster. You can use heketi cli &lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/container-native_storage_for_openshift_container_platform/chap-documentation-red_hat_gluster_storage_container_native_with_openshift_platform-heketi_cli&quot;&gt;[4]&lt;/a&gt;&amp;nbsp;to do advanced operations. &lt;i&gt;Heketi is included in the gk-deploy script from glusterfs.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Note that this blog is written to explain a problem and a solution. Here I haven&#39;t included any low level operational details or installation details.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Once gluster is installed in your k8s setup, next question is to how to use it? First you need to create a storage class in k8s with the heketi cli url. Here this url should be accessible to master node of k8s deployment. It looks like below.&lt;br /&gt;
&lt;table class=&quot;highlight tab-size js-file-line-container&quot; data-tab-size=&quot;8&quot; style=&quot;background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; tab-size: 8;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC1&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;2&quot; id=&quot;L2&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC2&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;kind&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;StorageClass&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;3&quot; id=&quot;L3&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC3&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;apiVersion&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;storage.k8s.io/v1beta1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;4&quot; id=&quot;L4&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC4&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;metadata&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;5&quot; id=&quot;L5&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC5&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;name&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;glusterfs-storage&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;9&quot; id=&quot;L9&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC9&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;provisioner&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;kubernetes.io/glusterfs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;10&quot; id=&quot;L10&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC10&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;parameters&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;11&quot; id=&quot;L11&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC11&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;resturl&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;&lt;/span&gt;http://${HEKETI_URL}&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
After that there should be a pvc (Persisted Volume Claim) to use this storage class.&lt;br /&gt;
&lt;br /&gt;
&lt;table class=&quot;highlight tab-size js-file-line-container&quot; data-tab-size=&quot;8&quot; style=&quot;background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; tab-size: 8;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;1&quot; id=&quot;L1&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC1&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;apiVersion&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;v1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;2&quot; id=&quot;L2&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC2&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;kind&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;PersistentVolumeClaim&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;3&quot; id=&quot;L3&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC3&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;metadata&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;4&quot; id=&quot;L4&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC4&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;name&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;gluster-pvc&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;5&quot; id=&quot;L5&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC5&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;annotations&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;6&quot; id=&quot;L6&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC6&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;volume.beta.kubernetes.io/storage-class&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;glusterfs-storage&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;7&quot; id=&quot;L7&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC7&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;spec&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;8&quot; id=&quot;L8&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC8&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;accessModes&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;9&quot; id=&quot;L9&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC9&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;- &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;ReadWriteOnce&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;10&quot; id=&quot;L10&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC10&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;resources&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;11&quot; id=&quot;L11&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC11&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;requests&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;12&quot; id=&quot;L12&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC12&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;storage&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;2Gi&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Then you can use pvc in your pod conflagration as a volume mount.&lt;br /&gt;
&lt;br /&gt;
&lt;table class=&quot;highlight tab-size js-file-line-container&quot; data-tab-size=&quot;8&quot; style=&quot;background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; tab-size: 8;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;95&quot; id=&quot;L95&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC95&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;volumeMounts&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;107&quot; id=&quot;L107&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC107&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;-&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;108&quot; id=&quot;L108&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC108&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;mountPath&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;/mnt/files/diff&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;109&quot; id=&quot;L109&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC109&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;name&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;sample-files&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table class=&quot;highlight tab-size js-file-line-container&quot; data-tab-size=&quot;8&quot; style=&quot;background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; tab-size: 8;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;132&quot; id=&quot;L132&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC132&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;volumes&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;147&quot; id=&quot;L147&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC147&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;-&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;148&quot; id=&quot;L148&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC148&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;name&lt;/span&gt;: &lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;synapse-files&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;149&quot; id=&quot;L149&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC149&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;persistentVolumeClaim&lt;/span&gt;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;blob-num js-line-number&quot; data-line-number=&quot;150&quot; id=&quot;L150&quot; style=&quot;box-sizing: border-box; color: rgba(27, 31, 35, 0.3); cursor: pointer; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; min-width: 50px; padding: 0px 10px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 50px;&quot;&gt;&lt;/td&gt;&lt;td class=&quot;blob-code blob-code-inner js-file-line&quot; id=&quot;LC150&quot; style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; line-height: 20px; overflow-wrap: normal; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: #22863a;&quot;&gt;claimName&lt;/span&gt;: gluster-pvc&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Hope this helped someone to create a solution.&lt;br /&gt;
Good luck on deployment!!!&lt;br /&gt;
&lt;br /&gt;
[1]&amp;nbsp;&lt;a href=&quot;https://github.com/gluster/glusterfs&quot;&gt;https://github.com/gluster/glusterfs&lt;/a&gt;&lt;br /&gt;
[2]&amp;nbsp;&lt;a href=&quot;https://github.com/gluster/gluster-kubernetes&quot;&gt;https://github.com/gluster/gluster-kubernetes&lt;/a&gt;&lt;br /&gt;
[3]&amp;nbsp;&lt;a href=&quot;https://github.com/heketi/heketi&quot;&gt;https://github.com/heketi/heketi&lt;/a&gt;&lt;br /&gt;
[4]&amp;nbsp;&lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/container-native_storage_for_openshift_container_platform/chap-documentation-red_hat_gluster_storage_container_native_with_openshift_platform-heketi_cli&quot;&gt;https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/container-native_storage_for_openshift_container_platform/chap-documentation-red_hat_gluster_storage_container_native_with_openshift_platform-heketi_cli&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/5190847814722324939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2019/05/consuming-file-system-artifacts-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/5190847814722324939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/5190847814722324939'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2019/05/consuming-file-system-artifacts-from.html' title='Consuming File System artifacts from Kubernetes Pods'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY7EL8sYSsFL270f24rOin-NN4yyMThYNL7yk8g1GoLlcLernDZ_zCtwUNKIasChNLcJtBy6u7CagorDGq4eohXQe0ntFRKuNqE2r3kybhcMqLsv8ZTjemhf-5LwemFAHxLwBxfMuHCwQ/s72-c/glusterkube.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-7702983552348078179</id><published>2016-11-07T22:25:00.003-08:00</published><updated>2016-11-07T22:36:43.253-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 IS"/><title type='text'>Generate JWT access tokens from WSO2 Identity Server</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;In Identity Server 5.2.0 we have created an interface to generate access tokens. Using that we have developed a sample to generate JWT tokens. You can find that sample under msf4j samples[1][2]. If you are build it as it is you will need to use Java 8 to build since msf4j is developed on Java 8. So you will need to run Identity Server on Java 8 as well. After building the project[2] please copy the jar inside target directory to $IS_HOME/repository/components/dropins/ directory. And then please add the following configuration to Identity.xml which is placed under $IS_HOME/repository/conf/identity/ folder inside tag &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;OAuth&lt;/b&gt;&lt;oauth style=&quot;font-weight: 400;&quot;&gt;.&lt;/oauth&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; &amp;lt;IdentityOAuthTokenGenerator&amp;gt;com.wso2.jwt.token.builder.JWTAccessTokenBuilder&amp;lt;/IdentityOAuthTokenGenerator&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Then go to the database you used to store oauth tokens (This is the database pointed from the datasource you mentioned in the $IS_HOME/repository/conf/identity/identity.xml) and then alter the size of the &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;column&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;&lt;i&gt;ACCESS_TOKEN&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; of the &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;table&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;&lt;i&gt;IDN_OAUTH2_ACCESS_TOKEN&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; to the maximum value provided by your database provider.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span id=&quot;docs-internal-guid-a019e87d-4299-0597-2ac2-093dc95d879b&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;div style=&quot;line-height: 1.38;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Now when you generate access tokens, they should be JWTs.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.38;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;&quot;&gt;References&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://github.com/wso2/msf4j/tree/master/samples/jwt-claims&quot;&gt;[1] https://github.com/wso2/msf4j/tree/master/samples/jwt-claims&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span id=&quot;docs-internal-guid-a019e87d-42a6-741e-c0a3-e130d95b4b14&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://github.com/wso2/msf4j/tree/master/samples/jwt-claims/JWTAccessTokenBuilder&quot;&gt;[2] https://github.com/wso2/msf4j/tree/master/samples/jwt-claims/JWTAccessTokenBuilder&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.38;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/7702983552348078179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/11/generate-jwt-access-tokens-from-wso2.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/7702983552348078179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/7702983552348078179'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/11/generate-jwt-access-tokens-from-wso2.html' title='Generate JWT access tokens from WSO2 Identity Server'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-3714158858322105283</id><published>2016-11-07T07:05:00.001-08:00</published><updated>2016-11-07T07:06:49.243-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 IS"/><title type='text'>WSO2 Identity Server 5.2.0 - Setup  Multiple Attribute login with JDBC userstore</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;In WSO2 Products multiple attribute login (login with either email or username for example) can be done with LDAP Userstore manager with simply by changing some configurations. But with JDBC Userstore manager we need some customization to achieve that. We can achieve that by using Implementing a custom userstore manager. In this blog entry I am going to make work with email and username. You can find the full sample &lt;a href=&quot;https://drive.google.com/file/d/0ByTCb2KmTk76dWMwcHMzbWJmVzA/view?usp=sharing&quot;&gt;here[1]&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-style: normal; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;u&gt;For login purposes &lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span id=&quot;docs-internal-guid-a251ccc6-3f41-cb00-9521-638479860e7f&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;To login to the server with multiple attributes, you will need to override doAuthenticate method and doGetExternalRoleListOfUser method. Following are the overridden methods for login.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;   @Override  
   public boolean doAuthenticate(String attribute, Object credential) throws UserStoreException {  
     if (!checkUserNameValid(attribute)) {  
       return false;  
     }  
     if (!checkUserPasswordValid(credential)) {  
       return false;  
     }  
     if (UserCoreUtil.isRegistryAnnonymousUser(attribute)) {  
       log.error(&quot;Anonnymous user trying to login&quot;);  
       return false;  
     }  
     Connection dbConnection = null;  
     ResultSet rs = null;  
     PreparedStatement prepStmt = null;  
     String sqlstmt = null;  
     String password = (String) credential;  
     boolean isAuthed = false;  
     try {  
       dbConnection = getDBConnection();  
       dbConnection.setAutoCommit(false);  
       sqlstmt = realmConfig.getUserStoreProperty(JDBCRealmConstants.SELECT_USER);  
       if (log.isDebugEnabled()) {  
         log.debug(sqlstmt);  
       }  
       prepStmt = dbConnection.prepareStatement(sqlstmt);  
       // Insert attribute as parameter for each occurrence of   
       int paramCount = StringUtils.countMatches(sqlstmt, &quot;?&quot;);  
       // If we specify the tenant into query, we assume that it is the last parameter  
       if (sqlstmt.contains(UserCoreConstants.UM_TENANT_COLUMN)) {  
         // Assign attribute value to parameters, except the last one  
         for (int i = 1; i &amp;lt; paramCount; i++) {  
           prepStmt.setString(i, attribute);  
         }  
         prepStmt.setInt(paramCount, tenantId);  
       } else {  
         // There is no tenant indication, set all parameters with attribute value  
         for (int i = 1; i &amp;lt;= paramCount; i++) {  
           prepStmt.setString(i, attribute);  
         }  
       }  
       rs = prepStmt.executeQuery();  
       if (rs.next() == true) {  
         String storedPassword = rs.getString(3);  
         String saltValue = null;  
         if (&quot;true&quot;.equalsIgnoreCase(realmConfig  
             .getUserStoreProperty(JDBCRealmConstants.STORE_SALTED_PASSWORDS))) {  
           saltValue = rs.getString(4);  
         }  
         boolean requireChange = rs.getBoolean(5);  
         Timestamp changedTime = rs.getTimestamp(6);  
         GregorianCalendar gc = new GregorianCalendar();  
         gc.add(GregorianCalendar.HOUR, -24);  
         Date date = gc.getTime();  
         if (requireChange == true &amp;amp;&amp;amp; changedTime.before(date)) {  
           isAuthed = false;  
         } else {  
           password = this.preparePassword(password, saltValue);  
           if ((storedPassword != null) &amp;amp;&amp;amp; (storedPassword.equals(password))) {  
             isAuthed = true;  
           }  
         }  
       }  
     } catch (SQLException e) {  
       String msg = &quot;Error occurred while retrieving user authentication info.&quot;;  
       log.error(msg, e);  
       throw new UserStoreException(&quot;Authentication Failure&quot;);  
     } finally {  
       DatabaseUtil.closeAllConnections(dbConnection, rs, prepStmt);  
     }  
     if (log.isDebugEnabled()) {  
       log.debug(&quot;User &quot; + attribute + &quot; login attempt. Login success :: &quot; + isAuthed);  
     }  
     return isAuthed;  
   }  
   @Override  
   public Date getPasswordExpirationTime(String attribute) throws UserStoreException {  
     Connection dbConnection = null;  
     ResultSet rs = null;  
     PreparedStatement prepStmt = null;  
     String sqlstmt;  
     Date date = null;  
     try {  
       dbConnection = getDBConnection();  
       dbConnection.setAutoCommit(false);  
       sqlstmt = realmConfig.getUserStoreProperty(JDBCRealmConstants.SELECT_USER);  
       if (log.isDebugEnabled()) {  
         log.debug(sqlstmt);  
       }  
       prepStmt = dbConnection.prepareStatement(sqlstmt);  
       // Insert attribute as parameter for each occurrence of   
       int paramCount = StringUtils.countMatches(sqlstmt, &quot;?&quot;);  
       // If we specify the tenant into query, we assume that it is the last parameter  
       if (sqlstmt.contains(UserCoreConstants.UM_TENANT_COLUMN)) {  
         // Assign attribute value to parameters, except the last one  
         for (int i = 1; i &amp;lt; paramCount; i++) {  
           prepStmt.setString(i, attribute);  
         }  
         prepStmt.setInt(paramCount, tenantId);  
       } else {  
         // There is no tenant indication, set all parameters with attribute value  
         for (int i = 1; i &amp;lt;= paramCount; i++) {  
           prepStmt.setString(i, attribute);  
         }  
       }  
       rs = prepStmt.executeQuery();  
       if (rs.next() == true) {  
         boolean requireChange = rs.getBoolean(5);  
         Timestamp changedTime = rs.getTimestamp(6);  
         if (requireChange) {  
           GregorianCalendar gc = new GregorianCalendar();  
           gc.setTime(changedTime);  
           gc.add(GregorianCalendar.HOUR, 24);  
           date = gc.getTime();  
         }  
       }  
     } catch (SQLException e) {  
       String msg = &quot;Error occurred while retrieving password expiration time.&quot;;  
       log.error(msg, e);  
       throw new UserStoreException(msg, e);  
     } finally {  
       DatabaseUtil.closeAllConnections(dbConnection, rs, prepStmt);  
     }  
     return date;  
   }  
   public String[] doGetExternalRoleListOfUser(String userName, String filter) throws UserStoreException {  
     if(log.isDebugEnabled()) {  
       log.debug(&quot;Getting roles of user: &quot; + userName + &quot; with filter: &quot; + filter);  
     }  
     String sqlStmt;  
     if(this.isCaseSensitiveUsername()) {  
       sqlStmt = this.realmConfig.getUserStoreProperty(&quot;UserRoleSQL&quot;);  
     } else {  
       sqlStmt = this.realmConfig.getUserStoreProperty(&quot;UserRoleSQLCaseInsensitive&quot;);  
     }  
     ArrayList roles = new ArrayList();  
     if(sqlStmt == null) {  
       throw new UserStoreException(&quot;The sql statement for retrieving user roles is null&quot;);  
     } else {  
       String[] names;  
       if(sqlStmt.contains(&quot;UM_TENANT_ID&quot;)) {  
         names = this.getStringValuesFromDatabase(sqlStmt, new Object[]{userName, userName, Integer.valueOf(this.tenantId), Integer.valueOf(this.tenantId), Integer.valueOf(this.tenantId), Integer.valueOf(this.tenantId)});  
       } else {  
         names = this.getStringValuesFromDatabase(sqlStmt, new Object[]{userName});  
       }  
       if(log.isDebugEnabled()) {  
         if(names != null) {  
           String[] arr$ = names;  
           int len$ = names.length;  
           for(int i$ = 0; i$ &amp;lt; len$; ++i$) {  
             String name = arr$[i$];  
             log.debug(&quot;Found role: &quot; + name);  
           }  
         } else {  
           log.debug(&quot;No external role found for the user: &quot; + userName);  
         }  
       }  
       Collections.addAll(roles, names);  
       return (String[])roles.toArray(new String[roles.size()]);  
     }  
   }  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
And with this you will need to modify your $CARBON_HOME/repository/conf/user-mgt.xml user store manager configuration section as below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;     &amp;lt;UserStoreManager class=&quot;org.wso2.carbon.userstore.jdbc.CustomJDBCUserStoreManager&quot;&amp;gt;  
       &amp;lt;Property name=&quot;TenantManager&quot;&amp;gt;org.wso2.carbon.user.core.tenant.JDBCTenantManager&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;ReadOnly&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;ReadGroups&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;WriteGroups&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameJavaRegEx&quot;&amp;gt;^[\S]{3,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameJavaScriptRegEx&quot;&amp;gt;[a-zA-Z0-9@._-|//]{3,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameWithEmailJavaScriptRegEx&quot;&amp;gt;[a-zA-Z0-9@._-|//]{3,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameJavaRegExViolationErrorMsg&quot;&amp;gt;Username pattern policy violated&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordJavaRegEx&quot;&amp;gt;^[\S]{5,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordJavaScriptRegEx&quot;&amp;gt;^[\S]{5,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordJavaRegExViolationErrorMsg&quot;&amp;gt;Password length should be within 5 to 30 characters&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;RolenameJavaRegEx&quot;&amp;gt;^[\S]{3,255}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;RolenameJavaScriptRegEx&quot;&amp;gt;^[\S]{3,255}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;CaseInsensitiveUsername&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;SCIMEnabled&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;IsBulkImportSupported&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordDigest&quot;&amp;gt;SHA-256&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;StoreSaltedPassword&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;MultiAttributeSeparator&quot;&amp;gt;,&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;MaxUserNameListLength&quot;&amp;gt;100&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;MaxRoleNameListLength&quot;&amp;gt;100&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UserRolesCacheEnabled&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UserNameUniqueAcrossTenants&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordHashMethod&quot;&amp;gt;SHA&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;SelectUserSQL&quot;&amp;gt;SELECT distinct u.* FROM UM_USER u left join UM_USER_ATTRIBUTE ua on u.UM_ID = ua.UM_USER_ID WHERE u.UM_USER_NAME = ? OR (ua.UM_ATTR_NAME = &quot;mail&quot; AND ua.UM_ATTR_VALUE = ?) AND u.UM_TENANT_ID = ?&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UserRoleSQLCaseInsensitive&quot;&amp;gt;SELECT UM_ROLE_NAME FROM UM_USER_ROLE, UM_ROLE, UM_USER WHERE LOWER(UM_USER.UM_USER_NAME) IN (SELECT LCASE(u.UM_USER_NAME) FROM UM_USER u left join UM_USER_ATTRIBUTE ua on u.UM_ID = ua.UM_USER_ID WHERE u.UM_USER_NAME = ? OR (ua.UM_ATTR_NAME = &quot;mail&quot; AND ua.UM_ATTR_VALUE = ?) AND u.UM_TENANT_ID = ? GROUP BY u.UM_USER_NAME) AND UM_USER.UM_ID=UM_USER_ROLE.UM_USER_ID AND UM_ROLE.UM_ID=UM_USER_ROLE.UM_ROLE_ID AND UM_USER_ROLE.UM_TENANT_ID = ? AND UM_ROLE.UM_TENANT_ID = ? AND UM_USER.UM_TENANT_ID = ?&amp;lt;/Property&amp;gt;  
     &amp;lt;/UserStoreManager&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;To use User Info endpoint with Oauth&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Further extending this If you need to use User Info endpoint with oauth2, then you will need to furthe extend following method as well.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;   public boolean doCheckExistingUser(String userName) throws UserStoreException {  
     String sqlStmt;  
     if(this.isCaseSensitiveUsername()) {  
       sqlStmt = this.realmConfig.getUserStoreProperty(&quot;IsUserExistingSQL&quot;);  
     } else {  
       sqlStmt = this.realmConfig.getUserStoreProperty(&quot;IsUserExistingSQLCaseInsensitive&quot;);  
     }  
     if(sqlStmt == null) {  
       throw new UserStoreException(&quot;The sql statement for is user existing null&quot;);  
     } else {  
       boolean isExisting = false;  
       String isUnique = this.realmConfig.getUserStoreProperty(&quot;UserNameUniqueAcrossTenants&quot;);  
       if(Boolean.parseBoolean(isUnique) &amp;amp;&amp;amp; !&quot;wso2.anonymous.user&quot;.equals(userName)) {  
         String uniquenesSql;  
         if(this.isCaseSensitiveUsername()) {  
           uniquenesSql = this.realmConfig.getUserStoreProperty(&quot;UserNameUniqueAcrossTenantsSQL&quot;);  
         } else {  
           uniquenesSql = this.realmConfig.getUserStoreProperty(&quot;UserNameUniqueAcrossTenantsSQLCaseInsensitive&quot;);  
         }  
         isExisting = this.isValueExisting(uniquenesSql, (Connection)null, new Object[]{userName});  
         if(log.isDebugEnabled()) {  
           log.debug(&quot;The username should be unique across tenants.&quot;);  
         }  
       } else if(sqlStmt.contains(&quot;UM_TENANT_ID&quot;)) {  
         isExisting = this.isValueExisting(sqlStmt, (Connection)null, new Object[]{userName, userName, Integer.valueOf(this.tenantId)});  
       } else {  
         isExisting = this.isValueExisting(sqlStmt, (Connection)null, new Object[]{userName});  
       }  
       return isExisting;  
     }  
   }  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
And you will need to add more configurations and following is the updated user store manager configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;     &amp;lt;UserStoreManager class=&quot;org.wso2.sample.userstore.jdbc.CustomJDBCUserStoreManager&quot;&amp;gt;  
       &amp;lt;Property name=&quot;TenantManager&quot;&amp;gt;org.wso2.carbon.user.core.tenant.JDBCTenantManager&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;ReadOnly&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;ReadGroups&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;WriteGroups&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameJavaRegEx&quot;&amp;gt;^[\S]{3,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameJavaScriptRegEx&quot;&amp;gt;[a-zA-Z0-9@._-|//]{3,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameWithEmailJavaScriptRegEx&quot;&amp;gt;[a-zA-Z0-9@._-|//]{3,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UsernameJavaRegExViolationErrorMsg&quot;&amp;gt;Username pattern policy violated&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordJavaRegEx&quot;&amp;gt;^[\S]{5,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordJavaScriptRegEx&quot;&amp;gt;^[\S]{5,30}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordJavaRegExViolationErrorMsg&quot;&amp;gt;Password length should be within 5 to 30 characters&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;RolenameJavaRegEx&quot;&amp;gt;^[\S]{3,255}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;RolenameJavaScriptRegEx&quot;&amp;gt;^[\S]{3,255}$&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;CaseInsensitiveUsername&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;SCIMEnabled&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;IsBulkImportSupported&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordDigest&quot;&amp;gt;SHA-256&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;StoreSaltedPassword&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;MultiAttributeSeparator&quot;&amp;gt;,&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;MaxUserNameListLength&quot;&amp;gt;100&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;MaxRoleNameListLength&quot;&amp;gt;100&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UserRolesCacheEnabled&quot;&amp;gt;true&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UserNameUniqueAcrossTenants&quot;&amp;gt;false&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;PasswordHashMethod&quot;&amp;gt;SHA&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;SelectUserSQL&quot;&amp;gt;SELECT distinct u.* FROM UM_USER u left join UM_USER_ATTRIBUTE ua on u.UM_ID = ua.UM_USER_ID WHERE u.UM_USER_NAME = ? OR (ua.UM_ATTR_NAME = &quot;mail&quot; AND ua.UM_ATTR_VALUE = ?) AND u.UM_TENANT_ID = ?&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;UserRoleSQLCaseInsensitive&quot;&amp;gt;SELECT UM_ROLE_NAME FROM UM_USER_ROLE, UM_ROLE, UM_USER WHERE LOWER(UM_USER.UM_USER_NAME) IN (SELECT LCASE(u.UM_USER_NAME) FROM UM_USER u left join UM_USER_ATTRIBUTE ua on u.UM_ID = ua.UM_USER_ID WHERE u.UM_USER_NAME = ? OR (ua.UM_ATTR_NAME = &quot;mail&quot; AND ua.UM_ATTR_VALUE = ?) AND u.UM_TENANT_ID = ? GROUP BY u.UM_USER_NAME) AND UM_USER.UM_ID=UM_USER_ROLE.UM_USER_ID AND UM_ROLE.UM_ID=UM_USER_ROLE.UM_ROLE_ID AND UM_USER_ROLE.UM_TENANT_ID = ? AND UM_ROLE.UM_TENANT_ID = ? AND UM_USER.UM_TENANT_ID = ?&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;GetUserPropertiesForProfileSQLCaseInsensitive&quot;&amp;gt;SELECT UM_ATTR_NAME, UM_ATTR_VALUE FROM UM_USER_ATTRIBUTE, UM_USER WHERE (UM_USER.UM_ID = UM_USER_ATTRIBUTE.UM_USER_ID OR (UM_USER_ATTRIBUTE.UM_ATTR_NAME = &#39;mail&#39; AND LOWER(UM_USER_ATTRIBUTE.UM_ATTR_VALUE) = LOWER(?))) AND UM_PROFILE_ID=? AND UM_USER_ATTRIBUTE.UM_TENANT_ID=? AND UM_USER.UM_TENANT_ID=?&amp;lt;/Property&amp;gt;  
       &amp;lt;Property name=&quot;IsUserExistingSQLCaseInsensitive&quot;&amp;gt;SELECT distinct u.UM_ID FROM UM_USER u left join UM_USER_ATTRIBUTE ua on u.UM_ID = ua.UM_USER_ID WHERE u.UM_USER_NAME = ? OR (ua.UM_ATTR_NAME = &quot;mail&quot; AND ua.UM_ATTR_VALUE = ?) AND u.UM_TENANT_ID = ?&amp;lt;/Property&amp;gt;  
     &amp;lt;/UserStoreManager&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;And further in $IS_HOME/repository/conf/identity/application-authentication.xml you will need to add following property under Authenticator Config for Basic Authenticator&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;&lt;span style=&quot;background-color: #f0f0f0;&quot;&gt; &amp;lt;Parameter name=&quot;UserNameAttributeClaimUri&quot;&amp;gt;http://wso2.org/claims/username&amp;lt;/Parameter&amp;gt;  &lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
So my Basic Authenticator Config tag is as below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;         &amp;lt;AuthenticatorConfig name=&quot;BasicAuthenticator&quot; enabled=&quot;true&quot;&amp;gt;  
             &amp;lt;Parameter name=&quot;UserNameAttributeClaimUri&quot;&amp;gt;http://wso2.org/claims/username&amp;lt;/Parameter&amp;gt;  
             &amp;lt;!--Parameter name=&quot;showAuthFailureReason&quot;&amp;gt;true&amp;lt;/Parameter--&amp;gt;  
         &amp;lt;/AuthenticatorConfig&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: small; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: small; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;With this you will be able to get configured claims when you logged in using different attributes.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: small; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: large; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;References&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: small; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span id=&quot;docs-internal-guid-a251ccc6-3f41-e4b7-b272-a23c2877ae3b&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0ByTCb2KmTk76dWMwcHMzbWJmVzA/view?usp=sharing&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[1] &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://drive.google.com/file/d/0ByTCb2KmTk76dWMwcHMzbWJmVzA/view?usp=sharing&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/3714158858322105283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/11/wso2-identity-server-520-setup-multiple.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3714158858322105283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3714158858322105283'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/11/wso2-identity-server-520-setup-multiple.html' title='WSO2 Identity Server 5.2.0 - Setup  Multiple Attribute login with JDBC userstore'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-2208966619656705308</id><published>2016-11-02T22:49:00.000-07:00</published><updated>2016-11-02T22:50:17.026-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 API Manager"/><title type='text'>Improving the new relic handler to push api input and output Parameters</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; line-height: 1.38; white-space: pre-wrap;&quot;&gt;In previous post I described how to publish API traffic to new relic[1]. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; line-height: 1.38; white-space: pre-wrap;&quot;&gt;I have done some modifications to the handler to cater $subject. You will need to change the code to match your exact requirements. And I did some improvements to the code as well. Please find my modified code attachment[2].&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I have added following code segments to the handler let me describe of each segment. &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Following segment is to build message when POST type is used. Otherwise inside handler we will get an empty envelop.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; try {  
   RelayUtils.buildMessage(((Axis2MessageContext)messageContext).getAxis2MessageContext());  
 } catch (Exception e) {  
   log.warn(&quot;Error occured while building message&quot;);  
   if(log.isDebugEnabled()){  
     log.debug(&quot;Exception thrown while building message&quot;, e);  
   }  
 }  
&lt;/code&gt;&lt;/pre&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Here I push data to new relic, each parameter as a different column. So please change the code as it match your requirement.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Following code segment will extract post data from the request. &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;But this to work properly you will need to set content-type in requests and also backend responses.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; try {  
   OMElement bodyFirstElement = messageContext.getEnvelope().getBody().getFirstElement();  
   if (bodyFirstElement != null) {  
     Iterator iterator = bodyFirstElement.getChildElements();  
     while (iterator.hasNext()) {  
       OMElement element = iterator.next();  
       eventAttributes.put(element.getLocalName(), element.getText());  
     }  
   }   
 } catch (Exception e){  
   log.warn(&quot;Error occured while extracting data form the request, hense ignoring&quot;);  
   if(log.isDebugEnabled()){  
     log.debug(&quot;Exception thrown while extracting data from request&quot;, e);  
   }  
 }  
&lt;/code&gt;&lt;/pre&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Following code segment will capture the query params you provide the api.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; try {  
   Object urlPostfix = ((Axis2MessageContext) messageContext).getAxis2MessageContext().getProperty(&quot;REST_URL_POSTFIX&quot;);  
   else if (urlPostfix != null) {  
     String[] urlParts = urlPostfix.toString().split(&quot;\\?&quot;);  
     if (urlParts.length &amp;gt; 0) {  
       String queryParamString = urlParts[1];  
       String[] pairs = queryParamString.split(&quot;&amp;amp;&quot;);  
       for (String pair : pairs) {  
         String[] keyValues = pair.split(&quot;=&quot;);  
         if (keyValues.length &amp;gt; 0) {  
           eventAttributes.put(keyValues[0], keyValues[1]);  
         } else {  
           eventAttributes.put(keyValues[0], &quot;&quot;);  
         }  
       }  
     }  
   }  
 } catch (Exception e){  
   log.warn(&quot;Error occured while extracting data form the request, hense ignoring&quot;);  
   if(log.isDebugEnabled()){  
     log.debug(&quot;Exception thrown while extracting data from request&quot;, e);  
   }  
 }  
&lt;/code&gt;&lt;/pre&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;&quot;&gt;Good Luck!!! :)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;&quot;&gt;References&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2016/10/integrate-new-relic-with-wso2-api.html&quot;&gt;[1] http://wdfdo1986.blogspot.com/2016/10/integrate-new-relic-with-wso2-api.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0ByTCb2KmTk76M1FabUk1OC0yY00/view?usp=sharing&quot;&gt;[2] https://drive.google.com/file/d/0ByTCb2KmTk76M1FabUk1OC0yY00/view?usp=sharing&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/2208966619656705308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/11/improving-new-relic-handler-to-push-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2208966619656705308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2208966619656705308'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/11/improving-new-relic-handler-to-push-api.html' title='Improving the new relic handler to push api input and output Parameters'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-7323706674228545606</id><published>2016-10-28T01:47:00.002-07:00</published><updated>2018-06-18T03:59:18.267-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 API Manager"/><title type='text'>Integrate New Relic with WSO2 API Manager</title><content type='html'>In WSO2 API Manager, we have two transports. HTTP servlet transport and Passthru / NIO transport. All the web application requests are handled through HTTP servlet transport which is on 9763 port and 9443 port with ssl and here we are using tomcat inside WSO2 products. All the service requests are served via Passthru / NIO transport which is on 8082 and 8243 with ssl. When we integrate API Manager with new relic in the way discussed in blog posts [5],[6], new relic only detects the calls made to tomcat transports. So we couldn’t get the API calls related data OOTB.&lt;br /&gt;&lt;br /&gt;But by further analyzing new relic APIs I managed to find a workaround for this problem. New relic supports publishing custom events via their insights api[1]. So what we can do is publish these data via custom API handler[2]. Following is a sample implementation of a handler that I used to test the scenario. I will attach the full project herewith[7]. I have created an osgi bundle with this implementation so after building the jar with maven you can drop into $APIM_HOME/repository/components/dropins directory. And make sure you do the necessary changes to this class to match your scenario.&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; package org.wso2.carbon.custom.handler.newrelic;  
 import com.newrelic.api.agent.Agent;  
 import com.newrelic.api.agent.Trace;  
 import org.apache.commons.logging.Log;  
 import org.apache.commons.logging.LogFactory;  
 import org.apache.synapse.MessageContext;  
 import org.apache.synapse.rest.AbstractHandler;  
 import java.util.HashMap;  
 import java.util.Map;  
 import com.newrelic.api.agent.NewRelic;  
 public class NewRelicHandler extends AbstractHandler {  
   private static final Log log = LogFactory.getLog(NewRelicHandler.class);  
   @Trace  
   public boolean handleRequest(MessageContext messageContext) {  
     String endpoint = messageContext.getTo().getAddress();  
     Agent agent = NewRelic.getAgent();  
     Map&amp;lt;String, Object&amp;gt; eventAttributes = new HashMap&amp;lt;String, Object&amp;gt;();  
     eventAttributes.put(&quot;appId&quot;,32034852);  
     eventAttributes.put(&quot;appName&quot;,&quot;APIM&quot;);  
     eventAttributes.put(&quot;host&quot;,&quot;localhost&quot;);  
     eventAttributes.put(&quot;name&quot;,endpoint);  
     eventAttributes.put(&quot;transactionType&quot;,&quot;Web&quot;);  
     eventAttributes.put(&quot;type&quot;,&quot;Transaction&quot;);  
     eventAttributes.put(&quot;realAgentId&quot;,32034854);  
     eventAttributes.put(&quot;transactionSubType&quot;,&quot;API Call&quot;);  
     agent.getInsights().recordCustomEvent(&quot;API_calls&quot;, eventAttributes);  
     return true;  
   }  
   public boolean handleResponse(MessageContext messageContext) {  
     //TODO: handle response path  
     return true;  
   }  
 }  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;line-height: 1.38; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;span style=&quot;line-height: 1.38; white-space: pre-wrap;&quot;&gt;Since you need engage this handler to all apis you need add following to velocity template as mentioned in the documentation[3]. But for existing apis you will need to add this via source view as mentioned in documentation[3]. Or you can do the same by republishing all existing apis.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;You will need to add this to both&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; orphans: 2; widows: 2;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;

&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; $APIM_HOME/repository/resources/api_templates/velocity_template.xml  &lt;/code&gt;&lt;/pre&gt;
and &lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; $APIM_HOME/repository/resources/api_templates/velocity_template.xml  &lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
files since this will be needed in default api as well.&lt;/div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; &amp;lt;handler class=&quot;org.wso2.carbon.custom.handler.newrelic.NewRelicHandler&quot; /&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
And further to execute this I added following to the newrelic.yml file.&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;  custom_insights_events.max_samples_stored: 5000  
  custom_insights_events.enabled: true  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;Now create publish and subscribe an api (if you haven’t done already) and invoke the api several times. Then go to [4] and create a new dashboard with query &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; SELECT * FROM API_calls  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;span id=&quot;docs-internal-guid-a251ccc6-0a76-df7d-b84d-95c48399b084&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;You will be able to see API invocation data there. Good Luck :).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h3&gt;
References&lt;/h3&gt;
&lt;div style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[1] &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://docs.newrelic.com/docs/insights/new-relic-insights/custom-events/insert-custom-events-insights-api&quot; style=&quot;text-decoration: none;&quot;&gt;https://docs.newrelic.com/docs/insights/new-relic-insights/custom-events/insert-custom-events-insights-api&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[2] &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://docs.wso2.com/display/AM1100/Writing+Custom+Handlers&quot; style=&quot;text-decoration: none;&quot;&gt;https://docs.wso2.com/display/AM1100/Writing+Custom+Handlers&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[3] &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://docs.wso2.com/display/AM1100/Writing+Custom+Handlers#WritingCustomHandlers-Engagingthecustomhandler&quot; style=&quot;text-decoration: none;&quot;&gt;https://docs.wso2.com/display/AM1100/Writing+Custom+Handlers#WritingCustomHandlers-Engagingthecustomhandler&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[4] &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://insights.newrelic.com/&quot; style=&quot;text-decoration: none;&quot;&gt;https://insights.newrelic.com/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;[5]&amp;nbsp;&lt;a href=&quot;http://blog.lasindu.com/2016/07/wso2-application-and-server-monitoring.html&quot;&gt;http://blog.lasindu.com/2016/07/wso2-application-and-server-monitoring.html&lt;/a&gt;&lt;br /&gt;[6]&amp;nbsp;&lt;a href=&quot;https://scktech.blogspot.com/2016/08/integrate-wso2-products-with-new-relic.html&quot;&gt;https://scktech.blogspot.com/2016/08/integrate-wso2-products-with-new-relic.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
[7]&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0ByTCb2KmTk76MnRfWEI2TElyZkE/view?usp=sharing&quot;&gt;https://drive.google.com/file/d/0ByTCb2KmTk76MnRfWEI2TElyZkE/view?usp=sharing&lt;/a&gt;&lt;/div&gt;
&lt;span id=&quot;docs-internal-guid-a251ccc6-0a63-881c-08eb-08cffb371786&quot;&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/7323706674228545606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/10/integrate-new-relic-with-wso2-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/7323706674228545606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/7323706674228545606'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/10/integrate-new-relic-with-wso2-api.html' title='Integrate New Relic with WSO2 API Manager'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-8383224731245776868</id><published>2016-08-05T01:43:00.003-07:00</published><updated>2016-09-26T21:29:16.651-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CoreOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Kubernetees"/><title type='text'>Setting up Single node Kubernetes Cluster with Core OS bare metal</title><content type='html'>You might know already there is an official documentation to follow to setup a Kubernetes cluster on Core OS bare metal. But when do that specially single node cluster, I found some gaps in that documentation &lt;a href=&quot;https://coreos.com/kubernetes/docs/latest/getting-started.html&quot;&gt;[1]&lt;/a&gt;. And another reason for this blog post is to get everything into one place. So this blog post will describe how to overcome the issues of setting up a single node cluster.&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Installing Core OS bare metal.&lt;/h3&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can refer to &lt;a href=&quot;https://coreos.com/os/docs/latest/installing-to-disk.html&quot;&gt;doc [2]&lt;/a&gt;&amp;nbsp;to install core os.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
First thing is about users. Documentation&lt;a href=&quot;https://coreos.com/os/docs/latest/installing-to-disk.html&quot;&gt;[2]&lt;/a&gt;&amp;nbsp;tells you how to create a user without password. To login as that user you will need ssh keys. So to create a user with username password, you can use a cloud-config.yaml file. Here is a sample.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; #cloud-config  
 users:  
 - name: user  
  passwd: $6$SALT$3MUMz4cNIRjQ/Knnc3gXjJLV1vdwFs2nLvh//nGtEh/.li04NodZJSfnc4jeCVHd7kKHGnq5MsenN.tO6Z.Cj/  
  groups:  
  - sudo  
  - docker  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here value for passwd is a hash value. One of the below methods can be used to hash a password.&lt;a href=&quot;https://coreos.com/os/docs/latest/cloud-config.html&quot;&gt;[3]&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; # On Debian/Ubuntu (via the package &quot;whois&quot;)  
 mkpasswd --method=SHA-512 --rounds=4096  
 # OpenSSL (note: this will only make md5crypt. While better than plantext it should not be considered fully secure)  
 openssl passwd -1  
 # Python (change password and salt values)  
 python -c &quot;import crypt, getpass, pwd; print crypt.crypt(&#39;password&#39;, &#39;\$6\$SALT\$&#39;)&quot;  
 # Perl (change password and salt values)  
 perl -e &#39;print crypt(&quot;password&quot;,&quot;\$6\$SALT\$&quot;) . &quot;\n&quot;&#39;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you are installing this inside a private network (office network or university network) then you may need to set IP, DNS and so on. Specially about DNS, since its resolving using resolv.conf and it get replaced always then you may need to set it up as below.&lt;br /&gt;
&lt;br /&gt;
Create a file in&amp;nbsp;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source sans pro&amp;quot; , sans-serif; font-size: 16px; letter-spacing: 0.1px; line-height: 24px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background: rgba(0, 0, 0, 0.027451); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.0745098) 0px 0px 8px inset; box-sizing: border-box; color: rgba(0, 0, 0, 0.74902); display: inline-block; font-family: &#39;Source Code Pro&#39;, Menlo, monospace; font-size: 12px; letter-spacing: 0.1px; line-height: 24px; padding: 0px 4px; white-space: nowrap;&quot;&gt;/etc/systemd/network/static.network&lt;/code&gt;&amp;nbsp;with content below. Replace the values with your network values.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; [Match]  
 Name=enp2s0  
 [Network]  
 Address=x.x.x.x  
 Gateway=x.x.x.x  
 DNS=x.x.x.x  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Then restart the network with command below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; sudo systemctl restart systemd-networkd  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
Now your core os installation is ready to install Kubernetes.&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
Installing&amp;nbsp;Kubernetes on Core OS&lt;/h3&gt;
&lt;br /&gt;
The official documentation&amp;nbsp;&lt;a href=&quot;https://coreos.com/kubernetes/docs/latest/getting-started.html&quot;&gt;[1]&lt;/a&gt;&amp;nbsp;describes how to install a cluster. But what I will explain is to create a single node cluster. You can follow the same documentation. When you create certs create what&#39;s needed for the master node. And then go on and deploy the master node. Here you will not need the calcio related steps if you don&#39;t need to specifically use calcio with&amp;nbsp;Kubernetes.&lt;br /&gt;
&lt;br /&gt;
In Core OS&amp;nbsp;Kubernetes is installed as a service named kubelet. So there what you defined is the service definition and supporting manifest files to service. There are four components of&amp;nbsp;Kubernetes which are configured as manifests inside&amp;nbsp;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source sans pro&amp;quot; , sans-serif; font-size: 16px; letter-spacing: 0.1px; line-height: 24px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background: rgba(0, 0, 0, 0.027451); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.0745098) 0px 0px 8px inset; box-sizing: border-box; color: rgba(0, 0, 0, 0.74902); display: inline-block; font-family: &#39;Source Code Pro&#39;, Menlo, monospace; font-size: 12px; letter-spacing: 0.1px; line-height: 24px; padding: 0px 4px; white-space: nowrap;&quot;&gt;/etc/kubernetes/manifests/&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;API server&lt;/li&gt;
&lt;li&gt;Proxy&lt;/li&gt;
&lt;li&gt;Controller Manager&lt;/li&gt;
&lt;li&gt;Scheduler&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
All these four components will start as pods / containers inside the cluster.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Apart from these four configuration you have configured the kubelet service as well.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But with only these configurations if you try to create a pod it will not get created. Actually it will fail to schedule. Because you don&#39;t have a node available to schedule in the cluster. Usually masters don&#39;t schedule pods. So that&#39;s why in this documentation in master scheduling is set to false. So to turn on scheduling just edit the service definition file&amp;nbsp;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background: rgba(0, 0, 0, 0.027451); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.0745098) 0px 0px 8px inset; box-sizing: border-box; color: rgba(0, 0, 0, 0.74902); display: inline-block; font-family: &#39;source code pro&#39;, menlo, monospace; font-size: 12px; letter-spacing: 0.1px; line-height: 24px; padding: 0px 4px; white-space: nowrap;&quot;&gt;/etc/kubernetes/system/kubelet.service&lt;/code&gt;&amp;nbsp;to change&amp;nbsp;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source sans pro&amp;quot; , sans-serif; font-size: 16px; letter-spacing: 0.1px; line-height: 24px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background: rgba(0, 0, 0, 0.027451); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.0745098) 0px 0px 8px inset; box-sizing: border-box; color: rgba(0, 0, 0, 0.74902); display: inline-block; font-family: &#39;Source Code Pro&#39;, Menlo, monospace; font-size: 12px; letter-spacing: 0.1px; line-height: 24px; padding: 0px 4px; white-space: nowrap;&quot;&gt;--register-schedulable=false&lt;/code&gt;&amp;nbsp;to&amp;nbsp;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background: rgba(0, 0, 0, 0.027451); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.0745098) 0px 0px 8px inset; box-sizing: border-box; color: rgba(0, 0, 0, 0.74902); display: inline-block; font-family: &#39;Source Code Pro&#39;, Menlo, monospace; font-size: 12px; letter-spacing: 0.1px; line-height: 24px; padding: 0px 4px; white-space: nowrap;&quot;&gt;--register-schedulable=true&lt;/code&gt;&amp;nbsp;.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Now you will be able to schedule the pods in this node.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Configuring to use registry.&lt;/h3&gt;
&lt;div&gt;
&lt;br /&gt;
Next step is configuring to use a registry. If you have already used docker in other OS, then you should know that adding an insecure registry is done using DOCKER_OPTS. &amp;nbsp;One way to configure DOCKER_OPTS in Core OS is to add it to&amp;nbsp;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background: rgba(0, 0, 0, 0.027451); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.0745098) 0px 0px 8px inset; box-sizing: border-box; color: rgba(0, 0, 0, 0.74902); display: inline-block; font-family: &#39;Source Code Pro&#39;, Menlo, monospace; font-size: 12px; letter-spacing: 0.1px; line-height: 24px; padding: 0px 4px; white-space: nowrap;&quot;&gt;/run/flannel_docker_opts.env&lt;/code&gt;&amp;nbsp;file. But it would be overridden when the server is restarted. For both insecure and proper registries use the method explained in &lt;a href=&quot;https://coreos.com/os/docs/latest/registry-authentication.html&quot;&gt;[4]&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
References&lt;/h3&gt;
&lt;div&gt;
[1]&amp;nbsp;&lt;a href=&quot;https://coreos.com/kubernetes/docs/latest/getting-started.html&quot;&gt;https://coreos.com/kubernetes/docs/latest/getting-started.html&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
[2]&amp;nbsp;&lt;a href=&quot;https://coreos.com/os/docs/latest/installing-to-disk.html&quot;&gt;https://coreos.com/os/docs/latest/installing-to-disk.html&lt;/a&gt;&lt;br /&gt;
[3]&amp;nbsp;&lt;a href=&quot;https://coreos.com/os/docs/latest/cloud-config.html&quot;&gt;https://coreos.com/os/docs/latest/cloud-config.html&lt;/a&gt;&lt;br /&gt;
[4]&amp;nbsp;&lt;a href=&quot;https://coreos.com/os/docs/latest/registry-authentication.html&quot;&gt;https://coreos.com/os/docs/latest/registry-authentication.html&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/8383224731245776868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/08/setting-up-single-node-kubernetes.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/8383224731245776868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/8383224731245776868'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/08/setting-up-single-node-kubernetes.html' title='Setting up Single node Kubernetes Cluster with Core OS bare metal'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-6311319509847721574</id><published>2016-05-05T20:19:00.002-07:00</published><updated>2016-08-05T01:51:26.654-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CICD with WSO2 App Cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 App Cloud"/><title type='text'>Create an application in WSO2 App Cloud using Maven Plugins</title><content type='html'>In Application Development life cycle continuous integration is an important factor. How easy to get something deployed which is built in a build server. You can simply use maven exec plugin to run Curl commands to call rest apis.&lt;br /&gt;
&lt;br /&gt;
Following is an example. Before call the create application api we need to call login api and get created a logged in session. To do that we need to call login api with -c cookies and we need to call create application api with -b cookies.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;exec-maven-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;1.2&amp;lt;/version&amp;gt;  
         &amp;lt;executions&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;id&amp;gt;login&amp;lt;/id&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;exec&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
             &amp;lt;configuration&amp;gt;  
               &amp;lt;executable&amp;gt;curl&amp;lt;/executable&amp;gt;  
               &amp;lt;arguments&amp;gt;  
                 &amp;lt;argument&amp;gt;-v&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-k&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-c&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;cookies&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-X&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;POST&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;action=login&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;userName=&amp;lt;email @ replaced with .&amp;gt;@&amp;lt;tenant domain&amp;gt;&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;password=&amp;lt;password&amp;gt;&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;https://newapps.cloud.wso2.com/appmgt/site/blocks/user/login/ajax/login.jag&amp;lt;/argument&amp;gt;  
               &amp;lt;/arguments&amp;gt;  
             &amp;lt;/configuration&amp;gt;  
           &amp;lt;/execution&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;id&amp;gt;create application&amp;lt;/id&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;exec&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
             &amp;lt;configuration&amp;gt;  
               &amp;lt;executable&amp;gt;curl&amp;lt;/executable&amp;gt;  
               &amp;lt;arguments&amp;gt;  
                 &amp;lt;argument&amp;gt;-v&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-k&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-b&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;cookies&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-X&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;POST&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;https://newapps.cloud.wso2.com/appmgt/site/blocks/application/application.jag&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;action=createApplication&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;applicationName=Buzzwords&amp;amp;#x20;Backend&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;applicationDescription=API&amp;amp;#x20;Producer&amp;amp;#x20;application&amp;amp;#x20;for&amp;amp;#x20;buzzword&amp;amp;#x20;sample&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;conSpecMemory=512&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;conSpecCpu=300&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;runtime=2&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;appTypeName=mss&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;applicationRevision=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;uploadedFileName=${artifactId}-${version}.jar&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;runtimeProperties=runtimeProperties=[{&quot;key&quot;:&quot;k1&quot;,&quot;value&quot;:&quot;e1&quot;}]&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;tags=[{&quot;key&quot;:&quot;k1&quot;,&quot;value&quot;:&quot;t1&quot;}]&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;fileupload=@${project.build.directory}/${artifactId}-${version}.jar&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;isFileAttached=true&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;isNewVersion=true&amp;lt;/argument&amp;gt;  
               &amp;lt;/arguments&amp;gt;  
             &amp;lt;/configuration&amp;gt;  
           &amp;lt;/execution&amp;gt;  
         &amp;lt;/executions&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
You don&#39;t have to deploy it each time you build it. So you can set the phase of the executions to deploy as above. But it might try to deploy the artifact to nexus. To stop that you can skip deploy by adding following.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;       &amp;lt;plugin&amp;gt;  
         &amp;lt;artifactId&amp;gt;maven-deploy-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;2.7&amp;lt;/version&amp;gt;  
         &amp;lt;configuration&amp;gt;  
           &amp;lt;skip&amp;gt;true&amp;lt;/skip&amp;gt;  
         &amp;lt;/configuration&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
In App Cloud to deploy the changes we need to create new version. So to do that we will always need to increase the version name of the create request. You can use helper plugin and replace plugin as a combination. With following configuration I am creating a property and I am replacing them in each deploy with next patch version number.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;build-helper-maven-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;1.10&amp;lt;/version&amp;gt;  
         &amp;lt;executions&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;id&amp;gt;parse-version&amp;lt;/id&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;parse-version&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
             &amp;lt;configuration&amp;gt;  
               &amp;lt;versionString&amp;gt;${appcloud.version}&amp;lt;/versionString&amp;gt;  
             &amp;lt;/configuration&amp;gt;  
           &amp;lt;/execution&amp;gt;  
         &amp;lt;/executions&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;com.google.code.maven-replacer-plugin&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;replacer&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;1.5.3&amp;lt;/version&amp;gt;  
         &amp;lt;executions&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;replace&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
           &amp;lt;/execution&amp;gt;  
         &amp;lt;/executions&amp;gt;  
         &amp;lt;configuration&amp;gt;  
           &amp;lt;file&amp;gt;pom.xml&amp;lt;/file&amp;gt;  
           &amp;lt;replacements&amp;gt;  
             &amp;lt;replacement&amp;gt;  
               &amp;lt;token&amp;gt;${appcloud.version}&amp;lt;/token&amp;gt;  
               &amp;lt;value&amp;gt;${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}&amp;lt;/value&amp;gt;  
             &amp;lt;/replacement&amp;gt;  
           &amp;lt;/replacements&amp;gt;  
         &amp;lt;/configuration&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
And you need to have a property like below as well.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;   &amp;lt;properties&amp;gt;  
     &amp;lt;appcloud.version&amp;gt;1.0.7&amp;lt;/appcloud.version&amp;gt;  
   &amp;lt;/properties&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
Rest of the details of the apis can be found in [1]. Following is the full build tag and the properties tag in the pom.xml. If you run mvn clean install this would not get triggered. This will only trigger when you run mvn deploy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; &amp;lt;build&amp;gt;  
     &amp;lt;plugins&amp;gt;  
       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;build-helper-maven-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;1.10&amp;lt;/version&amp;gt;  
         &amp;lt;executions&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;id&amp;gt;parse-version&amp;lt;/id&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;parse-version&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
             &amp;lt;configuration&amp;gt;  
               &amp;lt;versionString&amp;gt;${appcloud.version}&amp;lt;/versionString&amp;gt;  
             &amp;lt;/configuration&amp;gt;  
           &amp;lt;/execution&amp;gt;  
         &amp;lt;/executions&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;com.google.code.maven-replacer-plugin&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;replacer&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;1.5.3&amp;lt;/version&amp;gt;  
         &amp;lt;executions&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;replace&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
           &amp;lt;/execution&amp;gt;  
         &amp;lt;/executions&amp;gt;  
         &amp;lt;configuration&amp;gt;  
           &amp;lt;file&amp;gt;pom.xml&amp;lt;/file&amp;gt;  
           &amp;lt;replacements&amp;gt;  
             &amp;lt;replacement&amp;gt;  
               &amp;lt;token&amp;gt;${appcloud.version}&amp;lt;/token&amp;gt;  
               &amp;lt;value&amp;gt;${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}&amp;lt;/value&amp;gt;  
             &amp;lt;/replacement&amp;gt;  
           &amp;lt;/replacements&amp;gt;  
         &amp;lt;/configuration&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;exec-maven-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;1.2&amp;lt;/version&amp;gt;  
         &amp;lt;executions&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;id&amp;gt;login&amp;lt;/id&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;exec&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
             &amp;lt;configuration&amp;gt;  
               &amp;lt;executable&amp;gt;curl&amp;lt;/executable&amp;gt;  
               &amp;lt;arguments&amp;gt;  
                 &amp;lt;argument&amp;gt;-v&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-k&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-c&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;cookies&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-X&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;POST&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;action=login&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;userName=&amp;lt;email @ replaced with .&amp;gt;@&amp;lt;tenant domain&amp;gt;&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;password=&amp;lt;password&amp;gt;&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;https://newapps.cloud.wso2.com/appmgt/site/blocks/user/login/ajax/login.jag&amp;lt;/argument&amp;gt;  
               &amp;lt;/arguments&amp;gt;  
             &amp;lt;/configuration&amp;gt;  
           &amp;lt;/execution&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;id&amp;gt;create application&amp;lt;/id&amp;gt;  
             &amp;lt;phase&amp;gt;deploy&amp;lt;/phase&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;exec&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
             &amp;lt;configuration&amp;gt;  
               &amp;lt;executable&amp;gt;curl&amp;lt;/executable&amp;gt;  
               &amp;lt;arguments&amp;gt;  
                 &amp;lt;argument&amp;gt;-v&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-k&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-b&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;cookies&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-X&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;POST&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;https://newapps.cloud.wso2.com/appmgt/site/blocks/application/application.jag&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;action=createApplication&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;applicationName=Buzzwords&amp;amp;#x20;Backend&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;applicationDescription=API&amp;amp;#x20;Producer&amp;amp;#x20;application&amp;amp;#x20;for&amp;amp;#x20;buzzword&amp;amp;#x20;sample&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;conSpecMemory=512&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;conSpecCpu=300&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;runtime=2&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;appTypeName=mss&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;applicationRevision=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;uploadedFileName=${artifactId}-${version}.jar&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;runtimeProperties=runtimeProperties=[{&quot;key&quot;:&quot;k1&quot;,&quot;value&quot;:&quot;e1&quot;}]&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;tags=[{&quot;key&quot;:&quot;k1&quot;,&quot;value&quot;:&quot;t1&quot;}]&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;fileupload=@${project.build.directory}/${artifactId}-${version}.jar&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;isFileAttached=true&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;-F&amp;lt;/argument&amp;gt;  
                 &amp;lt;argument&amp;gt;isNewVersion=true&amp;lt;/argument&amp;gt;  
               &amp;lt;/arguments&amp;gt;  
             &amp;lt;/configuration&amp;gt;  
           &amp;lt;/execution&amp;gt;  
         &amp;lt;/executions&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
       &amp;lt;plugin&amp;gt;  
         &amp;lt;artifactId&amp;gt;maven-deploy-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;2.7&amp;lt;/version&amp;gt;  
         &amp;lt;configuration&amp;gt;  
           &amp;lt;skip&amp;gt;true&amp;lt;/skip&amp;gt;  
         &amp;lt;/configuration&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
     &amp;lt;/plugins&amp;gt;  
   &amp;lt;/build&amp;gt;  
   &amp;lt;properties&amp;gt;  
     &amp;lt;microservice.mainClass&amp;gt;org.wso2.carbon.mss.sample.Application&amp;lt;/microservice.mainClass&amp;gt;  
     &amp;lt;appcloud.version&amp;gt;1.0.7&amp;lt;/appcloud.version&amp;gt;  
   &amp;lt;/properties&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
[1]&amp;nbsp;https://docs.wso2.com/display/AppCloud/Published+APIs</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/6311319509847721574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/05/create-application-in-wso2-app-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/6311319509847721574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/6311319509847721574'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/05/create-application-in-wso2-app-cloud.html' title='Create an application in WSO2 App Cloud using Maven Plugins'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-2152958037027722196</id><published>2016-03-04T01:35:00.001-08:00</published><updated>2016-03-04T01:48:09.177-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 IS"/><title type='text'>Oauth custom basic authenticator with WSO2 IS 5.1.0</title><content type='html'>&lt;div&gt;
&lt;span style=&quot;font-family: inherit; line-height: 1.38; white-space: pre-wrap;&quot;&gt;WSO2 Identity Server supports Oauth2 authorization code grant type with basic authentication OOTB. But basic authentication is done only with WSO2 user store. So there could be use cases that basic authentication has to be done against some other system. In this case you follow below steps to achieve your requirement.&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt; text-align: left;&quot;&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;span id=&quot;docs-internal-guid-3cbdab2d-40da-dfea-a1a1-b790c2d52533&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;First you need to create an class which extends AbstractApplicationAuthenticator and implements LocalApplicationAuthenticator. Because this class is going to act as your application authenticator so it needs to be an implementation of application authenticator interface and to achieve this it needs to be a local authenticator as well. [2]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;&quot;&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb_uoNqlDaLaBadw458cY94-gJzumRYnzlclNW5pa7fgTABjvIGSXGxKc_w5Hf9yK8EvMGBPd7o9zSiz4DVnzOgiglqiu-AvHgoJeWmSnKTKzoOZ_DGUcmZMspaKZpoPUQkxFBKSgla7Ij/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;span id=&quot;docs-internal-guid-3cbdab2d-40da-dfea-a1a1-b790c2d52533&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; public class CustomBasicAuthenticator extends AbstractApplicationAuthenticator implements LocalApplicationAuthenticator { &amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-align: left;&quot;&gt;
&lt;div style=&quot;line-height: 1.38;&quot;&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;Then you need to override the initiateAuthenticationRequest method so you can redirect to the page to enter user and password. In my sample I redirected to the page that is used by our default basic authenticator[1]. Code goes as follows.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.38;&quot;&gt;
&lt;span style=&quot;line-height: 1.38;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;line-height: 22.08px;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;span style=&quot;line-height: 22.08px;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;      @Override  
      protected void initiateAuthenticationRequest(HttpServletRequest request,  
                             HttpServletResponse response,  
                             AuthenticationContext context)  
                throws AuthenticationFailedException {  
           //TODO: Implement custom redirecting to a custom login page if needed.  
           String loginPage = ConfigurationFacade.getInstance().getAuthenticationEndpointURL();  
           String queryParams =  
                     FrameworkUtils.getQueryStringWithFrameworkContextId(context.getQueryParams(),  
                                               context.getCallerSessionKey(),  
                                               context.getContextIdentifier());  
           try {  
                String retryParam = &quot;&quot;;  
                if (context.isRetrying()) {  
                     retryParam = &quot;&amp;amp;authFailure=true&amp;amp;authFailureMsg=login.fail.message&quot;;  
                }  
                response.sendRedirect(response.encodeRedirectURL(loginPage + (&quot;?&quot; + queryParams)) +  
                           &quot;&amp;amp;authenticators=BasicAuthenticator:&quot; + &quot;LOCAL&quot; + retryParam);  
           } catch (IOException e) {  
                throw new AuthenticationFailedException(e.getMessage(), e);  
           }  
      }  
&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;line-height: 22.08px;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;line-height: 22.08px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.38;&quot;&gt;
&lt;span style=&quot;line-height: 1.38;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.38;&quot;&gt;
&lt;span style=&quot;line-height: 1.38;&quot;&gt;Then you need to override processAuthenticationResponse method so you can do your own authentication. In my sample I didn’t do any authentication. You have to implement it to call your rest api. Then in your requirement you mentioned that you need to provision user to IS. So the code segment inside the if condition is to do that. In my sample I provisioned the user to the super tenant primary user store. You can decide on where to add user to.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;      @Override  
      protected void processAuthenticationResponse(HttpServletRequest httpServletRequest,  
                                  HttpServletResponse httpServletResponse,  
                                  AuthenticationContext authenticationContext)  
                throws AuthenticationFailedException {  
           String username = httpServletRequest.getParameter(CustomBasicAuthenticatorConstants.USER_NAME);  
           String password = httpServletRequest.getParameter(CustomBasicAuthenticatorConstants.PASSWORD);  
           boolean isAuthenticated;  
           //TODO: Call the rest api to validate username and password  
           isAuthenticated = true;  
           //TODO: Here this is provisioned to the primary user store under super tenant. This can be changed to provision to the correct place.  
           if(isAuthenticated) {  
                UserStoreManager manager;  
                try {  
                     manager = CustomBasicAuthenticatorServiceComponent.getRealmService().getTenantUserRealm(-1234)  
                                             .getUserStoreManager();  
                } catch (UserStoreException e) {  
                     String msg = &quot;Error while retrieving the user realm&quot;;  
                     LOGGER.error(msg, e);  
                     throw new AuthenticationFailedException(msg, e);  
                }  
                try {  
                     if (!manager.isExistingUser(username)) {  
                          manager.addUser(username, password, new String[0], new HashMap&amp;lt;String, String&amp;gt;(), null, false);  
                     }  
                } catch (UserStoreException e) {  
                     String msg = &quot;Error while provisioning the user&quot;;  
                     LOGGER.error(msg, e);  
                     throw new AuthenticationFailedException(msg, e);  
                }  
                authenticationContext.setSubject(AuthenticatedUser.createLocalAuthenticatedUserFromSubjectIdentifier(username));  
           }  
      }  
&lt;/code&gt;&lt;/pre&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;span style=&quot;line-height: 1.38;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;&quot;&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;And you need to implement the can handle method of the authenticator. In the sample I used the implementation same as basic authenticator.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;      @Override  
      public boolean canHandle(HttpServletRequest httpServletRequest) {  
           String userName = httpServletRequest.getParameter(BasicAuthenticatorConstants.USER_NAME);  
           String password = httpServletRequest.getParameter(BasicAuthenticatorConstants.PASSWORD);  
           if (userName != null &amp;amp;&amp;amp; password != null) {  
                return true;  
           }  
           return false;  
      }  
&lt;/code&gt;&lt;/pre&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;span style=&quot;line-height: 1.38;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;&quot;&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;Then you need to make this bundle an osgi bundle and register the authenticator in osgi context. That’s done by service component class.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; /*  
  * Copyright (c) WSO2 Inc. (http://www.wso2.org) All Rights Reserved.  
  *   
  * WSO2 Inc. licenses this file to you under the Apache License,  
  * Version 2.0 (the &quot;License&quot;); you may not use this file except  
  * in compliance with the License.  
  * You may obtain a copy of the License at  
  *   
  * http://www.apache.org/licenses/LICENSE-2.0  
  *   
  * Unless required by applicable law or agreed to in writing,  
  * software distributed under the License is distributed on an  
  * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY  
  * KIND, either express or implied. See the License for the  
  * specific language governing permissions and limitations  
  * under the License.  
  */  
 package org.wso2.identity.application.authenticator.custom.basicauth.internal;  
 import org.wso2.identity.application.authenticator.custom.basicauth.CustomBasicAuthenticator;  
 import org.apache.commons.logging.Log;  
 import org.apache.commons.logging.LogFactory;  
 import org.osgi.service.component.ComponentContext;  
 import org.wso2.carbon.identity.application.authentication.framework.ApplicationAuthenticator;  
 import org.wso2.carbon.user.core.service.RealmService;  
 import java.util.Hashtable;  
 /**  
  * @scr.component name=&quot;application.authenticator.dbevaldev.component&quot; immediate=&quot;true&quot;  
  * @scr.reference name=&quot;realm.service&quot;  
  * interface=&quot;org.wso2.carbon.user.core.service.RealmService&quot;cardinality=&quot;1..1&quot;  
  * policy=&quot;dynamic&quot; bind=&quot;setRealmService&quot; unbind=&quot;unsetRealmService&quot;  
  */  
 public class CustomBasicAuthenticatorServiceComponent {  
   private static final Log LOGGER = LogFactory.getLog(CustomBasicAuthenticatorServiceComponent.class);  
      private static RealmService realmService;  
   protected void activate(ComponentContext context) {  
     try {  
       CustomBasicAuthenticator dbevaldevauthenticator = new CustomBasicAuthenticator();  
       Hashtable&amp;lt;String, String&amp;gt; props = new Hashtable&amp;lt;String, String&amp;gt;();  
       context.getBundleContext().registerService(ApplicationAuthenticator.class.getName(), dbevaldevauthenticator, props);  
       if (LOGGER.isDebugEnabled()) {  
         LOGGER.debug(&quot;Custom authenticator bundle is activated&quot;);  
       }  
     } catch (Exception e) {  
       LOGGER.fatal(&quot; Error while activating custom authenticator &quot;, e);  
     }  
   }  
   protected void deactivate(ComponentContext context) {  
     if (LOGGER.isDebugEnabled()) {  
       LOGGER.debug(&quot;Custom authenticator bundle is deactivated&quot;);  
     }  
   }  
      public static RealmService getRealmService() {  
           return realmService;  
      }  
      protected void setRealmService(RealmService realmService) {  
           if(LOGGER.isDebugEnabled()) {  
                LOGGER.debug(&quot;Setting the Realm Service&quot;);  
           }  
           CustomBasicAuthenticatorServiceComponent.realmService = realmService;  
      }  
      protected void unsetRealmService(RealmService realmService) {  
           if(LOGGER.isDebugEnabled()) {  
                LOGGER.debug(&quot;UnSetting the Realm Service&quot;);  
           }  
           CustomBasicAuthenticatorServiceComponent.realmService = null;  
      }  
 }  
&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span id=&quot;docs-internal-guid-e93e4ddd-40dc-337c-8237-e8d424cc81a6&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;Then you can build this with maven and copy the jar file to the following folder&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;span id=&quot;docs-internal-guid-e93e4ddd-40dc-60b6-d3e1-10e7d0c78c74&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$IS_HOME/repository/components/dropins&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;span id=&quot;docs-internal-guid-e93e4ddd-40dc-9084-a538-8755e5a395c9&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Then restart the Identity Server and browse to the carbon console. Then from the left menu Select Identity &amp;gt; Service Providers &amp;gt; List.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH9qQPrO8rQCCJtg6RmAMVLdcWuYkKdUHS0QdsnW9JF_R2VHM3wGttuADwA0mQBE2VPNsCOI8GL3TiH-U_ugWGYzgCgv-4vCnVeKse2q710tj9FBFxZ-kbVR0IFO3c4wzwUq_nl8SJDA8/s1600/splist-marked.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;313&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH9qQPrO8rQCCJtg6RmAMVLdcWuYkKdUHS0QdsnW9JF_R2VHM3wGttuADwA0mQBE2VPNsCOI8GL3TiH-U_ugWGYzgCgv-4vCnVeKse2q710tj9FBFxZ-kbVR0IFO3c4wzwUq_nl8SJDA8/s640/splist-marked.png&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;There you can select the service provider for the application and click on edit link to edit the particular service provider&lt;span id=&quot;docs-internal-guid-e93e4ddd-40e4-63ac-6cff-6585e3fe59a2&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt; and expand the section Local &amp;amp; Outbound Authentication Configuration and there select Local authentication and select the newly added authenticator. And then select update.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7jAMQUKaY8bhwhZ98XVa1zS7VPApa4aMQD7vbYAj8NcZ1xmTkkzxIlVsigmutRa2tBChDiSUbB5Wdn57pqqYMkrZxSF1ktNcyOOc_8_mXgmJyBlJH-AwVLHATxsZCsE8sOSnHtT-c6Ls/s1600/spedit-generic.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7jAMQUKaY8bhwhZ98XVa1zS7VPApa4aMQD7vbYAj8NcZ1xmTkkzxIlVsigmutRa2tBChDiSUbB5Wdn57pqqYMkrZxSF1ktNcyOOc_8_mXgmJyBlJH-AwVLHATxsZCsE8sOSnHtT-c6Ls/s640/spedit-generic.png&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;Now you can trigger the authorization code grant type by invoking oauth2/authorize endpoint in IS. You can download the sample code from [3].&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
[1]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/carbon-identity/blob/master/components/application-authenticators/org.wso2.carbon.identity.application.authenticator.basicauth/src/main/java/org/wso2/carbon/identity/application/authenticator/basicauth/BasicAuthenticator.java&quot; style=&quot;font-family: inherit; line-height: 1.38; text-decoration: none; white-space: pre-wrap;&quot;&gt;https://github.com/wso2/carbon-identity/blob/master/components/application-authenticators/org.wso2.carbon.identity.application.authenticator.basicauth/src/main/java/org/wso2/carbon/identity/application/authenticator/basicauth/BasicAuthenticator.java&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;white-space: pre-wrap;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span id=&quot;docs-internal-guid-e93e4ddd-40ec-4240-adc8-89e04393a602&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;[2]&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://docs.wso2.com/display/IS500/Creating+Custom+Authenticators&quot; style=&quot;font-family: inherit; line-height: 1.38; text-decoration: none;&quot;&gt;https://docs.wso2.com/display/IS500/Creating+Custom+Authenticators&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span id=&quot;docs-internal-guid-e93e4ddd-40ec-4240-adc8-89e04393a602&quot;&gt;&lt;span style=&quot;vertical-align: baseline;&quot;&gt;[3] &lt;/span&gt;&lt;span style=&quot;color: #1155cc; text-decoration: underline; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/0ByTCb2KmTk76WHluNjFHcEVtSzg/view?usp=sharing&quot; style=&quot;text-decoration: none;&quot;&gt;https://drive.google.com/file/d/0ByTCb2KmTk76WHluNjFHcEVtSzg/view?usp=sharing&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/2152958037027722196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/03/oauth-custom-basic-authenticator-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2152958037027722196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2152958037027722196'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/03/oauth-custom-basic-authenticator-with.html' title='Oauth custom basic authenticator with WSO2 IS 5.1.0'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH9qQPrO8rQCCJtg6RmAMVLdcWuYkKdUHS0QdsnW9JF_R2VHM3wGttuADwA0mQBE2VPNsCOI8GL3TiH-U_ugWGYzgCgv-4vCnVeKse2q710tj9FBFxZ-kbVR0IFO3c4wzwUq_nl8SJDA8/s72-c/splist-marked.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-4702809435412234930</id><published>2016-02-22T23:05:00.002-08:00</published><updated>2017-12-30T08:21:31.844-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Orion"/><title type='text'>Adding a servlet to Orion (Eclipse Cloud IDE) from a package built using maven.</title><content type='html'>&lt;br /&gt;
Orion is an open source project and it is under the Eclipse Cloud Development top-level project. It’s an cloud IDE which is available online and also which can be hosted in on premise. [1] [2]. Orion can work with git repos, create git repos or work with local code same as Eclipse.&lt;br /&gt;
&lt;br /&gt;
Orion has two repos. For the backend server code [2] and for the client / ui code [3]. Orion server is an osgi server based on eclipse equinox. But the problems are they have not implemented the dropins concept. Because of that adding an external bundle to Orion Server is not straightforward. We have to edit the bundles.info to add a bundle to Orion server. And Orion is using jetty for the servlets. &lt;br /&gt;
&lt;br /&gt;
As mentioned Orion is working with Jetty and to add a servlet via a bundle is easy if we use eclipse itself to develop and bundle the package. But if we use maven to build it then the problems arises. What we have to do is add an entry to plugins.xml and package the plugins.xml to the bundle we are creating.&lt;br /&gt;
&lt;br /&gt;
So to do this what has to be done is add a plugins.xml (You can copy an existing plugins.xml from orion code base) to the resources directory and edit it to have your servlets in it. And in the pom.xml under the build tag add following section. You can look into the sample code [4].&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;     &amp;lt;resources&amp;gt;  
       &amp;lt;resource&amp;gt;  
         &amp;lt;directory&amp;gt;src/main/resources&amp;lt;/directory&amp;gt;  
         &amp;lt;filtering&amp;gt;true&amp;lt;/filtering&amp;gt;  
         &amp;lt;includes&amp;gt;  
           &amp;lt;include&amp;gt;build.properties&amp;lt;/include&amp;gt;  
           &amp;lt;include&amp;gt;bundle.properties&amp;lt;/include&amp;gt;  
           &amp;lt;include&amp;gt;plugin.xml&amp;lt;/include&amp;gt;  
         &amp;lt;/includes&amp;gt;  
       &amp;lt;/resource&amp;gt;  
     &amp;lt;/resources&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
Sample plugins.xml is as below.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;  
 &amp;lt;?eclipse version=&quot;3.4&quot;?&amp;gt;  
 &amp;lt;plugin&amp;gt;  
   &amp;lt;extension  
      point=&quot;org.eclipse.equinox.http.registry.servlets&quot;&amp;gt;  
    &amp;lt;servlet  
       alias=&quot;/helloworld&quot;  
       class=&quot;org.orion.sample.servlet.servlet.HelloWorldServlet&quot;&amp;gt;  
    &amp;lt;/servlet&amp;gt;  
    &amp;lt;serviceSelector  
       filter=&quot;(other.info=org.eclipse.orion)&quot;&amp;gt;  
    &amp;lt;/serviceSelector&amp;gt;  
   &amp;lt;/extension&amp;gt;  
 &amp;lt;/plugin&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
Servlet code will be the following&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; package org.orion.sample.servlet.servlet;  
 import org.eclipse.orion.server.servlets.OrionServlet;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 import java.io.IOException;  
 public class HelloWorldServlet extends OrionServlet {  
      @Override  
      protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  
           resp.getWriter().println(&quot;Hello JCG, Hello OSGi&quot;);  
      }  
      public HelloWorldServlet() {  
           super();  
      }  
 }  
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Since to deploy the bundle to Orion it has to be an osgi bundle you have add maven scr and maven bundle plugins to your project as well. So the build tag in the pom.xml should be like below.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;   &amp;lt;build&amp;gt;  
     &amp;lt;resources&amp;gt;  
       &amp;lt;resource&amp;gt;  
         &amp;lt;directory&amp;gt;src/main/resources&amp;lt;/directory&amp;gt;  
         &amp;lt;filtering&amp;gt;true&amp;lt;/filtering&amp;gt;  
         &amp;lt;includes&amp;gt;  
           &amp;lt;include&amp;gt;build.properties&amp;lt;/include&amp;gt;  
           &amp;lt;include&amp;gt;bundle.properties&amp;lt;/include&amp;gt;  
           &amp;lt;include&amp;gt;plugin.xml&amp;lt;/include&amp;gt;  
         &amp;lt;/includes&amp;gt;  
       &amp;lt;/resource&amp;gt;  
     &amp;lt;/resources&amp;gt;  
     &amp;lt;plugins&amp;gt;  
       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;org.apache.felix&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;maven-scr-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;1.7.2&amp;lt;/version&amp;gt;  
         &amp;lt;executions&amp;gt;  
           &amp;lt;execution&amp;gt;  
             &amp;lt;id&amp;gt;generate-scr-scrdescriptor&amp;lt;/id&amp;gt;  
             &amp;lt;goals&amp;gt;  
               &amp;lt;goal&amp;gt;scr&amp;lt;/goal&amp;gt;  
             &amp;lt;/goals&amp;gt;  
           &amp;lt;/execution&amp;gt;  
         &amp;lt;/executions&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
       &amp;lt;plugin&amp;gt;  
         &amp;lt;groupId&amp;gt;org.apache.felix&amp;lt;/groupId&amp;gt;  
         &amp;lt;artifactId&amp;gt;maven-bundle-plugin&amp;lt;/artifactId&amp;gt;  
         &amp;lt;version&amp;gt;2.3.5&amp;lt;/version&amp;gt;  
         &amp;lt;extensions&amp;gt;true&amp;lt;/extensions&amp;gt;  
         &amp;lt;configuration&amp;gt;  
           &amp;lt;instructions&amp;gt;  
             &amp;lt;Bundle-SymbolicName&amp;gt;${project.artifactId};singleton:=true&amp;lt;/Bundle-SymbolicName&amp;gt;  
             &amp;lt;Bundle-Name&amp;gt;${project.artifactId}&amp;lt;/Bundle-Name&amp;gt;  
             &amp;lt;Export-Package&amp;gt;  
               org.orion.sample.servlet.*,  
             &amp;lt;/Export-Package&amp;gt;  
             &amp;lt;DynamicImport-Package&amp;gt;*&amp;lt;/DynamicImport-Package&amp;gt;  
             &amp;lt;Require-Bundle&amp;gt;  
               org.eclipse.jetty.server,  
               org.eclipse.jetty.servlet,  
               org.eclipse.jetty.http,  
               org.eclipse.jetty.io,  
               org.eclipse.jetty.security,  
               org.eclipse.jetty.util,  
               org.eclipse.orion.server.core,  
               org.eclipse.orion.server.git,  
               org.eclipse.orion.server.servlets,  
               org.eclipse.equinox.http.registry  
             &amp;lt;/Require-Bundle&amp;gt;  
           &amp;lt;/instructions&amp;gt;  
         &amp;lt;/configuration&amp;gt;  
       &amp;lt;/plugin&amp;gt;  
     &amp;lt;/plugins&amp;gt;  
   &amp;lt;/build&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
And you have to add the Service Component class to get it activated at the startup. Code would be like following.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; package org.orion.sample.servlet.internal;  
 import org.osgi.service.component.ComponentContext;  
 /**  
  * @scr.component name=&quot;org.orion.sample.servlet.internal.ServletSampleServiceComponent&quot; immediate=&quot;true&quot;  
  */  
 public class ServletSampleServiceComponent {  
      protected void activate(ComponentContext context) {  
           System.out.println(&quot;Registration Complete&quot;);  
      }  
 }  
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Now you can run &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;mvn clean install&lt;/span&gt; on the package and build the jar file. Now go in to the Orion server folder and create a folder named dropins and copy your jar file in to dropins. Now edit&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ORION_HOME/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
file and following in the end add following line.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;org.orion.sample.servlet,1.0.0,dropins/org.orion.sample.servlet-1.0.0.jar,4,false&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
[1] &lt;a href=&quot;https://wiki.eclipse.org/Orion&quot;&gt;https://wiki.eclipse.org/Orion&lt;/a&gt;&lt;br /&gt;
[2] &lt;a href=&quot;https://github.com/eclipse/orion.server&quot;&gt;https://github.com/eclipse/orion.server&lt;/a&gt;&lt;br /&gt;
[3] &lt;a href=&quot;https://github.com/eclipse/orion.client&quot;&gt;https://github.com/eclipse/orion.client&lt;/a&gt;&lt;br /&gt;
[4]&amp;nbsp;&lt;a href=&quot;https://drive.google.com/open?id=0ByTCb2KmTk76OVMtcnplQnpOajQ&quot;&gt;https://drive.google.com/open?id=0ByTCb2KmTk76OVMtcnplQnpOajQ&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/4702809435412234930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2016/02/adding-servlet-to-orion-eclipse-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/4702809435412234930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/4702809435412234930'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2016/02/adding-servlet-to-orion-eclipse-cloud.html' title='Adding a servlet to Orion (Eclipse Cloud IDE) from a package built using maven.'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-8831553062181961485</id><published>2015-07-29T03:27:00.001-07:00</published><updated>2017-12-30T08:20:35.143-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 AppFactory"/><title type='text'>WSO2 AppFactory - Using ESB Apptype</title><content type='html'>In next version of WSO2 AppFactory (2.2.0), it&#39;s going to introduce a new apptype ESB apptype. With this apptype, it&#39;s going allow users to develop WSO2 ESB Capps (CAR) with WSO2 AppFactory. In this article I will give you a guide line to follow when you are developing a Capp using WSO2 AppFactory.&lt;br /&gt;
&lt;br /&gt;
WSO2 AppFactory ESB apptype is the first multi module apptype supported by it. It will contain 4 modules in the sample project. They are as below.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Resources module&lt;/li&gt;
&lt;li&gt;Resources CAR module&lt;/li&gt;
&lt;li&gt;Synapse Config (Proxy Service) module&lt;/li&gt;
&lt;li&gt;Main Car module&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;h4&gt;
Development&lt;/h4&gt;
There are several rules that developer should obey when developing an ESB type application. Which are as follows.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Developers can add any number of modules to the project. But always there should only be two CAR modules. Which should be resources CAR and main CAR which will contain all synapse configs.&lt;/li&gt;
&lt;li&gt;All synapse config names should contain the version number. Like&amp;nbsp;&lt;i&gt;foosequence-1.0.0.&lt;/i&gt;&amp;nbsp;And the synapse config file name also should contain the version number in the same manner.&lt;/li&gt;
&lt;li&gt;All modules should start with the application ID. This rule is not to conflict artifacts in between applications. If two applications contained artifacts in same name they could conflict.&lt;/li&gt;
&lt;li&gt;Main Car module artifact id should be similar to the application ID.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
It is recommended to use WSO2 Developer Studio to develop WSO2 AppFactory ESB type application. Developer Studio will validate the project structure and it will help developer to follow above rules. If some one is going to edit it by some other method, before accepting the commit it will check whether the required structure is there and will decide to accept it or reject it.&lt;br /&gt;
&lt;h4&gt;
LifeCycle Management and Resources Management&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
When the ESB application is promoted it will still keep using the development endpoints / resources which is mentioned in the Resources CAR module. So the users in next stage (QA / DevOps) will need to update this resources CAR. So there will be an UI to upload a resources CAR for ESB applications. QAs and DevOps will need to checkout the code from the source code location which is mentioned in the Application Home page and they will need to edit registry resources and endpoints to match their endpoints and then they can build it and upload there Resources CAR so it will get deployed and main car will change it&#39;s endpoints to new ones.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
[1]&amp;nbsp;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-life-cycle-of.html&quot;&gt;http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-life-cycle-of.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
[2]&amp;nbsp;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-developing-new.html&quot;&gt;http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-developing-new.html&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/8831553062181961485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-appfactory-using-esb-apptype.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/8831553062181961485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/8831553062181961485'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-appfactory-using-esb-apptype.html' title='WSO2 AppFactory - Using ESB Apptype'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-5401144823268639756</id><published>2015-07-24T04:42:00.003-07:00</published><updated>2015-08-03T05:13:50.191-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 AppFactory"/><title type='text'>WSO2 App Factory - Developing New Application Type</title><content type='html'>&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
This post will describe how to use extension points to develop an application type. In [1] you can find step by step guide of adding a new application type and its runtime. In this post I will explain following.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Adding new Application Event Handlers&lt;/li&gt;
&lt;li&gt;Maven Archetype creation for App Factory Applications&lt;/li&gt;
&lt;li&gt;Extending the Application Type Processor Interface&lt;/li&gt;
&lt;li&gt;Extending Deployer Interface&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
Adding new Application Event Handlers&lt;/h4&gt;
You can find the interface ApplicationEventsHandler in [3] Lets say you need to do some special stuff for your application type (like create a database when creating an application to support your app type), you can extend methods of this to do that. For example we are creating a datasource using an handler when we create a Data Service type application. You can find that code in [4].&lt;br /&gt;
&lt;br /&gt;
After you develop your handler you can add it to an OSGI bundle and then deploy it to the AppFactory server&#39;s following location.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: #f3f3f3; color: #333333; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;&quot;&gt;$APPFACTORY_HOME/repository/components/dropins&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
And then you can edit the order of your handler by mentioning the necessary priority in the appfactory configuration which can be found in the following location.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: #f3f3f3;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;&quot;&gt;$APPFACTORY_HOME/repository/conf/appfactory/appfactoy.xml&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
In this configuration file you can find a tag named&amp;nbsp;&lt;b&gt;&lt;i&gt;EventHandlers&lt;/i&gt;&lt;/b&gt;. You can insert a new tag to this place with the name of your handler class name and set the desired priority value as it is done for other handlers.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaobwY4QDuxGkkkgBZdnQ13yyp-e-efuQrX33o3eN-tZmxzkUSPqIym7C82OazvqaGU0can6KpCUi2Vlxb5GphGa_nnxF4u_XTkP1bE-qJKL5nsLRWdTrDStYrAbTlUc7Az0oN0AyKOfg/s1600/EventHandlerPrioritySettings.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaobwY4QDuxGkkkgBZdnQ13yyp-e-efuQrX33o3eN-tZmxzkUSPqIym7C82OazvqaGU0can6KpCUi2Vlxb5GphGa_nnxF4u_XTkP1bE-qJKL5nsLRWdTrDStYrAbTlUc7Az0oN0AyKOfg/s1600/EventHandlerPrioritySettings.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 1 : Event Handlers Priority Settings&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;h4&gt;
Maven Archetype creation for App Factory Applications&lt;/h4&gt;
In WSO2 App Factory when we create an application we generate a sample code for that application. This is done using maven archetypes. We have created a maven archetype for all apptypes. Maven archetypes can be created for non maven applications as well. For an example even for .NET app type we are having a maven archetype even though its built using MS Build.&lt;br /&gt;
&lt;br /&gt;
[5] describes how to create a maven archetype. And you can also take some hints from my previous post [7] for maven archetype creation. When we create an archetype for WSO2 AppFactory we have to add few more resources in to it. That is for the initial deployment. This initial deployment phase was introduced to reduce the time spent to create an application. So what happens there is we include built artifacts in to the maven archetype and we bundle them using assembly plugin and deploy the created artifact[6].&lt;br /&gt;
&lt;br /&gt;
Figure 2 shows the tree structure of web application archetype. I use this to explain since this is the simplest and common structure. Here archetype-resources folder contains the content of the archetype. Apart from the src directory you can see there is a directory named built_artifact. This is the place that we use to keep built artifacts that we are going to keep to create the initial artifact using maven assembly plugin. And the assembly.xml and the bin.xml placed at the same level will be used to run maven assembly plugin and create the initial artifact.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX_0nYkaQ8vzhamLs_wOg4KZHSB8NX83cR_j09-RzOIPn6kc_qiGn9ImTCMA_U-yqISPJegAMKk5VdRQ-_aViR3cxDFSogrK0yccTTXL5lnD40weroTUrp7vFZi6AlPujQxlTl3KWurc4/s1600/webapp+archetype.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX_0nYkaQ8vzhamLs_wOg4KZHSB8NX83cR_j09-RzOIPn6kc_qiGn9ImTCMA_U-yqISPJegAMKk5VdRQ-_aViR3cxDFSogrK0yccTTXL5lnD40weroTUrp7vFZi6AlPujQxlTl3KWurc4/s1600/webapp+archetype.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 2 : Tree structure of Web app archetype&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
You can see the assembly.xml and bin.xml here. When we trigger follwing command on this folder it will create an .war file with the content of the built_artifact folder and will copy it to a folder named &amp;nbsp;${artifactId}_deploy_artifact which is located one level outside the application code. And in the initial deployment phase it will pick this artifact to deploy.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: #f3f3f3; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;mvn clean install -f assembly.xml&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSBSZakse-xERPXUeTuslAtk00xx2RpqIcnoo7tTGDH9CK9C4szlfRcNUOLrlMW6eeTo3CgA2iTBA_KY97NwzsF-H5j2x-aeXpqMB3KpwEL1FHi7uD07dosgMCyrCz9U50gth5yz6me8M/s1600/bin_xml.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSBSZakse-xERPXUeTuslAtk00xx2RpqIcnoo7tTGDH9CK9C4szlfRcNUOLrlMW6eeTo3CgA2iTBA_KY97NwzsF-H5j2x-aeXpqMB3KpwEL1FHi7uD07dosgMCyrCz9U50gth5yz6me8M/s400/bin_xml.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 3 : bin.xml&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ZqFV_Xu1eSLZGN2o3tJIf9PIrQRSciVOOzT2D1kQKCey75pX1m6NVdxSUnNJ1rgAJ8E7vxbdHEAeplsTMFDvfCudumDXt3chzlNzlx6cbt3aU2WOWHYUzT1xYpg4dH1MxOQzboC8JPw/s1600/assembly_xml.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;449&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ZqFV_Xu1eSLZGN2o3tJIf9PIrQRSciVOOzT2D1kQKCey75pX1m6NVdxSUnNJ1rgAJ8E7vxbdHEAeplsTMFDvfCudumDXt3chzlNzlx6cbt3aU2WOWHYUzT1xYpg4dH1MxOQzboC8JPw/s640/assembly_xml.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 4 : assembly.xml&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Figure 5 is the structure of maven archetype for ESB apptype which is the most complex apptype created in WSO2 AppFactory up to now. Here you can see that there is no assembly.xml and bin.xml and instead of that there is a pom.xml inside built_artifact folder and bin.xml is also there in the same level. So we have run following command inside the built_artifact folder and how this extension can be done will be described in later in this article.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: #f3f3f3; font-family: Courier New, Courier, monospace;&quot;&gt;mvn clean install&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdhYOhXcllDty1E9QAt5OiwV_jbKSGgTf_o8GYP9EFbEhdceCHmFBVHdBCMfv_3tinnpKPubGblY-0MkPSWNmofUubvybCZXwOkKImoJweml4uROmT92oZGvk2gjLEm62yTyCtlyKTw24/s1600/archetype+tree.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdhYOhXcllDty1E9QAt5OiwV_jbKSGgTf_o8GYP9EFbEhdceCHmFBVHdBCMfv_3tinnpKPubGblY-0MkPSWNmofUubvybCZXwOkKImoJweml4uROmT92oZGvk2gjLEm62yTyCtlyKTw24/s1600/archetype+tree.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 5 : Tree structure of ESB maven archetype&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Extending the Application Type Processor Interface&lt;/h4&gt;
Application Type Processor interface can be found at [8]. AbstractApplicationTypeProcessor is an abstract implementation of the interface which is recommended to use[9]. But there could be cases where that it needs to be implemented from the beginning. This processor is triggered in several places which will do something specific to an application type.&lt;br /&gt;
&lt;br /&gt;
When we create an application when the repository get initiated[2], &lt;i&gt;generateApplicationSkeleton&lt;/i&gt;&amp;nbsp;method will get invoked. In [9] it is calling a method &lt;i&gt;initialDeployArtifactGeneration&lt;/i&gt;&amp;nbsp;which is not mentioned in the interface but anyone extending [9] can override that. The behavior I mentioned in the earlier section about ESB apptype initial artifact generation.&lt;br /&gt;
&lt;h4&gt;
Extending Deployer Interface&lt;/h4&gt;
The Deployer Interface [10] will be used to deploy the artifacts to the PaaS Artifact repository. Underlying PaaS will be the responsible one to copy it to the actual running server instance. If you need to do something special with your apptype you can use this interface. Anyway again the recommended class to extend is AbstractDeployer [11]. Most common use of this will be changing the artifacts that you choose to deploy. So you can override &lt;i&gt;getArtifact&lt;/i&gt; method in [11] so it will select the artifacts to deploy in your algorithm.&lt;br /&gt;
&lt;br /&gt;
And the next thing would be Initial Artifact Deployment. As I explained earlier WSO2 AppFactory will deploy an initial artifact generated directly from the archetype generated code. So this is usually done using the class InitialArtifactDeployer [12]. But if you want to change some behavior of this class then again you can extend this class [12] and add it to WSO2 AppFactory and mention it in apptype (apptype.xml) under a parameter name &lt;i&gt;&quot;InitialDeployerClassName&quot;&lt;/i&gt;.&lt;br /&gt;
&lt;h4&gt;
References&lt;/h4&gt;
[1]&amp;nbsp;&lt;a href=&quot;https://docs.wso2.com/display/AF210/Adding+a+new+App+Type+and+its+Runtime&quot;&gt;Adding a new App Type and its Runtime&lt;/a&gt;&lt;br /&gt;
[2]&amp;nbsp;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-life-cycle-of.html&quot;&gt;WSO2 Appfactory LifeCycle Of&lt;/a&gt;&lt;br /&gt;
[3]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/product-af/blob/master/modules/components/org.wso2.carbon.appfactory.core/src/main/java/org/wso2/carbon/appfactory/core/ApplicationEventsHandler.java&quot;&gt;ApplicationEventsHandler.java (org.wso2.carbon.appfactory.core.ApplicationEventsHandler)&lt;/a&gt;&lt;br /&gt;
[4]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/product-af/blob/master/modules/components/org.wso2.carbon.appfactory.utilities/src/main/java/org/wso2/carbon/appfactory/utilities/dataservice/DSApplicationListener.java&quot;&gt;DSApplicationListener.java&lt;/a&gt;&lt;br /&gt;
[5]&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/guides/mini/guide-creating-archetypes.html&quot;&gt;Guide Creating Archetypes&lt;/a&gt;&lt;br /&gt;
[6]&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/plugins/maven-assembly-plugin/&quot;&gt;Maven Assembly Plugin&lt;/a&gt;&lt;br /&gt;
[7]&amp;nbsp;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2015/07/how-to-include-artifactid-in-folder-or.html&quot;&gt;How to include artifactid in folder name or content of a file&lt;/a&gt;&lt;br /&gt;
[8]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/product-af/blob/master/modules/components/org.wso2.carbon.appfactory.core/src/main/java/org/wso2/carbon/appfactory/core/apptype/ApplicationTypeProcessor.java&quot;&gt;ApplicationTypeProcessor.java (org.wso2.carbon.appfactory.core.apptype.ApplicationTypeProcessor) &lt;/a&gt;&lt;br /&gt;
[9]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/product-af/blob/master/modules/components/org.wso2.carbon.appfactory.application.mgt/src/main/java/org/wso2/carbon/appfactory/application/mgt/type/AbstractApplicationTypeProcessor.java&quot;&gt;AbstractApplicationTypeProcessor.java&lt;/a&gt;&lt;br /&gt;
[10]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/product-af/blob/master/modules/components/org.wso2.carbon.appfactory.core/src/main/java/org/wso2/carbon/appfactory/core/Deployer.java&quot;&gt;Deployer.java (org.wso2.carbon.appfactory.core.Deployer)&lt;/a&gt;&lt;br /&gt;
[11]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/product-af/blob/master/modules/components/org.wso2.carbon.appfactory.deployers/src/main/java/org/wso2/carbon/appfactory/deployers/AbstractDeployer.java&quot;&gt;AbstractDeployer.java (org.wso2.carbon.appfactory.deployers.AbstractDeployer)&lt;/a&gt;&lt;br /&gt;
[12]&amp;nbsp;&lt;a href=&quot;https://github.com/wso2/product-af/blob/master/modules/components/org.wso2.carbon.appfactory.deployers/src/main/java/org/wso2/carbon/appfactory/deployers/InitialArtifactDeployer.java&quot;&gt;InitialArtifactDeployer.java (org.wso2.carbon.appfactory.deployers.InitialArtifactDeployer)&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/5401144823268639756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-developing-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/5401144823268639756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/5401144823268639756'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-developing-new.html' title='WSO2 App Factory - Developing New Application Type'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaobwY4QDuxGkkkgBZdnQ13yyp-e-efuQrX33o3eN-tZmxzkUSPqIym7C82OazvqaGU0can6KpCUi2Vlxb5GphGa_nnxF4u_XTkP1bE-qJKL5nsLRWdTrDStYrAbTlUc7Az0oN0AyKOfg/s72-c/EventHandlerPrioritySettings.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-330961339168920251</id><published>2015-07-23T04:27:00.002-07:00</published><updated>2016-08-04T20:26:11.596-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2 AppFactory"/><title type='text'>WSO2 App Factory - Life Cycle of an application</title><content type='html'>This post will try to explain the general life-cycle of an application in WSO2 AppFactory. WSO2 AppFactory is a place where multiple project teams can collaboratively create run and manage enterprise applications[1]. With WSO2 AppFactory users can create an complex application and push it to production within a matter of couple of hours.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4iMJZJ157XQ5kZzWcadd8ipjabnVzOMPwOkkqDJKfUE0KBWd9kpQ6vaJI1MBxrIS9gKp9E1LibutP8xvuXhF0KsUFT9ZvM-rSFoNki5GzTQV3A06em1HymltH-CJ95h3Z7BtczK6AFEA/s1600/create_application.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4iMJZJ157XQ5kZzWcadd8ipjabnVzOMPwOkkqDJKfUE0KBWd9kpQ6vaJI1MBxrIS9gKp9E1LibutP8xvuXhF0KsUFT9ZvM-rSFoNki5GzTQV3A06em1HymltH-CJ95h3Z7BtczK6AFEA/s640/create_application.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 1 - App Cloud Create Application Page&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
If you go to WSO2 AppFactory and create an application it will do several operations that generates the resources needed for your application such as&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Create Repository&lt;/li&gt;
&lt;li&gt;Generate Sample Code for the Application&lt;/li&gt;
&lt;li&gt;Create Build Job&lt;/li&gt;
&lt;li&gt;Create Issue Tracker Project&lt;/li&gt;
&lt;li&gt;Deploy initial artifact in to PAAS artifact repository&lt;/li&gt;
&lt;li&gt;etc..&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
When you hit create application it will create an instance of the application RXT installed in WSO2 AppFactory and then will call a bpel which is hosted in the BPS. Any one can edit this bpel to add their workflow in to it. Currently this will just trigger the AF service to trigger on creation event of&amp;nbsp;Application Event Handlers.&amp;nbsp;There are set of Application Event Handlers registered in AF. You can develop a new&amp;nbsp;Application Event Handler&amp;nbsp;class and add it to an OSGI bundle and copy to following location and start AF and that new handler will get invoked.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: #f3f3f3;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$APPFACTORY_HOME/repository/components/dropins&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
And you can configure the order of the handlers by setting the priority of the handler by setting priority in the AppFactory configuration placed in following location.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: #eeeeee;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$APPFACTORY_HOME/repository/conf/appfactory/appfactoy.xml&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
I will explain this in detail in my next post [2].&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
These handlers will be responsible for the operations mentioned above. Figure 2 is about the flow of this Application Creation process.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNeoxNVMEUwWS7yB5r1LMxKKGGxRKo4rxGfio9OxaORny-GFeICfRHtJkb1qNlNp_iCdicyPecLPv_VPXers4rj0Vsn0b1LJK6YLBrsiubAhATKFNcT60PvajsmCYAU01sxSA5v2TVhqg/s1600/Create+Application+%25281%2529.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNeoxNVMEUwWS7yB5r1LMxKKGGxRKo4rxGfio9OxaORny-GFeICfRHtJkb1qNlNp_iCdicyPecLPv_VPXers4rj0Vsn0b1LJK6YLBrsiubAhATKFNcT60PvajsmCYAU01sxSA5v2TVhqg/s640/Create+Application+%25281%2529.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 12.8000001907349px;&quot;&gt;Figure 2 : Create Application Flow&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
When the application is created trunk version will get created in the repository. Next step would be to create a new version from the trunk version to promote it to next stages.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip6xGODdNBwJpScwQz3OkeWZNfvZm3qHa3qqKdMUfkK7ERA0h50UJTMyeQ5AQPrW6LvccWeS4JVlopDCayP6aXjleDXMt3QAEtKHpPruwQJUZxQiKKCc1vsRHLJrgNbzqpMw4qATMgfc8/s1600/Create_Version.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;322&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip6xGODdNBwJpScwQz3OkeWZNfvZm3qHa3qqKdMUfkK7ERA0h50UJTMyeQ5AQPrW6LvccWeS4JVlopDCayP6aXjleDXMt3QAEtKHpPruwQJUZxQiKKCc1vsRHLJrgNbzqpMw4qATMgfc8/s640/Create_Version.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 3 : Repositories and Builds page&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
When you click the create branch it will trigger same kind of flow and will create the new version and new build jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZPbNTWYAOthZM37pIju6Y17SKoR8_rMUu6Pit3B2ga2voyA7eX7N7JM6YBomiN2gJBQLFsSycAibchcEStee_czX88WRThbrDUqk0NxoKaePO8uDxOqA43dRtQ89N4XlLBtERJly8zNc/s1600/Create+a+new+version.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZPbNTWYAOthZM37pIju6Y17SKoR8_rMUu6Pit3B2ga2voyA7eX7N7JM6YBomiN2gJBQLFsSycAibchcEStee_czX88WRThbrDUqk0NxoKaePO8uDxOqA43dRtQ89N4XlLBtERJly8zNc/s640/Create+a+new+version.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 4 : Flow of creating a new version in an Application&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Once you create a new version then you can promote this version to next stages (Development -&amp;gt; Testing -&amp;gt; Production). When you promote it will deploy the artifacts to next stages.&lt;br /&gt;
&lt;br /&gt;
[1]&amp;nbsp;&lt;a href=&quot;http://wso2.com/cloud/app-factory/&quot;&gt;http://wso2.com/cloud/app-factory/&lt;/a&gt;&lt;br /&gt;
[2]&amp;nbsp;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-developing-new.html&quot;&gt;http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-developing-new.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/330961339168920251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-life-cycle-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/330961339168920251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/330961339168920251'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-app-factory-life-cycle-of.html' title='WSO2 App Factory - Life Cycle of an application'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4iMJZJ157XQ5kZzWcadd8ipjabnVzOMPwOkkqDJKfUE0KBWd9kpQ6vaJI1MBxrIS9gKp9E1LibutP8xvuXhF0KsUFT9ZvM-rSFoNki5GzTQV3A06em1HymltH-CJ95h3Z7BtczK6AFEA/s72-c/create_application.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-6397117143257837960</id><published>2015-07-09T05:19:00.001-07:00</published><updated>2015-07-09T05:19:12.323-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="User Management"/><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><title type='text'>WSO2 Products - How User Stores work</title><content type='html'>Today we keep our users and profiles in several forms. Some times they are in a LDAP. Some uses Active Directory (AD). Some uses databases and etc. WSO2 Products are written in a way any of these format could support. If some one have their own way of storing users and any one can easily plug them in to WSO2 products by just writing a custom user store. In this post I will explain how these user stores works and the other components connected to them.&lt;br /&gt;
&lt;br /&gt;
When we discuss about user management in WSO2 world, there are several key components. They are&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;User Store Manager&lt;/li&gt;
&lt;li&gt;Authorization Manger&lt;/li&gt;
&lt;li&gt;Tenant Manager&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
In simple user management we need to authorize some user to some action / permission. Normally we group these actions / permissions&amp;nbsp;as groups and assign these groups / roles&amp;nbsp;to users. So there are two kind of mappings that we need to consider. They are&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;User to Role Mapping&lt;/li&gt;
&lt;li&gt;Role to Permission Mapping&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
User to Role Mapping is managed&amp;nbsp;by user store implementation&amp;nbsp;and Role to Permission mapping is managed by authorization manger implementation. These things are configured in the configuration file under [1].&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
Tenant Manager comes in to play when Multi Tenancy is considered. This&amp;nbsp;is configured under [2]. Lets discuss this later.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
User Management&lt;/h3&gt;
&lt;br /&gt;
By default WSO2 products (except WSO2 Identity Server) it stores every thing in DB. There it use&amp;nbsp;[3] as the user store manager implementation. In WSO2 Identity Server, it&#39;s shipped with an internal LDAP and users are stored in that LDAP. So there it uses the&amp;nbsp;[4] as the implementation of the User Store Manager. And by default all WSO2 servers uses the DB to store Role to Permission Mapping. There it uses&amp;nbsp;[5] as the authorization manager implementation.&lt;br /&gt;
&lt;br /&gt;
I will explain the WSO2 Identity server case since it contains most of the elements. Since it has an LDAP user store, all users in the system, all roles in the system and the all the user to role mappings are saved in the LDAP. User Store Manager Implementation which is based on the interface [6]. WSO2 Products contains an Abstract User Store Implementation which includes the most of the common implementation is done and extension points provided for plug external implementations [7]. It is recommended to use [7] as the base when writing a user store manager always. All&amp;nbsp;users, roles and&amp;nbsp;user role mappings are &amp;nbsp;managed through [4] which are in LDAP. And all the Role to Permissions mappings are persisted in DB and it was handled via [5]. &lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvywal024hBhujjoXYrkXzYqVL8DpIiK76t1J_oMZUf-kFrz9mNdItJh3E1upk3LL5zS1syo1W_HOwVrwIRWSC7GEbvrk9wuoE-MosSJpHStDjvj-c7vlZs3obmoyx-yvOBl2QLfuiq6c/s1600/User+stores+and+permission+stores.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;396&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvywal024hBhujjoXYrkXzYqVL8DpIiK76t1J_oMZUf-kFrz9mNdItJh3E1upk3LL5zS1syo1W_HOwVrwIRWSC7GEbvrk9wuoE-MosSJpHStDjvj-c7vlZs3obmoyx-yvOBl2QLfuiq6c/s640/User+stores+and+permission+stores.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Figure 1 : User Stores and Permission Stores&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Figure 1 is about the relationships among users, roles and permissions and where they are stored and who is handling them.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Multi tenancy&lt;/h3&gt;
Lets get in to multi tenancy now. Some of you may already know what is multi tenancy. But on behalf of the others in multi tenancy we create a space ( a tenant ) which is isolated from everything and nobody other than the people in the tenant don&#39;t know the existence of the tenant.&lt;br /&gt;
&lt;br /&gt;
So in WSO2 products OOTB its supporting for a completely isolated tenants. Each tenant will have their own artifact space, registry space and user store (We call this user realm). Figure 2 graphically explains this story.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN4pGhfesASZkb86wHyS8byL-8b-vIfz75ekQvHgw77zj2AgGUx1USB5FDk7uWoqzCFtXGddMXHIKWst6skEPFAWm91_KWBRH4Ex2EiPMWAxrk0A5EUZVhS_eD7NrLm4XNL_REwoy689A/s1600/WSO2+Multi+Tenancy.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN4pGhfesASZkb86wHyS8byL-8b-vIfz75ekQvHgw77zj2AgGUx1USB5FDk7uWoqzCFtXGddMXHIKWst6skEPFAWm91_KWBRH4Ex2EiPMWAxrk0A5EUZVhS_eD7NrLm4XNL_REwoy689A/s640/WSO2+Multi+Tenancy.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Figure 2 : Each Tenant having their own user store&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Since there could be lots of tenants in the system in WSO2 products, it won&#39;t load all the tenants to the memory. It will load the tenant to the memory when the tenant is active. And when the tenant is idle for some time it will get unloaded. When tenant get loaded it will load registry, user realm and artifacts belongs to the tenant.&lt;br /&gt;
&lt;br /&gt;
In this user realm it contains all the users, roles, permissions and their mappings. Realm gets loaded from the implementation of [8] which we mention in [2]. So by having your own implantation you can plug your tenant structure to WSO2 Products.&lt;br /&gt;
&lt;br /&gt;
In next post I will explain plugging a custom LDAP structure to WSO2 Products.&lt;br /&gt;
&lt;br /&gt;
[1] &lt;span style=&quot;font-family: Courier New;&quot;&gt;$CARBON_HOME/repository/conf/user-mgt.xml&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;[2] &lt;span style=&quot;font-family: Courier New;&quot;&gt;$CARBON_HOME/repository/conf/tenant-mgt.xml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
[3]&amp;nbsp;&lt;span style=&quot;font-family: Courier New;&quot;&gt;org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager&lt;/span&gt;&lt;br /&gt;
[4] &lt;span style=&quot;font-family: Courier New;&quot;&gt;org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager&lt;/span&gt;&lt;br /&gt;
[5]&amp;nbsp;&lt;span style=&quot;font-family: Courier New;&quot;&gt;org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager&lt;/span&gt;&lt;br /&gt;
[6] &lt;a href=&quot;https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/UserStoreManager.java&quot;&gt;UserStoreManager.java&lt;/a&gt;&lt;br /&gt;
[7] &lt;a href=&quot;https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/common/AbstractUserStoreManager.java&quot;&gt;AbstractUserStoreManager.java&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;[8]&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;org.wso2.carbon.user.core.config.multitenancy.&lt;/span&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;MultiTenantRealmConfigBuilder&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;[9] &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://svn.wso2.org/repos/wso2/trunk/carbon/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/config/multitenancy/MultiTenantRealmConfigBuilder.java&quot;&gt;MultiTenantRealmConfigBuilder.java&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif; font-size: x-small;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/6397117143257837960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-products-how-user-stores-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/6397117143257837960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/6397117143257837960'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/wso2-products-how-user-stores-work.html' title='WSO2 Products - How User Stores work'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvywal024hBhujjoXYrkXzYqVL8DpIiK76t1J_oMZUf-kFrz9mNdItJh3E1upk3LL5zS1syo1W_HOwVrwIRWSC7GEbvrk9wuoE-MosSJpHStDjvj-c7vlZs3obmoyx-yvOBl2QLfuiq6c/s72-c/User+stores+and+permission+stores.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-3674840524411023833</id><published>2015-07-09T03:58:00.003-07:00</published><updated>2015-07-24T01:51:26.097-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="archetype"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven"/><title type='text'>How to include artifactid in a folder or file name or content of a file in a maven archetype.</title><content type='html'>When we create maven archetypes, specially the multi module ones, we might need to include the artifact id in to a folder or file&amp;nbsp;name or include it to a content of a file. This can be done very easily. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To include artifactid to a folder or file&amp;nbsp;name you just have to add the place holder &lt;strong&gt;__rootArtifactId__&lt;/strong&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**Note that there are two &#39;_&#39; characters before and after the word&amp;nbsp;rootArtifactId.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So for example if&amp;nbsp; you want a file name like &lt;artifactid&gt;-development.xml, then you can simply name it as __rootArtifactId__-development.xml. When file name is mentioned like this inside the archetype, when you run archetype generate command it will replace with the artifactid provided.&lt;/artifactid&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next thing is how to include this inside a file. This was tricky. I couldn&#39;t find a way to do it first. So I keep trying things and it works and it&#39;s simple. You can simply add the place holder &lt;strong&gt;${rootArtifactId}&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
In the same pattern you can use other parameters like version as well by using __version__ and ${version} respectively.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enjoy !!!!</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/3674840524411023833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/how-to-include-artifactid-in-folder-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3674840524411023833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3674840524411023833'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2015/07/how-to-include-artifactid-in-folder-or.html' title='How to include artifactid in a folder or file name or content of a file in a maven archetype.'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-5464131582441528494</id><published>2014-06-24T02:50:00.000-07:00</published><updated>2018-07-10T04:18:55.395-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSO2"/><title type='text'>Tips to write an Enterprise Application On WSO2 Platform</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Enterprise applications or Business Applications, are complex, scalable and distributed. They could deploy on corporate networks, Intranet or Internet. Usually they are data centric and user-friendly. And they must meet certain security, administration and maintenance requirements. &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Typically Enterprise Applications are large. Which is multi user, runs on clustered environments, contains large number of components, manipulates large amount of data and may use parallel processing and distributed resources. And they will try to meet some business requirements and at the same time it should provide robust and maintenance, monitoring and administration.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit; font-size: xx-small;&quot;&gt;&lt;b id=&quot;docs-internal-guid-24632481-cd45-e528-c63c-9bd1c7387609&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Here are some features and attributes that may include in an Enterprise Application. &lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit; font-size: xx-small;&quot;&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Complex business logic.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Read / Write data to / from databases.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Distributed Computing.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Message Oriented Middleware.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Directory and naming services&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Security&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;User Interfaces (Web and / or Desktop)&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Integration of Other systems&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Administration and Maintenance&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;High availability&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;High integrity&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;High mean time between failure&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Do not lose or corrupt data in failures.&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit; font-size: xx-small;&quot;&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The advantages of using WSO2 platform to develop and deploy an Enterprise Application is that most of above are supported by WSO2 platform itself. So in this blog entry I am going to provide some tips to develop and deploy an Enterprise Application in WSO2 platform.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit; font-size: xx-small;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;height: 0px;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit; font-size: small; font-weight: normal;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit; font-size: small; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: inherit; font-size: small; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;&lt;b&gt;Read / Write data to / from databases.&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;In WSO2 platform convention of using databases is access them through datasources. Here the developer can use WSO2 SS (Storage Server) [1] to create the databases. [2]. So the developer of the Application can create the database needed and if needed add the data to database console provided by WSO2 SS which is explained in [2]. For security reasons we can restrict developers to use the mysql instances only through WSO2 SS by restricting the access outside the network. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;After creating a database next step would be to create a datasource. For this purpose developer can create a datasource in WSO2 AS (Application Server) [3] and [4] explains how to add and manage data sources. As it is explained in [5] developer can expose the created data source as a JNDI resource and developer can use the data source/s in the application code as explained there. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div style=&quot;background-color: transparent; line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; white-space: normal;&quot;&gt;
&lt;h3&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;Use Distributed Computing and Message Oriented Middleware provided by WSO2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;WSO2 ESB can be used to add Distributed computing to the application. [6] and [7] explains how the developer can use WSO2 ESB functionalities to add Distributed Computing to the his / her application.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;WSO2 ESB also supports JMS (Java Messaging Service) [8] which&lt;/span&gt;&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; is a widely used API in Java-based Message Oriented Middleware. It facilitates loosely coupled, reliable, and asynchronous communication between different components of a distributed application.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;h3&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: black; font-family: inherit; font-size: large; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Store Configuration, Endpoints in WSO2 Registry.&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;And developer can store configuration, endpoints in registry provided by each WSO2 product. So registry have three parts. &lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Governance - Shared across the whole platform&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Config - Shared across the current cluster&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local - Only available to current instance&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Normally developer need to store data in governance if that data needs to be accessed by other WSO2 products as well. Otherwise he/she needs to store data in config registry. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: black; font-family: inherit; font-size: large; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Directory And Naming Services Provided by WSO2 Platform&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;All WSO2 Products can be use with LDAP, AD or any other Directory or Naming services and WSO2 Carbon APIs provide developer the APIs which can do operations with these Directory or Naming services. This is handled using User Store Managers implemented in WSO2 &amp;nbsp;products [9]. Anyone who will use WSO2 products can extend these User Store Managers to map it to their Directory structure. [10] provides a sample of how to use these Carbon APIs in side application to access the Directory Services from the Application.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;Exposing APIs and Services&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;Web app developer can expose some APIs / Webservices from his / her application and he / she can publish them via WSO2 API Manager [21] so everyone can access them. In this way the Application can be integrated in to the other systems and the application can use the existing APIs without implementing them again.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;And there is another commonly used feature in WSO2 Platform. The data sources created using WSO2 AS / WSO2 DSS can be exposed as data services and these data services can be exposed as APIs from WSO2 API Manager &amp;nbsp;[22] .&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;The advantage of using WSO2 API Manager in this case is mainly security. WSO2 API Manager provides oauth 2.0 based security.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;Security&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;When providing security we can provide security to the application by providing authentication and authorization. And we can provide security to the deployment by applying Java security and Secure vaults. And services deployed can be secured using Apache Rampart [11] [12]. &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: inherit; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;To provide authentication and authorization to the Application developer can use the functionalities provided by the WSO2 IS (Identity Server) [13]. Commonly SAML SSO is used to provide authentication. [14] explains how SSO works, how to configure to work with SAML SSO and so on.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;For authorization purposes developer can use the Carbon APIs provided in WSO2 products which is described in [15].&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;Java Security Manager can be used with WSO2 products so the deployment can be secured with the security provided by the policy file. As explained in [16] Carbon Secure Vaults can be used to store passwords in a secure way.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;Develop an Application to deploy on Application Server&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;[20] provides a user guide to develop and deploy an java application on WSO2 AS. This documentation discuss about class loading, session replication, writing Java, JAX - RS, JAX - WS, Jaggery and Spring applications, Service Development Deployment and Management, usage of JAVA EE and so on.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;Administration, Maintenance and Monitoring&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;WSO2 BAM (Business Activity Monitor) [17] can be use to collect logs and create some dashboards which will let people to monitor the status of the system. [18] explains how data can be aggregated, processed and presented with WSO2 BAM. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;Clustering&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;WSO2 Products which are based on Apache Axis2, Can be clustered. [19] provides clustering tips and how to cluster WSO2 products. By clustering the high availability can be achieved in the system.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit; font-size: large; white-space: pre-wrap;&quot;&gt;References&lt;/span&gt;&lt;/h2&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[1] &lt;/span&gt;&lt;a href=&quot;http://wso2.com/products/storage-server/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://wso2.com/products/storage-server/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[2] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/SS110/Creating+Databases&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/SS110/Creating+Databases&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[3] &lt;/span&gt;&lt;a href=&quot;http://wso2.com/products/application-server/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://wso2.com/products/application-server/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[4] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/AS521/Datasources&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/AS521/Datasources&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[5] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/AS521/Exposing+Datasources+as+JNDI+Resources&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/AS521/Exposing+Datasources+as+JNDI+Resources&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[6] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/ESB460/Distributed+Computing+Evolution&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/ESB460/Distributed+Computing+Evolution&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[7] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/IntegrationPatterns/Enterprise+Integration+Patterns+with+WSO2+ESB&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/IntegrationPatterns/Enterprise+Integration+Patterns+with+WSO2+ESB&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[8] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/ESB480/Java+Message+Service+(JMS)+Support&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/ESB480/Java+Message+Service+(JMS)+Support&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[9] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/IS460/Configuring+Primary+User+Stores&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/IS460/Configuring+Primary+User+Stores&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[10] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/AF200/Consuming+User+Management+APIs+from+Applications&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/AF200/Consuming+User+Management+APIs+from+Applications&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[11] &lt;/span&gt;&lt;a href=&quot;http://axis.apache.org/axis2/java/rampart/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://axis.apache.org/axis2/java/rampart/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[12] &lt;/span&gt;&lt;a href=&quot;http://wso2.com/taxonomy/term/267/all&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://wso2.com/taxonomy/term/267/all&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[13] &lt;/span&gt;&lt;a href=&quot;http://wso2.com/products/identity-server/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://wso2.com/products/identity-server/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[14] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/IS460/Managing+Single+Sign-On&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/IS460/Managing+Single+Sign-On&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[15] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/pages/viewpage.action?pageId=32352001&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/pages/viewpage.action?pageId=32352001&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[16] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/Carbon420/WSO2+Carbon+Secure+Vault&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/Carbon420/WSO2+Carbon+Secure+Vault&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[17] &lt;/span&gt;&lt;a href=&quot;http://wso2.com/products/business-activity-monitor/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://wso2.com/products/business-activity-monitor/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[18] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/BAM241/User+Guide&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/BAM241/User+Guide&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[19] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/CLUSTER420/WSO2+Clustering+and+Deployment+Guide&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/CLUSTER420/WSO2+Clustering+and+Deployment+Guide&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[20] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/AS521/User+Guide&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/AS521/User+Guide&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: black; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[21] &lt;/span&gt;&lt;a href=&quot;http://wso2.com/products/api-manager/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://wso2.com/products/api-manager/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;[22] &lt;/span&gt;&lt;a href=&quot;https://docs.wso2.org/display/AS521/Data+Services&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://docs.wso2.org/display/AS521/Data+Services&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/5464131582441528494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2014/06/tips-to-write-enterprise-application-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/5464131582441528494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/5464131582441528494'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2014/06/tips-to-write-enterprise-application-on.html' title='Tips to write an Enterprise Application On WSO2 Platform'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-94760970450471086</id><published>2011-02-25T09:30:00.000-08:00</published><updated>2018-05-04T00:41:44.260-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Dell Vostro 1520 Boot problem, Recovering &amp; restore Grub from a live Ubuntu cd.</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;In Vostro 1520 Dell Laptop series, when&amp;nbsp;Ubuntu&amp;nbsp;installed with windows (Dual Boot), due to a problem in bios the MBR will get&amp;nbsp;corrupted&amp;nbsp;and after that&amp;nbsp;you&amp;nbsp;will be unable to see the Grub loader at the startup and you want be&amp;nbsp;able&amp;nbsp;to load either windows or&amp;nbsp;Ubuntu.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;This happens only because of the&amp;nbsp;corruption&amp;nbsp;at MBR record or partition table.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;So by reinstalling grub to the partition u can resolve this problem. The steps of resolving are given below.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; text-align: justify;&quot;&gt;
&lt;li&gt;First&amp;nbsp;you&amp;nbsp;have to boot from the Ubuntu Live CD&lt;/li&gt;
&lt;li&gt;Then&amp;nbsp;you&amp;nbsp;have to find the &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: lime;&quot;&gt;sd&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; number of the partition that grub is installed in. ( If&amp;nbsp;you&amp;nbsp;have a&amp;nbsp;separate /boot&amp;nbsp;partition it should be the boot partition &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: lime;&quot;&gt;sd&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; number otherwise it should be the&amp;nbsp;Ubuntu&amp;nbsp;file system sd number. ). And here I assume that &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: lime;&quot;&gt;sd&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; number is &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #ead1dc;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Open the Terminal and execute following codes&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;sudo mkdir /mnt/root -- Setup a folder before change root.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;Using this code Mount the partition in to the folder created.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;sudo mount -t ext3 /dev/sda&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; white-space: pre;&quot;&gt; /mnt/root&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;Mount and bind necessary places using following code&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;Run this if /mnt/root/proc and /mnt/root/dev doesn&#39;t exist&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; white-space: pre;&quot;&gt;sudo mkdir &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; white-space: pre;&quot;&gt;/mnt/root/proc&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; white-space: pre;&quot;&gt;sudo mkdir &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; white-space: pre;&quot;&gt;/mnt/root/dev&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;sudo mount -t proc none /mnt/root/proc&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;sudo mount -o bind /dev /mnt/root/dev&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Now change the root to the configured folder using this code&lt;/li&gt;
&lt;ol&gt;&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;sudo chroot /mnt/root /bin/bash&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 22px;&quot;&gt;Install the grub to specified device.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 22px;&quot;&gt;grub-install /dev/sda&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 22px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;Now you are done. Restart and check. &lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;, courier, monospace; text-align: justify; white-space: pre;&quot;&gt;Y&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;, courier, monospace; text-align: justify;&quot;&gt;ou&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;, courier, monospace; text-align: justify; white-space: pre;&quot;&gt;will see that the grub is loading. Good luck !!!&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;ol&gt;
&lt;/ol&gt;
&lt;ol&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;
&lt;/span&gt;&lt;/ol&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/94760970450471086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2011/02/dell-laptop-mbr-recovering-restore-grub.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/94760970450471086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/94760970450471086'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2011/02/dell-laptop-mbr-recovering-restore-grub.html' title='Dell Vostro 1520 Boot problem, Recovering &amp; restore Grub from a live Ubuntu cd.'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-4456534114169862000</id><published>2010-10-06T04:02:00.000-07:00</published><updated>2015-04-15T05:42:38.224-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Linux Mint updates bug found</title><content type='html'>&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Bug Description &lt;/b&gt;:&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;yui-editable_text-text&quot;&gt; Failed to fetch&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;yui-editable_text-text&quot;&gt;http://packages.linuxmint.com/dists/isadora/Release   (malformed Release  file?) Unable to find expected entry  multiverse/binary-i386/Packages in  Meta-index file Some index files failed to download, they have been  ignored, or old ones used instead.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;yui-editable_text-text&quot;&gt;&lt;b&gt;Reasoning and Solution&lt;/b&gt; : &lt;/span&gt;There is no multiverse section in the Mint repository... please edit your /etc/apt/sources.list and remove the &quot;multiverse&quot; keyword from the lines referring to the Mint repositories.&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;yui-editable_text-text&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;yui-editable_text-text&quot;&gt;How to Fix it:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;yui-editable_text-text&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt;This command will open the sources list. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;yui-editable_text-text&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;~$ sudo gedit &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/etc/apt/sources.list&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is my file before editing and after editing&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Before :-&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://packages.linuxmint.com/ isadora main upstream import multiverse import&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://security.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://archive.canonical.com/ubuntu/ lucid partner&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://packages.medibuntu.org/ lucid free non-free&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
# deb http://archive.getdeb.net/ubuntu lucid-getdeb apps&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
# deb http://archive.getdeb.net/ubuntu lucid-getdeb games&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
After:-&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://packages.linuxmint.com/ isadora main upstream import&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://archive.ubuntu.com/ubuntu/ lucid main restricted universe&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://security.ubuntu.com/ubuntu/ lucid-security main restricted universe&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://archive.canonical.com/ubuntu/ lucid partner&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
deb http://packages.medibuntu.org/ lucid free non-free&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
# deb http://archive.getdeb.net/ubuntu lucid-getdeb apps&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
# deb http://archive.getdeb.net/ubuntu lucid-getdeb games&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/4456534114169862000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2010/10/linux-mint-updates-bug-found.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/4456534114169862000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/4456534114169862000'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2010/10/linux-mint-updates-bug-found.html' title='Linux Mint updates bug found'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-3666152548859415360</id><published>2010-07-20T22:32:00.000-07:00</published><updated>2015-04-15T05:42:15.417-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>How to fix grub loader when its not loading at the boot</title><content type='html'>&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
When you installed or restore a &lt;leo_highlight id=&quot;leoHighlights_Underline_0&quot; leohighlights_keywords=&quot;microsoft&quot; leohighlights_underline=&quot;true&quot; leohighlights_url_bottom=&quot;http%3A//shortcuts.thebrowserhighlighter.com/leonardo/plugin/highlights/3_2/tbh_highlightsBottom.jsp?keywords%3Dmicrosoft%26domain%3Dwww.blogger.com&quot; leohighlights_url_top=&quot;http%3A//shortcuts.thebrowserhighlighter.com/leonardo/plugin/highlights/3_2/tbh_highlightsTop.jsp?keywords%3Dmicrosoft%26domain%3Dwww.blogger.com&quot; onclick=&quot;leoHighlightsHandleClick(&#39;leoHighlights_Underline_0&#39;)&quot; onmouseout=&quot;leoHighlightsHandleMouseOut(&#39;leoHighlights_Underline_0&#39;)&quot; onmouseover=&quot;leoHighlightsHandleMouseOver(&#39;leoHighlights_Underline_0&#39;)&quot; style=&quot;background-attachment: scroll; background-color: transparent; background-image: none; background-position: 0% 50%; border-bottom-color: rgb(255, 255, 150); border-bottom-style: solid; border-bottom-width: 2px; cursor: pointer; display: inline;&quot;&gt;Microsoft&lt;/leo_highlight&gt; Windows after the Linux installation you won&#39;t see the grub loader is loading at the boot.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is not a error of grub or Linux. But you couldn&#39;t load Linux at this situation.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
There are few ways of fixing this issue. One way is using super grub disk.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Here I will tell you an another way of fixing this issue.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You just have to boot using any type of Linux CD/DVD&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now Open the terminal and type&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
sudo grub&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
and type the password to enter the kernel mode.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now you have to find out few things.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
First find the hd number of the hard disk.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is normally zero since we are using one hard disk only.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But if we are using more of them we have to find out the hd number of the hard disk.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Then find the sd number of the partition which contains grub.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
If you are not partitioned a separate /boot partition at the Linux installation this is same as the Linux partition.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;If you are using&amp;nbsp;Debian&amp;nbsp;version you can start the application called&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Partition Editor&lt;/span&gt; &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;and find out these things.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Here I will take hd &lt;span style=&quot;color: #674ea7;&quot;&gt;number is x&lt;/span&gt; and &lt;span style=&quot;color: #76a5af;&quot;&gt;sd number is y&lt;/span&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
After typing sudo grub and enter the password you will be switched in to new prompt ( grub prompt ) like below&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
grub&amp;gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now Enter&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
grub&amp;gt; root (hd&lt;span style=&quot;color: red;&quot;&gt;x,y&lt;/span&gt;)&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: white; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: white; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now Restart the machine and you will find the grub loader is loading.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: white; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;color: white; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Enjoy!!!&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;span id=&quot;leoHighlights_iframe_modal_span_container&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div id=&quot;leoHighlights_iframe_modal_div_container&quot; onmouseout=&quot;leoHighlightsHandleIFrameMouseOut();&quot; onmouseover=&quot;leoHighlightsHandleIFrameMouseOver();&quot; style=&quot;display: none; height: 391px; position: absolute; visibility: hidden; width: 520px; z-index: 2147483647;&quot;&gt;
&lt;iframe allowtransparency=&quot;true&quot; frameborder=&quot;0&quot; height=&quot;294&quot; hspace=&quot;0&quot; id=&quot;leoHighlights_top_iframe&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; name=&quot;leoHighlights_top_iframe&quot; scrolling=&quot;no&quot; src=&quot;about:blank&quot; style=&quot;height: 294px; left: 0px; position: absolute; top: 0px; width: 520px; z-index: 2147483647;&quot; title=&quot;leoHighlights_top_iframe&quot; vspace=&quot;0&quot; width=&quot;520&quot;&gt;&lt;/iframe&gt;&lt;span id=&quot;leoHighlights_iframe_modal_span_container&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;            &lt;iframe allowtransparency=&quot;true&quot; frameborder=&quot;0&quot; height=&quot;&quot; hspace=&quot;0&quot; id=&quot;leoHighlights_bottom_iframe&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; name=&quot;leoHighlights_bottom_iframe&quot; scrolling=&quot;no&quot; src=&quot;about:blank&quot; style=&quot;left: 96px; position: absolute; top: 294px; z-index: 2147483647;&quot; title=&quot;leoHighlights_bottom_iframe&quot; vspace=&quot;0&quot; width=&quot;&quot;&gt;&lt;/iframe&gt; &lt;/span&gt;&lt;/div&gt;
&lt;script defer=&quot;defer&quot; type=&quot;text/javascript&quot;&gt;
   var LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT =              300;
   var LEO_HIGHLIGHTS_MAX_HIGHLIGHTS =                   50;
   var LEO_HIGHLIGHTS_IFRAME_TOP_ID =                    &quot;leoHighlights_top_iframe&quot;;
   var LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID =                 &quot;leoHighlights_bottom_iframe&quot;;
   var LEO_HIGHLIGHTS_IFRAME_DIV_ID =                    &quot;leoHighlights_iframe_modal_div_container&quot;;
      
   var LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_WIDTH =     520;
   var LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_HEIGHT =    391;
   
   var LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_WIDTH =      520;
   var LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_HEIGHT =     665;
   
   var LEO_HIGHLIGHTS_IFRAME_TOP_POS_X =                 0;
   var LEO_HIGHLIGHTS_IFRAME_TOP_POS_Y =                 0;
   var LEO_HIGHLIGHTS_IFRAME_TOP_WIDTH =                 520;
   var LEO_HIGHLIGHTS_IFRAME_TOP_HEIGHT =                294;
   
   var LEO_HIGHLIGHTS_IFRAME_BOTTOM_POS_X =              96;
   var LEO_HIGHLIGHTS_IFRAME_BOTTOM_POS_Y =              294;
   var LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_WIDTH =    425;
   var LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_HEIGHT =   97;
   var LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_WIDTH =     425;
   var LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_HEIGHT =    371;
         
   var LEO_HIGHLIGHTS_SHOW_DELAY_MS =                    300;
   var LEO_HIGHLIGHTS_HIDE_DELAY_MS =                    750;
   var LEO_HIGHLIGHTS_SHOW_DELAY_NO_UNDER_MS =           850;
   
   var LEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT =         &quot;transparent none repeat scroll 0% 0%&quot;;
   var LEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER =           &quot;rgb(245, 245, 0) none repeat scroll 0% 0%&quot;;
   var LEO_HIGHLIGHTS_ROVER_TAG =                        &quot;711-36858-13496-14&quot;;

   createInlineScriptElement(&quot;var%20LEO_HIGHLIGHTS_DEBUG%20%3D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%3B%0Avar%20LEO_HIGHLIGHTS_DEBUG_POS%20%3D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%3B%0A%20%20%20%0Avar%20_leoHighlightsPrevElem%20%3D%20null%3B%0Avar%20_leoHighlightsSnoozed%20%3D%20false%3B%0A%0A/**%0A%20*%20Checks%20if%20the%20passed%20in%20class%20exists%0A%20*%20@param%20c%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsClassExists%28c%29%20%7B%0A%20%20%20return%20typeof%28c%29%20%3D%3D%20%22function%22%20%26%26%20typeof%28c.prototype%29%20%3D%3D%20%22object%22%20?%20true%20%3A%20false%3B%0A%7D%0A%0A/**%0A%20*%20Checks%20if%20the%20firebug%20console%20is%20available%0A%20*%20@param%20c%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsFirebugConsoleAvailable%28c%29%20%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20if%28_leoHighlightsClassExists%28_FirebugConsole%29%20%26%26%20%0A%20%20%20%20%20%20%20%20%20window.console%20%26%26%20console.log%20%26%26%20%0A%20%20%20%20%20%20%20%20%20%28console%20instanceof%20_FirebugConsole%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%7D%0A%20%20%20catch%28e%29%7B%7D%0A%20%20%20%0A%20%20%20return%20false%3B%0A%7D%20%0A%0A%0A/**%0A%20*%20General%20method%20used%20to%20debug%20exceptions%0A%20*%20%0A%20*%20@param%20location%0A%20*%20@param%20e%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsReportExeception%28location%2Ce%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20if%28_leoHighlightsFirebugConsoleAvailable%28%29%20||LEO_HIGHLIGHTS_DEBUG%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20var%20logString%3Dlocation%2B%22%3A%20%22%2Be%2B%22%5Cn%5Ct%22%2Be.name%2B%22%5Cn%5Ct%22%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28e.number%260xFFFF%29%2B%22%5Cn%5Ct%22%2Be.description%3B%0A%20%20%20%20%20%20%20%20%20if%28_leoHighlightsFirebugConsoleAvailable%28%29%29%0A%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20console.error%28logString%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20console.trace%28%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28LEO_HIGHLIGHTS_DEBUG%29%0A%20%20%20%20%20%20%20%20%20alert%28logString%29%3B%20%20%20%20%20%20%0A%20%20%20%7D%0A%20%20%20catch%28e%29%7B%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20log%20a%20string%20to%20the%20firebug%20console%0A%20*%20%0A%20*%20@param%20str%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsDebugLog%28str%29%0A%7B%20%20%20%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20if%28_leoHighlightsFirebugConsoleAvailable%28%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20console.log%28typeof%28_FirebugConsole%29%2B%22%20%22%2Bstr%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22_leoHighlightsDebugLog%28%29%20%22%2Bstr%2Ce%29%3B%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20get%20an%20attribute%20and%20decode%20it.%0A%20*%20%0A%20*%20@param%20elem%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetAttrib%28elem%2Cid%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20val%3Delem.getAttribute%28id%29%3B%0A%20%20%20%20%20%20return%20decodeURI%28val%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22_leoHighlightsGetAttrib%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%20%7D%0A%20%20%20return%20null%3B%0A%7D%0A%0A/**%0A%20*%20Checks%20if%20this%20is%20within%20a%20frame%20by%20checking%20for%20a%20parent.%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsIsFrame%28%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%20%20%0A%20%20%20%20%20%20return%20%28window%21%3Dtop%29%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22_leoHighlightsIsFrame%28%29%22%2Ce%29%3B%20%20%20%20%20%0A%20%20%20%7D%0A%20%20%0A%20%20%20return%20false%3B%0A%7D%0A%0A/**%0A%20*%20This%20is%20a%20dimensions%20object%0A%20*%20%0A%20*%20@param%20width%0A%20*%20@param%20height%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsDimension%28width%2Cheight%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.width%3Dwidth%3B%0A%20%20%20%09this.height%3Dheight%3B%0A%20%20%20%09this.toString%3Dfunction%28%29%20%7B%20return%20%28%22%28%22%2Bthis.width%2B%22%2C%22%2Bthis.height%2B%22%29%22%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsDimension%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20is%20a%20Position%20object%0A%20*%20%0A%20*%20@param%20x%0A%20*%20@param%20y%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsPosition%28x%2Cy%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.x%3Dx%3B%0A%20%20%20%09this.y%3Dy%3B%0A%20%20%20%09this.toString%3Dfunction%28%29%20%7B%20return%20%28%22%28%22%2Bthis.x%2B%22%2C%22%2Bthis.y%2B%22%29%22%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsPosition%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0Avar%20LEO_HIGHLIGHTS_ADJUSTMENT%20%3D%20new%20LeoHighlightsPosition%283%2C3%29%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_TOP_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_TOP_WIDTH%2CLEO_HIGHLIGHTS_IFRAME_TOP_HEIGHT%29%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_BOTTOM_HOVER_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_WIDTH%2CLEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_HEIGHT%29%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_BOTTOM_CLICK_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_WIDTH%2CLEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_HEIGHT%29%3B%0A%0Avar%20LEO_HIGHLIGHTS_DIV_HOVER_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_WIDTH%2CLEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_HEIGHT%29%3B%0Avar%20LEO_HIGHLIGHTS_DIV_CLICK_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_WIDTH%2CLEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_HEIGHT%29%3B%0A%0A%0A/**%0A%20*%20Sets%20the%20size%20of%20the%20passed%20in%20element%0A%20*%20%0A%20*%20@param%20elem%0A%20*%20@param%20dim%20%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsSetSize%28elem%2Cdim%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09//%20Set%20the%20popup%20location%0A%20%20%20%09elem.style.width%20%3D%20dim.width%20%2B%20%22px%22%3B%0A%20%20%20%09if%28elem.width%29%0A%20%20%20%09%09elem.width%3Ddim.width%3B%0A%20%20%20%09elem.style.height%20%20%3D%20dim.height%20%2B%20%22px%22%3B%0A%20%20%20%09if%28elem.height%29%0A%20%20%20%09%09elem.height%3Ddim.height%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsSetSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20can%20be%20used%20for%20a%20simple%20one%20argument%20callback%0A%20*%0A%20*%20@param%20callName%0A%20*%20@param%20argName%0A%20*%20@param%20argVal%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsSimpleGwCallBack%28callName%2CargName%2C%20argVal%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20if%28argName%29%0A%20%20%20%20%20%20%09gwObj.addParam%28argName%2CargVal%29%3B%0A%20%20%20%20%20%20gwObj.callName%28callName%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsSimpleGwCallBack%28%29%20%22%2BcallName%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20gets%20a%20url%20argument%20from%20the%20current%20document.%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetUrlArg%28url%2C%20name%20%29%0A%7B%0A%09%20%20name%20%3D%20name.replace%28/[%5C[]/%2C%22%5C%5C%5C[%22%29.replace%28/[%5C]]/%2C%22%5C%5C%5C]%22%29%3B%0A%09%20%20var%20regexS%20%3D%20%22[%5C%5C?%26]%22%2Bname%2B%22%3D%28[^%26%23]*%29%22%3B%0A%09%20%20var%20regex%20%3D%20new%20RegExp%28%20regexS%20%29%3B%0A%09%20%20var%20results%20%3D%20regex.exec%28url%29%3B%0A%09%20%20if%28%20results%20%3D%3D%20null%20%29%0A%09%20%20%20%20return%20%22%22%3B%0A%09%20%20else%0A%09%20%20%20%20return%20results[1]%3B%0A%7D%0A%0A%0A/**%0A%20*%20This%20allows%20to%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsRedirectTop%28url%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%20%20%09%0A%20%20%20%09top.location%3Durl%3B%09%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsRedirectTop%28%29%22%2Ce%29%3B%0A%20%20%20%7D%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20find%20an%20element%20by%20Id%0A%20*%20%0A%20*%20@param%20elemId%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsFindElementById%28elemId%2Cdoc%29%0A%7B%0A%09try%0A%09%7B%0A%09%20%20%20if%28doc%3D%3Dnull%29%0A%09%20%20%20%20%20%20doc%3Ddocument%3B%0A%09%20%20%20%0A%09%09var%20elem%3Ddoc.getElementById%28elemId%29%3B%0A%09%09if%28elem%29%0A%09%09%09return%20elem%3B%0A%09%09%0A%09%09/*%20This%20is%20the%20handling%20for%20IE%20*/%0A%09%09if%28doc.all%29%0A%09%09%7B%0A%09%09%09elem%3Ddoc.all[elemId]%3B%0A%20%20%20%20%20%20%20%20%20if%28elem%29%0A%20%20%20%20%20%20%20%20%20%09return%20elem%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20for%20%28%20var%20i%20%3D%20%28document.all.length-1%29%3B%20i%20%3E%3D%200%3B%20i--%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09elem%3Ddoc.all[i]%3B%0A%20%20%20%20%20%20%20%20%20%09if%28elem.id%3D%3DelemId%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20elem%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%09%09%7D%0A%09%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsFindElementById%28%29%22%2Ce%29%3B%0A%20%20%20%7D%0A%09return%20null%3B%0A%7D%0A%0A/**%0A%20*%20Get%20the%20location%20of%20one%20element%20relative%20to%20a%20parent%20reference%0A%20*%0A%20*%20@param%20ref%0A%20*%20%20%20%20%20%20%20%20%20%20%20the%20reference%20element%2C%20this%20must%20be%20a%20parent%20of%20the%20passed%20in%0A%20*%20%20%20%20%20%20%20%20%20%20%20element%0A%20*%20@param%20elem%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetLocation%28ref%2C%20elem%29%20%7B%0A%20%20%20_leoHighlightsDebugLog%28%22_leoHighlightsGetLocation%20%22%2Belem.id%29%3B%0A%20%20%20%0A%20%20%20var%20count%20%3D%200%3B%0A%20%20%20var%20location%20%3D%20new%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20var%20walk%20%3D%20elem%3B%0A%20%20%20while%20%28walk%20%21%3D%20null%20%26%26%20walk%20%21%3D%20ref%20%26%26%20count%20%3C%20LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT%29%20%7B%0A%20%20%20%20%20%20location.x%20%2B%3D%20walk.offsetLeft%3B%0A%20%20%20%20%20%20location.y%20%2B%3D%20walk.offsetTop%3B%0A%20%20%20%20%20%20walk%20%3D%20walk.offsetParent%3B%0A%20%20%20%20%20%20count%2B%2B%3B%0A%20%20%20%7D%0A%20%20%20%0A%20%20%20_leoHighlightsDebugLog%28%22Location%20is%3A%20%22%2Belem.id%2B%22%20-%20%22%2Blocation%29%3B%0A%0A%20%20%20return%20location%3B%0A%7D%0A%0A/**%0A%20*%20This%20is%20used%20to%20update%20the%20position%20of%20an%20element%20as%20a%20popup%0A%20*%20%0A%20*%20@param%20IFrame%0A%20*%20@param%20anchor%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsUpdatePopupPos%28iFrame%2Canchor%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20//%20Gets%20the%20scrolled%20location%20for%20x%20and%20y%0A%20%20%20%20%20%20var%20scrolledPos%3Dnew%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20%20%20%20if%28%20self.pageYOffset%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20self.pageXOffset%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20self.pageYOffset%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.documentElement%20%26%26%20document.documentElement.scrollTop%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20document.documentElement.scrollLeft%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20document.documentElement.scrollTop%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.body%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20document.body.scrollLeft%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20document.body.scrollTop%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Get%20the%20total%20dimensions%20to%20see%20what%20scroll%20bars%20might%20be%20active%20*/%0A%20%20%20%20%20%20var%20totalDim%3Dnew%20LeoHighlightsDimension%280%2C0%29%0A%20%20%20%20%20%20if%20%28document.all%20%26%26%20document.documentElement%20%26%26%20%0A%20%20%20%20%20%20%09document.documentElement.clientHeight%26%26document.documentElement.clientWidth%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%09totalDim.width%20%3D%20document.documentElement.scrollWidth%3B%0A%20%20%20%20%20%20%09totalDim.height%20%3D%20document.documentElement.scrollHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28document.all%29%0A%20%20%20%20%20%20%7B%20/*%20This%20is%20in%20IE%20*/%0A%20%20%20%20%20%09%20%09totalDim.width%20%3D%20document.body.scrollWidth%3B%0A%20%20%20%20%20%20%09totalDim.height%20%3D%20document.body.scrollHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%09%20totalDim.width%20%3D%20document.width%3B%0A%20%20%20%20%20%20%09%20totalDim.height%20%3D%20document.height%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%20Gets%20the%20location%20of%20the%20available%20screen%20space%0A%20%20%20%20%20%20var%20centerDim%3Dnew%20LeoHighlightsDimension%280%2C0%29%3B%0A%20%20%20%20%20%20if%28self.innerWidth%20%26%26%20self.innerHeight%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20self.innerWidth-%28totalDim.height%3Eself.innerHeight?16%3A0%29%3B%20//%20subtracting%20scroll%20bar%20offsets%20for%20firefox%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20self.innerHeight-%28totalDim.width%3Eself.innerWidth?16%3A0%29%3B%20%20//%20subtracting%20scroll%20bar%20offsets%20for%20firefox%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.documentElement%20%26%26%20document.documentElement.clientHeight%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20document.documentElement.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20document.documentElement.clientHeight%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.body%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20document.body.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20document.body.clientHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20Get%20the%20current%20dimension%20of%20the%20popup%20element%0A%20%20%20%20%20%20var%20iFrameDim%3Dnew%20LeoHighlightsDimension%28iFrame.offsetWidth%2CiFrame.offsetHeight%29%0A%20%20%20%20%20%20if%20%28iFrameDim.width%20%3C%3D%200%29%0A%20%20%20%20%20%20%09iFrameDim.width%20%3D%20iFrame.style.width.substring%280%2C%20iFrame.style.width.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20if%20%28iFrameDim.height%20%3C%3D%200%29%0A%20%20%20%20%20%20%09iFrameDim.height%20%3D%20iFrame.style.height.substring%280%2C%20iFrame.style.height.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Calculate%20the%20position%2C%20lower%20right%20hand%20corner%20by%20default%20*/%0A%20%20%20%20%20%20var%20position%3Dnew%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20%20%20%20position.x%3DscrolledPos.x%2BcenterDim.width-iFrameDim.width-LEO_HIGHLIGHTS_ADJUSTMENT.x%3B%0A%20%20%20%20%20%20position.y%3DscrolledPos.y%2BcenterDim.height-iFrameDim.height-LEO_HIGHLIGHTS_ADJUSTMENT.y%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28anchor%21%3Dnull%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20//centerDim%20in%20relation%20to%20the%20anchor%20element%20if%20available%0A%20%20%20%20%20%20%20%20%20var%20topOrBottom%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorPos%3D_leoHighlightsGetLocation%28document.body%2C%20anchor%29%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorScreenPos%20%3D%20new%20LeoHighlightsPosition%28anchorPos.x-scrolledPos.x%2CanchorPos.y-scrolledPos.y%29%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorDim%3Dnew%20LeoHighlightsDimension%28anchor.offsetWidth%2Canchor.offsetHeight%29%0A%20%20%20%20%20%20%20%20%20if%20%28anchorDim.width%20%3C%3D%200%29%0A%20%20%20%20%20%20%20%20%20%09anchorDim.width%20%3D%20anchor.style.width.substring%280%2C%20anchor.style.width.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20if%20%28anchorDim.height%20%3C%3D%200%29%0A%20%20%20%20%20%20%20%20%20%09anchorDim.height%20%3D%20anchor.style.height.substring%280%2C%20anchor.style.height.indexOf%28%27px%27%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20//%20Check%20if%20the%20popup%20can%20be%20shown%20above%20or%20below%20the%20element%0A%20%20%20%20%20%20%20%20%20if%20%28centerDim.height%20-%20anchorDim.height%20-%20iFrameDim.height%20-%20anchorScreenPos.y%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09//%20Show%20below%2C%20formula%20above%20calculates%20space%20below%20open%20iFrame%0A%20%20%20%20%20%20%20%20%20%20%20%20position.y%20%3D%20anchorPos.y%20%2B%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20topOrBottom%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28anchorScreenPos.y%20-%20anchorDim.height%20-%20iFrameDim.height%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09//%20Show%20above%2C%20formula%20above%20calculates%20space%20above%20open%20iFrame%0A%20%20%20%20%20%20%20%20%20%09position.y%20%3D%20anchorPos.y%20-%20iFrameDim.height%20-%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20topOrBottom%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20_leoHighlightsDebugLog%28%22_leoHighlightsUpdatePopupPos%28%29%20-%20topOrBottom%3A%20%22%2BtopOrBottom%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20if%20%28topOrBottom%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20We%20attempt%20top%20attach%20the%20window%20to%20the%20element%0A%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20anchorPos.x%20-%20iFrameDim.width%20/%202%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28position.x%20%3C%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28position.x%20%2B%20iFrameDim.width%20%3E%20scrolledPos.x%20%2B%20centerDim.width%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20scrolledPos.x%20%2B%20centerDim.width%20-%20iFrameDim.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsDebugLog%28%22_leoHighlightsUpdatePopupPos%28%29%20-%20topOrBottom%3A%20%22%2Bposition%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Attempt%20to%20align%20on%20the%20right%20or%20left%20hand%20side%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28centerDim.width%20-%20anchorDim.width%20-%20iFrameDim.width%20-%20anchorScreenPos.x%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20position.x%20%3D%20anchorPos.x%20%2B%20anchorDim.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28anchorScreenPos.x%20-%20anchorDim.width%20-%20iFrameDim.width%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20anchorPos.x%20-%20anchorDim.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20%20//%20default%20to%20below%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20position.y%20%3D%20anchorPos.y%20%2B%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsDebugLog%28%22_leoHighlightsUpdatePopupPos%28%29%20-%20sideBottom%3A%20%22%2Bposition%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Make%20sure%20that%20we%20don%27t%20go%20passed%20the%20right%20hand%20border%20*/%0A%20%20%20%20%20%20if%28position.x%2BiFrameDim.width%3EcenterDim.width-20%29%0A%20%20%20%20%20%20%09position.x%3DcenterDim.width-%28iFrameDim.width%2B20%29%3B%0A%20%20%20%20%20%20%09%09%0A%20%20%20%20%20%20//%20Make%20sure%20that%20we%20didn%27t%20go%20passed%20the%20start%0A%20%20%20%20%20%20if%28position.x%3C0%29%0A%20%20%20%20%20%20%20%20%20position.x%3D0%3B%0A%20%20%20%20%20%20if%28position.y%3C0%29%0A%20%20%20%20%20%20%09position.y%3D0%3B%0A%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22Popup%20info%20id%3A%20%20%20%20%20%20%20%22%20%2BiFrame.id%2B%22%20-%20%22%2Banchor.id%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%5Cnscrolled%20%20%20%20%20%20%20%20%20%20%22%20%2B%20scrolledPos%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%5Cncenter/visible%20%20%20%20%22%20%2B%20centerDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%5Cnanchor%20%28absolute%29%20%22%20%2B%20anchorPos%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%5Cnanchor%20%28screen%29%20%20%20%22%20%2B%20anchorScreenPos%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%5CnSize%20%28anchor%29%20%20%20%20%20%22%20%2B%20anchorDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%5CnSize%20%28popup%29%20%20%20%20%20%20%22%20%2B%20iFrameDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%20%22%5CnResult%20pos%20%20%20%20%20%20%20%20%22%20%2B%20position%29%3B%0A%0A%20%20%20%20%20%20//%20Set%20the%20popup%20location%0A%20%20%20%20%20%20iFrame.style.left%20%3D%20position.x%20%2B%20%22px%22%3B%0A%20%20%20%20%20%20iFrame.style.top%20%20%3D%20position.y%20%2B%20%22px%22%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsUpdatePopupPos%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20show%20the%20passed%20in%20element%20as%20a%20popup%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsShowPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20if%28_leoHighlightsSnoozed%29%0A%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%0A%20%20%20%09var%20popup%3Dnew%20LeoHighlightsPopup%28anchorId%2Csize%29%3B%0A%20%20%20%09popup.show%28%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsShowPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20transform%20the%20passed%20in%20url%20to%20a%20rover%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetRoverUrl%28url%29%0A%7B%0A%09var%20rover%3DLEO_HIGHLIGHTS_ROVER_TAG%3B%0A%09var%20roverUrl%3D%22http%3A//rover.ebay.com/rover/1/%22%2Brover%2B%22/4?%26mpre%3D%22%2BencodeURI%28url%29%3B%0A%09%0A%09return%20roverUrl%3B%0A%7D%0A%0A/**%0A%20*%20Sets%20the%20size%20of%20the%20bottom%20windown%20part%0A%20*%20%0A%20*%20@param%20size%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsSetBottomSize%28size%2CclickId%29%0A%7B%0A%20%20%20/*%20Get%20the%20elements%20*/%0A%20%20%20var%20iFrameBottom%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID%29%3B%0A%20%20%20var%20iFrameDiv%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%0A%20%20%20/*%20Figure%20out%20the%20correct%20sizes%20*/%0A%20%20%20var%20iFrameBottomSize%3D%28size%3D%3D1%29?LEO_HIGHLIGHTS_IFRAME_BOTTOM_CLICK_SIZE%3ALEO_HIGHLIGHTS_IFRAME_BOTTOM_HOVER_SIZE%3B%0A%20%20%20var%20divSize%3D%28size%3D%3D1%29?LEO_HIGHLIGHTS_DIV_CLICK_SIZE%3ALEO_HIGHLIGHTS_DIV_HOVER_SIZE%3B%0A%0A%20%20%20/*%20Refresh%20the%20iFrame%27s%20url%2C%20by%20removing%20the%20size%20arg%20and%20adding%20it%20again%20*/%0A%20%20%20leoHighlightsUpdateUrl%28iFrameBottom%2Csize%2CclickId%29%3B%0A%0A%20%20%20/*%20Clear%20the%20hover%20flag%2C%20if%20the%20user%20shows%20this%20at%20full%20size%20*/%0A%20%20%20_leoHighlightsPrevElem.hover%3Dsize%3D%3D1?false%3Atrue%3B%0A%0A%20%20%20_leoHighlightsSetSize%28iFrameBottom%2CiFrameBottomSize%29%3B%0A%20%20%20_leoHighlightsSetSize%28iFrameDiv%2CdivSize%29%3B%0A%7D%0A%0A/**%0A%20*%20Class%20for%20a%20Popup%20%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22LeoHighlightsPopup%28%29%20%22%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%09this.anchorId%3DanchorId%3B%0A%20%20%20%09this.anchor%3D_leoHighlightsFindElementById%28this.anchorId%29%3B%0A%20%20%20%09this.topIframe%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_TOP_ID%29%3B%0A%20%20%20%20%20%20this.bottomIframe%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID%29%3B%0A%20%20%20%09this.iFrameDiv%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%20%20%20%09%0A%20%20%20%09this.topIframe.src%3Dunescape%28this.anchor.getAttribute%28%27leoHighlights_url_top%27%29%29%3B%3B%0A%20%20%20%20%20%20this.bottomIframe.src%3Dunescape%28this.anchor.getAttribute%28%27leoHighlights_url_bottom%27%29%29%3B%3B%0A%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%221%29%20LeoHighlightsPopup%28%29%20%28%22%2Bthis.topIframe.style.top%2B%22%2C%20%22%2Bthis.topIframe.style.left%2B%22%29%22%29%3B%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%222%29%20LeoHighlightsPopup%28%29%20%28%22%2Bthis.bottomIframe.style.top%2B%22%2C%20%22%2Bthis.bottomIframe.style.left%2B%22%29%22%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%09leoHighlightsSetSize%28size%29%3B%0A%20%20%20%09%0A%20%20%20%09this.updatePos%3Dfunction%28%29%20%7B%20_leoHighlightsUpdatePopupPos%28this.iFrameDiv%2Cthis.anchor%29%3B%7D%3B%0A%20%20%20%20%20%20this.show%3Dfunction%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.updatePos%28%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20this.iFrameDiv.style.visibility%20%3D%20%22visible%22%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20this.iFrameDiv.style.display%20%3D%20%22block%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.updatePos%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsDebugLog%28%223%29%20LeoHighlightsPopup%28%29%20%28%22%2Bthis.topIframe.style.top%2B%22%2C%20%22%2Bthis.topIframe.style.left%2B%22%29%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsDebugLog%28%224%29%20LeoHighlightsPopup%28%29%20%28%22%2Bthis.bottomIframe.style.top%2B%22%2C%20%22%2Bthis.bottomIframe.style.left%2B%22%29%22%29%3B%0A%20%20%20%20%20%20%7D%3B%20%20%20%20%20%20%20%0A%20%20%20%09this.scroll%3Dfunction%28%29%20%7B%20this.updatePos%28%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20updates%20the%20url%20for%20the%20iFrame%0A%20*%20%0A%20*%20@param%20iFrame%0A%20*%20@param%20size%0A%20*%20@param%20clickId%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsUpdateUrl%28iFrame%2Csize%2CclickId%2CdestUrl%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsUpdateUrl%28%29%20%22%2BdestUrl%29%3B%0A%20%20%20%20%20%20var%20url%3DiFrame.src%3B%0A%20%20%20%20%20%20var%20idx%3Durl.indexOf%28%22%26size%3D%22%29%3B%0A%20%20%20%20%20%20if%28idx%3E%3D0%29%0A%20%20%20%20%20%20%20%20%20url%3Durl.substring%280%2Cidx%29%3B%0A%20%20%20%20%20%20%0A//%20%20%20%20%20%20size%3D1%3B%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsUpdateUrl%28%29%20size%3D%22%2Bsize%2B%22%20%20%22%2Burl%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28size%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20url%2B%3D%28%22%26size%3D%22%2Bsize%29%3B%0A%20%20%20%20%20%20if%28clickId%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20url%2B%3D%28%22%26clickId%3D%22%2BclickId%29%3B%0A%20%20%20%20%20%20if%28destUrl%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20url%2B%3D%28%22%26url%3D%22%2BdestUrl%29%3B%0A%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsUpdateUrl%28%29%20%22%2Burl%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20iFrame.src%3Durl%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlightsUpdateUrl%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe%0A*%0A*%20@param%20id%0A*%20@return%0A*/%0Afunction%20leoHighlightsSetSize%28size%2CclickId%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Get%20the%20element%20*/%0A%20%20%09%09var%20iFrameTop%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_TOP_ID%29%3B%0A%0A%20%20%09%09/*%20Figure%20out%20the%20correct%20sizes%20*/%0A%20%20%09%09var%20iFrameTopSize%3DLEO_HIGHLIGHTS_IFRAME_TOP_SIZE%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Refresh%20the%20iFrame%27s%20url%2C%20by%20removing%20the%20size%20arg%20and%20adding%20it%20again%20*/%0A%20%20%09%09leoHighlightsUpdateUrl%28iFrameTop%2Csize%2CclickId%29%3B%0A%20%20%09%09%0A%20%20%09%09_leoHighlightsSetSize%28iFrameTop%2CiFrameTopSize%29%3B%0A%20%20%20%20%20%20_leoHighlightsSetBottomSize%28size%2CclickId%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Clear%20the%20hover%20flag%2C%20if%20the%20user%20shows%20this%20at%20full%20size%20*/%0A%20%20%20%20%20%20if%28size%3D%3D1%26%26_leoHighlightsPrevElem%29%0A%20%20%20%20%20%20%20%20%20_leoHighlightsPrevElem.hover%3Dfalse%3B%20%20%20%20%20%20%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsSetSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20Start%20the%20popup%20a%20little%20bit%20delayed.%0A%20*%20Somehow%20IE%20needs%20some%20time%20to%20find%20the%20element%20by%20id.%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsShowPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20if%28_leoHighlightsSnoozed%29%0A%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%0A%20%20%09%09var%20elem%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09if%28_leoHighlightsPrevElem%26%26%28_leoHighlightsPrevElem%21%3Delem%29%29%0A%20%20%09%09%09_leoHighlightsPrevElem.shown%3Dfalse%3B%0A%20%20%09%09elem.shown%3Dtrue%3B%0A%09%09_leoHighlightsPrevElem%3Delem%3B%0A%09%09%0A%09%09_leoHighlightsDebugLog%28%22leoHighlightsShowPopup%28%29%20%22%2B_leoHighlightsPrevElem%29%3B%09%09%0A%20%20%20%09%0A%20%20%20%09/*%20FF%20needs%20to%20find%20the%20element%20first%20*/%0A%20%20%20%09_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%20%09%0A%20%20%20%09setTimeout%28%22_leoHighlightsShowPopup%28%5C%27%22%2BanchorId%2B%22%5C%27%2C%5C%27%22%2Bsize%2B%22%5C%27%29%3B%22%2C10%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsShowPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe%0A*%0A*%20@param%20id%0A*%20@return%0A*/%0Afunction%20leoHighlightsHideElem%28id%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Get%20the%20appropriate%20sizes%20*/%0A%20%20%09%09var%20elem%3D_leoHighlightsFindElementById%28id%29%3B%0A%20%20%09%09if%28elem%29%0A%20%20%09%09%09elem.style.visibility%3D%22hidden%22%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Clear%20the%20page%20for%20the%20next%20run%20through%20*/%0A%20%20%09%09var%20iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_TOP_ID%29%3B%0A%20%20%09%09if%28iFrame%29%0A%20%20%09%09%09iFrame.src%3D%22about%3Ablank%22%3B%0A%20%20%20%20%20%20var%20iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID%29%3B%0A%20%20%20%20%20%20if%28iFrame%29%0A%20%20%20%20%20%20%20%20%20iFrame.src%3D%22about%3Ablank%22%3B%0A%20%20%09%09%0A%20%20%09%09%0A%20%20%09%09if%28_leoHighlightsPrevElem%29%0A%20%20%09%09%7B%0A%20%20%09%09%09_leoHighlightsPrevElem.shown%3Dfalse%3B%0A%20%20%09%09%09_leoHighlightsPrevElem%3Dnull%3B%0A%20%20%09%09%7D%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHideElem%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe.%0A*%20Since%20the%20iFrame%20is%20reused%20the%20frame%20only%20gets%20hidden%0A*%0A*%20@return%0A*/%0Afunction%20leoHighlightsIFrameClose%28%29%0A%7B%0A%20%20try%0A%20%20%7B%0A%09%20%20_leoHighlightsSimpleGwCallBack%28%22LeoHighlightsHideIFrame%22%29%3B%0A%20%20%7D%0A%20%20catch%28e%29%0A%20%20%7B%0A%09%20%20_leoHighlightsReportExeception%28%22leoHighlightsIFrameClose%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%7D%0A%7D%0A%0A/**%0A*%0A*%20This%20is%20used%20to%20snooze%20the%20highlights.%0A*%0A*%20@return%0A*/%0Afunction%20leoHighlightsSnooze%28%29%0A%7B%0A%20%20try%0A%20%20%7B%0A%20%20%20%20%20_leoHighlightsSnoozed%3Dtrue%3B%0A%20%20%20%20%20_leoHighlightsSimpleGwCallBack%28%22LeoHighlightsSnooze%22%29%3B%0A%20%20%7D%0A%20%20catch%28e%29%0A%20%20%7B%0A%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlightsSnooze%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%7D%0A%7D%0A%0A/**%0A*%0A*%20This%20is%20used%20to%20snooze%20the%20highlights.%0A*%20This%20gets%20fired%20into%20the%20top%20frame.%0A*%0A*%20@return%0A*/%0Afunction%20leoHighlightsSnoozeTop%28id%29%0A%7B%0A%20%20try%0A%20%20%7B%0A%20%20%20%20%20_leoHighlightsSnoozed%3Dtrue%3B%0A%20%20%20%20%20leoHighlightsHideElem%28id%29%3B%0A%20%20%7D%0A%20%20catch%28e%29%0A%20%20%7B%0A%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlightsSnoozeTop%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%7D%0A%7D%0A%0A%0A/**%0A%20*%20This%20should%20handle%20the%20click%20events%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleClick%28anchorId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20if%28_leoHighlightsSnoozed%29%0A%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28_leoHighlightsIsFrame%28%29%29%0A%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%0A%20%20%09%09var%20anchor%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09anchor.hover%3Dfalse%3B%0A%20%20%09%09if%28anchor.startTimer%29%0A%20%20%09%09%09clearTimeout%28anchor.startTimer%29%3B%0A%20%20%20%09%0A%20%20%20%20%20%20/*%20Report%20the%20click%20event%20*/%0A%20%20%20%20%20%20leoHighlightsReportEvent%28%22clicked%22%2C%20window.document.domain%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsGetAttrib%28anchor%2C%27leohighlights_keywords%27%29%2Cnull%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsGetAttrib%28anchor%2C%27leohighlights_accept%27%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsGetAttrib%28anchor%2C%27leohighlights_reject%27%29%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%09leoHighlightsShowPopup%28anchorId%2C1%29%3B%0A%20%20%20%09return%20false%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsHandleClick%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20should%20handle%20the%20hover%20events%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleHover%28anchorId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20if%28_leoHighlightsSnoozed%29%0A%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28_leoHighlightsIsFrame%28%29%29%0A%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%0A%20%20%09%09var%20anchor%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09anchor.hover%3Dtrue%3B%0A%20%20%09%09%0A%20%20%20%20%20%20/*%20Report%20the%20hover%20event%20*/%0A%20%20%20%20%20%20leoHighlightsReportEvent%28%22hovered%22%2C%20window.document.domain%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsGetAttrib%28anchor%2C%27leohighlights_keywords%27%29%2Cnull%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsGetAttrib%28anchor%2C%27leohighlights_accept%27%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20_leoHighlightsGetAttrib%28anchor%2C%27leohighlights_reject%27%29%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%09leoHighlightsShowPopup%28anchorId%2C0%29%3B%0A%20%20%20%09return%20false%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsHandleHover%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20will%20handle%20the%20mouse%20over%20setup%20timers%20for%20the%20appropriate%20timers%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleMouseOver%28id%29%0A%7B%0A%09try%0A%09%7B%0A%20%20%20%20%20%20if%28_leoHighlightsSnoozed%29%0A%20%20%20%20%20%20%20%20%20return%3B%0A%09%20%20%20%0A%09%20%20%20if%28_leoHighlightsIsFrame%28%29%29%0A%09%20%20%20%20%20%20return%3B%0A%09%20%20%20%0A%09%09var%20anchor%3D_leoHighlightsFindElementById%28id%29%3B%09%09%0A%0A%09%09/*%20Clear%20the%20end%20timer%20if%20required%20*/%0A%09%09if%28anchor.endTimer%29%0A%09%09%09clearTimeout%28anchor.endTimer%29%3B%0A%09%09anchor.endTimer%3Dnull%3B%0A%09%09%0A%09%09anchor.style.background%3DLEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER%3B%0A%09%09%0A%09%09var%20underline%3D_leoHighlightsGetAttrib%28anchor%2C%22leohighlights_underline%22%29%3D%3D%27true%27%3B%0A%09%09%0A%09%09/*%20The%20element%20is%20already%20showing%20we%20are%20done%20*/%0A%09%09if%28anchor.shown%29%0A%09%09%09return%3B%0A%09%09%0A%09%09/*%20Setup%20the%20start%20timer%20if%20required%20*/%0A%09%09anchor.startTimer%3DsetTimeout%28function%28%29%7B%0A%09%09%09leoHighlightsHandleHover%28anchor.id%29%3B%0A%09%09%09anchor.hover%3Dtrue%3B%0A%09%09%09%7D%2Cunderline?LEO_HIGHLIGHTS_SHOW_DELAY_MS%3ALEO_HIGHLIGHTS_SHOW_DELAY_NO_UNDER_MS%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleMouseOver%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20handle%20the%20mouse%20over%20setup%20timers%20for%20the%20appropriate%20timers%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleMouseOut%28id%29%0A%7B%0A%09try%0A%09%7B%09%0A%09%09var%20anchor%3D_leoHighlightsFindElementById%28id%29%3B%0A%09%09%0A%09%09/*%20Clear%20the%20start%20timer%20if%20required%20*/%0A%09%09if%28anchor.startTimer%29%0A%09%09%09clearTimeout%28anchor.startTimer%29%3B%0A%09%09anchor.startTimer%3Dnull%3B%0A%09%09%0A%09%09anchor.style.background%3DLEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT%3B%0A%09%09if%28%21anchor.shown||%21anchor.hover%29%0A%09%09%09return%3B%0A%09%09%0A%09%09/*%20Setup%20the%20start%20timer%20if%20required%20*/%0A%09%09anchor.endTimer%3DsetTimeout%28function%28%29%7B%0A%09%09%09leoHighlightsHideElem%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%09%09%09anchor.shown%3Dfalse%3B%0A%09%09%09_leoHighlightsPrevElem%3Dnull%3B%0A%09%09%09%7D%2CLEO_HIGHLIGHTS_HIDE_DELAY_MS%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleMouseOut%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20handles%20the%20mouse%20movement%20into%20the%20currently%20opened%20window.%0A%20*%20Just%20clear%20the%20close%20timer%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleIFrameMouseOver%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09if%28_leoHighlightsPrevElem%26%26_leoHighlightsPrevElem.endTimer%29%0A%09%09%09clearTimeout%28_leoHighlightsPrevElem.endTimer%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleIFrameMouseOver%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20handles%20the%20mouse%20movement%20into%20the%20currently%20opened%20window.%0A%20*%20Just%20clear%20the%20close%20timer%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleIFrameMouseOut%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09if%28_leoHighlightsPrevElem%29%0A%09%09%09leoHighlightsHandleMouseOut%28_leoHighlightsPrevElem.id%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleIFrameMouseOut%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A/**%0A%20*%20This%20is%20a%20method%20is%20used%20to%20make%20the%20javascript%20within%20IE%20runnable%0A%20*/%0Avar%20leoHighlightsRanUpdateDivs%3Dfalse%3B%0Afunction%20leoHighlightsUpdateDivs%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Check%20if%20this%20is%20an%20IE%20browser%20and%20if%20divs%20have%20been%20updated%20already%20*/%0A%09%09if%28document.all%26%26%21leoHighlightsRanUpdateDivs%26%26%21_leoHighlightsIsFrame%28%29%29%0A%09%09%7B%0A%09%09%09leoHighlightsRanUpdateDivs%3Dtrue%3B%20//%20Set%20early%20to%20prevent%20running%20twice%0A%09%09%09for%28var%20i%3D0%3Bi%3CLEO_HIGHLIGHTS_MAX_HIGHLIGHTS%3Bi%2B%2B%29%0A%09%09%09%7B%0A%09%09%09%09var%20id%3D%22leoHighlights_Underline_%22%2Bi%3B%0A%09%09%09%09var%20elem%3D_leoHighlightsFindElementById%28id%29%3B%0A%09%09%09%09if%28elem%3D%3Dnull%29%0A%09%09%09%09%09break%3B%0A%09%09%09%09%0A%09%09%09%09if%28%21elem.leoChanged%29%0A%09%09%09%09%7B%0A%09%09%09%09%09elem.leoChanged%3Dtrue%3B%0A%09%09%09%09%0A%09%09%09%09%09/*%20This%20will%20make%20javaScript%20runnable%20*/%09%09%09%09%0A%09%09%09%09%09elem.outerHTML%3Delem.outerHTML%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsUpdateDivs%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0Aif%28document.all%29%0A%09setTimeout%28leoHighlightsUpdateDivs%2C200%29%3B%0A%0A%0A/**%0A%20*%20This%20is%20used%20to%20report%20events%20to%20the%20plugin%0A%20*%20@param%20key%0A%20*%20@param%20domain%0A%20*%20@param%20keywords%0A%20*%20@param%20vendorId%0A%20*%20@param%20accept%0A%20*%20@param%20reject%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsReportEvent%28key%2C%20domain%2Ckeywords%2CvendorId%2Caccept%2Creject%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22key%22%2Ckey%29%3B%0A%20%20%20%20%20%20if%28domain%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22domain%22%2Cdomain%29%3B%0A%20%20%20%20%20%20if%28keywords%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22keywords%22%2Ckeywords%29%3B%0A%20%20%20%20%20%20if%28vendorId%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22vendorId%22%2CvendorId%29%3B%0A%20%20%20%20%20%20if%28accept%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22accept%22%2Caccept%29%3B%0A%20%20%20%20%20%20if%28reject%21%3Dnull%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22reject%22%2Creject%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsEvent%22%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlights%28%29%22%2Ce%29%3B%20%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20expand%20or%20collapse%20the%20window%20base%20on%20it%20prior%20state%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsToggleSize%28clickId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%20%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsToggleSize%28%29%20%22%2B_leoHighlightsPrevElem%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Get%20the%20hover%20flag%20and%20change%20the%20status%20*/%0A%20%20%20%20%20%20var%20size%3D_leoHighlightsPrevElem.hover?1%3A0%3B%0A%20%20%20%20%20%20_leoHighlightsSetBottomSize%28size%2CclickId%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlightsToggleSize%28%29%22%2Ce%29%3B%20%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20Call%20into%20the%20kvm%20that%20will%20then%20do%20a%20callback%20into%20the%20top%20window%0A%20*%20The%20top%20window%20will%20then%20call%20leoH%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsSetSecondaryWindowUrl%28url%2C%20customerId%2C%20phraseId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsSetSecondaryWindowUrl%28%29%20%22%2Burl%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22url%22%2C%20url%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22phraseId%22%2C%20phraseId%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22customerId%22%2C%20customerId%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsSetSecondaryWindowUrl%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlightsSetSecondaryWindowUrl%28%29%22%2Ce%29%3B%20%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20Call%20into%20the%20kvm%20that%20will%20then%20do%20a%20callback%20into%20the%20top%20window%0A%20*%20The%20top%20window%20will%20then%20call%20leoH%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsSetSecondaryWindowUrlCallback%28url%2C%20customerId%2C%20phraseId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsSetSecondaryWindowUrlCallback%28%29%20%22%2Burl%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Clear%20the%20hover%20flag%2C%20if%20the%20user%20shows%20this%20at%20full%20size%20*/%0A%20%20%20%20%20%20var%20size%3D_leoHighlightsPrevElem.hover?0%3A1%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsSetSecondaryWindowUrlCallback%28%29%20%22%2B_leoHighlightsPrevElem%2B%22%20--%20%22%2B_leoHighlightsPrevElem.hover%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Get%20the%20elements%20*/%0A%20%20%20%20%20%20var%20iFrameBottom%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID%29%3B%0A%20%20%20%20%20%20leoHighlightsUpdateUrl%28iFrameBottom%2Csize%2Cnull%2Curl%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHighlightsSetSecondaryWindowUrlCallback%28%29%20%22%2Burl%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlightsSetSecondaryWindowUrlCallback%28%29%22%2Ce%29%3B%20%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20set%20the%20text%20to%20the%20Top%20%0A%20*%20%0A%20*%20@param%20txt%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsSetExpandTxt%28txt%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%0A%20%20%20%20%20%20var%20topIFrame%20%3D%20_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_TOP_ID%29%3B%0A%20%20%20%20%20%20if%28topIFrame%3D%3Dnull%29%0A%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Get%20the%20current%20url%20*/%0A%20%20%20%20%20%20var%20url%3DtopIFrame.src%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28url%3D%3Dnull%29%0A%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Extract%20the%20previous%20hash%20if%20present%20*/%0A%20%20%20%20%20%20var%20idx%3D-1%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28%28idx%3Durl.indexOf%28%27%23%27%29%29%3E0%29%0A%20%20%20%20%20%20%20%20%20url%3Durl.substring%280%2Cidx%29%3B%0A%0A%20%20%20%20%20%20/*%20Append%20the%20text%20to%20the%20end%20*/%0A%20%20%20%20%20%20url%2B%3D%22%23%22%2BencodeURI%28txt%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Set%20the%20iframe%20with%20the%20new%20url%20that%20contains%20the%20hash%20tag%20*/%0A%20%20%20%20%20%20topIFrame.src%3Durl%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHighlightsSetExpandTxt%28%29%22%2Ce%29%3B%20%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A/*----------------------------------------------------------------------*/%0A/*%20Methods%20provided%20to%20the%20highlight%20providers...%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*/%0A/*----------------------------------------------------------------------*/%0A%0A/**%0A%20*%20This%20will%20set%20the%20expand%20text%20for%20the%20Top%20window%0A%20*/%0Afunction%20leoHL_SetExpandTxt%28txt%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsDebugLog%28%22leoHL_SetExpandTxt%28%29%20%22%2Btxt%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20_leoHighlightsSimpleGwCallBack%28%22LeoHighlightsSetExpandTxt%22%2C%22expandTxt%22%2Ctxt%29%3B%20%20%20%20%20%20%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHL_SetExpandTxt%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20@return%0A%20*/%0Afunction%20leoHL_RedirectTop%28url%2CparentId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%0A%20%20%20%20%20%20try%7B%0A%20%20%20%20%20%20%20%20%20var%20domain%3D_leoHighlightsGetUrlArg%28window.document.URL%2C%22domain%22%29%0A%20%20%20%20%20%20%20%20%20var%20keywords%3D_leoHighlightsGetUrlArg%28window.document.URL%2C%22keywords%22%29%0A%20%20%20%20%20%20%20%20%20var%20vendorId%3D_leoHighlightsGetUrlArg%28window.document.URL%2C%22vendorId%22%29%0A%20%20%20%20%20%20leoHighlightsReportEvent%28%22clickthrough%22%2C%20domain%2Ckeywords%2C%20vendorId%29%3B%0A%20%20%20%20%20%20%7Dcatch%28e%29%7B%0A%20%20%20%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHL_RedirectTop%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%20%20%20%20%7D%0A%20%20%09%09%0A%20%20%20%09_leoHighlightsRedirectTop%28url%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHL_RedirectTop%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20@return%0A%20*/%0Afunction%20LeoHL_RedirectTop%28url%2CparentId%29%0A%7B%0A%20%20%20leoHL_RedirectTop%28url%2CparentId%29%3B%0A%7D%0A%0A/**%0A%20*%20This%20will%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20@return%0A%20*/%0Afunction%20leoHL_RedirectTopAd%28url%2CparentId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%0A%20%20%20%20%20%20try%7B%0A%20%20%20%20%20%20%20%20%20var%20domain%3D_leoHighlightsGetUrlArg%28window.document.URL%2C%22domain%22%29%0A%20%20%20%20%20%20%20%20%20var%20keywords%3D_leoHighlightsGetUrlArg%28window.document.URL%2C%22keywords%22%29%0A%20%20%20%20%20%20%20%20%20var%20vendorId%3D_leoHighlightsGetUrlArg%28window.document.URL%2C%22vendorId%22%29%0A%20%20%20%20%20%20leoHighlightsReportEvent%28%22advertisement.click%22%2C%20domain%2Ckeywords%2C%20vendorId%29%3B%0A%20%20%20%20%20%20%7Dcatch%28e%29%7B%0A%20%20%20%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHL_RedirectTopAd%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20_leoHighlightsRedirectTop%28url%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHL_RedirectTopAd%28%29%22%2Ce%29%3B%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20set%20the%20size%20of%20the%20iframe%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHl_setSize%28size%2Curl%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09/*%20Get%20the%20clickId%20*/%0A%20%20%20%09var%20clickId%3D_leoHighlightsGetUrlArg%28%20url%2C%22clickId%22%29%0A%20%20%20%09%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22size%22%2Csize%29%3B%0A%20%20%20%20%20%20if%28clickId%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22clickId%22%2CclickId%2B%22_blah%22%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsSetSize%22%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHl_setSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20toggle%20the%20size%20of%20the%20window%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHl_ToggleSize%28%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsToggleSize%22%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%20%20%20_leoHighlightsReportExeception%28%22leoHl_ToggleSize%28%29%22%2Ce%29%3B%20%20%20%20%20%0A%20%20%20%7D%0A%7D%0A%0A&quot;);
&lt;/script&gt;&lt;span id=&quot;leoHighlights_iframe_modal_span_container&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/3666152548859415360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2010/07/how-to-fix-grub-loader-when-its-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3666152548859415360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3666152548859415360'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2010/07/how-to-fix-grub-loader-when-its-not.html' title='How to fix grub loader when its not loading at the boot'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-2010998908810896080</id><published>2010-07-20T22:10:00.000-07:00</published><updated>2015-04-15T05:42:15.400-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Customize your grub loader by just editing a file</title><content type='html'>&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can find a file called menu.lst in the path /boot/grub. By editing this file you can customize your Grub loader easily. &lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
First we can set the time out amount of the grub. Go to Section ## timeout sec and set timeout value to an amount of seconds as you like.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Then you can Customize the view by changing the colors. It is under # Pretty colors.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Then comes the most important thing of the Grub menu list. Find out the kernel list in the File. Normally it is in the bottom. Sample section for one kernel is given below.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;title&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Linux Mint 7 Gloria, kernel 2.6.28-16-generic&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;root&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; faaab6f9-539b-4f1a-82fc-b5a18887d28d&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;kernel&amp;nbsp;&amp;nbsp;&amp;nbsp; /vmlinuz-2.6.28-16-generic root=UUID=6a2a464d-bf70-4b4a-8c8e-8dad3ccafe2c ro quiet splash &lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;initrd&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; /initrd.img-2.6.28-16-generic&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;quiet&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can always change the title as you wish. root is the UUID of the boot partition. If u don&#39;t have a separate boot partition then it is same as the partition containing Linux kernel. Then the generalize form is given below.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;title&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;&amp;lt;Title of the kernel / os&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;root&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;&amp;lt;UUID of the boot partition&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;kernel&amp;nbsp;&amp;nbsp;&amp;nbsp; /vmlinuz-2.6.28-16-generic root=UUID=&lt;span style=&quot;color: white;&quot;&gt;&lt;uuid containing=&quot;&quot; kernel=&quot;&quot; linux=&quot;&quot; of=&quot;&quot; partition=&quot;&quot; the=&quot;&quot;&gt;&lt;/uuid&gt;&lt;/span&gt; ro quiet splash &lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;initrd&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; /initrd.img-2.6.28-16-generic&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;quiet&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Other details are about the Kernel versions. So don&#39;t try to edit them until its really needed and u exactly know what is doing. &lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
After finish the editing reboot and see what happened.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/2010998908810896080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2010/07/customize-your-grub-loader-by-just.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2010998908810896080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2010998908810896080'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2010/07/customize-your-grub-loader-by-just.html' title='Customize your grub loader by just editing a file'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-3596437770231723236</id><published>2010-07-18T21:59:00.000-07:00</published><updated>2015-04-15T05:42:15.413-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Find the menu list in the latest Grub Version</title><content type='html'>&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I have noted that in the latest version of the Grub the file u have to edit to customize the Grub view or to Fix Errors had changed. It is no longer exists inside menu.lst file. Now it is in the grub.cfx file in the same location.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/3596437770231723236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2010/07/find-menu-list-in-latest-grub-version.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3596437770231723236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3596437770231723236'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2010/07/find-menu-list-in-latest-grub-version.html' title='Find the menu list in the latest Grub Version'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-2483563200438102650</id><published>2010-02-15T02:22:00.000-08:00</published><updated>2015-04-15T05:42:15.403-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>How to mount a partition permanently some where in the folder structure.</title><content type='html'>&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
First check this post and come to this section&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://wdfdo1986.blogspot.com/2010/02/how-to-edit-file-etcfstab.html&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;How to edit file /etc/fstab&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You needed to add the following line to the fstab file.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
# / was on /dev/sdax during installation&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
UUID=xxxx  /media/xxxxxxxxx               xxx    relatime,errors=remount-ro a b&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
xxxx - UUID of the partition&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
x - number of the partition you needed to mount&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
xxx - file format of the partition&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
xxxxxxxxx  - Name of the Partition**&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
a - dump&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;b - pass&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: red; text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;pass&gt;&lt;/pass&gt;&lt;br /&gt;
&lt;div style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
** Name of the partition should be the same as the Real name of the partition (The name we can see at the Computer (Simultaneous to My Computer in Microsoft Windows)).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: white; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: white;&quot;&gt;An example line for this is&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;# &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;/media/MyDisk &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; was on /dev/sda8 during installation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;UUID=64839f40-b2f1-412f-ae1a-&lt;wbr&gt;&lt;/wbr&gt;c5a213ba449a /media/MyDisk  ntfs    relatime,defaults-ro 0 2&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: red; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #009900;&quot;&gt;It is recommended to have name without spaces here. Because spaces can cause troubles.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/2483563200438102650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2010/02/how-to-mount-partition-permanently-some.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2483563200438102650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/2483563200438102650'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2010/02/how-to-mount-partition-permanently-some.html' title='How to mount a partition permanently some where in the folder structure.'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-8142089811491516917</id><published>2010-02-15T02:20:00.000-08:00</published><updated>2015-04-15T05:42:15.425-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>How to overcome the problem Linux kernel image is not booting properly</title><content type='html'>&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
First check this post and come to this section&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.blogger.com/goog_591629500&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2010/02/how-to-edit-file-etcfstab.html&quot;&gt;How to edit file /etc/fstab&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is the part of the fstab file that needed in this matter.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;# / was on /dev/sda&lt;span style=&quot;color: white;&quot;&gt;x&lt;/span&gt; during installation&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;UUID=&lt;span style=&quot;color: white;&quot;&gt;xxxx &lt;/span&gt;/               ext3    relatime,errors=remount-ro&lt;span style=&quot;color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;a b&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;# swap was on /dev/sda&lt;span style=&quot;color: white;&quot;&gt;y&lt;/span&gt; during installation&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;UUID=&lt;span style=&quot;color: white;&quot;&gt;yyyy &lt;/span&gt;none            swap    sw&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;c d&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;              0       0&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
x should be the number of the partition of the &lt;span class=&quot;il&quot;&gt;ubuntu&lt;/span&gt; installed&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
y should be the number of swap&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
xxxx - UUID of &lt;span class=&quot;il&quot;&gt;Ubuntu&lt;/span&gt; partition&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
yyyy - UUID of swap&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
a - &lt;dump&gt;dump &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: lime;&quot;&gt;(0 is my recommendation)&lt;/span&gt;&lt;/dump&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
c - &lt;dump&gt;dump &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: lime;&quot;&gt;(0 is my recommendation) &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/dump&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
b - &lt;pass&gt;pass&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: lime;&quot;&gt;(1 is my recommendation)&lt;/span&gt;&lt;/pass&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
d - &lt;pass&gt;pass&lt;/pass&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;pass&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: lime;&quot;&gt;(0 is my recommendation)&lt;/span&gt;&lt;/pass&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/8142089811491516917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2010/02/how-to-overcome-problem-linux-kernel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/8142089811491516917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/8142089811491516917'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2010/02/how-to-overcome-problem-linux-kernel.html' title='How to overcome the problem Linux kernel image is not booting properly'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2894198287560045977.post-3189297360000333517</id><published>2010-02-15T02:06:00.000-08:00</published><updated>2015-04-15T05:42:15.409-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>How to edit file /etc/fstab</title><content type='html'>&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
This is how the my fstab file is looks like which is placed inside the etc folder in the Linux Folder structure.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;You can overcome some problems by editing this file.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;1.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2010/02/how-to-overcome-problem-linux-kernel.html&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; When your Linux image is not booting properly.&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;2. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;a href=&quot;http://wdfdo1986.blogspot.com/2010/02/how-to-mount-partition-permanently-some.html&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;When you wan&#39;t to mount a partition permanently some where in the folder structure&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;# /etc/fstab: static file system information.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;#&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# Use &#39;vol_id --uuid&#39; to print the universally unique identifier for a&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# device; this may be used with UUID= as a more robust way to name devices&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# that works even if disks are added and removed. See fstab(5).&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;#&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# &lt;/span&gt;&lt;file style=&quot;color: red;&quot;&gt; &lt;mount&gt;   &lt;type&gt;  &lt;options&gt;       &lt;dump&gt;  &lt;pass&gt;&lt;/pass&gt;&lt;/dump&gt;&lt;/options&gt;&lt;/type&gt;&lt;/mount&gt;&lt;/file&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;proc            /proc           proc    defaults        0       0&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# / was on /dev/sda8 during installation&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;UUID=64839f40-b2f1-412f-ae1a-&lt;wbr&gt;&lt;/wbr&gt;c5a213ba449a /               ext3    relatime,errors=remount-ro 0       1&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# /home was on /dev/sda7 during installation&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;UUID=2ab422e9-b37d-4e7e-966f-&lt;wbr&gt;&lt;/wbr&gt;6ca7d1d081cf /home               ext3    relatime,errors=remount-ro 0       2&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# /boot was on /dev/sda6 during installation&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;UUID=faaab6f9-539b-4f1a-82fc-&lt;wbr&gt;&lt;/wbr&gt;b5a18887d28d /boot               ext3    relatime,errors=remount-ro 0       3&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;# swap was on /dev/sda5 during installation&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;UUID=ab5f806d-8f4e-42b9-b67b-&lt;wbr&gt;&lt;/wbr&gt;5618e9715585 none            swap    sw              0       0&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
Now we can study a line what it contains&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;# /home was on /dev/sda7 during installation&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;UUID=2ab422e9-b37d-4e7e-966f-&lt;wbr&gt;&lt;/wbr&gt;6ca7d1d081cf /home               ext3    relatime,errors=remount-ro 0       2&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
This line contains following parts&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: white; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;# /home was on /dev/sda7 during installation&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;UUID=2ab422e9-b37d-4e7e-966f-&lt;/span&gt;&lt;wbr style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/wbr&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;6ca7d1d081cf&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;/home&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ext3&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;relatime,errors=remount-ro&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; 0       2&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
Now let me consider each one of these.&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Actually I have separate home and boot partitions.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;And when I installed linux for the second time I had to edit this file to use them as the actual home and boot partitions.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #3333ff; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Part 1&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;This says that where the partition was in at the installation. In my case the partition is in sda7. It is said by the &quot;dev/sda7&quot;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: black;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;Part &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;First of all launch the Partition Editor Software.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;You can find the UUID of any of the partitions from right click the partition and select information at the&lt;b&gt; &lt;/b&gt;&lt;b style=&quot;color: red;&quot;&gt;Partition Editor&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: white; font-family: &#39;Times New Roman&#39;;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Software&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;Part &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This part says where to mount the partition. Example is this sda7 partition has mounted as the home.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: black;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;Part &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
This says about the file system about the partition. In this example case home partition contains the ext3 file format.&lt;/div&gt;
&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;Part &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I also don&#39;t know the exact meaning of this line. But it contains&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;options&gt; &lt;dump&gt;options&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dump&amp;nbsp; pass&lt;options&gt;&lt;dump&gt;&lt;pass&gt;&lt;pass&gt;&lt;/pass&gt;&lt;/pass&gt;&lt;/dump&gt;&lt;/options&gt;&lt;/dump&gt;&lt;/options&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
options can have values of errors=remount or defaults&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
errors=remount is used only for the root partition&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But if u want u can use that option for any partition&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Next two numbers represent dump and pass&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
It can have following variations&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
0 0 for /proc and swap&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
0 1 for root&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
0 2 for others&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
You can see that last two lines is bit different because they are for swap partition and cdrom. Don&#39;t edit them if unless you really needed and u know what to do there.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: black; font-family: &#39;Courier New&#39;, Courier, monospace; text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cc0000;&quot;&gt;Most probably you will need to restart twice after editing this to make it work. Don&#39;t get afraid if it doesn&#39;t work at the first time.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)==&#39;function&#39;){jsCall();}else{setTimeout(&#39;jsCall()&#39;,500);}&quot; type=&quot;hidden&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;refHTML&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wdfdo1986.blogspot.com/feeds/3189297360000333517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wdfdo1986.blogspot.com/2010/02/how-to-edit-file-etcfstab.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3189297360000333517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2894198287560045977/posts/default/3189297360000333517'/><link rel='alternate' type='text/html' href='http://wdfdo1986.blogspot.com/2010/02/how-to-edit-file-etcfstab.html' title='How to edit file /etc/fstab'/><author><name>Danushka Fernando</name><uri>http://www.blogger.com/profile/01113071368910208393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>