diff --git a/TODO b/TODO deleted file mode 100644 index 286b0293a7604dcf57254de1b32e2cbe829a7a90..0000000000000000000000000000000000000000 --- a/TODO +++ /dev/null @@ -1,10 +0,0 @@ -cmd - ☐ implement delete operation - ☐ implement filebase remove - ☐ implement elasticsearch indexing - ☐ allow other document input formats - ☐ do not read whole file into memory - ☐ on save topics: retain topic names? - -rest - ☐ implement etag caching \ No newline at end of file diff --git a/Vagrantfile b/Vagrantfile index a350bf2b047f0f007e4c9d6e86cdcfda5bb42900..a89510af8db0dd65d18a7b45638022d91bded388 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,6 +1,7 @@ Vagrant.configure(2) do |config| - config.vm.box = 'ubuntu/trusty64' - config.vm.box_check_update = true + config.vm.box = 'ubuntu/wily64' + + ENV['LC_ALL']="en_US.UTF-8" config.vm.provider "virtualbox" do |v| v.memory = 8192 diff --git a/ma-impl.sublime-workspace b/ma-impl.sublime-workspace index 2ad0d78bc5aa08b99c6a5d9f82752218ab47eb08..6d78bcb150292817c746f75f424bc0c2aa1d5ec8 100644 --- a/ma-impl.sublime-workspace +++ b/ma-impl.sublime-workspace @@ -275,6 +275,14 @@ }, "buffers": [ + { + "file": "vipra-ui/app/adapters/application.js", + "settings": + { + "buffer_size": 506, + "line_ending": "Unix" + } + } ], "build_system": "", "build_system_choices": @@ -922,8 +930,39 @@ "groups": [ { + "selected": 0, "sheets": [ + { + "buffer": 0, + "file": "vipra-ui/app/adapters/application.js", + "semi_transient": false, + "settings": + { + "buffer_size": 506, + "regions": + { + }, + "selection": + [ + [ + 119, + 119 + ] + ], + "settings": + { + "syntax": "Packages/JavaScriptNext - ES6 Syntax/JavaScriptNext.tmLanguage", + "tab_size": 2, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 0, + "type": "text" + } ] } ], diff --git a/vipra-cmd/.classpath b/vipra-cmd/.classpath index 32530decee8107dc6d40648091978c83c2f89629..68ba27436986c55b46eea6656f7d15f85a4b0758 100644 --- a/vipra-cmd/.classpath +++ b/vipra-cmd/.classpath @@ -27,12 +27,6 @@ <attribute name="org.eclipse.jst.component.nondependency" value=""/> </attributes> </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> <attributes> <attribute name="owner.project.facets" value="java"/> diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java index f23a3d2b1e3d8ba401c8a600c5ae179d47bc4714..6d7e914f6da168a6b00148f7f10847080d22bcce 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java @@ -5,7 +5,7 @@ import java.io.File; import java.io.IOException; import de.vipra.cmd.ex.FilebaseException; -import de.vipra.cmd.model.Article; +import de.vipra.cmd.model.ProcessedArticle; import de.vipra.util.Config; import de.vipra.util.Config.Key; import de.vipra.util.Constants; @@ -46,7 +46,7 @@ public abstract class Filebase implements Closeable { return vocab; } - public void remove(Article article) throws FilebaseException { + public void remove(ProcessedArticle article) throws FilebaseException { remove(article.getId().toString()); } @@ -57,7 +57,7 @@ public abstract class Filebase implements Closeable { vocab.close(); } - public abstract void add(Article article) throws FilebaseException; + public abstract void add(ProcessedArticle article) throws FilebaseException; public abstract void remove(String id) throws FilebaseException; diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java index 1676bbdb979653c6085b8ced6fe6a03c2b10f833..d5ee6273decd1ca0304ac1862ae1991b4782cd71 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java @@ -7,7 +7,7 @@ import java.util.ArrayList; import java.util.List; import de.vipra.cmd.ex.FilebaseException; -import de.vipra.cmd.model.Article; +import de.vipra.cmd.model.ProcessedArticle; import de.vipra.util.ex.NotImplementedException; public class JGibbFilebase extends Filebase { @@ -15,7 +15,7 @@ public class JGibbFilebase extends Filebase { private final File modelFile; private final FilebaseIndex index; private final FilebaseVocabulary vocab; - private final List<Article> articles; + private final List<ProcessedArticle> articles; private final int bufferMaxSize = 100; @@ -28,7 +28,7 @@ public class JGibbFilebase extends Filebase { } @Override - public void add(Article article) throws FilebaseException { + public void add(ProcessedArticle article) throws FilebaseException { String[] words = article.getProcessedText().getText().split("\\s+"); vocab.addVocabulary(words); index.add(article.getId().toString()); @@ -56,7 +56,7 @@ public class JGibbFilebase extends Filebase { // write articles raf.seek(raf.length()); - for (Article a : articles) { + for (ProcessedArticle a : articles) { if (linesep) raf.writeBytes(System.lineSeparator()); else diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/model/Article.java b/vipra-cmd/src/main/java/de/vipra/cmd/model/ProcessedArticle.java similarity index 91% rename from vipra-cmd/src/main/java/de/vipra/cmd/model/Article.java rename to vipra-cmd/src/main/java/de/vipra/cmd/model/ProcessedArticle.java index 4c0bc3ca1e25af40c38e0b5b84defbaa3a48d067..8611f4ef251be3d0b39e3c1960e59aa2ab9e24b7 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/model/Article.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/model/ProcessedArticle.java @@ -5,7 +5,7 @@ import org.mongodb.morphia.annotations.Transient; import de.vipra.cmd.text.ProcessedText; -public class Article extends de.vipra.util.model.Article { +public class ProcessedArticle extends de.vipra.util.model.Article { @Transient private ProcessedText processedText; diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java index 2cfbafd675dc7af7bbf097f59d7e38aeff23cd2e..26496207dada056996861186df74f92df3ec4ac4 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java @@ -9,7 +9,7 @@ import org.slf4j.LoggerFactory; import de.vipra.cmd.ExecutionException; import de.vipra.cmd.ex.ClearException; -import de.vipra.cmd.model.Article; +import de.vipra.cmd.model.ProcessedArticle; import de.vipra.util.Config; import de.vipra.util.ConsoleUtils; import de.vipra.util.Constants; @@ -24,7 +24,7 @@ public class ClearCommand implements Command { private boolean defaults; private Config config; - private DatabaseService<Article> dbArticles; + private DatabaseService<ProcessedArticle> dbArticles; private DatabaseService<Topic> dbTopics; public ClearCommand(boolean defaults) { @@ -34,7 +34,7 @@ public class ClearCommand implements Command { private void clear() throws ClearException, ConfigException { try { config = Config.getConfig(); - dbArticles = DatabaseService.getDatabaseService(config, Constants.Collection.ARTICLES, Article.class); + dbArticles = DatabaseService.getDatabaseService(config, Constants.Collection.ARTICLES, ProcessedArticle.class); dbTopics = DatabaseService.getDatabaseService(config, Constants.Collection.TOPICS, Topic.class); } catch (Exception e) { throw new ClearException(e); diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/DeleteCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/DeleteCommand.java index 9d3b8c4f2e7f2a69573cf9012d0382fc1050c765..cb6aa3b6ca2d3af471b831633dc4d4793b7544b7 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/DeleteCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/DeleteCommand.java @@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory; import de.vipra.cmd.ExecutionException; import de.vipra.cmd.ex.FilebaseException; import de.vipra.cmd.file.Filebase; -import de.vipra.cmd.model.Article; +import de.vipra.cmd.model.ProcessedArticle; import de.vipra.util.Config; import de.vipra.util.Constants; import de.vipra.util.ex.ConfigException; @@ -25,7 +25,7 @@ public class DeleteCommand implements Command { private ArrayList<String> ids = new ArrayList<>(); private Config config; - private DatabaseService<Article> dbArticles; + private DatabaseService<ProcessedArticle> dbArticles; private Filebase filebase; public DeleteCommand(String[] strings) { @@ -71,7 +71,7 @@ public class DeleteCommand implements Command { public void run() throws ExecutionException { try { config = Config.getConfig(); - dbArticles = DatabaseService.getDatabaseService(config, Constants.Collection.ARTICLES, Article.class); + dbArticles = DatabaseService.getDatabaseService(config, Constants.Collection.ARTICLES, ProcessedArticle.class); filebase = Filebase.getFilebase(config); } catch (IOException | FilebaseException | ConfigException e) { throw new ExecutionException(e); diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java index 677f5782f1f8a5a2351d56095bb55b75e99aeae6..1433affcbee5766ee0c94f3cc88fd693fbb53a37 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java @@ -24,7 +24,7 @@ import de.vipra.cmd.ex.LDAAnalyzerException; import de.vipra.cmd.file.Filebase; import de.vipra.cmd.file.FilebaseIndex; import de.vipra.cmd.lda.LDAAnalyzer; -import de.vipra.cmd.model.Article; +import de.vipra.cmd.model.ProcessedArticle; import de.vipra.cmd.text.ProcessedText; import de.vipra.cmd.text.Processor; import de.vipra.util.Config; @@ -46,7 +46,7 @@ public class ImportCommand implements Command { private ArrayList<File> files = new ArrayList<>(); private JSONParser parser = new JSONParser(); private Config config; - private DatabaseService<Article> dbArticles; + private DatabaseService<ProcessedArticle> dbArticles; private DatabaseService<Topic> dbTopics; private Filebase filebase; private Processor preprocessor; @@ -92,7 +92,7 @@ public class ImportCommand implements Command { */ void importArticle(JSONObject obj) throws ImportException { out.debug("importing \"" + StringUtils.ellipsize(obj.get("title").toString(), 80) + "\""); - Article article = new Article(); + ProcessedArticle article = new ProcessedArticle(); article.fromJSON(obj); try { @@ -197,7 +197,7 @@ public class ImportCommand implements Command { else log.error("no object id for topic index " + tc.getId()); } - Article a = dbArticles.getSingle(id); + ProcessedArticle a = dbArticles.getSingle(id); a.setTopics(topicCount); try { dbArticles.updateSingle(a); @@ -211,7 +211,7 @@ public class ImportCommand implements Command { public void run() throws ExecutionException { try { config = Config.getConfig(); - dbArticles = DatabaseService.getDatabaseService(config, Constants.Collection.ARTICLES, Article.class); + dbArticles = DatabaseService.getDatabaseService(config, Constants.Collection.ARTICLES, ProcessedArticle.class); dbTopics = DatabaseService.getDatabaseService(config, Constants.Collection.TOPICS, Topic.class); filebase = Filebase.getFilebase(config); preprocessor = Processor.getPreprocessor(config); diff --git a/vipra-rest/.classpath b/vipra-rest/.classpath index b72ccd2037671de82b5e71abdfd97fa650b68150..f2db8ed9892d5e6702d39d0cba12cc8436a2b42e 100644 --- a/vipra-rest/.classpath +++ b/vipra-rest/.classpath @@ -17,12 +17,6 @@ <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> </attributes> </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> <attributes> <attribute name="owner.project.facets" value="java"/> diff --git a/vipra-rest/src/main/java/de/vipra/rest/provider/WrapperResponseFilter.java b/vipra-rest/src/main/java/de/vipra/rest/provider/WrapperResponseFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..a7215196448954528232bbcc69411c86b2bf667b --- /dev/null +++ b/vipra-rest/src/main/java/de/vipra/rest/provider/WrapperResponseFilter.java @@ -0,0 +1,18 @@ +package de.vipra.rest.provider; + +import java.io.IOException; + +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; + +public class WrapperResponseFilter implements ContainerResponseFilter { + + @SuppressWarnings("unused") + @Override + public void filter(ContainerRequestContext arg0, ContainerResponseContext arg1) throws IOException { + Object entity = arg1.getEntity(); + int status = arg1.getStatus(); + } + +} diff --git a/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java b/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java index fcbf65746d181c2f76e730ba17eb98f29b057625..b53aaad4e5c95f216f835ca6117c22415c127f30 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java +++ b/vipra-rest/src/main/java/de/vipra/rest/service/ArticleService.java @@ -10,7 +10,7 @@ import de.vipra.util.service.DatabaseService; public class ArticleService extends DatabaseService<Article> { public ArticleService(Mongo mongo) { - super(mongo, Article.class); + super(mongo, de.vipra.util.model.Article.class); } public List<Article> getMultiple(URI base, int skip, int limit, String sortBy) { diff --git a/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java b/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java index 497bc6903e4afba0f3e93e27ee3878f609276b7e..4ec6eb604d23f49d37282bfb6524bcca1ee46285 100644 --- a/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java +++ b/vipra-rest/src/main/java/de/vipra/rest/service/TopicService.java @@ -10,7 +10,7 @@ import de.vipra.util.service.DatabaseService; public class TopicService extends DatabaseService<Topic> { public TopicService(Mongo mongo) { - super(mongo, Topic.class); + super(mongo, de.vipra.util.model.Topic.class); } public List<Topic> getMultiple(URI base, int skip, int limit, String sortBy) { diff --git a/vipra-util/src/main/java/de/vipra/util/model/Article.java b/vipra-util/src/main/java/de/vipra/util/model/Article.java index 95c3264defc6dc5789b70b42b0d62128e873cf8d..e969f707ef5aebb5393bc8b9554f5eb99c89520b 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/Article.java +++ b/vipra-util/src/main/java/de/vipra/util/model/Article.java @@ -16,7 +16,7 @@ import de.vipra.util.FileUtils; import de.vipra.util.MongoUtils; import de.vipra.util.StringUtils; -@Entity("articles") +@Entity(value="articles", noClassnameStored=true) public class Article extends Model { @Id diff --git a/vipra-util/src/main/java/de/vipra/util/model/Topic.java b/vipra-util/src/main/java/de/vipra/util/model/Topic.java index 3891fc8a45f409604555ee3895175bd2d3961548..24758b3738315476116e23aae29ba6b3a387ff9a 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/Topic.java +++ b/vipra-util/src/main/java/de/vipra/util/model/Topic.java @@ -12,7 +12,7 @@ import org.mongodb.morphia.annotations.Id; import de.vipra.util.MongoUtils; import de.vipra.util.ex.NotImplementedException; -@Entity("topics") +@Entity(value="topics", noClassnameStored=true) public class Topic extends Model { @Id diff --git a/vm/bootstrap.sh b/vm/bootstrap.sh index 78e21dd33ea79ffc3d81c062f6ef8cdabe6cb93f..5a0827b864a778e36e9a3712bfe15c2b91babbf2 100644 --- a/vm/bootstrap.sh +++ b/vm/bootstrap.sh @@ -1,15 +1,5 @@ #!/bin/sh -VMDIR=/vagrant/vm -DATA=$VMDIR/data -CONFIG=$VMDIR/config - -# ----------------------------------------------------------------------------- -# add repos - -apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 -echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list - # ----------------------------------------------------------------------------- # upgrade system @@ -19,64 +9,18 @@ apt-get upgrade -y # ----------------------------------------------------------------------------- # install packages -apt-get install git gdebi-core openjdk-7-jdk openjdk-7-jre -y - -# ----------------------------------------------------------------------------- -# install mongodb - -apt-get install -y mongodb-org -ln -sf $CONFIG/mongod.conf /etc/mongod.conf - -# setup startup script -cp $CONFIG/initd-mongod /etc/init.d/mongod -chmod 755 /etc/init.d/mongod -update-rc.d mongod defaults - -# disable hugepages (https://docs.mongodb.org/manual/tutorial/transparent-huge-pages/) -cp $CONFIG/disable-transparent-hugepages /etc/init.d/ -chmod 755 /etc/init.d/disable-transparent-hugepages -update-rc.d disable-transparent-hugepages defaults -echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled -echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag - -# restart service -service mongod restart - -# ----------------------------------------------------------------------------- -# install mongo express - -apt-get install npm libkrb5-dev -ln -sf $(which nodejs) /bin/node -npm install -g mongo-express forever -ln -sf $CONFIG/mongo-express.config.js /usr/local/lib/node_modules/mongo-express/config.js +apt-get install git gdebi-core openjdk-8-jdk openjdk-8-jre mongodb tomcat8 -y # ----------------------------------------------------------------------------- -# install tomcat - -TOMCAT_MAJOR="8" -TOMCAT_VERSION="$TOMCAT_MAJOR.0.30" -TOMCAT_ROOT=/usr/share/tomcat - -wget http://mirror.netcologne.de/apache.org/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz -tar zxf apache-tomcat-$TOMCAT_VERSION.tar.gz -rm apache-tomcat-$TOMCAT_VERSION.tar.gz -mv apache-tomcat-$TOMCAT_VERSION $TOMCAT_ROOT - -# set permissions -chown -R vagrant:vagrant $TOMCAT_ROOT -chmod +x $TOMCAT_ROOT/bin/*.sh - -# setup startup script -cp $CONFIG/initd-tomcat /etc/init.d/tomcat -chmod 755 /etc/init.d/tomcat -update-rc.d tomcat defaults +# setup tomcat -# move webapps dir -mv $TOMCAT_ROOT/webapps $VMDIR -ln -s $VMDIR/webapps $TOMCAT_ROOT/webapps +usermod -a -G tomcat8 vagrant +mv /var/lib/tomcat8/webapps /var/lib/tomcat8/webapps-orig +rm -f /vagrant/vm/webapps +mkdir /vagrant/vm/webapps +ln -sf /vagrant/vm/webapps /var/lib/tomcat8/webapps -# start tomcat -service tomcat start +systemctl restart tomcat8 # ----------------------------------------------------------------------------- # install elasticsearch @@ -84,34 +28,24 @@ service tomcat start wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.1.1/elasticsearch-2.1.1.deb gdebi -n elasticsearch-2.1.1.deb rm elasticsearch-2.1.1.deb -service elasticsearch start + +systemctl restart elasticsearch # ----------------------------------------------------------------------------- # disable firewall ufw disable -# ----------------------------------------------------------------------------- -# set environment - -cat $CONFIG/environment >> /etc/environment -cat $CONFIG/motd > /etc/motd - # ----------------------------------------------------------------------------- # cleanup apt-get autoremove -y apt-get clean -dd if=/dev/zero of=/EMPTY bs=1M -rm -f /EMPTY -cat /dev/null > ~/.bash_history -history -c echo "" echo "--------------------------------------------------------------" echo "--- Provisioning complete." -echo "--- Reload box to set environment" -echo "--- `vagrant reload`" echo "--------------------------------------------------------------" +echo "" exit 0 \ No newline at end of file diff --git a/vm/config/disable-transparent-hugepages b/vm/config/disable-transparent-hugepages deleted file mode 100644 index 520af2cf4b2708ca82c0d49778a74938445adb8f..0000000000000000000000000000000000000000 --- a/vm/config/disable-transparent-hugepages +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: disable-transparent-hugepages -# Required-Start: $local_fs -# Required-Stop: -# X-Start-Before: mongod mongodb-mms-automation-agent -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Disable Linux transparent huge pages -# Description: Disable Linux transparent huge pages, to improve -# database performance. -### END INIT INFO - -case $1 in - start) - if [ -d /sys/kernel/mm/transparent_hugepage ]; then - thp_path=/sys/kernel/mm/transparent_hugepage - elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then - thp_path=/sys/kernel/mm/redhat_transparent_hugepage - else - return 0 - fi - - echo 'never' > ${thp_path}/enabled - echo 'never' > ${thp_path}/defrag - - unset thp_path - ;; -esac \ No newline at end of file diff --git a/vm/config/environment b/vm/config/environment deleted file mode 100644 index f7b4caf838d7e39f3119483b45e384cc1610ea88..0000000000000000000000000000000000000000 --- a/vm/config/environment +++ /dev/null @@ -1,3 +0,0 @@ -# Java -JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre -JAVA_TOOL_OPTIONS="-Xmx2048m -XX:MaxPermSize=1024m -Xms1024m" \ No newline at end of file diff --git a/vm/config/initd-mongod b/vm/config/initd-mongod deleted file mode 100644 index 780e488b26591208e1c4fdecfb13ecc6f48f1e20..0000000000000000000000000000000000000000 --- a/vm/config/initd-mongod +++ /dev/null @@ -1,267 +0,0 @@ -#!/bin/sh -# -# init.d script with LSB support. -# -# Copyright (c) 2007 Javier Fernandez-Sanguino <jfs@debian.org> -# -# This is free software; you may redistribute it and/or modify -# it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2, -# or (at your option) any later version. -# -# This is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License with -# the Debian operating system, in /usr/share/common-licenses/GPL; if -# not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA -# -### BEGIN INIT INFO -# Provides: mongod -# Required-Start: $network $local_fs $remote_fs -# Required-Stop: $network $local_fs $remote_fs -# Should-Start: $named -# Should-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: An object/document-oriented database -# Description: MongoDB is a high-performance, open source, schema-free -# document-oriented data store that's easy to deploy, manage -# and use. It's network accessible, written in C++ and offers -# the following features: -# -# * Collection oriented storage - easy storage of object- -# style data -# * Full index support, including on inner objects -# * Query profiling -# * Replication and fail-over support -# * Efficient storage of binary data including large -# objects (e.g. videos) -# * Automatic partitioning for cloud-level scalability -# -# High performance, scalability, and reasonable depth of -# functionality are the goals for the project. -### END INIT INFO - -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=/usr/bin/mongod -DESC=database - -NAME=mongod -# Defaults. Can be overridden by the /etc/default/$NAME -# Other configuration options are located in $CONF file. See here for more: -# http://dochub.mongodb.org/core/configurationoptions -CONF=/etc/mongod.conf -PIDFILE=/var/run/$NAME.pid -ENABLE_MONGOD=yes - -# Include mongodb defaults if available -if [ -f /etc/default/$NAME ] ; then - . /etc/default/$NAME -fi - -# Handle NUMA access to CPUs (SERVER-3574) -# This verifies the existence of numactl as well as testing that the command works -NUMACTL_ARGS="--interleave=all" -if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/null -then - NUMACTL="`which numactl` -- $NUMACTL_ARGS" - DAEMON_OPTS=${DAEMON_OPTS:-"--config $CONF"} -else - NUMACTL="" - DAEMON_OPTS="-- "${DAEMON_OPTS:-"--config $CONF"} -fi - -if test ! -x $DAEMON; then - echo "Could not find $DAEMON" - exit 0 -fi - -if test "x$ENABLE_MONGOD" != "xyes"; then - exit 0 -fi - -. /lib/lsb/init-functions - -STARTTIME=1 -DIETIME=10 # Time to wait for the server to die, in seconds - # If this value is set too low you might not - # let some servers to die gracefully and - # 'restart' will not work - -DAEMONUSER=${DAEMONUSER:-mongodb} -DAEMONGROUP=${DAEMONGROUP:-mongodb} - -set -e - -running_pid() { -# Check if a given process pid's cmdline matches a given name - pid=$1 - name=$2 - [ -z "$pid" ] && return 1 - [ ! -d /proc/$pid ] && return 1 - cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1` - # Is this the expected server - [ "$cmd" != "$name" ] && return 1 - return 0 -} - -running() { -# Check if the process is running looking at /proc -# (works for all users) - - # No pidfile, probably no daemon present - [ ! -f "$PIDFILE" ] && return 1 - pid=`cat $PIDFILE` - running_pid $pid $DAEMON || return 1 - return 0 -} - -start_server() { - # Recommended ulimit values for mongod or mongos - # See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings - # - ulimit -f unlimited - ulimit -t unlimited - ulimit -v unlimited - ulimit -n 64000 - ulimit -m unlimited - - # In dash, ulimit takes -p for maximum user processes - # In bash, it's -u - if readlink /proc/$$/exe | grep -q dash - then - ulimit -p 64000 - else - ulimit -u 64000 - fi - - # Start the process using the wrapper - start-stop-daemon --background --start --quiet --pidfile $PIDFILE \ - --make-pidfile --chuid $DAEMONUSER:$DAEMONGROUP \ - --exec $NUMACTL $DAEMON $DAEMON_OPTS - errcode=$? - return $errcode -} - -stop_server() { -# Stop the process using the wrapper - start-stop-daemon --stop --quiet --pidfile $PIDFILE \ - --retry 300 \ - --user $DAEMONUSER \ - --exec $DAEMON - errcode=$? - return $errcode -} - -force_stop() { -# Force the process to die killing it manually - [ ! -e "$PIDFILE" ] && return - if running ; then - kill -15 $pid - # Is it really dead? - sleep "$DIETIME"s - if running ; then - kill -9 $pid - sleep "$DIETIME"s - if running ; then - echo "Cannot kill $NAME (pid=$pid)!" - exit 1 - fi - fi - fi - rm -f $PIDFILE -} - - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - # Check if it's running first - if running ; then - log_progress_msg "apparently already running" - log_end_msg 0 - exit 0 - fi - if start_server ; then - # NOTE: Some servers might die some time after they start, - # this code will detect this issue if STARTTIME is set - # to a reasonable value - [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time - if running ; then - # It's ok, the server started and is running - log_end_msg 0 - else - # It is not running after we did start - log_end_msg 1 - fi - else - # Either we could not start it - log_end_msg 1 - fi - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - if running ; then - # Only stop the server if we see it running - errcode=0 - stop_server || errcode=$? - log_end_msg $errcode - else - # If it's not running don't do anything - log_progress_msg "apparently not running" - log_end_msg 0 - exit 0 - fi - ;; - force-stop) - # First try to stop gracefully the program - $0 stop - if running; then - # If it's still running try to kill it more forcefully - log_daemon_msg "Stopping (force) $DESC" "$NAME" - errcode=0 - force_stop || errcode=$? - log_end_msg $errcode - fi - ;; - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - errcode=0 - stop_server || errcode=$? - # Wait some sensible amount, some server need this - [ -n "$DIETIME" ] && sleep $DIETIME - start_server || errcode=$? - [ -n "$STARTTIME" ] && sleep $STARTTIME - running || errcode=$? - log_end_msg $errcode - ;; - status) - - log_daemon_msg "Checking status of $DESC" "$NAME" - if running ; then - log_progress_msg "running" - log_end_msg 0 - else - log_progress_msg "apparently not running" - log_end_msg 1 - exit 1 - fi - ;; - # MongoDB can't reload its configuration. - reload) - log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon" - log_warning_msg "cannot re-read the config file (use restart)." - ;; - - *) - N=/etc/init.d/$NAME - echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 - exit 1 - ;; -esac - -exit 0 \ No newline at end of file diff --git a/vm/config/initd-tomcat b/vm/config/initd-tomcat deleted file mode 100644 index d7a2b738fb0b166dbc2842647f9136e2519a7ddf..0000000000000000000000000000000000000000 --- a/vm/config/initd-tomcat +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -### BEGIN INIT INFO -# Provides: tomcat -# Required-Start: $network -# Required-Stop: $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Start/Stop Tomcat server -### END INIT INFO - -PATH=/sbin:/bin:/usr/sbin:/usr/bin - -start() { - /bin/su - vagrant -c /usr/share/tomcat/bin/startup.sh -} - -stop() { - /bin/su - vagrant -c /usr/share/tomcat/bin/shutdown.sh -} - -case $1 in - start|stop) $1;; - restart) stop; start;; - *) echo "Run as $0 <start|stop|restart>"; exit 1;; -esac \ No newline at end of file diff --git a/vm/config/mongo-express.config.js b/vm/config/mongo-express.config.js deleted file mode 100644 index e30faa2dbacb0b8cbd6adcdb19276859954ff474..0000000000000000000000000000000000000000 --- a/vm/config/mongo-express.config.js +++ /dev/null @@ -1,110 +0,0 @@ -'use strict'; - -var url = require('url'); - -if (typeof process.env.MONGODB_PORT === 'string') { - var mongoConnection = url.parse(process.env.MONGODB_PORT); - process.env.ME_CONFIG_MONGODB_SERVER = mongoConnection.hostname; - process.env.ME_CONFIG_MONGODB_PORT = mongoConnection.port; -} - -module.exports = { - mongodb: { - server: process.env.ME_CONFIG_MONGODB_SERVER || 'localhost', - port: process.env.ME_CONFIG_MONGODB_PORT || 27017, - - //autoReconnect: automatically reconnect if connection is lost - autoReconnect: true, - //poolSize: size of connection pool (number of connections to use) - poolSize: 4, - //set admin to true if you want to turn on admin features - //if admin is true, the auth list below will be ignored - //if admin is true, you will need to enter an admin username/password below (if it is needed) - admin: true, - - - // >>>> If you are using regular accounts, fill out auth details in the section below - // >>>> If you have admin auth, leave this section empty and skip to the next section - auth: [ - /* - * Add the the name, the username, and the password of the databases you want to connect to - * Add as many databases as you want! - { - database: 'test', - username: 'user', - password: 'pass' - } - */ - ], - - - // >>>> If you are using an admin mongodb account, or no admin account exists, fill out section below - // >>>> Using an admin account allows you to view and edit all databases, and view stats - - //leave username and password empty if no admin account exists - adminUsername: process.env.ME_CONFIG_MONGODB_ADMINUSERNAME || '', - adminPassword: process.env.ME_CONFIG_MONGODB_ADMINPASSWORD || '', - //whitelist: hide all databases except the ones in this list (empty list for no whitelist) - whitelist: [], - //blacklist: hide databases listed in the blacklist (empty list for no blacklist) - blacklist: [] - }, - - site: { - host: '0.0.0.0', - port: 8081, - cookieSecret: process.env.ME_CONFIG_SITE_COOKIESECRET || 'cookiesecret', - sessionSecret: process.env.ME_CONFIG_SITE_SESSIONSECRET || 'sessionsecret', - cookieKeyName: 'mongo-express', - sslEnabled: process.env.ME_CONFIG_SITE_SSL_ENABLED || false, - sslCert: process.env.ME_CONFIG_SITE_SSL_CRT_PATH || '', - sslKey: process.env.ME_CONFIG_SITE_SSL_KEY_PATH || '' - }, - - //set useBasicAuth to true if you want to authehticate mongo-express loggins - //if admin is false, the basicAuthInfo list below will be ignored - //this will be true unless ME_CONFIG_BASICAUTH_USERNAME is set and is the empty string - useBasicAuth: process.env.ME_CONFIG_BASICAUTH_USERNAME !== '', - - basicAuth: { - username: process.env.ME_CONFIG_BASICAUTH_USERNAME || 'admin', - password: process.env.ME_CONFIG_BASICAUTH_PASSWORD || 'pass' - }, - - options: { - //documentsPerPage: how many documents you want to see at once in collection view - documentsPerPage: 10, - //editorTheme: Name of the theme you want to use for displaying documents - //See http://codemirror.net/demo/theme.html for all examples - editorTheme: process.env.ME_CONFIG_OPTIONS_EDITORTHEME || 'rubyblue', - - //The options below aren't being used yet - - //cmdType: the type of command line you want mongo express to run - //values: eval, subprocess - // eval - uses db.eval. commands block, so only use this if you have to - // subprocess - spawns a mongo command line as a subprocess and pipes output to mongo express - cmdType: 'eval', - //subprocessTimeout: number of seconds of non-interaction before a subprocess is shut down - subprocessTimeout: 300, - //readOnly: if readOnly is true, components of writing are not visible. - readOnly: false - }, - - // Specify the default keyname that should be picked from a document to display in collections list. - // Keynames can be specified for every database and collection. - // If no keyname is specified, it defalts to '_id', which is a mandatory feild. - // For Example : - // defaultKeyNames{ - // "world_db":{ //Database Name - // "continent":"cont_name", // collection:feild - // "country":"country_name", - // "city":"name" - // } - // } - defaultKeyNames: { - "test": { - "articles": "title" - } - } -}; diff --git a/vm/config/motd b/vm/config/motd deleted file mode 100644 index 194c716be5d85c82de72c01f0bc748533cc14427..0000000000000000000000000000000000000000 --- a/vm/config/motd +++ /dev/null @@ -1,8 +0,0 @@ -==================== -Vipra Development VM -==================== - -Start database and web server manually: - > service mongod restart - > service tomcat restart -