Skip to content
This repository has been archived by the owner on Sep 23, 2020. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge remote-tracking branch 'upstream/master'
  • Loading branch information
rrusnak1 committed Jun 21, 2011
2 parents 945d86b + 98f79a6 commit 4148913
Show file tree
Hide file tree
Showing 44 changed files with 1,781 additions and 689 deletions.
1 change: 1 addition & 0 deletions .idea-modules/ec2soap/ec2soap.iml
Expand Up @@ -31,6 +31,7 @@
</orderEntry>
<orderEntry type="module" module-name="workspace-service" />
<orderEntry type="module" module-name="authzdb" />
<orderEntry type="library" name="workspace-service-libs" level="project" />
</component>
</module>

4 changes: 2 additions & 2 deletions docs/src/admin/reference.html
Expand Up @@ -2181,14 +2181,14 @@ <h3>LANTorrent Configuration _NAMELINK(lantorrent-config)</h3>
From the source distribution of Nimbus copy the lantorrent
directory to all VMM nodes.
<li>optional: You may want to setup a python virtual environment for the installation</li>
To do this, run <tt class="literal">virtualenv /path_to_install_lantorrent</tt>
To do this, run <tt class="literal">virtualenv /path_to_install_lantorrent</tt>.
Then, use the <tt class="literal">/path_to_install_lantorrent/bin/python</tt> binary instead of your system python.
<li>optional: If you don't have Internet connectivity on the VMM, you
will have to manually install the simplejson library from source (in the
virtual env if you chose to create one).</li>
<li>Run <tt class="literal">python setup-vmm.py install</tt> on each node.
This will output the xinetd file that you will need to install
into /etc/xinetd. Note the <i>user</i> value in the output:
into <tt class="literal">/etc/xinetd.d</tt>. Note the <i>user</i> value in the output:
this should be the same user as your workspace control user.
</li>
</ul>
Expand Down
197 changes: 188 additions & 9 deletions docs/src/changelog.html
Expand Up @@ -16,6 +16,185 @@ <h2>Changelog</h2>
<a href="http://github.com/nimbusproject/nimbus/raw/master/cloud-client/nimbus-cloud-client-src/CHANGES.txt">here.</a>
</p>

<a name="2.8"> </a>

<i>2.8 - Summary</i>
<ul>
<li>
<p>
Image propagation performance enhancing features have been introduced in
2.8. Propagation by means of a file system copy has been introduced. This
can greatly decrease the boot time of VMs on systems where a fast shared
file system is used. We have also added support for a VM image cache on
all VMMs. This greatly increases the performance for clouds with a
base image that is booted often (a common use case).
</p>
</li>
</ul>

<i>2.8 - IaaS Services</i>
<ul>
<li>
<p>
libvirt template support added. A cloud administrator can
now completely control the options sent to libvirt when starting
a virtual machine by editing the template file
/opt/nimbus/etc/workspace-control/libvirt_template.xml
on the VMM nodes.
</p>
</li>
<li>
<p>
A cache of propagated images can now be kept on each VMM. Before
an image is propagated the cache is checked for an image with a
matching checksum. If found that image is used and no propagation
is needed which can save a significant amount of time.
</p>
</li>
<li>
<p>
The cp (copy) propagation driver has been introduced in this release.
This prepares an image for use by a VMM by coping it directly out
of the Cumulus data store and into a temporary location from which it
will be booted. For users with shared fast file systems this can
bring great performance benefits.
</p>
</li>
<li>
<p>
Internally the Nimbus team has introduced a build and test system
with <i>Jenkins</i>. This has helped us create a more robust and
well tested system as well as making it easier for the community
to make contributions.
</p>
</li>
<li>
<p>
Documentation added to the <i>zero to cloud guide</i> describing
how to setup Nimbus to work with KVM.
</p>
</li>
<li>
<p>
<i>Bug Fixes</i>
</p>

