http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/resources/applicationContext.xml ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/resources/applicationContext.xml b/eagle-webservice/src/main/resources/applicationContext.xml deleted file mode 100644 index 9872e5f..0000000 --- a/eagle-webservice/src/main/resources/applicationContext.xml +++ /dev/null @@ -1,43 +0,0 @@ -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to You under the Apache License, Version 2.0 - ~ (the "License"); 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 "AS IS" 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. - --> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xmlns:mvc="http://www.springframework.org/schema/mvc" - xmlns:task="http://www.springframework.org/schema/task" - xmlns:aop="http://www.springframework.org/schema/aop" - xmlns:cache="http://www.springframework.org/schema/cache" - xmlns:p="http://www.springframework.org/schema/p" - xmlns:jdbc="http://www.springframework.org/schema/jdbc" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.1.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.1.xsd - http://www.springframework.org/schema/task - http://www.springframework.org/schema/task/spring-task-3.1.xsd - http://www.springframework.org/schema/mvc - http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd - http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop-3.1.xsd - http://www.springframework.org/schema/cache - http://www.springframework.org/schema/cache/spring-cache.xsd - http://www.springframework.org/schema/jdbc - http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"> - - <context:component-scan base-package="org.apache.eagle.service.security" /> - <context:property-placeholder location="classpath:ldap.properties"/> -</beans> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/resources/eagle-scheduler.conf ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/resources/eagle-scheduler.conf b/eagle-webservice/src/main/resources/eagle-scheduler.conf deleted file mode 100644 index 74ff18b..0000000 --- a/eagle-webservice/src/main/resources/eagle-scheduler.conf +++ /dev/null @@ -1,42 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); 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 "AS IS" 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. - - -### scheduler propertise -appCommandLoaderEnabled = false -appCommandLoaderIntervalSecs = 1 -appHealthCheckIntervalSecs = 5 - -### execution platform properties -envContextConfig.env = "storm" -envContextConfig.url = "http://sandbox.hortonworks.com:8744" -envContextConfig.nimbusHost = "sandbox.hortonworks.com" -envContextConfig.nimbusThriftPort = 6627 -envContextConfig.jarFile = "/dir-to-jar/eagle-topology-0.3.0-incubating-assembly.jar" - -### default topology properties -eagleProps.mailHost = "mailHost.com" -eagleProps.mailSmtpPort = "25" -eagleProps.mailDebug = "true" -eagleProps.eagleService.host = "localhost" -eagleProps.eagleService.port = 9099 -eagleProps.eagleService.username = "admin" -eagleProps.eagleService.password = "secret" -eagleProps.dataJoinPollIntervalSec = 30 - -dynamicConfigSource.enabled = true -dynamicConfigSource.initDelayMillis = 0 -dynamicConfigSource.delayMillis = 30000 - http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/resources/eagleSecurity.xml ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/resources/eagleSecurity.xml b/eagle-webservice/src/main/resources/eagleSecurity.xml deleted file mode 100644 index 952f2e7..0000000 --- a/eagle-webservice/src/main/resources/eagleSecurity.xml +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0"?> -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to You under the Apache License, Version 2.0 - ~ (the "License"); 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 "AS IS" 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. - --> - -<beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:scr="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.1.xsd - http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security-3.1.xsd - http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> - - <scr:http auto-config="true" use-expressions="true"> - <!-- Support HTTP Basic Auth--> - <scr:http-basic entry-point-ref="unauthorisedEntryPoint"/> - <scr:intercept-url pattern="/rest/entities" method="POST" access="hasRole('ROLE_ADMIN')" /> - <scr:intercept-url pattern="/rest/entities/delete" method="POST" access="hasRole('ROLE_ADMIN')" /> - <scr:intercept-url pattern="/rest/list" method="POST" access="hasRole('ROLE_ADMIN')" /> - <scr:intercept-url pattern="/rest/status" method="GET" access="permitAll" /> - <scr:intercept-url pattern="/rest/*" access="isAuthenticated()" /> - <scr:logout logout-url="/logout" invalidate-session="true" delete-cookies="JSESSIONID" success-handler-ref="logoutSuccessHandler"/> - <scr:session-management session-fixation-protection="newSession"/> - </scr:http> - - <bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" /> - <bean id="logoutSuccessHandler" class="org.apache.eagle.service.security.auth.LogoutSuccessHandlerImpl" /> - <bean id="unauthorisedEntryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" /> - - <beans profile="default"> - <bean id="ldapUserAuthProvider" class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider"> - <constructor-arg> - <bean class="org.springframework.security.ldap.authentication.BindAuthenticator"> - <constructor-arg ref="ldapSource" /> - <property name="userSearch"> - <bean id="userSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch"> - <constructor-arg index="0" value="${ldap.user.searchBase}" /> - <constructor-arg index="1" value="${ldap.user.searchPattern}" /> - <constructor-arg index="2" ref="ldapSource" /> - </bean> - </property> - </bean> - </constructor-arg> - <constructor-arg> - <bean class="org.apache.eagle.service.security.auth.AuthoritiesPopulator"> - <constructor-arg index="0" ref="ldapSource" /> - <constructor-arg index="1" value="${ldap.user.groupSearchBase}" /> - <constructor-arg index="2" value="${acl.adminRole}" /> - <constructor-arg index="3" value="${acl.defaultRole}" /> - </bean> - </constructor-arg> - </bean> - - <scr:authentication-manager alias="authenticationManager"> - <!-- do user ldap auth --> - <scr:authentication-provider ref="ldapUserAuthProvider"></scr:authentication-provider> - </scr:authentication-manager> - - <bean id="ldapSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource"> - <constructor-arg value="${ldap.server}" /> - <property name="userDn" value="${ldap.username}" /> - <property name="password" value="${ldap.password}" /> - </bean> - </beans> - - <beans profile="sandbox,testing"> - <scr:authentication-manager alias="authenticationManager"> - <scr:authentication-provider> - <scr:user-service> - <!-- user admin has role ADMIN, user eagle has role USER, both have password "secret" --> - <scr:user name="eagle" password="$2a$10$TwALMRHpSetDaeTurg9rj.DnIdOde4fkQGBSPG3fVqtH.G5ZH8sQK" authorities="ROLE_USER" /> - <scr:user name="admin" password="$2a$10$TwALMRHpSetDaeTurg9rj.DnIdOde4fkQGBSPG3fVqtH.G5ZH8sQK" authorities="ROLE_ADMIN" /> - </scr:user-service> - <scr:password-encoder ref="passwordEncoder" /> - </scr:authentication-provider> - </scr:authentication-manager> - </beans> -</beans> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/resources/hbase-default.xml ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/resources/hbase-default.xml b/eagle-webservice/src/main/resources/hbase-default.xml deleted file mode 100644 index fe7a895..0000000 --- a/eagle-webservice/src/main/resources/hbase-default.xml +++ /dev/null @@ -1,935 +0,0 @@ -<?xml version="1.0"?> -<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> -<!-- -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); 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 "AS IS" 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. - */ ---> -<configuration> - <property> - <name>hbase.rootdir</name> - <value>file:///tmp/hbase-${user.name}/hbase</value> - <description>The directory shared by region servers and into - which HBase persists. The URL should be 'fully-qualified' - to include the filesystem scheme. For example, to specify the - HDFS directory '/hbase' where the HDFS instance's namenode is - running at namenode.example.org on port 9000, set this value to: - hdfs://namenode.example.org:9000/hbase. By default HBase writes - into /tmp. Change this configuration else all data will be lost - on machine restart. - </description> - </property> - <property> - <name>hbase.master.port</name> - <value>60000</value> - <description>The port the HBase Master should bind to.</description> - </property> - <property> - <name>hbase.cluster.distributed</name> - <value>false</value> - <description>The mode the cluster will be in. Possible values are - false for standalone mode and true for distributed mode. If - false, startup will run all HBase and ZooKeeper daemons together - in the one JVM. - </description> - </property> - <property> - <name>hbase.tmp.dir</name> - <value>/tmp/hbase-${user.name}</value> - <description>Temporary directory on the local filesystem. - Change this setting to point to a location more permanent - than '/tmp' (The '/tmp' directory is often cleared on - machine restart). - </description> - </property> - <property> - <name>hbase.master.info.port</name> - <value>60010</value> - <description>The port for the HBase Master web UI. - Set to -1 if you do not want a UI instance run. - </description> - </property> - <property> - <name>hbase.master.info.bindAddress</name> - <value>0.0.0.0</value> - <description>The bind address for the HBase Master web UI - </description> - </property> - <property> - <name>hbase.client.write.buffer</name> - <value>2097152</value> - <description>Default size of the HTable clien write buffer in bytes. - A bigger buffer takes more memory -- on both the client and server - side since server instantiates the passed write buffer to process - it -- but a larger buffer size reduces the number of RPCs made. - For an estimate of server-side memory-used, evaluate - hbase.client.write.buffer * hbase.regionserver.handler.count - </description> - </property> - <property> - <name>hbase.regionserver.port</name> - <value>60020</value> - <description>The port the HBase RegionServer binds to. - </description> - </property> - <property> - <name>hbase.regionserver.info.port</name> - <value>60030</value> - <description>The port for the HBase RegionServer web UI - Set to -1 if you do not want the RegionServer UI to run. - </description> - </property> - <property> - <name>hbase.regionserver.info.port.auto</name> - <value>false</value> - <description>Whether or not the Master or RegionServer - UI should search for a port to bind to. Enables automatic port - search if hbase.regionserver.info.port is already in use. - Useful for testing, turned off by default. - </description> - </property> - <property> - <name>hbase.regionserver.info.bindAddress</name> - <value>0.0.0.0</value> - <description>The address for the HBase RegionServer web UI - </description> - </property> - <property> - <name>hbase.regionserver.class</name> - <value>org.apache.hadoop.hbase.ipc.HRegionInterface</value> - <description>The RegionServer interface to use. - Used by the client opening proxy to remote region server. - </description> - </property> - <property> - <name>hbase.client.pause</name> - <value>1000</value> - <description>General client pause value. Used mostly as value to wait - before running a retry of a failed get, region lookup, etc.</description> - </property> - <property> - <name>hbase.client.retries.number</name> - <value>10</value> - <description>Maximum retries. Used as maximum for all retryable - operations such as fetching of the root region from root region - server, getting a cell's value, starting a row update, etc. - Default: 10. - </description> - </property> - <property> - <name>hbase.bulkload.retries.number</name> - <value>0</value> - <description>Maximum retries. This is maximum number of iterations - to atomic bulk loads are attempted in the face of splitting operations - 0 means never give up. Default: 0. - </description> - </property> - <property> - <name>hbase.client.scanner.caching</name> - <value>1</value> - <description>Number of rows that will be fetched when calling next - on a scanner if it is not served from (local, client) memory. Higher - caching values will enable faster scanners but will eat up more memory - and some calls of next may take longer and longer times when the cache is empty. - Do not set this value such that the time between invocations is greater - than the scanner timeout; i.e. hbase.regionserver.lease.period - </description> - </property> - <property> - <name>hbase.client.keyvalue.maxsize</name> - <value>10485760</value> - <description>Specifies the combined maximum allowed size of a KeyValue - instance. This is to set an upper boundary for a single entry saved in a - storage file. Since they cannot be split it helps avoiding that a region - cannot be split any further because the data is too large. It seems wise - to set this to a fraction of the maximum region size. Setting it to zero - or less disables the check. - </description> - </property> - <property> - <name>hbase.regionserver.lease.period</name> - <value>60000</value> - <description>HRegion server lease period in milliseconds. Default is - 60 seconds. Clients must report in within this period else they are - considered dead.</description> - </property> - <property> - <name>hbase.regionserver.handler.count</name> - <value>10</value> - <description>Count of RPC Listener instances spun up on RegionServers. - Same property is used by the Master for count of master handlers. - Default is 10. - </description> - </property> - <property> - <name>hbase.regionserver.msginterval</name> - <value>3000</value> - <description>Interval between messages from the RegionServer to Master - in milliseconds. - </description> - </property> - <property> - <name>hbase.regionserver.optionallogflushinterval</name> - <value>1000</value> - <description>Sync the HLog to the HDFS after this interval if it has not - accumulated enough entries to trigger a sync. Default 1 second. Units: - milliseconds. - </description> - </property> - <property> - <name>hbase.regionserver.regionSplitLimit</name> - <value>2147483647</value> - <description>Limit for the number of regions after which no more region - splitting should take place. This is not a hard limit for the number of - regions but acts as a guideline for the regionserver to stop splitting after - a certain limit. Default is set to MAX_INT; i.e. do not block splitting. - </description> - </property> - <property> - <name>hbase.regionserver.logroll.period</name> - <value>3600000</value> - <description>Period at which we will roll the commit log regardless - of how many edits it has.</description> - </property> - <property> - <name>hbase.regionserver.logroll.errors.tolerated</name> - <value>2</value> - <description>The number of consecutive WAL close errors we will allow - before triggering a server abort. A setting of 0 will cause the - region server to abort if closing the current WAL writer fails during - log rolling. Even a small value (2 or 3) will allow a region server - to ride over transient HDFS errors.</description> - </property> - <property> - <name>hbase.regionserver.hlog.reader.impl</name> - <value>org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader</value> - <description>The HLog file reader implementation.</description> - </property> - <property> - <name>hbase.regionserver.hlog.writer.impl</name> - <value>org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter</value> - <description>The HLog file writer implementation.</description> - </property> - <property> - <name>hbase.regionserver.nbreservationblocks</name> - <value>4</value> - <description>The number of resevoir blocks of memory release on - OOME so we can cleanup properly before server shutdown. - </description> - </property> - <property> - <name>hbase.zookeeper.dns.interface</name> - <value>default</value> - <description>The name of the Network Interface from which a ZooKeeper server - should report its IP address. - </description> - </property> - <property> - <name>hbase.zookeeper.dns.nameserver</name> - <value>default</value> - <description>The host name or IP address of the name server (DNS) - which a ZooKeeper server should use to determine the host name used by the - master for communication and display purposes. - </description> - </property> - <property> - <name>hbase.regionserver.dns.interface</name> - <value>default</value> - <description>The name of the Network Interface from which a region server - should report its IP address. - </description> - </property> - <property> - <name>hbase.regionserver.dns.nameserver</name> - <value>default</value> - <description>The host name or IP address of the name server (DNS) - which a region server should use to determine the host name used by the - master for communication and display purposes. - </description> - </property> - <property> - <name>hbase.master.dns.interface</name> - <value>default</value> - <description>The name of the Network Interface from which a master - should report its IP address. - </description> - </property> - <property> - <name>hbase.master.dns.nameserver</name> - <value>default</value> - <description>The host name or IP address of the name server (DNS) - which a master should use to determine the host name used - for communication and display purposes. - </description> - </property> - <property> - <name>hbase.balancer.period - </name> - <value>300000</value> - <description>Period at which the region balancer runs in the Master. - </description> - </property> - <property> - <name>hbase.regions.slop</name> - <value>0.2</value> - <description>Rebalance if any regionserver has average + (average * slop) regions. - Default is 20% slop. - </description> - </property> - <property> - <name>hbase.master.logcleaner.ttl</name> - <value>600000</value> - <description>Maximum time a HLog can stay in the .oldlogdir directory, - after which it will be cleaned by a Master thread. - </description> - </property> - <property> - <name>hbase.master.logcleaner.plugins</name> - <value>org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner</value> - <description>A comma-separated list of LogCleanerDelegate invoked by - the LogsCleaner service. These WAL/HLog cleaners are called in order, - so put the HLog cleaner that prunes the most HLog files in front. To - implement your own LogCleanerDelegate, just put it in HBase's classpath - and add the fully qualified class name here. Always add the above - default log cleaners in the list. - </description> - </property> - <property> - <name>hbase.regionserver.global.memstore.upperLimit</name> - <value>0.4</value> - <description>Maximum size of all memstores in a region server before new - updates are blocked and flushes are forced. Defaults to 40% of heap - </description> - </property> - <property> - <name>hbase.regionserver.global.memstore.lowerLimit</name> - <value>0.35</value> - <description>When memstores are being forced to flush to make room in - memory, keep flushing until we hit this mark. Defaults to 35% of heap. - This value equal to hbase.regionserver.global.memstore.upperLimit causes - the minimum possible flushing to occur when updates are blocked due to - memstore limiting. - </description> - </property> - <property> - <name>hbase.server.thread.wakefrequency</name> - <value>10000</value> - <description>Time to sleep in between searches for work (in milliseconds). - Used as sleep interval by service threads such as log roller. - </description> - </property> - <property> - <name>hbase.server.versionfile.writeattempts</name> - <value>3</value> - <description> - How many time to retry attempting to write a version file - before just aborting. Each attempt is seperated by the - hbase.server.thread.wakefrequency milliseconds. - </description> - </property> - <property> - <name>hbase.hregion.memstore.flush.size</name> - <value>134217728</value> - <description> - Memstore will be flushed to disk if size of the memstore - exceeds this number of bytes. Value is checked by a thread that runs - every hbase.server.thread.wakefrequency. - </description> - </property> - <property> - <name>hbase.hregion.preclose.flush.size</name> - <value>5242880</value> - <description> - If the memstores in a region are this size or larger when we go - to close, run a "pre-flush" to clear out memstores before we put up - the region closed flag and take the region offline. On close, - a flush is run under the close flag to empty memory. During - this time the region is offline and we are not taking on any writes. - If the memstore content is large, this flush could take a long time to - complete. The preflush is meant to clean out the bulk of the memstore - before putting up the close flag and taking the region offline so the - flush that runs under the close flag has little to do. - </description> - </property> - <property> - <name>hbase.hregion.memstore.block.multiplier</name> - <value>2</value> - <description> - Block updates if memstore has hbase.hregion.block.memstore - time hbase.hregion.flush.size bytes. Useful preventing - runaway memstore during spikes in update traffic. Without an - upper-bound, memstore fills such that when it flushes the - resultant flush files take a long time to compact or split, or - worse, we OOME. - </description> - </property> - <property> - <name>hbase.hregion.memstore.mslab.enabled</name> - <value>true</value> - <description> - Enables the MemStore-Local Allocation Buffer, - a feature which works to prevent heap fragmentation under - heavy write loads. This can reduce the frequency of stop-the-world - GC pauses on large heaps. - </description> - </property> - <property> - <name>hbase.hregion.max.filesize</name> - <value>10737418240</value> - <description> - Maximum HStoreFile size. If any one of a column families' HStoreFiles has - grown to exceed this value, the hosting HRegion is split in two. - Default: 10G. - </description> - </property> - <property> - <name>hbase.hstore.compactionThreshold</name> - <value>3</value> - <description> - If more than this number of HStoreFiles in any one HStore - (one HStoreFile is written per flush of memstore) then a compaction - is run to rewrite all HStoreFiles files as one. Larger numbers - put off compaction but when it runs, it takes longer to complete. - </description> - </property> - <property> - <name>hbase.hstore.blockingStoreFiles</name> - <value>7</value> - <description> - If more than this number of StoreFiles in any one Store - (one StoreFile is written per flush of MemStore) then updates are - blocked for this HRegion until a compaction is completed, or - until hbase.hstore.blockingWaitTime has been exceeded. - </description> - </property> - <property> - <name>hbase.hstore.blockingWaitTime</name> - <value>90000</value> - <description> - The time an HRegion will block updates for after hitting the StoreFile - limit defined by hbase.hstore.blockingStoreFiles. - After this time has elapsed, the HRegion will stop blocking updates even - if a compaction has not been completed. Default: 90 seconds. - </description> - </property> - <property> - <name>hbase.hstore.compaction.max</name> - <value>10</value> - <description>Max number of HStoreFiles to compact per 'minor' compaction. - </description> - </property> - <property> - <name>hbase.hregion.majorcompaction</name> - <value>86400000</value> - <description>The time (in miliseconds) between 'major' compactions of all - HStoreFiles in a region. Default: 1 day. - Set to 0 to disable automated major compactions. - </description> - </property> - <property> - <name>hbase.mapreduce.hfileoutputformat.blocksize</name> - <value>65536</value> - <description>The mapreduce HFileOutputFormat writes storefiles/hfiles. - This is the minimum hfile blocksize to emit. Usually in hbase, writing - hfiles, the blocksize is gotten from the table schema (HColumnDescriptor) - but in the mapreduce outputformat context, we don't have access to the - schema so get blocksize from Configuration. The smaller you make - the blocksize, the bigger your index and the less you fetch on a - random-access. Set the blocksize down if you have small cells and want - faster random-access of individual cells. - </description> - </property> - <property> - <name>hfile.block.cache.size</name> - <value>0.25</value> - <description> - Percentage of maximum heap (-Xmx setting) to allocate to block cache - used by HFile/StoreFile. Default of 0.25 means allocate 25%. - Set to 0 to disable but it's not recommended. - </description> - </property> - <property> - <name>hbase.hash.type</name> - <value>murmur</value> - <description>The hashing algorithm for use in HashFunction. Two values are - supported now: murmur (MurmurHash) and jenkins (JenkinsHash). - Used by bloom filters. - </description> - </property> - <property> - <name>hfile.block.index.cacheonwrite</name> - <value>false</value> - <description> - This allows to put non-root multi-level index blocks into the block - cache at the time the index is being written. - </description> - </property> - <property> - <name>hbase.regionserver.checksum.verify</name> - <value>false</value> - <description> - Allow hbase to do checksums rather than using hdfs checksums. This is a backwards - incompatible change. - </description> - </property> - <property> - <name>hfile.index.block.max.size</name> - <value>131072</value> - <description> - When the size of a leaf-level, intermediate-level, or root-level - index block in a multi-level block index grows to this size, the - block is written out and a new block is started. - </description> - </property> - <property> - <name>hfile.format.version</name> - <value>2</value> - <description> - The HFile format version to use for new files. Set this to 1 to test - backwards-compatibility. The default value of this option should be - consistent with FixedFileTrailer.MAX_VERSION. - </description> - </property> - <property> - <name>io.storefile.bloom.block.size</name> - <value>131072</value> - <description> - The size in bytes of a single block ("chunk") of a compound Bloom - filter. This size is approximate, because Bloom blocks can only be - inserted at data block boundaries, and the number of keys per data - block varies. - </description> - </property> - <property> - <name>io.storefile.bloom.cacheonwrite</name> - <value>false</value> - <description> - Enables cache-on-write for inline blocks of a compound Bloom filter. - </description> - </property> - <property> - <name>hbase.rs.cacheblocksonwrite</name> - <value>false</value> - <description> - Whether an HFile block should be added to the block cache when the - block is finished. - </description> - </property> - <property> - <name>hbase.rpc.engine</name> - <value>org.apache.hadoop.hbase.ipc.WritableRpcEngine</value> - <description>Implementation of org.apache.hadoop.hbase.ipc.RpcEngine to be - used for client / server RPC call marshalling. - </description> - </property> - - <!-- The following properties configure authentication information for - HBase processes when using Kerberos security. There are no default - values, included here for documentation purposes --> - <property> - <name>hbase.master.keytab.file</name> - <value></value> - <description>Full path to the kerberos keytab file to use for logging in - the configured HMaster server principal. - </description> - </property> - <property> - <name>hbase.master.kerberos.principal</name> - <value></value> - <description>Ex. "hbase/[email protected]". The kerberos principal name - that should be used to run the HMaster process. The principal name should - be in the form: user/hostname@DOMAIN. If "_HOST" is used as the hostname - portion, it will be replaced with the actual hostname of the running - instance. - </description> - </property> - <property> - <name>hbase.regionserver.keytab.file</name> - <value></value> - <description>Full path to the kerberos keytab file to use for logging in - the configured HRegionServer server principal. - </description> - </property> - <property> - <name>hbase.regionserver.kerberos.principal</name> - <value></value> - <description>Ex. "hbase/[email protected]". The kerberos principal name - that should be used to run the HRegionServer process. The principal name - should be in the form: user/hostname@DOMAIN. If "_HOST" is used as the - hostname portion, it will be replaced with the actual hostname of the - running instance. An entry for this principal must exist in the file - specified in hbase.regionserver.keytab.file - </description> - </property> - - <!-- Additional configuration specific to HBase security --> - <property> - <name>hadoop.policy.file</name> - <value>hbase-policy.xml</value> - <description>The policy configuration file used by RPC servers to make - authorization decisions on client requests. Only used when HBase - security is enabled. - </description> - </property> - <property> - <name>hbase.superuser</name> - <value></value> - <description>List of users or groups (comma-separated), who are allowed - full privileges, regardless of stored ACLs, across the cluster. - Only used when HBase security is enabled. - </description> - </property> - <property> - <name>hbase.auth.key.update.interval</name> - <value>86400000</value> - <description>The update interval for master key for authentication tokens - in servers in milliseconds. Only used when HBase security is enabled. - </description> - </property> - <property> - <name>hbase.auth.token.max.lifetime</name> - <value>604800000</value> - <description>The maximum lifetime in milliseconds after which an - authentication token expires. Only used when HBase security is enabled. - </description> - </property> - - <property> - <name>zookeeper.session.timeout</name> - <value>180000</value> - <description>ZooKeeper session timeout. - HBase passes this to the zk quorum as suggested maximum time for a - session (This setting becomes zookeeper's 'maxSessionTimeout'). See - http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions - "The client sends a requested timeout, the server responds with the - timeout that it can give the client. " In milliseconds. - </description> - </property> - <property> - <name>zookeeper.znode.parent</name> - <value>/hbase-unsecure</value> - <description>Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper - files that are configured with a relative path will go under this node. - By default, all of HBase's ZooKeeper file path are configured with a - relative path, so they will all go under this directory unless changed. - </description> - </property> - <property> - <name>zookeeper.znode.rootserver</name> - <value>root-region-server</value> - <description>Path to ZNode holding root region location. This is written by - the master and read by clients and region servers. If a relative path is - given, the parent folder will be ${zookeeper.znode.parent}. By default, - this means the root location is stored at /hbase/root-region-server. - </description> - </property> - - <property> - <name>zookeeper.znode.acl.parent</name> - <value>acl</value> - <description>Root ZNode for access control lists.</description> - </property> - - <property> - <name>hbase.coprocessor.region.classes</name> - <value></value> - <description>A comma-separated list of Coprocessors that are loaded by - default on all tables. For any override coprocessor method, these classes - will be called in order. After implementing your own Coprocessor, just put - it in HBase's classpath and add the fully qualified class name here. - A coprocessor can also be loaded on demand by setting HTableDescriptor. - </description> - </property> - - <property> - <name>hbase.coprocessor.master.classes</name> - <value></value> - <description>A comma-separated list of - org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that are - loaded by default on the active HMaster process. For any implemented - coprocessor methods, the listed classes will be called in order. After - implementing your own MasterObserver, just put it in HBase's classpath - and add the fully qualified class name here. - </description> - </property> - - <!-- - The following three properties are used together to create the list of - host:peer_port:leader_port quorum servers for ZooKeeper. - --> - <property> - <name>hbase.zookeeper.quorum</name> - <value>localhost</value> - <description>Comma separated list of servers in the ZooKeeper Quorum. - For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com". - By default this is set to localhost for local and pseudo-distributed modes - of operation. For a fully-distributed setup, this should be set to a full - list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh - this is the list of servers which we will start/stop ZooKeeper on. - </description> - </property> - <property> - <name>hbase.zookeeper.peerport</name> - <value>2888</value> - <description>Port used by ZooKeeper peers to talk to each other. - See http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper - for more information. - </description> - </property> - <property> - <name>hbase.zookeeper.leaderport</name> - <value>3888</value> - <description>Port used by ZooKeeper for leader election. - See http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper - for more information. - </description> - </property> - <property> - <name>hbase.zookeeper.useMulti</name> - <value>true</value> - <description>Instructs HBase to make use of ZooKeeper's multi-update functionality. - This allows certain ZooKeeper operations to complete more quickly and prevents some issues - with rare ZooKeeper failure scenarios (see the release note of HBASE-6710 for an example). - IMPORTANT: only set this to true if all ZooKeeper servers in the cluster are on version 3.4+ - and will not be downgraded. ZooKeeper versions before 3.4 do not support multi-update and will - not fail gracefully if multi-update is invoked (see ZOOKEEPER-1495). - NOTE: this and future versions of HBase are only supported to work with - versions of ZooKeeper with multi support (CDH4+), so it is safe to use ZK.multi. - </description> - </property> - <!-- End of properties used to generate ZooKeeper host:port quorum list. --> - - <!-- - Beginning of properties that are directly mapped from ZooKeeper's zoo.cfg. - All properties with an "hbase.zookeeper.property." prefix are converted for - ZooKeeper's configuration. Hence, if you want to add an option from zoo.cfg, - e.g. "initLimit=10" you would append the following to your configuration: - <property> - <name>hbase.zookeeper.property.initLimit</name> - <value>10</value> - </property> - --> - <property> - <name>hbase.zookeeper.property.initLimit</name> - <value>10</value> - <description>Property from ZooKeeper's config zoo.cfg. - The number of ticks that the initial synchronization phase can take. - </description> - </property> - <property> - <name>hbase.zookeeper.property.syncLimit</name> - <value>5</value> - <description>Property from ZooKeeper's config zoo.cfg. - The number of ticks that can pass between sending a request and getting an - acknowledgment. - </description> - </property> - <property> - <name>hbase.zookeeper.property.dataDir</name> - <value>${hbase.tmp.dir}/zookeeper</value> - <description>Property from ZooKeeper's config zoo.cfg. - The directory where the snapshot is stored. - </description> - </property> - <property> - <name>hbase.zookeeper.property.clientPort</name> - <value>2181</value> - <description>Property from ZooKeeper's config zoo.cfg. - The port at which the clients will connect. - </description> - </property> - <property> - <name>hbase.zookeeper.property.maxClientCnxns</name> - <value>300</value> - <description>Property from ZooKeeper's config zoo.cfg. - Limit on number of concurrent connections (at the socket level) that a - single client, identified by IP address, may make to a single member of - the ZooKeeper ensemble. Set high to avoid zk connection issues running - standalone and pseudo-distributed. - </description> - </property> - <!-- End of properties that are directly mapped from ZooKeeper's zoo.cfg --> - <property> - <name>hbase.rest.port</name> - <value>8080</value> - <description>The port for the HBase REST server.</description> - </property> - <property> - <name>hbase.rest.readonly</name> - <value>false</value> - <description> - Defines the mode the REST server will be started in. Possible values are: - false: All HTTP methods are permitted - GET/PUT/POST/DELETE. - true: Only the GET method is permitted. - </description> - </property> - - <property skipInDoc="true"> - <name>hbase.defaults.for.version</name> - <value>0.94.2-cdh4.2.1</value> - <description> - This defaults file was compiled for version 0.94.2-cdh4.2.1. This variable is used - to make sure that a user doesn't have an old version of hbase-default.xml on the - classpath. - </description> - </property> - <property> - <name>hbase.defaults.for.version.skip</name> - <value>true</value> - <description> - Set to true to skip the 'hbase.defaults.for.version' check. - Setting this to true can be useful in contexts other than - the other side of a maven generation; i.e. running in an - ide. You'll want to set this boolean to true to avoid - seeing the RuntimException complaint: "hbase-default.xml file - seems to be for and old version of HBase (0.94.2-cdh4.2.1), this - version is X.X.X-SNAPSHOT" - </description> - </property> - <property> - <name>hbase.coprocessor.abortonerror</name> - <value>false</value> - <description> - Set to true to cause the hosting server (master or regionserver) to - abort if a coprocessor throws a Throwable object that is not IOException or - a subclass of IOException. Setting it to true might be useful in development - environments where one wants to terminate the server as soon as possible to - simplify coprocessor failure analysis. - </description> - </property> - <property> - <name>hbase.online.schema.update.enable</name> - <value>false</value> - <description> - Set true to enable online schema changes. This is an experimental feature. - There are known issues modifying table schemas at the same time a region - split is happening so your table needs to be quiescent or else you have to - be running with splits disabled. - </description> - </property> - <property> - <name>dfs.support.append</name> - <value>true</value> - <description>Does HDFS allow appends to files? - This is an hdfs config. set in here so the hdfs client will do append support. - You must ensure that this config. is true serverside too when running hbase - (You will have to restart your cluster after setting it). - </description> - </property> - <property> - <name>hbase.thrift.minWorkerThreads</name> - <value>16</value> - <description> - The "core size" of the thread pool. New threads are created on every - connection until this many threads are created. - </description> - </property> - <property> - <name>hbase.thrift.maxWorkerThreads</name> - <value>1000</value> - <description> - The maximum size of the thread pool. When the pending request queue - overflows, new threads are created until their number reaches this number. - After that, the server starts dropping connections. - </description> - </property> - <property> - <name>hbase.thrift.maxQueuedRequests</name> - <value>1000</value> - <description> - The maximum number of pending Thrift connections waiting in the queue. If - there are no idle threads in the pool, the server queues requests. Only - when the queue overflows, new threads are added, up to - hbase.thrift.maxQueuedRequests threads. - </description> - </property> - <property> - <name>hbase.offheapcache.percentage</name> - <value>0</value> - <description> - The amount of off heap space to be allocated towards the experimental - off heap cache. If you desire the cache to be disabled, simply set this - value to 0. - </description> - </property> - <property> - <name>hbase.data.umask.enable</name> - <value>false</value> - <description>Enable, if true, that file permissions should be assigned - to the files written by the regionserver - </description> - </property> - <property> - <name>hbase.data.umask</name> - <value>000</value> - <description>File permissions that should be used to write data - files when hbase.data.umask.enable is true - </description> - </property> - - <property> - <name>hbase.metrics.showTableName</name> - <value>true</value> - <description>Whether to include the prefix "tbl.tablename" in per-column family metrics. - If true, for each metric M, per-cf metrics will be reported for tbl.T.cf.CF.M, if false, - per-cf metrics will be aggregated by column-family across tables, and reported for cf.CF.M. - In both cases, the aggregated metric M across tables and cfs will be reported. - </description> - </property> - <property> - <name>hbase.table.archive.directory</name> - <value>.archive</value> - <description>Per-table directory name under which to backup files for a - table. Files are moved to the same directories as they would be under the - table directory, but instead are just one level lower (under - table/.archive/... rather than table/...). Currently only applies to HFiles.</description> - </property> - <property> - <name>hbase.master.hfilecleaner.plugins</name> - <value>org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner</value> - <description>A comma-separated list of HFileCleanerDelegate invoked by - the HFileCleaner service. These HFiles cleaners are called in order, - so put the cleaner that prunes the most files in front. To - implement your own HFileCleanerDelegate, just put it in HBase's classpath - and add the fully qualified class name here. Always add the above - default log cleaners in the list as they will be overwritten in hbase-site.xml. - </description> - </property> - <property> - <name>hbase.rest.threads.max</name> - <value>100</value> - <description> - The maximum number of threads of the REST server thread pool. - Threads in the pool are reused to process REST requests. This - controls the maximum number of requests processed concurrently. - It may help to control the memory used by the REST server to - avoid OOM issues. If the thread pool is full, incoming requests - will be queued up and wait for some free threads. The default - is 100. - </description> - </property> - <property> - <name>hbase.rest.threads.min</name> - <value>2</value> - <description> - The minimum number of threads of the REST server thread pool. - The thread pool always has at least these number of threads so - the REST server is ready to serve incoming requests. The default - is 2. - </description> - </property> -</configuration> http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/resources/ldap.properties ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/resources/ldap.properties b/eagle-webservice/src/main/resources/ldap.properties deleted file mode 100644 index fa28ad3..0000000 --- a/eagle-webservice/src/main/resources/ldap.properties +++ /dev/null @@ -1,23 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); 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 "AS IS" 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. - -ldap.server=ldap://localhost:10389 -ldap.username=uid=admin,ou=system -ldap.password=secret -ldap.user.searchBase=ou=Users,o=mojo -ldap.user.searchPattern=(uid={0}) -ldap.user.groupSearchBase=ou=groups,o=mojo -acl.adminRole=ADMIN -acl.defaultRole=POLICYVIEWER \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/resources/log4j.properties b/eagle-webservice/src/main/resources/log4j.properties deleted file mode 100644 index 9ccd8da..0000000 --- a/eagle-webservice/src/main/resources/log4j.properties +++ /dev/null @@ -1,26 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); 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 "AS IS" 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. - -log4j.rootLogger=INFO, stdout - -# standard output -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p [%t] %c{2}[%L]: %m%n - -# set log level as INFO for debug-log dumping components -log4j.category.org.springframework=INFO -log4j.category.org.apache.torque=INFO -log4j.category.org.commons=INFO \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/webapp/META-INF/MANIFEST.MF ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/META-INF/MANIFEST.MF b/eagle-webservice/src/main/webapp/META-INF/MANIFEST.MF deleted file mode 100644 index 254272e..0000000 --- a/eagle-webservice/src/main/webapp/META-INF/MANIFEST.MF +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Class-Path: - http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/webapp/META-INF/context.xml ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/META-INF/context.xml b/eagle-webservice/src/main/webapp/META-INF/context.xml deleted file mode 100644 index 9b0b5d0..0000000 --- a/eagle-webservice/src/main/webapp/META-INF/context.xml +++ /dev/null @@ -1,3 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Context path="/"> -</Context> http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/webapp/WEB-INF/web.xml ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/WEB-INF/web.xml b/eagle-webservice/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index e68a22e..0000000 --- a/eagle-webservice/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,115 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to You under the Apache License, Version 2.0 - ~ (the "License"); 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 "AS IS" 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. - --> - -<!-- This web.xml file is not required when using Servlet 3.0 container, - see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html --> -<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> - <welcome-file-list> - <welcome-file>index.html</welcome-file> - </welcome-file-list> - <servlet> - <servlet-name>Jersey Web Application</servlet-name> - <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> - <init-param> - <param-name>com.sun.jersey.config.property.packages</param-name> - <param-value>org.apache.eagle;org.codehaus.jackson.jaxrs</param-value> - </init-param> - <!--init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> - <param-value>true</param-value> </init-param --> - <!-- probably the following parameter should not be in production --> - <!-- init-param> <param-name>com.sun.jersey.config.feature.Trace</param-name> - <param-value>true</param-value> </init-param --> - <init-param> - <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name> - <param-value>com.sun.jersey.api.container.filter.GZIPContentEncodingFilter;com.sun.jersey.api.container.filter.PostReplaceFilter</param-value> - </init-param> - <init-param> - <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name> - <param-value>com.sun.jersey.api.container.filter.GZIPContentEncodingFilter</param-value> - </init-param> - <load-on-startup>1</load-on-startup> - </servlet> - <servlet-mapping> - <servlet-name>Jersey Web Application</servlet-name> - <url-pattern>/rest/*</url-pattern> - </servlet-mapping> - <filter> - <filter-name>CorsFilter</filter-name> - <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> - <init-param> - <param-name>cors.allowed.origins</param-name> - <param-value>*</param-value> - </init-param> - <init-param> - <param-name>cors.allowed.headers</param-name> - <param-value>Authorization,Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With, Accept</param-value> - </init-param> - <init-param> - <param-name>cors.allowed.methods</param-name> - <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value> - </init-param> - <init-param> - <param-name>cors.support.credentials</param-name> - <param-value>true</param-value> - </init-param> - </filter> - <filter-mapping> - <filter-name>CorsFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - <!-- spring security --> - <context-param> - <param-name>contextConfigLocation</param-name> - <param-value> - classpath:/applicationContext.xml - classpath:/eagleSecurity.xml - </param-value> - </context-param> -<!-- <context-param> - <param-name>spring.profiles.active</param-name> - <param-value>sandbox</param-value> - </context-param>--> - <context-param> - <param-name>contextInitializerClasses</param-name> - <param-value>org.apache.eagle.service.security.profile.EagleServiceProfileInitializer</param-value> - </context-param> - <filter> - <filter-name>springSecurityFilterChain</filter-name> - <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> - </filter> - <filter-mapping> - <filter-name>springSecurityFilterChain</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - <listener> - <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> - </listener> - - <!-- AKKA System Setup --> - <listener> - <listener-class>org.apache.eagle.service.security.profile.ApplicationSchedulerListener</listener-class> - </listener> - - <session-config> - <!-- in minutes --> - <session-timeout>60</session-timeout> - </session-config> -</web-app> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/webapp/_app/index.html ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/_app/index.html b/eagle-webservice/src/main/webapp/_app/index.html deleted file mode 100644 index 7cd3e25..0000000 --- a/eagle-webservice/src/main/webapp/_app/index.html +++ /dev/null @@ -1,281 +0,0 @@ -<!DOCTYPE html> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); 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 "AS IS" 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. - --> - -<html ng-app="eagleApp" ng-controller="MainCtrl"> - <head> - <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <meta charset="UTF-8"> - <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'> - <link rel="shortcut icon" href="public/images/favicon.png"> - - <title>Eagle</title> - <link rel="shortcut icon" type="image/png" href="public/images/favicon.png"> - - <!-- ref:css public/css/styles.min.css --> - <link href="public/css/main.css" rel="stylesheet" type="text/css" media="screen"> - <link href="public/css/animation.css" rel="stylesheet" type="text/css" media="screen"> - <link href="../node_modules/bootstrap/dist/css/bootstrap.css" rel="stylesheet" type="text/css" media="screen"> - <link href="../node_modules/zombiej-bootstrap-components/bootstrap-components/css/bootstrap-components.css" rel="stylesheet" type="text/css" media="screen"> - <link href="../node_modules/zombiej-nvd3/build/nv.d3.css" rel="stylesheet" type="text/css" /> - <link href="../node_modules/font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css" /> - <link href="../node_modules/admin-lte/dist/css/AdminLTE.css" rel="stylesheet" type="text/css" /> - <link href="../node_modules/admin-lte/dist/css/skins/skin-blue.css" rel="stylesheet" type="text/css" /> - <!-- endref --> - </head> - <body class="skin-blue sidebar-mini" ng-class="{'no-sidebar' : PageConfig.hideSidebar}"> - <!-- Site wrapper --> - <div class="wrapper"> - <header class="main-header"> - <a href="#/" class="logo"> - <span class="logo-mini"><img src="public/images/favicon_white.png" /></span> - <span class="logo-lg">Apache Eagle</span> - </a> - <!-- Header Navbar: style can be found in header.less --> - <nav class="navbar navbar-static-top" role="navigation"> - <!-- Sidebar toggle button--> - <a ng-hide="PageConfig.hideSidebar" class="sidebar-toggle" data-toggle="offcanvas" role="button"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </a> - - <div class="navbar-custom-menu"> - <ul class="nav navbar-nav"> - <!-- Admin error list --> - <li class="dropdown" ng-show="ServiceError.list.length"> - <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> - <i class="fa fa-exclamation-triangle" ng-class="{blink: ServiceError.hasUnread}"></i> - </a> - <ul class="dropdown-menu"> - <li ng-repeat="error in ServiceError.list"> - <a ng-click="ServiceError.showError(error);"> - <span class="fa" ng-class="{'fa-envelope': !error._read, 'fa-check': error._read}"></span> - {{error.title}} - </a> - </li> - <li role="separator" class="divider"></li> - <li> - <a ng-click="ServiceError.clearAll();"> - <span class="fa fa-trash"></span> - Clear All - </a> - </li> - </ul> - </li> - - <!-- Site --> - <li class="dropdown" ng-show="!PageConfig.hideSite && !PageConfig.lockSite"> - <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> - <i class="fa fa-server"></i> - {{Site.current().tags.site}} - <i class="fa fa-caret-down"></i> - </a> - <ul class="dropdown-menu"> - <li ng-repeat="_site in Site.list" ng-if="_site.enabled"> - <a ng-click="Site.current(_site);"> - <span class="fa fa-database"></span> {{_site.tags.site}} - </a> - </li> - </ul> - </li> - <li class="dropdown" ng-show="PageConfig.lockSite"> - <a> - <i class="fa fa-server"></i> - {{Site.current().tags.site}} - </a> - </li> - - <!-- User --> - <li class="dropdown user user-menu" ng-hide="PageConfig.hideUser"> - <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> - <i class="fa fa-user"></i> - {{Auth.userProfile.username}} - </a> - <ul class="dropdown-menu"> - <!-- User image --> - <li class="user-header"> - <span class="img-circle"> - <span class="fa fa-user" alt="User Image"></span> - </span> - <p> - {{Auth.userProfile.username}} - <small> - <span ng-repeat="role in Auth.userProfile.authorities">{{role.authority}} </span> - </small> - </p> - </li> - <!-- Menu Footer--> - <li class="user-footer"> - <div class="pull-left" ng-if="Auth.isRole('ROLE_ADMIN')"> - <a href="#/config/site" class="btn btn-default btn-flat">Management</a> - </div> - <div class="pull-right"> - <a ng-click="logout();" class="btn btn-default btn-flat">Sign out</a> - </div> - </li> - </ul> - </li> - </ul> - </div> - - <!-- Applications --> - <div ng-hide="PageConfig.hideApplication"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#moduleMenu"> - <span class="sr-only">Toggle navigation</span> - <span class="fa fa-map"></span> - </button> - <div class="collapse navbar-collapse" id="moduleMenu"> - <ul class="nav navbar-nav"> - <li ng-repeat="_grp in Site.current().applicationGroupList" ng-if="_grp.enabledList.length" - class="dropdown" ng-class="{active: Application.current().group === _grp.name}"> - <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> - {{_grp.name}} - </a> - <ul class="dropdown-menu"> - <li ng-repeat="_app in _grp.enabledList"> - <a ng-click="Application.current(_app);"> - <span class="fa fa-cubes"></span> {{_app.displayName}} - </a> - </li> - </ul> - </li> - </ul> - </div> - </div> - </nav> - </header> - - <!-- =============================================== --> - <!-- Left side column. contains the side bar --> - <aside class="main-sidebar" ng-hide="PageConfig.hideSidebar"> - <!-- side bar: style can be found in sidebar.less --> - <section class="sidebar"> - <ul class="sidebar-menu"> - <li class="header"> - {{Application.current().group || 'Application'}} > - {{Application.current().displayName || 'Features'}} - </li> - <li ng-repeat="page in PageConfig.navConfig.pageList track by $index" ng-class="getNavClass(page)" ng-show="getNavVisible(page)"> - <a href="{{page.url}}"> - <i class="fa fa-{{page.icon}}"></i> <span>{{page.title}}</span> - </a> - </li> - </ul> - </section> - <!-- /.sidebar --> - </aside> - - <!-- =============================================== --> - <!-- Right side column. Contains the navbar and content of the page --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header" ng-hide="PageConfig.hideSidebar"> - <h1> - <span class="pageTitle">{{PageConfig.pageTitle}}</span> - <small class="pageSubTitle">{{PageConfig.pageSubTitle}}</small> - </h1> - - - <ol class="breadcrumb"> - <li ng-repeat="navPath in PageConfig.navPath"> - <a ng-href="#{{navPath.path}}"> - <span class="fa fa-home" ng-if="$first"></span> - {{navPath.title || navPath.path}} - </a> - </li> - </ol> - </section> - - <!-- Main content --> - <section class="content"> - <div id="content"> - <div ui-view></div> - </div> - </section><!-- /.content --> - </div><!-- /.content-wrapper --> - - <footer class="main-footer"> - <div class="pull-right hidden-xs"> - <b>License</b> - <a href="http://www.apache.org/licenses/LICENSE-2.0" class="text-muted">Apache-2.0</a> - </div> - <strong> - Apache Eagle - <a target="_blank" href="https://eagle.incubator.apache.org/">Home</a> / - <a target="_blank" href="https://eagle.incubator.apache.org/docs/community.html">Community</a> / - <a target="_blank" href="https://cwiki.apache.org/confluence/display/EAG/FAQ">FAQ</a> - </strong> - </footer> - </div><!-- ./wrapper --> - - <!-- ref:js public/js/doc.js --> - <script src="../node_modules/jquery/dist/jquery.js"></script> - <script src="../node_modules/jquery-slimscroll/jquery.slimscroll.min.js"></script> - <script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script> - <script src="../node_modules/zombiej-bootstrap-components/bootstrap-components/js/bootstrap-components.min.js"></script> - <script src="../node_modules/moment/min/moment-with-locales.min.js"></script> - <script src="../node_modules/moment-timezone/builds/moment-timezone-with-data.min.js"></script> - <script src="../node_modules/admin-lte/dist/js/app.min.js"></script> - <script src="../node_modules/angular/angular.js"></script> - <script src="../node_modules/angular-resource/angular-resource.js"></script> - <script src="../node_modules/angular-route/angular-route.js"></script> - <script src="../node_modules/angular-animate/angular-animate.js"></script> - <script src="../node_modules/angular-ui-bootstrap/dist/ui-bootstrap-tpls.js"></script> - <script src="../node_modules/angular-ui-router/release/angular-ui-router.js"></script> - <script src="../node_modules/d3/d3.js"></script> - <script src="../node_modules/zombiej-nvd3/build/nv.d3.js"></script> - - <!-- Application --> - <script src="public/js/app.js" type="text/javascript" charset="utf-8"></script> - - <!-- Service --> - <script src="public/js/srv/main.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/srv/applicationSrv.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/srv/authorizationSrv.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/srv/entitiesSrv.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/srv/siteSrv.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/srv/pageSrv.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/srv/wrapStateSrv.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/srv/uiSrv.js" type="text/javascript" charset="utf-8"></script> - - <!-- Misc --> - <script src="public/js/app.ui.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/app.time.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/app.config.js" type="text/javascript" charset="utf-8"></script> - - <script src="public/js/common.js" type="text/javascript" charset="utf-8"></script> - - <!-- Components --> - <script src="public/js/components/main.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/components/sortTable.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/components/tabs.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/components/file.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/components/charts/line3d.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/components/nvd3.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/components/sortable.js" type="text/javascript" charset="utf-8"></script> - - <!-- Controllers --> - <script src="public/js/ctrl/main.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/ctrl/authController.js" type="text/javascript" charset="utf-8"></script> - <script src="public/js/ctrl/configurationController.js" type="text/javascript" charset="utf-8"></script> - <!-- endref --> - </body> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/webapp/_app/partials/config/application.html ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/_app/partials/config/application.html b/eagle-webservice/src/main/webapp/_app/partials/config/application.html deleted file mode 100644 index 0bf194c..0000000 --- a/eagle-webservice/src/main/webapp/_app/partials/config/application.html +++ /dev/null @@ -1,124 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); 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 "AS IS" 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. - --> - -<div class="box box-info"> - <div class="box-header with-border"> - <h3 class="box-title"> - <span class="fa fa-cogs"></span> - Configuration - <small class="text-danger" ng-show="changed"> - <span class="label label-warning label-sm">Unsaved</span> - </small> - </h3> - </div><!-- /.box-header --> - - <div class="box-body"> - <div class="row"> - <div class="col-md-3"> - <ul class="nav nav-pills nav-stacked"> - <li class="disabled"><a>Application</a></li> - <li role="presentation" ng-repeat="_application in Application.list track by $index" ng-class="{active: application === _application}"> - <a ng-click="setApplication(_application)"> - <span class="fa fa-server"></span> - {{_application.tags.application}} - <span ng-if="_application.alias">({{_application.alias}})</span> - </a> - </li> - - <li> - <a class="text-light-blue" ng-click="newApplication()" ng-disabled="_pageLock"> - <span class="fa fa-plus-square"></span> - New Application - </a> - </li> - </ul> - </div> - - <div class="col-md-9"> - <a class="pull-right btn btn-danger btn-xs" ng-click="deleteApplication(application)" ng-disabled="_pageLock"> - <span class="fa fa-trash-o"></span> - Delete Application - </a> - - <!-- Title --> - <h3 class="guideline"> - Application - <small>{{application.tags.application}}</small> - </h3> - <hr/> - - <!-- Config --> - <div class="form-group"> - <label for="displayName">Display Name</label> - <input type="text" class="form-control" id="displayName" placeholder="(Optional) Display name." ng-model="applications[application.tags.application].alias"> - </div> - <div class="form-group"> - <label for="applicationGroup">Group</label> - <input type="text" class="form-control" id="applicationGroup" placeholder="(Optional) Group name" ng-model="applications[application.tags.application].groupName"> - </div> - <div class="form-group"> - <label for="applicationDescription">Description</label> - <textarea id="applicationDescription" class="form-control" placeholder="(Optional) Application description" rows="2" ng-model="applications[application.tags.application].description"></textarea> - </div> - <div class="form-group"> - <label for="applicationConfiguration">Configuration</label> - <span class="text-danger">{{configCheck(applications[application.tags.application].config)}}</span> - <textarea id="applicationConfiguration" class="form-control" placeholder="Application configuration. Feature can read this " rows="5" ng-model="applications[application.tags.application].config"></textarea> - </div> - - <!-- Feature --> - <label>* Feature</label> - <div class="row"> - <div class="col-sm-6"> - <h1 class="text-muted text-center" ng-show="applications[application.tags.application].features.length === 0">No feature in using</h1> - <ul class="products-list product-list-in-box fixed-height" ng-show="applications[application.tags.application].features.length !== 0"> - <li class="item" ng-repeat="feature in applications[application.tags.application].features track by $index" ng-class="{active: _feature === feature}"> - <div class="product-operation"> - <a class="fa fa-chevron-up" ng-click="moveFeature(feature, applications[application.tags.application].features, -1)"></a> - <a class="fa fa-chevron-down" ng-click="moveFeature(feature, applications[application.tags.application].features, 1)"></a> - </div> - <div class="product-info"> - <a class="fa fa-times pull-right" ng-click="removeFeature(feature, applications[application.tags.application])"></a> - <span class="product-title">{{feature}}</span> - <span class="product-description">{{Application.featureList.set[feature].description}}</span> - </div> - </li> - </ul> - </div> - <div class="col-sm-6"> - <ul class="products-list product-list-in-box fixed-height"> - <li class="item" ng-repeat="feature in applications[application.tags.application].optionalFeatures track by $index"> - <button class="btn btn-lg btn-primary pull-left" ng-click="addFeature(feature, applications[application.tags.application])" ng-disabled="_pageLock"> - <span class="fa fa-star-o"></span> - </button> - <div class="product-info"> - <span class="product-title">{{feature}}</span> - <span class="product-description">{{Application.featureList.set[feature].description}}</span> - </div> - </li> - </ul> - </div> - </div> - </div> - </div> - </div><!-- /.box-body --> - - <div class="box-footer clearfix"> - <button class="btn btn-primary" ng-click="saveAll()" ng-disabled="_pageLock">Save All</button> - </div> -</div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/webapp/_app/partials/config/feature.html ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/_app/partials/config/feature.html b/eagle-webservice/src/main/webapp/_app/partials/config/feature.html deleted file mode 100644 index 945d90b..0000000 --- a/eagle-webservice/src/main/webapp/_app/partials/config/feature.html +++ /dev/null @@ -1,85 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); 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 "AS IS" 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. - --> - -<div class="box box-info"> - <div class="box-header with-border"> - <h3 class="box-title"> - <span class="fa fa-cogs"></span> - Configuration - <small class="text-danger" ng-show="changed"> - <span class="label label-warning label-sm">Unsaved</span> - </small> - </h3> - </div><!-- /.box-header --> - - <div class="box-body"> - <div class="row"> - <div class="col-md-3"> - <ul class="nav nav-pills nav-stacked"> - <li class="disabled"> - <a>Feature</a> - </li> - <li role="presentation" ng-repeat="_feature in Application.featureList" ng-class="{active: feature === _feature}"> - <a ng-click="setFeature(_feature)"> - <span class="fa fa-leaf" ng-class="{'text-danger': _feature._loaded === false}" uib-tooltip="Module load failed!" tooltip-enable="_feature._loaded === false"></span> - {{_feature.tags.feature}} - </a> - </li> - <li> - <a class="text-light-blue" ng-click="newFeature()" ng-disabled="_pageLock"> - <span class="fa fa-plus-square"></span> - New Feature - </a> - </li> - </ul> - </div> - - <div class="col-md-9"> - <a class="pull-right btn btn-danger btn-xs" ng-click="deleteFeature(feature)" ng-disabled="_pageLock"> - <span class="fa fa-trash-o"></span> - Delete Feature - </a> - - <h3 class="guideline"> - <span class="fa fa-exclamation-triangle text-danger" uib-tooltip="Module load failed!" ng-show="feature._loaded === false"></span> - {{feature.tags.feature}} - </h3> - <hr/> - - <p class="text text-muted"> - Will load the start up file <code>controller.js</code> from <code>public/feature/{{feature.tags.feature}}</code>. - If you are developing customized feature, please reference provided feature. - </p> - - <!-- Config --> - <div class="form-group"> - <label for="featureVersion">Version</label> - <input id="featureVersion" type="text" class="form-control" placeholder="(Optional) Feature version." ng-model="features[feature.tags.feature].version"> - </div> - <div class="form-group"> - <label for="featureDescription">Description</label> - <textarea id="featureDescription" class="form-control" placeholder="(Optional) Feature description." rows="10" ng-model="features[feature.tags.feature].description"></textarea> - </div> - </div> - </div> - </div><!-- /.box-body --> - - <div class="box-footer clearfix"> - <button class="btn btn-primary" ng-click="saveAll()" ng-disabled="_pageLock">Save All</button> - </div> -</div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/8b3729f9/eagle-webservice/src/main/webapp/_app/partials/config/site.html ---------------------------------------------------------------------- diff --git a/eagle-webservice/src/main/webapp/_app/partials/config/site.html b/eagle-webservice/src/main/webapp/_app/partials/config/site.html deleted file mode 100644 index f7d43eb..0000000 --- a/eagle-webservice/src/main/webapp/_app/partials/config/site.html +++ /dev/null @@ -1,115 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); 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 "AS IS" 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. - --> - -<div class="box box-info"> - <div class="box-header with-border"> - <h3 class="box-title"> - <span class="fa fa-cogs"></span> - Configuration - <small class="text-danger" ng-show="changed"> - <span class="label label-warning label-sm">Unsaved</span> - </small> - </h3> - </div><!-- /.box-header --> - - <div class="box-body"> - <div class="row"> - <div class="col-md-3"> - <ul class="nav nav-pills nav-stacked"> - <li class="disabled"><a>Site</a></li> - <li role="presentation" ng-repeat="_site in Site.list track by $index" ng-class="{active: site === _site}"> - <a ng-click="setSite(_site)"> - <span class="fa fa-server"></span> - {{_site.tags.site}} - </a> - </li> - - <li> - <a class="text-light-blue" ng-click="newSite()" ng-disabled="_pageLock"> - <span class="fa fa-plus-square"></span> - New Site - </a> - </li> - </ul> - </div> - - <div class="col-md-9"> - <a class="pull-right btn btn-danger btn-xs" ng-click="deleteSite(site)" ng-disabled="_pageLock"> - <span class="fa fa-trash-o"></span> - Delete Site - </a> - - <!-- Title --> - <h3 class="guideline"> - Site - <small>{{site.tags.site}}</small> - </h3> - <hr/> - - <!-- Config --> - <div class="checkbox"> - <label> - <input type="checkbox" ng-checked="sites[site.tags.site].enabled" ng-click="sites[site.tags.site].enabled = !sites[site.tags.site].enabled"> - <strong>Enabled</strong> - </label> - </div> - <hr/> - - <!-- Application --> - <label>* Application</label> - <div class="row"> - <div class="col-sm-6"> - <h1 class="text-muted text-center" ng-show="sites[site.tags.site].applications.length === 0">No application in using</h1> - <ul class="products-list product-list-in-box fixed-height" ng-show="sites[site.tags.site].applications.length !== 0"> - <li class="item" ng-repeat="application in sites[site.tags.site].applications track by $index" ng-class="{active: _application === application}"> - <div class="product-operation single"> - <span class="fa fa-cubes"></span> - </div> - <div class="product-info"> - <a class="fa fa-times pull-right" ng-click="removeApplication(application, sites[site.tags.site])"></a> - <span class="product-title"> - <a class="fa fa-cog" ng-click="setApplication(application)"></a> - {{application.tags.application}} - </span> - <span class="product-description">{{Application.list.set[application.tags.application].description}}</span> - </div> - </li> - </ul> - </div> - <div class="col-sm-6"> - <ul class="products-list product-list-in-box fixed-height"> - <li class="item" ng-repeat="application in sites[site.tags.site].optionalApplications track by $index"> - <button class="btn btn-lg btn-primary pull-left" ng-click="addApplication(application, sites[site.tags.site])" ng-disabled="_pageLock"> - <span class="fa fa-star-o"></span> - </button> - <div class="product-info"> - <span class="product-title">{{application.tags.application}}</span> - <span class="product-description">{{Application.list.set[application.tags.application].description}}</span> - </div> - </li> - </ul> - </div> - </div> - </div> - </div> - </div><!-- /.box-body --> - - <div class="box-footer clearfix"> - <button class="btn btn-primary" ng-click="saveAll()" ng-disabled="_pageLock">Save All</button> - </div> -</div> \ No newline at end of file