<ul>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/56">Termination should be retried if there is a fatal issue</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/49">accounting txt file not updated when corrupt VMs expire.</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/48">Add HTTPS unpropagation support.</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/46">Incorrect in_use in nimbus-nodes -l</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/44">User tools have buggy group-authz dir loading</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/37">Needed networks not being respected</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/36">Implement EC2 ImportKeyPair</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/32">Pilot updates</a>
</p>
</li>
</ul>
</li>
</ul>

<i>2.8 - LANTorrent</i>
<ul>
<li>
<p>
In this release LANTorrent was repackaged for more pythonic
distribution mechanisms and an important bug was fixed that
cased long term stability problems.
</p>
</li>
<li>
<p>
<i>Bug Fixes</i>
</p>
<ul>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/39">Lantorrent runaway after killing a newly created VM</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/57">LANTorrent can't be installed without an Internet connection</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/51">Add lantorrent tests to test suite.</a>
</p>
</li>
</ul>
</li>
</ul>

<i>2.8 - Control Agents</i>

<ul>
<li>
<p>
</p>

</li>
<li>
<p>
<i>Bug Fixes</i>
</p>

<ul>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/33">virtio support in generated libvirt xml</a>
</p>
</li>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/55">Workspace control verifies old unpropagation URL when saving with a new name</a>
</p>
</li>
</ul>
</li>
</ul>

<i>2.8 - Additional Notes</i>
<ul>
<li>
<p>
</p>
</li>
</ul>



<a name="2.7"> </a>

<i>2.7 - Summary</i>
Expand Down Expand Up @@ -73,7 +252,7 @@ <h2>Changelog</h2>
<li>
<p>
The EC2 Query interface has substantially improved compatibility with EC2 clients. The generated XML
is now largely identical. The namespace version in responses matches the request version
is now largely identical. The name space version in responses matches the request version
regardless of the actual version. Additionally, version 1 signatures are now supported, to enable
some clients that never updated to version 2.
</p>
Expand All @@ -87,15 +266,15 @@ <h2>Changelog</h2>
<li>
<p>
Added support for specifying multiple CPU architectures in <tt class="literal">vmm.conf</tt>. Detailed in
<a href="https://github.com/nimbusproject/nimbus/issues/closed#issue/15">issue 15</a>.
</p>
</li>
<li>
<p>
<i>Bug Fixes</i>
</p>
<a href="https://github.com/nimbusproject/nimbus/issues/closed#issue/15">issue 15</a>.
</p>
</li>
<li>
<p>
<i>Bug Fixes</i>
</p>

<ul>
<ul>
<li>
<p>
<a href="https://github.com/nimbusproject/nimbus/issues/closed#issue/27">Fixed bug with user-selected kernels in workspace-control</a>
Expand Down
Expand Up @@ -76,10 +76,16 @@
<bean id="nimbus-elastic.rm.idmappings"
class="org.nimbustools.messaging.gt4_0_elastic.v2008_05_05.rm.defaults.DefaultIDMgmtProxy" />

<bean id="nimbus-elastic.rm.persistence"
class="org.nimbustools.messaging.gt4_0_elastic.v2008_05_05.general.defaults.DefaultElasticPersistence"
init-method="initialize">
<constructor-arg value="$OTHER_ELASTIC{elastic.db}"/>
</bean>

<!-- Don't reference this bean directly. See DefaultIDMgmtProxy class notes. -->
<bean id="nimbus-elastic.rm.realidmappings"
class="org.nimbustools.messaging.gt4_0_elastic.v2008_05_05.rm.defaults.DefaultIDMgmt">
<constructor-arg value="$OTHER_ELASTIC{caches.dir}" />
<constructor-arg ref="nimbus-elastic.rm.persistence"/>
</bean>

<!-- ************ Spot Instances *********** -->
Expand Down Expand Up @@ -191,8 +197,7 @@
class="org.nimbustools.messaging.gt4_0_elastic.v2008_05_05.security.defaults.DefaultSSHKeys"
init-method="validate">

<!-- key cache provider -->
<constructor-arg ref="nimbus-elastic.rm.idmappings" />
<constructor-arg ref="nimbus-elastic.rm.persistence" />
<property name="pubkeyOnly" value="$ELASTIC{ssh.pubkey.only}" />
<property name="splitToken" value="$ELASTIC{ssh.split.token}" />

Expand Down
Expand Up @@ -67,5 +67,5 @@ ra.name.unknown=[unknown]
unknown.pubnet=[unknown]
unknown.privnet=[unknown]

# disk-persistent caching
caches.dir=$NIMBUS_HOME/services/var/nimbus/elastic-caches

elastic.db=$NIMBUS_HOME/services/var/nimbus/elastic.db
@@ -0,0 +1,77 @@
/*
* Copyright 1999-2011 University of Chicago
*
* Licensed 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.
*/
package org.nimbustools.messaging.gt4_0_elastic.v2008_05_05.general;

import org.nimbustools.messaging.gt4_0_elastic.v2008_05_05.security.SSHKey;

import java.util.List;

public interface ElasticPersistence {
String INSERT_INSTANCE = "insert into instances " +
"(elastic_id, manager_id, reservation_id, sshkey) values(?,?,?,?)";
String GET_MANAGER_FROM_ELASTIC_INSTANCE =
"select manager_id from instances where elastic_id = ?";
String GET_ELASTIC_FROM_MANAGER_INSTANCE =
"select elastic_id from instances where manager_id = ?";
String INSERT_RESERVATION = "insert into reservations " +
"(reservation_id, group_id, cosched_id) values(?,?,?)";
String GET_SSHKEY_FROM_ELASTIC_INSTANCE =
"select sshkey from instances where elastic_id = ?";
String GET_GROUP_FROM_ELASTIC_RESERVATION =
"select group_id from reservations where reservation_id = ?";
String GET_COSCHED_FROM_ELASTIC_RESERVATION =
"select cosched_id from reservations where reservation_id = ?";
String GET_RESERVATION_FROM_MANAGER_INSTANCE =
"select reservation_id from instances where manager_id = ?";
String GET_RESERVATION_FROM_GROUP =
"select reservation_id from reservations where group_id = ?";
String GET_RESERVATION_FROM_COSCHED =
"select reservation_id from reservations where cosched_id = ?";
// a little silly
String GET_RESERVATION =
"select reservation_id from reservations where reservation_id = ?";
String GET_SSH_KEY = "select owner, keyname, pubkey, fingerprint " +
"from ssh_keypairs where owner = ? and keyname = ?";
String GET_SSH_KEYS_BY_OWNER = "select owner, keyname, pubkey, " +
"fingerprint from ssh_keypairs where owner = ?";
String INSERT_SSH_KEY = "insert into ssh_keypairs " +
"(owner, keyname, pubkey, fingerprint) values(?,?,?,?)";
String UPDATE_SSH_KEY = "updatessh_keypairs " +
"set pubkey = ?, fingerprint = ? where owner = ? and keyname = ?";
String DELETE_SSH_KEY = "delete from ssh_keypairs " +
"where owner = ? and keyname = ?";

void insertInstance(String elasticInstanceId,
String managerInstanceId,
String elasticReservationId,
String sshKeyUsed) throws Exception;

void insertReservation(String elasticReservationId,
String groupId, String coschedId)
throws Exception;

String selectIdFromId(String query, String id);

List<SSHKey> getSSHKeys(String owner) throws Exception;

SSHKey getSSHKey(String owner, String keyname) throws Exception;

void putSSHKey(SSHKey key) throws Exception;

boolean updateSSHKey(SSHKey key) throws Exception;

boolean deleteSSHKey(String owner, String keyname) throws Exception;
}

0 comments on commit 4148913

Please sign in to comment.